
第九章编译预处理 1,下面叙述中不正确的是 A)预处理命令行都必策以#号开始 B)在程序中凡是以:号开始和语句行都是预处理命令行 C)C程序在执行过程中对预处理命令行进行处理 D)以下是正确的宏定文 defineIBM_PC 2,以下叙述中正确的是 A)程序的一行上可以出现多个有效的顶处理命◆行 B)使用带参的宏时,参数的类型应与宏定文时的一致 C)宏替换不占用运行时间,只占用编译时间 D)在以下定义中C成是移为“宏名”的标识符 defineCR045 有关麦替换的叙述不正确的是 A)宏替换不占用运行时间B)宏名无类型 C)宏替换只是字符替换D》宏名必须用大写字母表示 4,C语言的编译系统对宏命令的处理是 A)在程序运行封进行的 B)在程序述接时进行的 C)和C程序中的其它语句同时进行编译的 D)在对源程序中其它成份正式编译之前进行的 5.在宏定义4 definePI3.14159中,用宏名PT代替-个 A)单精度数B)双精度数C)常量D)字符申 6.以下程序的输出结果是 A)9B)6C)3D)18 年definet(x)*x nain ( [inta-6,b=2,c: e=f (a)/f (b)
第九章 编译预处理 1.下面叙述中不正确的是 A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始和语句行都是预处理命令行 C)C 程序在执行过程中对预处理命令行进行处理 D)以下是正确的宏定义 #defineIBM_PC 2.以下叙述中正确的是 A)程序的一行上可以出现多个有效的预处理命令行 B)使用带参的宏时,参数的类型应与宏定义时的一致 C)宏替换不占用运行时间,只占用编译时间 D)在以下定义中 CR 是称为“宏名”的标识符 #defineCR045 有关宏替换的叙述不正确的是 A)宏替换不占用运行时间 B)宏名无类型 C)宏替换只是字符替换 D)宏名必须用大写字母表示 4.C 语言的编译系统对宏命令的处理是 A)在程序运行时进行的 B)在程序连接时进行的 C)和 C 程序中的其它语句同时进行编译的 D)在对源程序中其它成份正式编译之前进行的 5.在宏定义#definePI3.14159 中,用宏名 PI 代替一个 A)单精度数 B)双精度数 C)常量 D)字符串 6.以下程序的输出结果是 A)9B)6C)36D)18 #definef(x)x*x main() {inta=6,b=2,c; c=f(a)/f(b);

printf("sdn",c片J 7.执行下面的程序后,。的值是 adefineSQR (X)X*X nain ( [inta=10.k=2.=1: a/-SQR (ktm)/SQR (km): printf (sd\n'",a) A)10B)1C)SD)0 8.以下说法中正确的是 A)define和printf都是C语句 B)#define是C语句,而printf不是 C)printf是C语句,但#define不是 D)define和printf都不是C语句 9,请读程序 #include #defineSUB (X,Y)(X)*Y nain ( linta=3,b=4: printf (sd\n",SUB (att,b++)): 上面程序的输出结果是 A)12B)15C)16D)20 10,请选出以下程序段的输出结果 include(stdio.h> #defineMIN (x,y)(x)<(y)(x):(y) main ( [inti,j.k: i-10:j-l5: k=10*MIN (i.J) printf (sd\n",k): A)15B)100C)10D)150
printf("%d\n",c);} 7.执行下面的程序后,a 的值是 #defineSQR(X)X*X main() {inta=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a);} A)10B)1C)9D)0 8.以下说法中正确的是 A)#define 和 printf 都是 C 语句 B)#define 是 C 语句,而 printf 不是 C)printf 是 C 语句,但#define 不是 D)#define 和 printf 都不是 C 语句 9.请读程序: #include #defineSUB(X,Y)(X)*Y main() {inta=3,b=4; printf("%d\n",SUB(a++,b++));} 上面程序的输出结果是 A)12B)15C)16D)20 10.请选出以下程序段的输出结果 #include #defineMIN(x,y)(x)<(y)?(x):(y) main() {inti,j,k; i=10;j=15; k=10*MIN(i,j); printf("%d\n",k);} A)15B)100C)10D)150

11,下列程序执行后的输出结果是 A)6邵)8C)100)12 definel(x》*(x-l) ain(){inta=l.b=2,printf(dn°,(1+a+b)h} 2.请遗出以下程序段的输出结果 #include adefineMIN (x,y)(x(y)(x):(y) main ( (inti.J.k i-10:jp15: k-10MIN (i,j): printf (sd\n".k) A)15B)100C》10D)150 13.请选出以下程序段的输出结果 include(stdio.h> adefineMIN (x,y)(x<y?x:y) main ( [inti,j.k: i=10:j户15 k-10MIN (i,j): printf("sdn,k片} A)15B)100C)10D)150 14,有如下程序 adefineN2 definel+l #defineM2*+1 main ( [inti: for(i=l:i<=M:i+)printf(dn°,1)h】 该程序中的for循环执行的次数是
11.下列程序执行后的输出结果是 A)6B)8C)10D)12 #defineMA(x)x*(x-1) main(){inta=1,b=2;printf("%d\n",MA(1+a+b));} 12.请选出以下程序段的输出结果 #include #defineMIN(x,y)(x #defineMIN(x,y)(x<y?x:y) main() {inti,j,k; i=10;j=15; k=10*MIN(i,j); printf("%d\n",k);} A)15B)100C)10D)150 14.有如下程序 #defineN2 #defineMN+1 #defineNUM2*M+1 main() {inti; for(i=1;i<=NUM;i++)printf("%d\n",i);} 该程序中的 for 循环执行的次数是

A)5B)6C)7D)8 15.设有以下宏定义: 年def1ine3 #defineY (n)((N+1)*n) 则执行语句:22*(N+Y(5+1)):后,z的值为 A)出错B)42aC)48D)54 16.以下程序运行后,输出结果是 A)49.5B)9.5C)22.00)45.0 inelude(stdio.h> #definePT5.5 defineS(x)PT◆xx amin(】 {inta=l,b=2:printf("4.1n°,s(a+b):】 17.阅读下列程序: include(stdio.h> #defineMAX_CUNT4 oidfun()万 main ( lintcoumt: for (count=l:count<=MAX_COUNT:count++)fun () voidfun ( (staticinti: i+w2:printf("d°,i):】 上述程序的输出结果是【】. 18.在"文件包含“预处理语句的使用形式中,当#inclode后面的文件名用”(双引号) 括起米时,寻找色含文件的方式是 A)直接被系弱统设定的标准方式搜索目录 B)先在源程序所在目录搜索,再按系统设定的标准方式搜素 C)仅仅瘦索尊程序所在目录 D)仅仅搜索当前目录
A)5B)6C)7D)8 15.设有以下宏定义: #defineN3 #defineY(n)((N+1)*n) 则执行语句:z=2*(N+Y(5+1));后,z 的值为 A)出错 B)42C)48D)54 16.以下程序运行后,输出结果是 A)49.5B)9.5C)22.0D)45.0 #include #definePT5.5 #defineS(x)PT*x*x main() {inta=1,b=2;printf("%4.1f\n",S(a+b));} 17.阅读下列程序: #include #defineMAX_COUNT4 voidfun(); main() {intcount; for(count=1;count<=MAX_COUNT;count++)fun();} voidfun() {staticinti; i+=2;printf("%d",i);} 上述程序的输出结果是【】。 18.在"文件包含"预处理语句的使用形式中,当#include 后面的文件名用""(双引号) 括起来时,寻找包含文件的方式是 A)直接按系统设定的标准方式搜索目录 B)先在源程序所在目录搜索,再按系统设定的标准方式搜索 C)仅仅搜索源程序所在目录 D)仅仅搜索当前目录

19.以下正确的描述是 A)C语言的预处理功能是指完成宏替换和包含文件的调用 B)预处理指令贝能位于C源程序文件的首部 C)凡是C源程序中行首以"如“标积的控制行都是顶处理指令 D)C语言的编译预处理就是对源程序进行初步的语法检查 20.以下程序的输出结果是 #defineM(x,y.z)xy+z main( [inta-1.b-2.c-3: printf(“sdn”,(a+b,b+c,ca): A》19 B助17 C015 D)12 21.以下叙述正确的是 A》可以把define和1f定义为用户标识符 B卧可以把define定义为用户标识符,但不能把if定义为用户标赋符 C)可以把if定义为用户标讯符,但不能把define定义为用户标试符 D)define和if都不能定义为用户标试符 22设有如下塞定义 adefineMySAP(z.x.y)[z=x:x"y:y=z: 以下程序段通过宏调用实现变量,b内容交换,请填空, floata-5,b=16.c: TYSAAP(【】,a.b): 23.程序中头文件typel.h的内容是: #defineN5 年def1neM1*3 程序如下: adefine“typel.h #definelt2N*2 nain() [inti:
19.以下正确的描述是 A)C 语言的预处理功能是指完成宏替换和包含文件的调用 B)预处理指令只能位于 C 源程序文件的首部 C)凡是 C 源程序中行首以"#"标识的控制行都是预处理指令 D)C 语言的编译预处理就是对源程序进行初步的语法检查 20.以下程序的输出结果是 #defineM(x,y,z)x*y+z main() {inta=1,b=2,c=3; printf(“%d\n”,M(a+b,b+c,c+a)); } A)19 B)17 C)15 D)12 21.以下叙述正确的是 A)可以把 define 和 if 定义为用户标识符 B)可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符 C)可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符 D)define 和 if 都不能定义为用户标识符 22.设有如下宏定义 #defineMYSWAP(z,x,y){z=x;x=y;y=z;} 以下程序段通过宏调用实现变量 a、b 内容交换,请填空。 floata=5,b=16,c; MYSWAP(【】,a,b); 23.程序中头文件 typel.h 的内容是: #defineN5 #defineM1N*3 程序如下: #define“type1.h” #defineM2N*2 main() {inti;

f1+W2:orintf(“"m”,): 程序编译后运行的输出结果是: A010 B020 C025 030
i=M1+M2;printf(“%d\n”,i); } 程序编译后运行的输出结果是: A)10 B)20 C)25 D)30

第九章 1.C2.C3.D4.D5D6C7.B8.C9A10A1l.B12.C13.B 14.B15C16B17.246818.B19.C20.D21.D22.c23.C
第九章 1.C 2.C 3.D 4.D 5.D 6.C 7.B 8.C 9.A 10.A 11.B 12.C 13.B 14.B 15.C 16.B 17.2468 18.B 19.C 20.D 21.D 22.c 23.C