资源描述:
《练习题9及参考答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、窗体顶部练习题9及参考答案1.单项选择题(1)C语言的编译系统对宏命令是 。A.在程序运行时进行代换处理的B.在程序连接时进行处理的C.和源程序中其他C语句同时进行编译的D.在对源程序中其他成分正式编译之前进行处理的【答】D(2)以下正确的描述为 。A.每个C语言程序必须在开头用预处理命令:#includeB.预处理命令必须位于C源程序的首部C.在C语言中预处理命令都以“#”开头D.C语言的预处理命令只能实现宏定义和条件编译的功能【答】C(3)以下有关宏替换叙述中,错误的是 。A.宏替换不占用运行时间
2、 B.宏名无类型C.宏替换只是字符替换 D.宏名必须用大写字母表示【答】D (4)从下列选项中选择不会引起二义性的宏定义是 。A.#definePOWER(x)x*x B.#definePOWER(x)(x)*(x)C.#definePOWER(x)(x*x) D.#definePOWER(x)((x)*(x))【答】D(5)若有以下宏定义:#defineN3;执行语句i=N*3;后,i的值是 。A.3
3、 B.6 C.9 D.以上选项都不对【答】D(6)若有以下宏定义:#defineX5#defineYX+1#defineZY*X/2则执行以下printf语句后,输出结果是 。inta=Y;printf("%d,",Z);printf("%d",--a);A.7,6 B.12,6 C.12,5
4、D.7,5【答】D(7)若有以下宏定义:#defineN2#defineY(n)((N+1)*n)则执行语句“z=2*(N+Y(5));”后的结果是 。A.语句有错误 B.z=34 C.z=70 D.z无定值【答】B(8)若有以下宏定义:#defineMOD(x,y)x%y则执行以下语句后,输出结果是 。intz,a=15,b=100;z=MOD(b,a);printf("%d",z++);A.11
5、 B.10 C.6 D.宏定义不合法【答】B(9)以下程序的运行结果是 。#include#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d",Y)main(){ inta,b,c,d,t; a=1;b=2;c=3;d=4; t=MAX(a+b,c+d); PRINT(t);}A.Y=3 B.存在语法
6、错误 C.Y=7 D.Y=0【答】C(10)为了求i的3次方,请选择一个表达式 填入,使程序可以正确运行。#include#defineCUBE(x)(x*x*x)main(){ inti=4; printf("%d",CUBE( ));}A.i*i*i B.x*x*x C.x D.i【答】D2.填空题(1)以下程序的运行结果是
7、 。#include#definePR(a)printf("a=%d",a)main(){ intj,a[]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3;j;j--) switch(j) { case1: case2:PR(*p++);break; case3:PR(*(--p)); }}【答】a=9a=9a=11(2)以下程序的运行结果是 。#include#define
8、MOD(x,y)x%yvoidmain(){ intz,a=15,b=100; z=MOD(b,a)