8.1    选择题
695    根据编码规范,下面说法正确的是____a__
a. 可以使用类型定义符typedef重命名用户类型;
b. typedef char NAME[20]; 是正确的定义;
c. 可以用宏定义来代替typedef的功能;
d. typedef是在预编译时完成的。
(a)
696    下面关于宏定义的说法正确的是:____abcd____
a. 虽然预处理程序可以用#include指令包含任意一个文件,但最好不要用#include指令包含类型名不是".h"的文件,因为这样不容易区分哪些文件是用于编译预处理的;
b. 宏表达式及其参数应该使用括号括起来以避免二义性;
c. 尽量避免直接在代码中使用数字,应使用有意义的宏定义名字;
d. 宏所定义的多条表达式应放在大括号内。
(d)
697    下面宏定义符合规范的是___d__
a. #define REC_AREA(a, b) a * b
b. #define REC_AREA(a, b) (a * b)
c. #define REC_AREA(a, b) (a) * (b)
d. #define REC_AREA(a, b) ((a) * (b))
(d)
698    以下叙述正确的是__c__
a.  根据编码规范,在程序的-行上可以出现多个有效的预处理命令行
b.  使用带参的宏时,参数的类型应与宏定义时的一致
c.  宏替换不占用运行时间,只占编译时间
d.  在以下定义中C  R是称为"宏名"的标识符
      #define  C  R    045
(c)
699    阅读下面程序:__b___
#define LETTER 0
 
main()
{
    char str[20]="MultiMedia",c;
    int I;
    I=0;
    While((c=str[I])!='\0')
    {I++;
#if LETTER
    if(c>='a'&&c<='z')
        c=c-32;
#else
    if(c>='A'&&c<='Z')
        c=c+32;
#endif
    printf("%c",c);
    }
}
 
上面程序的运行结果是:
a.  MultiMedia
b.  multimedia
c.  MULTIMEDIA
d.  mULTImEDIA
(b)
700    c语言提供的预处理功能包括条件编译,字符串常量有方法吗其定义形式为: ___d___
#XXX 标示符
程序段1
#else
程序段2
#endif
 
这里XXX可以是:
a.  define include 
b.  ifdefinclude 
c.  ifdefifndefdefine
d.  ifdefifndefif
(d)
701    以下正确的描述是__acd__
a. c语言的预处理功能是指完成宏替换和包含文件的调用
b. 预处理指令只能位于c源程序文件的首部
c. 凡是c源程序中行首以"#"标识的控制行都是预处理指令
d. C语言的编译预处理就是对源程序进行初步的语法检查
(a.c.d)
702    下面关于条件编译的说法不正确的是___d___
a. #if 常量表达式
检查常量表达式计算值是否为非0;
b. #ifdef标识符
检查标识符当前是否预定义过;
c. #undef 标识符
如果标识符以前定义过, 那么 #undef , 标识符就被编译器认为是未定义的了;
d. #ifndef 表达式
检查表达式当前是否没有定义过。
(d)
703    下面宏定义有可能引发错误的是___abcd___(已知PI是圆周率的宏常量)。
a. #define s(r) PI*(r)*(r)
b. #define l(r) 2*PI*(r)
c. #define fun(x) (x++)*(x)
d. #define max(x,y) x>y?x:y
(d)
704    在下列有关宏替换的叙述中,正确的说法是___d__
a. 宏替换占用运行时间
b. 宏名有类型
c. 带参数的宏替换和函数等价
d. 宏替换只是字符替换
(d)
705    设有以下宏定义:___a___
#define N 3
#define Y(n)((N1)*n)
则执行语句:z=2 *(NY(51));后,z的值为
a. 出错      b. 42      c. 48      d. 54
(a)
706    宏定义#define PI 31.14159中,宏名PI代替___d___
a. 单精度      b. 双精度      c. 常量      d. 字符串
(d)
707    编译预处理命令以_____d______结尾。
a.           b. .          c. \          d. 回车
(d)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。