嵌入式系统开发人员C语言测试题-编译预处理.doc

嵌入式系统开发人员C语言测试题-编译预处理.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统开发人员C语言测试题-编译预处理

8.1??? 选择题 (695)??? 根据编码规范,下面说法正确的是______。 a. 可以使用类型定义符typedef重命名用户类型; b. typedef char NAME[20]; 是正确的定义; c. 可以用宏定义来代替typedef的功能; d. typedef是在预编译时完成的。 (a) (696)??? 下面关于宏定义的说法正确的是: a. 虽然预处理程序可以用#include指令包含任意一个文件,但最好不要用#include指令包含类型名不是.h的文件,因为这样不容易区分哪些文件是用于编译预处理的; b. 宏表达式及其参数应该使用括号括起来以避免二义性; c. 尽量避免直接在代码中使用数字,应使用有意义的宏定义名字; d. 宏所定义的多条表达式应放在大括号内。 (a.b.c.d) (697)??? 下面宏定义符合规范的是_____ 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)??? 以下叙述正确的是____。 a.? 根据编码规范,在程序的-行上可以出现多个有效的预处理命令行 b.? 使用带参的宏时,参数的类型应与宏定义时的一致 c.? 宏替换不占用运行时间,只占编译时间 d.? 在以下定义中C? R是称为宏名的标识符 ????? #define? C? R??? 045 (c) (699)??? 阅读下面程序: #define LETTER 0 ? main() { ??? char str[20]=MultiMedia,c; ??? int I; ??? I=0; ??? While((c=str[I])!=\0) ??? {I++; #if LETTER ??? if(c=ac=z) ??????? c=c-32; #else ??? if(c=Ac=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.? ifdef或include? c.? ifdef或ifndef或define d.? ifdef或ifndef或if (d) (701)??? 以下正确的描述是____。 a. c语言的预处理功能是指完成宏替换和包含文件的调用 b. 预处理指令只能位于c源程序文件的首部 c. 凡是c源程序中行首以#标识的控制行都是预处理指令 d. C语言的编译预处理就是对源程序进行初步的语法检查 (a.c.d) (702)??? 下面关于条件编译的说法不正确的是______。 a. #if 常量表达式 检查常量表达式计算值是否为非0; b. #ifdef标识符 检查标识符当前是否预定义过; c. #undef 标识符 如果标识符以前定义过, 那么 #undef 后, 标识符就被编译器认为是未定义的了; d. #ifndef 表达式 检查表达式当前是否没有定义过。 (d) (703)??? 下面宏定义有可能引发错误的是______(已知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) xy?x:y (a.b.c.d) (704)??? 在下列有关宏替换的叙述中,正确的说法是_____。 a. 宏替换占用运行时间 b. 宏名有类型 c. 带参数的宏替换和函数等价 d. 宏替换只是字符替换 (d) (705)??? 设有以下宏定义: #define N 3 #define Y(n)((N1)*n) 则执行语句:z=2 *(NY(51));后,z的值为 a. 出错????? b. 42?????? c. 48?????? d. 54 (a) (706)??? 宏定义#define PI

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档