当前位置:文档之家› C语言题库第7章宏定义与预处理√

C语言题库第7章宏定义与预处理√

C语言题库第7章宏定义与预处理√
C语言题库第7章宏定义与预处理√

第七章宏定义与预处理一.单项选择

1. 以下程序的运行结果是( D )。

#include

#define ADD(x) x+x

int main ( )

{

int m=1,n=2,k=3,sum ;

sum = ADD(m+n)*k ;

printf(“%d\n”,sum) ;

return 0;

}

A.18

B.9

C.12

D.10

2. 以下程序的运行结果是( C )。

#include

#define MIN(x,y) (x)>(y) ? (x) : (y)

int main ( ) {

int i=10, j=15 , k;

k = 10*MIN(i,j);

printf(“%d\n”,k);

return 0;

}

A.15

B.100

C.10

D.150

3. 以下程序的运行结果是( A )。

#include

#define X 5

#define Y X+1

#define Z Y*X/2

int main ( ) {

int a=Y;

printf(“%d\n”,Z);

printf(“%d\n”,--a);

return 0;

}

A.75

B.125

C.76

D.126

4. 以下程序的运行结果是( C )。

#include

#define DOUBLE(r) r*r

int main ( ) {

int x=1,y=2,t;

t = DOUBLE(x+y) ;

printf (“%d\n”,t); return 0;

}

A.7

B.6

C.5

D.8

5. 在“文件包含”预处理命令形式中,当#include后面的文件名用””(双引号)括起时,寻找被包含文件的方式是( C )。

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

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

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

D.仅仅搜索当前目录

6. 若有定义

#define N 2

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

则执行语句z=2*(N+Y(5));后,z的值为( C )。

A.无确定值

B.语句有错误

C.34

D.70

7. 若有定义#define MOD(x,y) x%y,则执行下面语句后的输出为( A )。

int z,a=15;

float b=100;

z=MOD(b,a);

printf(“%d\n”,z++);

A.有语法错误

B.11

C.10

D.6

8. 在任何情况下计算平方数都不会引起二义性的宏定义是( B )

A.#define POWER(x) (x)*(x)

B.#define POWER(x) ((x)*(x))

C.#define POWER(x) (x*x)

D.#define POWER(x) x*x

9. 在宏定义#define PI 3.1415926中,用宏名PI代替一个( D )。

A.双精度数

B.常量

C.单精度数

D.字符串

10. 以下叙述不正确的是( A )。

A.C程序在执行过程中对预处理命令行进行处理

B.在程序中凡是以#开始的语句行都是预处理命令行

C.预处理命令行可以出现在C程序中任意一行上

D.预处理命令行都必须以#开始

11. 以下叙述中正确的是( A )。

A.宏替换不占用运行时间,只占用编译时间

B.C语言的编译预处理就是对源程序进行初步的语法检查

C.在程序的一行上可以出现多个有效的预处理命令行

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

12. 在“文件包含”预处理命令形式中,当#include后名的文件名用<>(尖括号)括起时,寻找被包含文件的方式是( B )。

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

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

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

D.仅仅搜索当前目录

13. 以下有关宏替换的叙述不正确的是( A )。

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

B.宏名无类型

C.宏替换只是字符替换

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

相关主题
文本预览
相关文档 最新文档