首页 理论教育 C语言程序设计教程:练习、测试和宏定义掌握(含代码示例)

C语言程序设计教程:练习、测试和宏定义掌握(含代码示例)

时间:2023-10-27 理论教育 版权反馈
【摘要】:例如以下程序:其输出结果为:z=1补全如下宏定义。A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.仅在源程序所在目录搜索D.仅搜索当前目录C语言中,宏定义的有效范围从定义处开始,到源文件结束处结束,但可以用()来提前解除宏定义的作用。若有宏定义如下:则执行以下printf语句后,输出结果是()。

C语言程序设计教程:练习、测试和宏定义掌握(含代码示例)

一、练习题

1.选择题

(1)C语言的预处理功能是()。

A.在程序运行时进行

B.在程序连接时进行

C.和C语言程序中的其他语句同时进行的

D.在对源程序中其他语句正式编译之前进行

(2)以下叙述中正确的是()。

A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

(3)下面宏定义正确的是()。

A.define S=a*b

B.define PI 3.14;

C.define max(a,b)((a)>(b)?(a):(b))

D.define s(x)(x)*(x);

(4)有以下程序:

程序运行后的输出结果是()。

A.12 B.15 C.16 D.20

(5)在文件包含预处理语句中,当被包含文件名用“< >”括起时,寻找被包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索

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

D.仅搜索当前目录

2.填空题

(1)以下程序的输出结果是()。

(2)以下程序的输出结果是()。

(3)以下程序的输出结果是()。

(4)将宏定义EVEN(x, y)补全#define EVEN(x, y)_________该宏在x为偶数并且大于y时,得到1值。例如以下程序:

其输出结果为:z=1

(5)补全如下宏定义。#define PR_EXP(x,y)_________该宏用于打印两个表达式及其值,例如以下程序:

其输出结果为:3+4 is 7 and 4*12 is 48

二、测试题

1.选择题

(1)以下关于宏定义不正确的是()。

A.使用宏定义可以嵌套(www.xing528.com)

B.宏定义仅仅是符号替换

C.双符号中出现的宏名称不被替换

D.宏名必须用大写字母表示

(2)以下叙述中正确的是()。

A.使用带参数的宏定义时,参数的类型应与宏定义时的一致

B.在源文件的一行上可以有多条预处理命令

C.宏名称是在程序运行时处理的

D.使用带参数的宏和函数是完全一样的

(3)设有宏定义:

如果变量m已正确定义并赋值,则宏调用:IsDIV(m, 5)&&IsDIV(m, 7)所要表达的是()。

A.判断m是否能被5或7整除

B.判断m是否能被5和7整除

C.判断m被5或7整除是否余1

D.判断m被5和7整除是否都余1

(4)在文件包含预处理语句中,当被包含文件名用“”包含时,寻找包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索

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

D.仅搜索当前目录

(5)C语言中,宏定义的有效范围从定义处开始,到源文件结束处结束,但可以用()来提前解除宏定义的作用。

A.#ifdef B.#endif C.#undefined D.#undef

2.填空题

(1)以下程序的输出结果是()。

(2)若有宏定义如下:

则执行以下printf语句后,输出结果是()。

(3)若有宏定义如下:

则执行以下printf语句后,输出结果是()。

(4)若有宏定义如下:

则执行以下printf语句后,输出结果是()。

(5)用预处理指令#define声明一个常数,用以表明1天中有多少秒,请填空。

(6)若有宏定义如下:

则执行以下printf语句后,输出结果是()。

3.编程题

(1)输入两个整数,求它们相除的余数,用带参数的宏来实现。

(2)给年份year,定义一个宏,以判别该年份是否闰年

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈