如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第9章预处理命令一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)9.1有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是A)12B)15C)16D)20正确答案:A9.2以下叙述中不正确的是A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)宏替换不占用运行时间,只占编译时间D)在以下定义是正确的:#definePI3.1415926;正确答案:D9.3有如下程序:#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}该程序中的for循环执行的次数是A)5B)6C)7D)8正确答案:B9.4以下程序的运行结果是#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti=10,j=15,k;k=10*MIN(i,j);printf("%d\n",k);}A)10B)15C)100D)150考生答案:正确答案:B9.5有如下定义#defineD2intx=5;floaty=3.83;charc=′D′;则下面选项中错误的是A)x++;B)y++;C)c++;D)D++;正确答案:D9.6以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}A)SUM=9B)SUM=12C)SUM=18D)SUM=28正确答案:B9.7下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}A)2B)3C)4D)5正确答案:C9.8阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}A)3B)5C)6D)8正确答案:A9.9已知#defineM2;的宏定义,执行语句k=M*5;后,k的值是A)10B)5C)2D)以上答案都不对正确答案:D9.10以下关于宏替换叙述中,错误的是A)宏替换占用编译时间B)替换文本中可以包含已定义过的宏名C)宏名可以由+号组成D)宏替换只能是字符替换正确答案:C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)9.11设有如下宏定义#defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通过宏调用实现变量a,b内容交换,请填空。floata=5,b=16,c;MYSWAP(【1】,a,b);正确答案:c9.12以下程序的输出结果为【2】。#defineJFT(x)x*xmain(){inta,k=3;a=++JFT(k+1);printf("%d",a);}正确答案:99.13以下程序的输出结果是【3】。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf("%d\n",t);}正确答案:79.14下面程序的运行结果是【4】。#defineN10#defines(x)x*x#definef(x)(x*x)main(){inti1,i2;i1=1000/s(N);i2=1000/f(N);printf("%d%d\n",i1,i2);}正确答案:1000109.15以下程序的输出结果是【5】。#definePR(ar)printf("%d,",ar)main(){intj,a[]={1,3,5,7,9,11,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}printf("\n");}正确答案:9,9,11,