C语言第八章编译预处理答案,C语言程序设计 教学课件 作者 任文 孔庆彦 习题及习题参考答案 第8章 编译预处理.doc...

第8章 编译预处理

8-1 选择题:

1.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是——。 A.直接在系统设定的标准目录中搜索

B.先在当前目录中搜索,若不存在,再到系统设定的标准目录中搜索

C

D.仅仅搜索源程序所在目录

2.以下关于预处理的叙述不正确的是——。 A.C源程序中凡是以“”号开始的控制行都是预处理命令行

B.预处理命令行必须位于源程序的开始部位

C.一条有效的预处理命令必须单独占据一行

D.预处理命令是在正式编译之前先行被处理的.以下关于文件包含的描述正确的是——。 A.每个C程序必须包含预处理命令:#include

B.#include后面的文件名用双引号(" ")引起来和尖括号(<>)括起来完全等效

C.#include命令行可以出现在源程序中需要的任何地方

D.用#include所包含的文件称为头文件,必须以.h作为扩展名

.以下有关宏替换的叙述不正确的是——。 A.宏名不具有类型 B.宏名必须用大写字母表示

C.宏替换只是字符替换 D.宏替换不占用运行时间

.C语言的编译系统对宏命令的处理是——。 A.在对源程序中其他成分正式编译之前进行的B.在程序连接时进行的

C.和C程序中的其他语句同时进行的D.在程序运行时进行的

"string" B)#include stdio.h

C)#include"string.h"D)#define PI 3.1415926;

12.有宏定义如下:

#define F(x)2*x

那么表达式F(2+3)的值是( )

A)10B)9C)8D)7

13.有宏定义及语句如下:

#define N 3

#define Y(x) ((N+1)*x)

Z=2*(N+Y(5+1));那么,变量Z的最终取值是( )

A)38B)42C)48D)52

14.设有宏定义命令:#define MUL 2+3,则表达式5+MUL%5.0的值为( )

A)50.0B)30.0C)22.0D)20.0

15.设有宏定义:#define M(x,y) x

A)15B)-15C)11 D)-11

16. 有以下程序,其程序的输出结果是( )

#define H1 5

#define H2 H1+1

#define H3 H2*H2/2

main()

{int s=0,k=H3;

while(k--)s++;

pfintfi("%d\n "',s);

}

A)30B)10C)29D)19

17. 若有以下宏定义:

#define STR "%d,%c"

#define A 97

已知字符'a'的ASCII码值为97,则语句printf(STR,A,A+2);的输出结果为____。

A. 97,a B. 97,b C. 97,c D. 97,d

18. 以下程序的输出结果是____。

#define M(x,y,z) x*y+z

main()

{ int a=1,b=2,c=3;

printf("%d\n",M(a+b,b+c,c+a));

}

A. 19 B. 17 C. 15 D. 12

19. 下列程序执行后的输出结果为____。

#define MA(x) x*(x-1)

main()

{ int a=1,b=2;

printf("%d\n",MA(1+a+b));

}

A. 6 B. 8 C. 10 D. 12

8-2 填空题

1.每一条编译预处理命令,都必须以_____________符号开头。

2.__________编译预处理命令用于取消一个宏名的作用。

3.__________编译预处理命令把一个源文件嵌入到另一个源文件中。

4.如果程序中使用数学函数,如三角函数、开方函数等,则必须在程序开始使用文件包含命令_________________。

5.在进行宏定义时,可以引用已经______________的宏名。

6.利用宏来计算正方体体积,若宏名为V0L,形式参数为x,那么该宏的定义应该写为____________。

7. 下面程序的执行结果_______________。

#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值