C语言笔试题.docx

上传人:b****5 文档编号:6163694 上传时间:2023-01-04 格式:DOCX 页数:10 大小:16.83KB
下载 相关 举报
C语言笔试题.docx_第1页
第1页 / 共10页
C语言笔试题.docx_第2页
第2页 / 共10页
C语言笔试题.docx_第3页
第3页 / 共10页
C语言笔试题.docx_第4页
第4页 / 共10页
C语言笔试题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C语言笔试题.docx

《C语言笔试题.docx》由会员分享,可在线阅读,更多相关《C语言笔试题.docx(10页珍藏版)》请在冰豆网上搜索。

C语言笔试题.docx

C语言笔试题

 

(一)选择题

第1题:

#include

staticjmp_bufbuf;

main()

{

volatileintb;

b=3;

if(setjmp(buf)!

=0)

{

printf("%d",b);

exit(0);

}

b=5;

longjmp(buf,1);

}

请问,这段程序的输出是

(a)3

(b)5

(c)0

(d)以上均不是

第2题:

main()

{

structnode

{

inta;

intb;

intc;

};

structnodes={3,5,6};

structnode*pt=&s;

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

}

这段程序的输出是:

(a)3

(b)5

(c)6

(d)7

第3题:

intfoo(intx,intn) 

{

intval;

val=1;

if(n>0)

{

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

val=val*foo(x*x,n/2);

}

returnval;

}

这段代码对x和n完成什么样的功能(操作)?

(a)x^n (x的n次幂)

(b)x*n(x与n的乘积)

(c)n^x(n的x次幂)

(d)以上均不是

第4题:

main()

{

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

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

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

}

这段程序的输出是:

(a)22

(b)21

(c)25

(d)以上均不是

第5题:

voidfoo(int[][3]);

main()

{

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

foo(a);

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

}

voidfoo(intb[][3])

{

++b;

b[1][1]=9;

}

这段程序的输出是:

(a)8

(b)9

(c)7

(d)以上均不对

第6题:

main()

{

inta,b,c,d;

a=3;

b=5;

c=a,b;

d=(a,b);

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

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

}

这段程序的输出是:

(a)c=3d=3

(b)c=5d=3

(c)c=3d=5

(d)c=5d=5

第7题:

main()

{

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

int(*ptr)[3]=a;

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

++ptr;

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

}

这段程序的输出是:

(a)2356

(b)2345

(c)4500

(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个函数哪一个最可能引起指针方面的问题

(a)只有f3

(b)只有f1andf3

(c)只有f1andf2

(d)f1,f2,f3

第9题:

main()

{

inti=3;

intj;

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

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

}

这段程序的输出是:

(a)i=4j=2

(b)i=3j=2

(c)i=3j=4

(d)i=3j=6

第10题:

voidf1(int*,int);

voidf2(int*,int);

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

main()

{

inta;

intb;

p[0]=f1;

p[1]=f2;

a=3;

b=5;

p[0](&a,b);

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

p[1](&a,b);

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

}

voidf1(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

voidf2(int*p,intq)

{

inttmp;

tmp=*p;

*p=q;

q=tmp;

}

这段程序的输出是:

(a)5555

(b)3535

(c)5353

(d)3333

第11题:

voide(int);

main()

{

inta;

a=3;

e(a);

}

voide(intn)

{

if(n>0)

{

e(--n);

printf("%d",n);

e(--n);

}

}

这段程序的输出是:

(a)0120

(b)0121

(c)1201

(d)0211

第12题:

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

testtmp;

 tmp的类型是

(a)函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments)

     Pointertofunctionofhavingtwoargumentsthatispointertofloat

(b)整型

(c)函数的指针,该函数以两个指向浮点数(float)的指针(pointer)作为参数(arguments),并且函数的返回值类型是整型

     Pointertofunctionhavingtwoargumentthatispointertofloatandreturnint

(d)以上都不是

第13题:

main()

{

charp;

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

p=(buf+1)[5];

printf("%d",p);

}

这段程序的输出是:

(a)5

(b)6

(c)9

(d)以上都不对

第14题:

Voidf(char**);

main()

{

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

f(argv);

}

voidf(char**p)

{

char*t;

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

printf("%s",t);

}

这段程序的输出是:

(a)ab

(b)cd

(c)ef

(d)gh

第15题:

#include

intripple(int,...);

main()

{

intnum;

num=ripple(3,5,7);

printf("%d",num);

}

intripple(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;

}

这段程序的输出是:

(a)7

(b)6

(c)5

(d)3

第16题:

intcounter(inti)

{

staticintcount=0;

count=count+i;

return(count);

}

main()

{

inti,j;

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

j=counter(i);

}

本程序执行到最后,j的值是:

(a)10

(b)15

(c)6

(d)7

(二)编程题

1.请填写下列两个函数分别实现对变量a实现置位和清除“BIT3”位。

#defineBIT3(0x1<<3)

staticinta;

voidset_bit3(void)

{

代码部分

}

voidclear_bit3(void)

{

代码部分

}

2.编写strcpy函数

已知strcpy函数的原型是

char*strcpy(char*strDest,constchar*strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数strcpy

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?

 

3.用堆栈解决一个问题,定义一个二维数组:

intmaze[5][5]={

0,1,0,0,0,

0,1,0,1,0,

0,0,0,0,0,

0,1,1,1,0,

0,0,0,1,0,

};

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。

 

3.编写一个统计工厂产量直方图程序:

程序运行效果如下:

请输入工厂代号:

1

请输入该工厂产量(吨):

127485

还有其它工厂吗?

(Y/N):

Y

请输入工厂代号:

2

请输入该工厂产量(吨):

1227485

还有其它工厂吗?

(Y/N):

N

工厂代号产量(吨)(每万吨记一个星)

1123443434**********

23443434*******

 

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

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1