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

  • 0
  • 0
  • 约6.36万字
  • 约 45页
  • 2026-01-22 发布于河北
  • 举报

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

国家二级C语言机试(编译预处理和指

针)模拟试卷第1套

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

1有以下程序#dfineT.5;#dfineS(xPT*x*xmi()nta=l,b=

eP3e);an{i2;

printf(,,%4.S(a+));}程序运行后的输出结果是

b

A、31.5

7.5

C、序有错无输出结果

D、14

标准答案:C

知识点解析:本题考查宏定义。预处理语句后面不能加分号,因此程序有错工如果

口号的话S(a+b)=PT*ab*a+b=35*1*12=7.5.

没力分+.+2+

、有以下程序#includcstdio.#define(x)*(x)*x+1yoidmain()intk=5,j=2:

2hS4{

pritf(,,%d\n,\S(k+));}程运行后的输出结果是

nj序

A、197

B、143

C、33

D、28

标准答案:B

知识点解析:这道题涉及到带参数的宏的定义和替换这个知识点。在程序中定义了

带参数的宏S(x),当在主函数中用参数k+j调用宏s时,根据宏替换的原则,则

S(k+)=S(5+2)=4*7*5+2+1=143。

j

3、有以下程序#includVsdio.h#defieSU(a(a)-a)mai){inta2,b=3,

etnB)(n(=

c=5,d;d=UB(a+b)*c:pintf「%dl\n,d);)程序运行后的输出结果是

Sr

A、-12

B、0

C、10

D、-20

标准答案:D

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

s(b

时,首先要进行宏替换,依据宏suB(a)的定义可知,上面这条语句替换为

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

即d=5.5*5=20。

4、有下列程序:#includestdio_h#deftneN5#defineMN+l#definefix)(x*M)

main(){intil,i2:il=f(2);i2=f(l+l);printff%d%d\n,il,i2);}程序的运

行结果是

A、127

B、1212

C、1111

D、117

标准答案:D

知识点解析:在本题中,定义了3个宏定义语句,别是:#dcfincN5

#defineMN+5和#1©同©心)^*乂),所以根据C语言的宏替换规则,我们可知,

f(2)=2*N+l=2*5+l=l1,f(l+l)=l+l*N+l:1+1*5+1=7。

5、若程序中有宏定义行:#dcfincNIOO则以下叙述中正确的是

A、宏定义行中定义了标识符N的值为整数100

B、上述宏定义行实现将100赋给标示符N

C、在运行时用100替换标识符N

D、在编译程序对C源程序进行预处理时用100替换标识符N

标准答案:D

知识点解析:在C语言中,凡是以印、号开头的行,都称为编译预处理工其含义

是在c编译程序对c

文档评论(0)

1亿VIP精品文档

相关文档