公告:本站提供编程开发方面的技术交流与分享,打造最佳教程网,希望能为您排忧解难!

C语言教程C语言习题集8 编译预处理

C语言习题集8 编译预处理

更新时间:2013-04-13 07:19:45 |

编译预处理

一、选择题
1.以下叙述中正确的是________.
 a)在程序的一行上可以出现多个有效的预处理命令行
 b)使用带参的宏时,参数的类型应与宏定义时的一致
 c)宏替换不占用运行时间,只占用编译时间
 d)在以下定义中C   R是称为"宏名"的标识符
   #define   C   R   045
 
2.以下程序的运行结果是________.
  #define  MIN(x,y)  (x)<(y)?(x):(y)
  main()
  {int i=10,j=15,k;
   k=10*MIN(i,j);
   printf("%d\n",k);
  }
   a)10   b)15   c)100   d)150
 
3.若有宏定义如下:
   #define   X    5
   #define   Y    X+1
   #define   Z   Y*X/2
  则执行以下printf语句后,输出结果是_______.
    int a;a=Y;
    printf("%d\n",Z);
    printf("%d\n",--a);
  a)7       b)12      c)12      d)7
    6          6         5        5
 
4.请读程序:
  #include <stdio.h
#define  MUL(x,y)  (x)*y
  main()
  {
   int a=3,b=4,c;
   c=MUL(a++,b++);
   printf("%d\n",c);
  }
  上面程序的输出结果是__________.
  a)12     b)15     c)20    d) 16
 
5.对下面程序段:
  #define  A 3
  #define  B(a) ((A+1)*a)
  ...
  x=3*(A+B(7));
 正确的判断是_________.
  a)程序错误,不许嵌套宏定义
  b)x=93
  c)x=21
  d)程序错误,宏定义不许有参数
 
6.以下正确的描述是____________.
  a)C语言的预处理功能是指完成宏替换和包含文件的调用
  b)预处理指令只能位于C源程序文件的首部
  c)凡是C源程序中行首以"#"标识的控制行都是预处理指令
  d)C语言的编译预处理就是对源程序进行初步的语法检查
 
7.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.
 a)仅仅搜索当前目录
 b)仅仅搜索源程序所在目录
 c)直接按系统设定的标准方式搜索目录
 d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索

最佳教程网

最大的技术交流平台 www.goodxyx.com© CopyRight 2011-2013, All Rights Reserved

浙ICP备11033019号