无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2011年计算机等级二级C语言章节习题及答案(8)

2012-12-26来源/作者:卫凯点击次数:1727

第9章 预处理命令

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
9.1 有以下程序 
#define F(X,Y)(X)*(Y)
main()
{ int a=3, b=4; 
printf("%d\n", F(a++, b++)); 

程序运行后的输出结果是 
A)12 
B)15 
C)16 
D)20
正确答案: A

9.2 以下叙述中不正确的是
A)预处理命令行都必须以#号开始
B)在程序中凡是以#号开始的语句行都是预处理命令行
C)宏替换不占用运行时间,只占编译时间
D)在以下定义是正确的: #define PI 3.1415926;
正确答案: D

9.3 有如下程序:
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{ int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是
A)5 
B)6 
C)7 
D)8
正确答案: B

9.4 以下程序的运行结果是
#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
考生答案: 正确答案: B

9.5 有如下定义
#define D 2 
int x=5;float y=3.83;
char c=′D′;
则下面选项中错误的是
A)x++; 
B)y++; 
C)c++; 
D)D++;
正确答案: D

9.6 以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
{ int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
A)SUM=9 B)SUM=12 C)SUM=18 D)SUM=28
正确答案: B

9.7 下列程序的输出结果是
#include "stdio.h"
#defineM(x,y)x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);
}
A)2 
B)3 
C)4 
D)5
正确答案: C

9.8 阅读下列程序段,则程序的输出结果为
#include "stdio.h"
#define M(X,Y)(X)*(Y)
#define N(X,Y)(X)/(Y)
main()
{ int a=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
}
A)3 
B)5 
C)6 
D)8
正确答案: A

9.9 已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是
A)10 
B)5 
C)2
 D)以上答案都不对
正确答案: D

9.10 以下关于宏替换叙述中,错误的是
A)宏替换占用编译时间 
B)替换文本中可以包含已定义过的宏名
C)宏名可以由+号组成 
D)宏替换只能是字符替换
正确答案: C

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)
9.11 设有如下宏定义
#define MYSWAP(z,x,y)
{ z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a,b内容交换,请填空。
float a=5,b=16,c;
MYSWAP(【1】,a,b);
正确答案: c

9.12 以下程序的输出结果为【2】。
#define JFT(x)x*x
main()
{ int a, k=3;
a=++JFT(k+1);
printf("%d",a);
}
正确答案: 9

9.13 以下程序的输出结果是【3】 。
#define MAX(x,y)(x)>(y)?(x):(y)
main()
{ int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
正确答案: 7

9.14 下面程序的运行结果是【4】。
#define N 10
#define s(x)x*x
#define f(x)(x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
正确答案: 1000 10

9.15 以下程序的输出结果是【5】。
#define PR(ar)printf("%d,",ar)
main()
{ int j, a[]={1, 3, 5, 7, 9, 11, 15}, *p=a+5;
for(j=3; j; j--)
switch(j)
{ case 1:
case 2: PR(*p++); break;
case 3: PR(*(--p));
}
printf("\n");
}
正确答案: 9,9,11,

编辑特别推荐:

C语言学习要领

名师谈C语言的重要性和如何学习C语言

C语言入门必备手册

c语言初学者环境选择

新手(必看)怎样学习C语言





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策