第八章 预处理命令

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章预处理命令

一、选择题

1.C语言中,宏定义有效范围从定义处开始,到源文件结束处结束,但可以用

来提前解除宏定义的作用。(0级)

A)# ifdef B)endif C)# undefine D)# undef

2.以下不正确的叙述是。(0级)

A)预处理命令都必须以“#”号开始

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

C)C语言在执行过程中对预处理命令行进行处理

D)# define ABCD是正确的宏定义

3.以下正确的叙述是。(0级)

A)在程序的一行中可以出现多个有效的预处理命令行

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

C)宏替换不占用运行时间,只占编译时间

D)宏定义不能出现在函数内部

4.以下不正确的叙述是。(0级)

A)宏替换不占用运行时间

B)宏名无类型

C)宏替换只是字符替换

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

5. 以下正确的叙述是。(0级)

A)C语言的预处理功能是指完成宏替换和包含文件的调用

B)预处理命令只能位于C源程序文件的首部

C)凡是C源程序中行首以“#”标识的控制行都是预处理命令

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

6.在文件包含预处理语句(# include)的使用形式中,当之后的文件名用“”(双引号)

括起时,寻找被包含文件的方式是。(0级)

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

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

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

D)仅仅搜索当前目录

7.在文件包含预处理语句(# include)的使用形式中,当之后的文件名用<>(尖引号)

括起时,寻找被包含文件的方式是。(0级)

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

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

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

D)仅仅搜索当前目录

8.C语言的编译系统对宏命令的处理。(0级)

A)在程序运行时进行的

B)在程序连接时进行的

C)和C程序中的其它语句同时进行编译的

D)在对源程序中其它语句正式编译之前进行的

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

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

main( )

{ int i,j,k; i=10; j=15; k=10*MIN(i,j); printf(“%d”,k); }

A)15 B)100 C)10 D)150

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

# include

# define ADD(y) 3.54+y

# define PR(a) printf(“%d”, (int)(a))

# define PR1(a) PR(a); putchar (…\n‟)

main( )

{ int i=4; PR1(ADD(5)*i); }

A)20 B)23 C)10 D)0

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

# include

# define N 2

# define M N+2

# define CUBE(x) (x*x*x)

main( )

{ int i=M; i=CUBE(i); printf(“%d\n”, i); }

A)17 B)64 C)125 D)53

二、填空题

1.C提供的预处理功能主要有三种,分别是、和。(0级)

2.设有以下宏定义:# define WIDTH 80

# define LENGTH WIDTH+40

则执行赋值语句:v= LENGTH*20;(v为int型变量)后,v的值是。(2级)

3.设有以下宏定义:# define WIDTH 80

# define LENGTH (WIDTH+40)

则执行赋值语句:k= LENGTH*20;(k为int型变量)后,k的值是。(2级)

三、读程序写结果题

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

# define PR(int) printf (”int=%d\n”, int)

main( )

{ int x=1,y=1,z=1; x+=y+=z; PR(x

PR(x

PR(z+=x

}

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

# include

# define PR(a) printf (”a=%d”, (int)(a))

# define PRINT(a) PR(a); putchar(…\n‟);

main( )

{ float x=3.1415,y=1.823; PRINT(2*x); PRINT(3*y*y);

}

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

# include

# define PR(a) printf (”a=%d”, (int)(a))

# define PRINT(a) PR(a); putchar(…\n‟);

# define PRINT2(a,b) PR(a), PRINT(b)

# define PRINT3(a,b,c) PR(a), PRINT2(b,c)

main( )

{ float x=3.1415,y=1.823,z=0.923;

PRINT3(x,2*y,3*z)

}

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

# define A 3

# define B(a) ((A+1)*a)

main( )

{ int x; x=3*(A+B(7)); printf (”x=%4d\n”, x);

}

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

# define POWER(x) ((x)*(x))

main( )

{ int i=1; while(i<=4) printf(“%d”, POWER(i++));

}

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

main( )

{int b=5;

#define b 2

#define f(x) b*(x)

int y=3;

printf(“%d,”, f(y+1));

#undef b

printf(“%d,”, f(y+1));

#define b 3

printf(“%d\n”, f(y+1));

}

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

#define DEBUG

main( )

{int a=14,b=15,c; c=a/b;

# ifdef DEBUG

printf(“a=%d,b=%d,”,a,b);

#endif

printf(“c=%d\n,”,c);

相关文档
最新文档