c语言7编译预处理.docVIP

  • 23
  • 0
  • 约 4页
  • 2017-06-07 发布于重庆
  • 举报
c语言7编译预处理

七、编译预处理 (一)选择题 1、以下叙述中正确的是_________。 A.在程序的一行上可以出现多个有效的预处理命令行 B.使用带参的宏时,参数的类型应与宏定义时的一致 C.宏替换不占用运行时间,只占用编译时间 D.在以下定义中C R是称为“宏名”的标识符 #define C R 045 2、以下程序的运行结果是_________。 #define MIN(x,y) (x)(y)?(x):(y) main() {int i=10,j=15,k; k=10*MIN(i,j); printf(%d\n,k); } A.10 B.15 C.100 D.150 3、若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是_________。 int a;a=Y; printf(%d\n,Z); printf(%d\n,--a); A.7 B.12 C.12 D.7 6 6 5 5 4、请读程序: #include stdio.h #define MUL(x,y) (x)*y main() {int a=3,b=4,c; c=MUL(a++,b++); printf(%d\n,c); } 上面程序的输出结果是_________。 A.12 B.15 C.20 D. 16 5、对下面程序段: #define A 3 #define B(a) ((A+1)*a) ... x=3*(A+B(7)); 正确的判断是_________。 A.程序错误,不许嵌套宏定义 B.x=93 C.x=21 D.程序错误,宏定义不许有参数 6、以下正确的描述是_________。 A.C语言的预处理功能是指完成宏替换和包含文件的调用 B.预处理指令只能位于C源程序文件的首部 C.凡是C源程序中行首以#标识的控制行都是预处理指令 D.C语言的编译预处理就是对源程序进行初步的语法检查 7、在文件包含预处理语句的使用形式中,当#include后面的文件名用 (尖括号)括起时,找寻被包含文件的方式是_________。 A.仅仅搜索当前目录 B.仅仅搜索源程序所在目录 C.直接按系统设定的标准方式搜索目录 D.先在源程序所在目录搜索,再按照系统设定的标准方式搜索 8、有以下程序 #define P 3 void F(int x){return(P*x*x);} main() {printf(%d\n,F(3+5));} 程序运行后的输出结果是_________。 A.192 B.29 C.25 D.编译出错 9、请读程序:   #define ADD(x) x+x main() {int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(sum=%d,sum); } 上面程序的运行结果是_________。   A.sum=9    B.sum=10   C.sum=12   D.sum=18 10、预处理命令是以_________开头的 A.\ B.# C. D.% 11、有关宏定义的正确说明是_________。 A.可出现在一行中的任何位置 B.只能放在程序的开头,且每个宏定义单独占一行 C.可以出现在程序的任何位置 D.以#开头的行,可出现在程序的任何位置,通常每一个宏定义只能单独占一行,使用字符\可实现一个宏定义占用若干行。 12、执行下面的程序后,a的值是_________。 # define SQR (x) x*x main() {int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(“%d\n”,a);} A.10 B.1 C.9 D.20 15.下列运行时输入2,5,8,运行结果是_________。 #define MAX(a,b) ((a)(b)?(a):(b)) main() {int a,b,c; scanf(“%d,%d,%d”,a,b,C); printf(“%d\n”,MAX(MAX(A,B

文档评论(0)

1亿VIP精品文档

相关文档