好文档 - 专业文书写作范文服务资料分享网站

C语言笔试题带答案

天下 分享 时间: 加入收藏 我要投稿 点赞

(34)设有以下语句:

char strl[]=”string”,str2[8],。str3,。str4=”strin∥; 则__________不是对库函数的正确调用。

A)strcpy(strl,”HELLOl”); B)strcpy(str2,”HELL02”); C)strcpy(str3,”HELL03”); D)strcpy(str4,”HELL04”); 答案:C

评析:c语言中:sgcpy(stl,st2);,其两个参数均为字符指针或字符数组,选项c中的目的串指针str3没有指向具体有效的存储单元,故是错误的调用。

(35)请读程序: #include #include main()

{ char*sl=”AbCdEf”,*s2=”aB”; s1++;s2++;

printf(”%d\n”,strcmp(s 1,s2)); }

上面程序的输出结果是___________。

A)正数 B)负数 C)零 D)不确定的值 答案:A

评析:函数strcmp的功能是比较字符串s1和s2,如果sl>s2,则返回个正数;如果sls2,所以函数的值为正数。

(36)下面程序的输出是_________。

char s[]=”ABcD”; main() { char*p;

for(p=s;p

A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 答案:A

评析:在第一次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD;第三次输出CD;第四次输出D;直到p指向字符串的结束字符“\0”,for循环终止执行。

(37)以下程序输出的结果为__________。 main()

{ char* alpha[6]={“ABCD”,

EFGH”,”IJKL”,”MNOP”,”QRST”,”UVwX”}; char**p; int i: p=alpha;

for(I=0;i<4;i++) printf(”%s”,p[I]);

}

A)ABCDEFGHIJKL B)ABCD C)ABCDEFGHIJKLMNOP D)AEIM 答案:C

评析:alpha[O]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

(38)下面程序的输出结果是_________。 #include main()

{ char*p[]={”B00L”,”0PK”,”H”,”SP”}; int i:

for(i=3;i>=0;i–,i–) printf(“%c”,*p[i]); printf(”\n”); }

A)SO B)SP C)SPOPK D)SHOB 答案:A

评析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。 在printf语句中输出的+p[I]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“s”,接着两次i–,则输出的值为+p[1],即字符“0”,所以本题的输出为SO。

(39)以下程序的输出结果是_________。

#include

void prt(int*x,int*y,int*z)

{ printf(”%d,%d,%d\n”,++*x,++*y*(z++));} int a=10,b=40,c=20; main()

{ prt(&a,&b&C); prt(&a,&b,&C); }

A)ll,42,3l B)ll,41,20 C)1l,21,40 D)11,41,2l 12,22,41 12,42,20 11,2l,41 12,42,22 答案:B

评析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

(40)若一个外部变量的定义形式为static int x;,那么,其中static的作用应该是_______。

A)将变量存储在静态存储区 B)使变量x可以由系统自动初始化 C)使x只能在本文件内引用 D)使x的值可以永久保留 答案:C

评析:事实上,无论有无static修饰,外部变量都具有A、B和c三种特性。作为一种修饰,static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。

(41)以下程序的输出结果是________。 #include #define SQR(x)x*x main()

{ int a,k=3; a=++SQR(k+1);

printf(”%d\n”,a); }

A)8 B)9 C)17 D)20 答案:B

评析:本题宏替换中遇到形参x以实参k+l代替,其它字符不变。sQR(k+1)展开后应为字符串k+l*k+l。

(42)下面是对宏定义的描述,不正确的是_______。 A)宏不存在类型问题,宏名无类型,它的参数也无类型 B)宏替换不占用运行时间

C)宏替换时先求出实参表达式的值,然后代入形参运算求值 D)宏替换只不过是字符替代而已 答案:C

评析:宏替换实质上就是字符替代,它不可能进行计算,故c错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。

(43)以下程序(程序左边的数字为附加的行号)________。 1#include

C语言笔试题带答案

(34)设有以下语句:charstrl[]=”string”,str2[8],。str3,。str4=”strin∥;则__________不是对库函数的正确调用。A)strcpy(strl,”HELLOl”);B)strcpy(str2,”HELL02”);C)strcpy(str3,”HELL03”);D)strcpy
推荐度:
点击下载文档文档为doc格式
2ey9025wdf1ujtp7zqyg25ui718xfz018ys
领取福利

微信扫码领取福利

微信扫码分享