预处理命令答案_第1页
预处理命令答案_第2页
预处理命令答案_第3页
预处理命令答案_第4页
预处理命令答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、预处理命令一、选择题1.C语言中,宏定义有效范围从定义处开始,到源文件结束处结束,但可以用D 来提前解除宏定义的作用。 A# ifdef Bendif C# undefine D# undef2.以下不正确的叙述是 C 。 A 预处理命令都必须以“#”号开始B 在程序中凡是以“#”号开始的语句行都是预处理命令行C C语言在执行过程中对预处理命令行进行处理D # define ABCD是正确的宏定义3.以下正确的叙述是 C 。 A 在程序的一行中可以出现多个有效的预处理命令行B 使用带参宏时,参数的类型应与宏定义时的一致C 宏替换不占用运行时间,只占编译时间D 宏定义不能出现在函数内部4.以下不

2、正确的叙述是 D 。 A 宏替换不占用运行时间B 宏名无类型C 宏替换只是字符替换D 宏名必须用大写字母表示5. 以下正确的叙述是 C 。 A C语言的预处理功能是指完成宏替换和包含文件的调用B 预处理命令只能位于C源程序文件的首部C 凡是C源程序中行首以“#”标识的控制行都是预处理命令D C语言的编译预处理就是对源程序进行初步的语法检查6.在文件包含预处理语句(# include)的使用形式中,当之后的文件名用“”(双引号)括起时,寻找被包含文件的方式是 B 。 A 直接按系统设定的标准方式搜索目录B 先在源程序所在目录搜索,再按系统设定的标准方式搜索C 仅仅搜索源程序所在目录D 仅仅搜索当

3、前目录7.在文件包含预处理语句(# include)的使用形式中,当之后的文件名用<>(尖引号)括起时,寻找被包含文件的方式是 A 。 A 直接按系统设定的标准方式搜索目录B 先在源程序所在目录搜索,再按系统设定的标准方式搜索C 仅仅搜索源程序所在目录D 仅仅搜索当前目录8.C语言的编译系统对宏命令的处理 D 。 A 在程序运行时进行的B 在程序连接时进行的C 和C程序中的其它语句同时进行编译的D 在对源程序中其它语句正式编译之前进行的9.以下程序的输出结果是 A 。 # define MIN(x,y (x<(y ? (x : (ymain( int i,j,k; i=10;

4、 j=15; k=10*MIN(i,j; printf(“%d”,k; A15 B100 C10 D15010.以下程序的输出结果是 B 。 # include # define ADD(y 3.54+y# define PR(a printf(“%d”, (int(a# define PR1(a PR(a; putchar (nmain( int i=4; PR1(ADD(5*i; A20 B23 C10 D011.以下程序的输出结果是 B 。 # include # define N 2# define M N+2# define CUBE(x (x*x*xmain( int i=M; i

5、=CUBE(i; printf(“%dn”, i; A17 B64 C125 D53二、填空题1.C提供的预处理功能主要有三种,分别是 宏定义 、 文件包含 和 条件编译 。 2.设有以下宏定义:# define WIDTH 80# define LENGTH WIDTH+40则执行赋值语句:v= LENGTH*20;(v为int型变量)后,v的值是 880 。 3.设有以下宏定义:# define WIDTH 80# define LENGTH (WIDTH+40则执行赋值语句:k= LENGTH*20;(k为int型变量)后,k的值是 2400 。 三、读程序写结果题1以下程序的输出结果是

6、 。 # define PR(int printf (”int=%dn”, intmain( int x=1,y=1,z=1; x+=y+=z; PR(x PR(x PR(z+=x 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.以下程序的输出结果是 。 # include # define PR(a printf (”a=%d”, (int(a#

7、 define PRINT(a PR(a; putchar(n;# define PRINT2(a,b PR(a, PRINT(b# define PRINT3(a,b,c PR(a, PRINT2(b,cmain( float x=3.1415,y=1.823,z=0.923;PRINT3(x,2*y,3*z4.以下程序的输出结果是 。 # define A 3# define B(a (A+1*amain( int x; x=3*(A+B(7; printf (”x=%4dn”, x;5.以下程序的输出结果是 。 # define POWER(x (x*(xmain( int i=1; w

8、hile(i<=4 printf(“%d”, POWER(i+;6.以下程序的输出结果是 。 main( int b=5; #define b 2#define f(x b*(xint y=3;printf(“%d,”, f(y+1;#undef bprintf(“%d,”, f(y+1;#define b 3printf(“%dn”, f(y+1;7.以下程序的输出结果是 。 #define DEBUGmain( int a=14,b=15,c; c=a/b;# ifdef DEBUGprintf(“a=%d,b=%d,”,a,b;#endifprintf(“c=%dn,”,c;a=14,b=15,c=08.以下程序的输出结果是 。 main( int a=20,b=10,c; c=a/b;# ifdef DEBUGprintf(“a=%d,b=%d,”,a,b;#endifprintf(“c=%dn,”,c;四、编程题1.编写一个宏定义MYALPHA(c,用以判定c是否是字母字符,若是,得1;否则得0。 2.编写一个宏定义AREA(a,b,c,用于求一个边长为a、b和c的三角形的面积。其公式为:s=(a+b+c/2 area= s(s-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论