8<<12c语言,2012年计算机等级二级C语言章节习题及答案(8)

第9章 预处理命令

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)9.1 有以下程序

#define F(X,Y)(X)*(Y)

main()

{ int a=3, b=4;

printf("%d\n", F(a++, b++));

}

程序运行后的输出结果是

A)12

B)15

C)16

D)20

正确答案: A

9.2 以下叙述中不正确的是

A)预处理命令行都必须以#号开始

B)在程序中凡是以#号开始的语句行都是预处理命令行

C)宏替换不占用运行时间,只占编译时间

D)在以下定义是正确的: #define PI 3.1415926;

正确答案: D

9.3 有如下程序:

#define N 2

#define M N+1

#define NUM 2*M+1

main()

{ int i;

for(i=1;i<=NUM;i++)printf("%d\n",i);

}

该程序中的for循环执行的次数是

A)5

B)6

C)7

D)8

正确答案: B

9.4 以下程序的运行结果是

#define MIN(x,y)(x)

main()

{ int i=10,j=15,k;

k=10*MIN(i,j);

printf("%d\n",k);

}

A)10

B)15

C)100

D)150

考生答案: 正确答案: B

9.5 有如下定义

#define D 2

int x=5;float y=3.83;

char c=′D′;

则下面选项中错误的是

A)x++;

B)y++;

C)c++;

D)D++;

正确答案: D

9.6 以下程序段的执行结果为

#define PLUS(X,Y)X+Y

main()

{ int x=1,y=2,z=3,sum;

sum=PLUS(x+y,z)*PLUS(y,z);

printf("SUM=%d",sum);

}

A)SUM=9 B)SUM=12 C)SUM=18 D)SUM=28

正确答案: B

9.7 下列程序的输出结果是

#include "stdio.h"

#defineM(x,y)x%y

main()

{ int a,m=12,n=100;

a=M(n,m);

printf("%d\n",a--);

}

A)2

B)3

C)4

D)5

正确答案: C

9.8 阅读下列程序段,则程序的输出结果为

#include "stdio.h"

#define M(X,Y)(X)*(Y)

#define N(X,Y)(X)/(Y)

main()

{ int a=5,b=6,c=8,k;

k=N(M(a,b),c);

printf("%d\n",k);

}

A)3

B)5

C)6

D)8

正确答案: A

9.9 已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是

A)10

B)5

C)2

D)以上答案都不对

正确答案: D

9.10 以下关于宏替换叙述中,错误的是

A)宏替换占用编译时间

B)替换文本中可以包含已定义过的宏名

C)宏名可以由+号组成

D)宏替换只能是字符替换

正确答案: C来源:-计算机二级考试

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)9.11 设有如下宏定义

#define MYSWAP(z,x,y)

{ z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a,b内容交换,请填空。

float a=5,b=16,c;

MYSWAP(【1】,a,b);

正确答案: c

9.12 以下程序的输出结果为【2】。

#define JFT(x)x*x

main()

{ int a, k=3;

a=++JFT(k+1);

printf("%d",a);

}

正确答案: 9

9.13 以下程序的输出结果是【3】 。

#define MAX(x,y)(x)>(y)?(x):(y)

main()

{ int a=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

printf("%d\n",t);

}

正确答案: 7

9.14 下面程序的运行结果是【4】。

#define N 10

#define s(x)x*x

#define f(x)(x*x)

main()

{ int i1,i2;

i1=1000/s(N); i2=1000/f(N);

printf("%d %d\n",i1,i2);

}

正确答案: 1000 10

9.15 以下程序的输出结果是【5】。

#define PR(ar)printf("%d,",ar)

main()

{ int j, a[]={1, 3, 5, 7, 9, 11, 15}, *p=a+5;

for(j=3; j; j--)

switch(j)

{ case 1:

case 2: PR(*p++); break;

case 3: PR(*(--p));

}

printf("\n");

}

正确答案: 9,9,11,来源:-计算机二级考试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值