高级C语言程序员测试.docx

上传人:b****3 文档编号:7008342 上传时间:2023-05-10 格式:DOCX 页数:18 大小:17.52KB
下载 相关 举报
高级C语言程序员测试.docx_第1页
第1页 / 共18页
高级C语言程序员测试.docx_第2页
第2页 / 共18页
高级C语言程序员测试.docx_第3页
第3页 / 共18页
高级C语言程序员测试.docx_第4页
第4页 / 共18页
高级C语言程序员测试.docx_第5页
第5页 / 共18页
高级C语言程序员测试.docx_第6页
第6页 / 共18页
高级C语言程序员测试.docx_第7页
第7页 / 共18页
高级C语言程序员测试.docx_第8页
第8页 / 共18页
高级C语言程序员测试.docx_第9页
第9页 / 共18页
高级C语言程序员测试.docx_第10页
第10页 / 共18页
高级C语言程序员测试.docx_第11页
第11页 / 共18页
高级C语言程序员测试.docx_第12页
第12页 / 共18页
高级C语言程序员测试.docx_第13页
第13页 / 共18页
高级C语言程序员测试.docx_第14页
第14页 / 共18页
高级C语言程序员测试.docx_第15页
第15页 / 共18页
高级C语言程序员测试.docx_第16页
第16页 / 共18页
高级C语言程序员测试.docx_第17页
第17页 / 共18页
高级C语言程序员测试.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

高级C语言程序员测试.docx

《高级C语言程序员测试.docx》由会员分享,可在线阅读,更多相关《高级C语言程序员测试.docx(18页珍藏版)》请在冰点文库上搜索。

高级C语言程序员测试.docx

高级C语言程序员测试

高级C语言程序员测试

1.

#include

voidfun1()

{

staticjmp_bufbuf;

volatileintb;

b=3;

if(setjmp(buf)!

=0){

printf("%d\n",b);

return;

}

b=5;

longjmp(buf,1);

}

程序运行结果是:

A3,B5,C0,D以上都不对。

2.

voidfun2()

{

structnode{

inta;

intb;

intc;

};

structnodes={3,5,6};

structnode*pt=&s;

printf("%d\n",*(int*)pt);

}

程序运行结果是:

A3,B5,C6,D7。

 

3.

intfoo3(intx,inty)

{

intval;

val=1;

if(y>0){

if(n%2==1)val=val*x;

val=val*foo3(x*x,y/2);

}

returnval;

}

该函数功能:

Ax的y次方,

By的x次方,

Cx的2y次方,

D以上都不对。

 

4.

voidfun4()

{

inta[5]={1,2,3,4,5};

int*ptr=(int*)(&a+1);

printf("%d,%d\n",*(a+1),*(ptr-1));

}

程序运行结果是:

A2,2,B2,1,C2,5,D以上都不对。

 

5.

voidfun5()

{

voidfoo5(intb[][3]);

inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};

foo5(a);

printf("%d\n",a[2][1]);

}

voidfoo5(intb[][3])

{

++b;

b[1][1]=9;

}

程序运行结果是:

A8,B9,C7,D以上都不对。

 

6.

voidfun6()

{

inta,b,c,d;

a=3;

b=5;

c=a,b;

d=(a,b);

printf("c=%d,",c);

printf("d=%d\n",d);

}

程序运行结果是:

Ac=3,d=3,Bc=5,d=3,Cc=3,d=5,Dc=5,d=5。

 

7.

voidfun7()

{

inta[][3]={1,2,3,4,5,6};

int(*ptr)[3]=a;

printf("%d,%d,",(*ptr)[1],(*ptr)[2]);

++ptr;

printf("%d,%d\n",(*ptr)[1],(*ptr)[2]);

}

程序运行结果是:

A2,3,5,6,B2,3,4,5,C4,5,0,0,D以上都不对。

 

8.

int*f1(void){

intx=10;

return(&x);

}

int*f2(void){

int*ptr;

*ptr=10;

returnptr;

}

int*f3(void){

int*ptr;

ptr=(int*)malloc(sizeof(int));

returnptr;

}

以上3个函数有可能出错的是

Af3,Bf1和f3,Cf1和f2,Df1,f2和f3。

9.

voidfun9()

{

inti=3;

intj;

j=sizeof(++i+++i);

printf("i=%d,j=%d",i,j);

}

程序运行结果是:

Ai=4,j=2,Bi=3,j=2,Ci=3,j=4,Di=3,j=6。

 

10.

voidfun10()

{

voidfoo101(int*,int);

voidfoo102(int*,int);

void(*p[2])(int*,int);

inta;

intb;

p[0]=foo101;

p[1]=foo102;

a=3;

b=5;

p[0](&a,b);

printf("%d\t,%d\t,",a,b);

p[1](&a,b);

printf("%d\t,%d\t\n",a,b);

}

voidfoo101(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

voidfoo102(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

程序运行结果是:

A5,5,5,5,B3,5,3,5,C5,3,5,3,D3,3,3,3。

 

11.

voidfun11()

{

voidfoo11(int);

inta=3;

foo11(a);

printf("\n");

}

voidfoo11(intn)

{

if(n>0){

foo11(--n);

printf("%d,",n);

foo11(--n);

}

}

程序运行结果是:

A0,1,2,0,B0,1,2,1,C1,2,0,1,D0,2,1,1。

12.

typedefint(*test)(float*,float*);

testtmp;

tmp类型是:

A包括两个浮点数指针的函数指针,

Bint,

C包括两个浮点数指针和返回整型的函数指针,

D函数。

13.

voidfun13()

{

intp;

intbuf[10]={1,2,3,4,5,6,9,8};

p=(buf+1)[5];

printf("%d\n",p);

}

程序运行结果是:

A5,B6,C9,D以上都不对。

14.

voidfun14()

{

voidfoo14(char**);

char*argv[]={"ab","cd","ef","gh","ij","kl"};

foo14(argv);

}

voidfoo14(char**p)

{

char*t;

t=(p+=sizeof(int))[-1];

printf("%s\n",t);

}

程序运行结果是:

Aab,Bcd,Cef,Dgh。

 

15.

voidfun15()

{

intfoo15(int,...);

intnum;

num=foo15(3,5,7);

printf("%d\n",num);

}

intfoo15(intn,...)

{

inti,j;

intk;

va_listp;

k=0;

j=1;

va_start(p,n);

for(;j

i=va_arg(p,int);

for(;i;i&=i-1)++k;

}

returnk;

}

程序运行结果是:

A7,B6,C5,D3。

 

16.

voidfun16()

{

intfoo16(inti);

inti,j;

for(i=0;i<=5;i++)j=foo16(i);

printf("%d\n",j);

}

intfoo16(inti)

{

staticintcount=0;

count=count+i;

return(count);

}

程序运行结果是:

A10,B15,C6,D7。

 

以下是程序实验源代码:

#include

#include

#include

typedefint(*test)(float*,float*);

voidfun1(void);

voidfun2(void);

voidfun3(void);

voidfun4(void);

voidfun5(void);

voidfun6(void);

voidfun7(void);

voidfun8(void);

voidfun9(void);

voidfun10(void);

voidfun11(void);

voidfun12(void);

voidfun13(void);

voidfun14(void);

voidfun15(void);

voidfun16(void);

intmain(intargc,char*argv[])

{

printf("The1result:

");fun1();printf("\n");

printf("The2result:

");fun2();printf("\n");

printf("The3result:

");fun3();printf("\n");

printf("The4result:

");fun4();printf("\n");

printf("The5result:

");fun5();printf("\n");

printf("The6result:

");fun6();printf("\n");

printf("The7result:

");fun7();printf("\n");

printf("The8result:

");fun8();printf("\n");

printf("The9result:

");fun9();printf("\n");

printf("The10result:

");fun10();printf("\n");

printf("The11result:

");fun11();printf("\n");

printf("The12result:

");fun12();printf("\n");

printf("The13result:

");fun13();printf("\n");

printf("The14result:

");fun14();printf("\n");

printf("The15result:

");fun15();printf("\n");

printf("The16result:

");fun16();printf("\n");

printf("\n");

return0;

}

voidfun1()

{

staticjmp_bufbuf;

volatileintb;

b=3;

if(setjmp(buf)!

=0){

printf("%d\n",b);

return;

}

b=5;

longjmp(buf,1);

}

voidfun2()

{

structnode{

inta;

intb;

intc;

};

structnodes={3,5,6};

structnode*pt=&s;

printf("%d\n",*(int*)pt);

}

voidfun3()

{

intfoo3(intx,inty);

intx;

inty;

x=2;

printf("\n");

for(y=1;y<=5;y++){

printf("x=2;y=%d;rst=%3d\n",y,foo3(x,y));

}

}

intfoo3(intx,inty)

{

intval;

val=1;

if(y>0){

if(y%2==1)val=val*x;

val=val*foo3(x*x,y/2);

}

returnval;

}

voidfun4()

{

inta[5]={1,2,3,4,5};

int*ptr=(int*)(&a+1);

printf("%d,%d\n",*(a+1),*(ptr-1));

}

voidfun5()

{

voidfoo5(intb[][3]);

inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};

foo5(a);

printf("%d\n",a[2][1]);

}

voidfoo5(intb[][3])

{

++b;

b[1][1]=9;

}

voidfun6()

{

inta,b,c,d;

a=3;

b=5;

c=a,b;

d=(a,b);

printf("c=%d,",c);

printf("d=%d\n",d);

}

voidfun7()

{

inta[][3]={1,2,3,4,5,6};

int(*ptr)[3]=a;

printf("%d,%d,",(*ptr)[1],(*ptr)[2]);

++ptr;

printf("%d,%d\n",(*ptr)[1],(*ptr)[2]);

}

voidfun8()

{

}

voidfun9()

{

inti=3;

intj;

j=sizeof(++i+++i);

printf("i=%d,j=%d\n",i,j);

}

voidfun10()

{

voidfoo101(int*,int);

voidfoo102(int*,int);

void(*p[2])(int*,int);

inta;

intb;

p[0]=foo101;

p[1]=foo102;

a=3;

b=5;

p[0](&a,b);

printf("%d\t,%d\t,",a,b);

p[1](&a,b);

printf("%d\t,%d\t\n",a,b);

}

voidfoo101(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

voidfoo102(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

voidfun11()

{

voidfoo11(int);

inta;

a=3;

foo11(a);

printf("\n");

}

voidfoo11(intn)

{

if(n>0){

foo11(--n);

printf("%d,",n);

foo11(--n);

}

}

voidfun12()

{

intfoo12(float*a,float*b);

testtemp;

floata;

floatb;

a=1.0;

b=2.0;

temp=foo12;

temp(&a,&b);

printf("%f,%f\n",a,b);

}

intfoo12(float*a,float*b)

{

floattmp;

tmp=*a;

*a=*b;

*b=tmp;

return1;

}

voidfun13()

{

intp;

intbuf[10]={1,2,3,4,5,6,9,8};

p=(buf+1)[5];

printf("%d\n",p);

}

voidfun14()

{

voidfoo14(char**);

char*argv[]={"ab","cd","ef","gh","ij","kl"};

foo14(argv);

}

voidfoo14(char**p)

{

char*t;

t=(p+=sizeof(int))[-1];

printf("%s\n",t);

}

voidfun15()

{

intfoo15(int,...);

intnum;

num=foo15(3,5,7);

printf("%d\n",num);

}

intfoo15(intn,...)

{

inti,j;

intk;

va_listp;

k=0;

j=1;

va_start(p,n);

for(;j

i=va_arg(p,int);

for(;i;i&=i-1)++k;

}

returnk;

}

voidfun16()

{

intfoo16(inti);

inti,j;

for(i=0;i<=5;i++)j=foo16(i);

printf("%d\n",j);

}

intfoo16(inti)

{

staticintcount=0;

count=count+i;

return(count);

}

Linux下的运行结果:

The1result:

5

The2result:

3

The3result:

x=2;y=1;rst=2

x=2;y=2;rst=4

x=2;y=3;rst=8

x=2;y=4;rst=16

x=2;y=5;rst=32

The4result:

2,5

The5result:

9

The6result:

c=3,d=5

The7result:

2,3,5,6

The8result:

The9result:

i=3,j=4

The10result:

5,5,5,5

The11result:

0,1,2,0,

The12result:

2.000000,1.000000

The13result:

9

The14result:

gh

The15result:

5

The16result:

15

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2