C语言笔试题带答案 下载本文

}

A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

答案:C

评析:当i不可以整除2时打印“*”,然后打印“拌”,不能整除2则执行continue,跳过printf(“#”):语句,结束本次循环,返回到循环的起始点。当循环结束后,打印“$”。

(46)库函数strcpy用以复制字符串,若有以下定义和语句:

char strl[]=”china”,str2[10],*str3,*str4=”china”;

则对库函数strcpy的正确的调用是_________。

A)strcpy(strl,”people”); B)strcpy(str2,”people”);

C)strcpy(str3,”people”); D)strcpy(str4,”people”);

答案:B

评析:strcpy(字符数组1,字符串2)其作用是将字符串2复制到字符数组l中去。

注:(1)字符数组l必须定义得足够大;(2)“字符数组1”必须写成数组名的形式; (3)复制时连同字符串后面的‘\0’一起复制到字符数组1中。

(47)有以下程序

#include

main()

{int c;

while((c=getchar())!=’\n’){

switch(C-’2′){

case 0:case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;}

}

}

从第一列开始输入以下数据,↙代表一个回车符。

2473↙

程序的输出结果是_________。

A)668977 B)668966 C)66778777 D)6688766

答案:A

评析:getchar()函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据C-‘2′的值进行分支选择;putchar()是在屏幕上打印一个字符,最后的结果应当为668977。

(48)下面程序的输出结果是_________。

Union un

{ int a[4];

long b:

char c[6];}

main()

{

union un u:

printf(”%d%d”,sizeof(u),sizeof(u.a));

}

A)82 B)88 C)188 D)182

答案:B

评析:sizeof函数计算已知类型所占的字节数。共用体变量所占的内存长度等于最长的成员的长度。

(49)以下程序的输出结果是________。

main()

{ int w=5;fun(w);printf(”\n”);}

fun(int k)

{ if(k>0) fun(k-1);

printf(”%d.t,k);

}

A)5 4 3 2 l B)0 1 2 3 4 5

C)l 2 3 4 5 D)5 4 3 2 l 0

答案:B

评析:函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、向n(1)、fun(0)。其中fun(5)是main函数调用的。

(50)若巾是指向某文件的指针,且已读到此文件的末尾,则函数feof(f1))的返回值是

A)EOF B)O C)非零值 D)NULL

答案:C

评析:函数feof是用来判断文件是否已读到末尾,如果已读到末尾则返回非零值,否则返回O。

二、填空题(每空2分,共40分)

请将每一个空的正确答案写在答题卡的【1】至【20】序号的横线上,答在试卷上不得 分。

(1)算法的复杂度主要包括时间复杂度和 【1】 复杂度。

答案:【1】空间