国家二级C语言(编译预处理和指针)机试模拟试卷 (二).pdfVIP

国家二级C语言(编译预处理和指针)机试模拟试卷 (二).pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

国家二级C语言(编译预处理和指针)

机试模拟试卷第1套

一、选择题(本题共26题,每题1.0,共26。)

1、以下关于宏的叙述中正确的是

A、宏定义必须位于源程序中所有语句之前

B、宏名必须用大写字母表示

C、宏调用比函数调用耗费时间

D、宏替换没有数据类型限制

标准答案:D

知识点解析:本题考查宏替换的规则。宏替换为简单的宁符替换和带参数的宏替

换两类。使用宏时应注意几点:①宏定义仅仅是符号替换,不是赋值语句,因此

不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,

但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即

后定义的宏中可以使用先定义的宏。

2、有以下程序,程序运行后的输出结果是#山机也〈51€12.11#€1©1加5皿(编g)-

(a)main(){inta=2,b=3»C=5,d;d=SUB(a+b)c:printf(%d\n,d);}

A、-12

B、0

C、10

D、-20

标准答案:D

知识点解析:本题主要考查的是宏替换,在程序中执行d=sub(a+b)c这条语句

时,首先要进行宏替换,依据宏sUB(a)的定义可知,上面这条语句替换为d=(a+b)・

(a+b)c,因为乘法的优先级比减法的优先级高,所以先进行乘法运算,即d=5-

55=20。

3、以下叙述中错误的是

A、预处理命令行的最后不能以号表示结束

B、C程序对预处理命令行的处理是在程序执行的过程中进行的

C、#defineMAX是合法的宏定义命令行

D、在程序中凡是以开始的语句行都是预处理命令行

标准答案:B

知识点解析:预处理命令行是以“#”开始的语句,预处理命令行的最后不能以号

表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:#define标识符

字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执

行的过程中。

4、有以下程序,程序运行后的输出结果是#includestdio_h#defincN2#dcfine

MN+l#defineNUM(M-1)M/2main(){orintfC%d\nu,NUM1);}

A、4

B、8

C、9

D、6

标准答案:B

知识点解析:宏展开以后NUM为(2+l+l)2+l/2,计算以后值为8。注意在进行

宏展开的时候,千万不要试图计算,展开以后再进行计算。

5、有以下程序,程序的输出结果是#includeVstdic.h#defineSQR(X)XX

main(){inta=10»k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf(%d\n,a);}

A、0

B、1

C、9

D、10

标准答案:B

知识点解析:SQR(k+m)宏展开以后为k+mk+m,值为5,表达式a/=SQR(k+m)

/SQR(k+m)为a=a/(5+5),表达式值为1。

6、有以下程序,程序运行后的输出结果是#inchideVstdio.h#inchideVstdlib-h

main(){inta,b,c;a=b=c=(int)malloc(sizeof(int));a=l:b=2,c=3;

H

a=b;printf(%d,%d,%d\n,a,b,c);)

A、2,2,3

B、3,3,3

C、1,2,3

D、1,1,3

标准答案:B

知识点解析:a=b=c=(int)malloc(sizeof(int)):含义为申请了一个整型的存储空间,

文档评论(0)

zsmfjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档