c语言中使用宏的次数较多时,宏展开后源程序长度增长 对吗,第13部分 编译预处理.doc...

第13部分 编译预处理

第13部分 编译预处理

一、选择题

1、以下叙述中正确的是( D )。

A.用#include包含的头文件的后缀不可以是“.a”

B.若一些源程序中包含某个头文件,当该头文件有错时,只需对该头文件进行修改,包含此头文件的所有源程序不必重新进行编译

C.宏命令行可以看成是一行C语句

D.C编译中的预处理是在编译之前进行的

2、下面是对宏定义的描述,不正确的是( C )。

A.宏不存在类型问题,宏名无类型,它的参数也无类型

B.宏替换不占用运行时间

C.宏替换时先求出实参表达式的值,然后代入形参运算求值

D.其实,宏替换只不过是字符替代而已

3、下述程序段中,( D )不含有错误。

A.

#define F(n) ((n)==1?1:(n*F(n)-1))

B.

#define swap(x,y) int t=x;x=y;y=t;

#include

void main()

{ int a,b;

a=10,b=20;

swap(a,b);

printf(“%d,%d”,a,b);

}

C.

#define M(x,y) (x/y)

#include

void main()

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

int x=M(a+b,c+d);

printf(“%d”,x);

}

D.

#define PLUS +

void main()

{ int x,y;

#define OK 1

scanf(“%d”,&x);

y=10;

if(x==OK)

y=y PLUL 1;

printf(“%d”,y);

}

4、执行下述程序后,输出结果是( B )。

#include

#define SQR(x) x*x

void main()

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

printf(“%d”,a);

}

A.10 B.1 C.9 D.0

5、下述叙述中,( C )是错误的。

A.#include命令可以包含一个含有函数定义的C语言源程序文件

B.使用#include的形式比使用#include”文件名”格式省编译时间

C.#include”C:\\USER\\F1.H”是正确的包含命令,它表示文件F1.H存放在D盘的USER目录下

D.#include格式中的文件名之前是不能包含路径的

6、以下程序(程序左边的数字为附加的行号)( B )。

1 #include

2 #include

3 void main()

4 { char *s=”string”;

5 puts(s);

6 strcpy(s,”hello”);

7 printf(“%3s\n”,s);

8 }

A.没有错 B.第1行有错

C.第6行有错 D.第7行有错

7、以下程序:

#define MIN(x,y) (x)

void main()

{ int i,j,k;

i=10;j=15;k=10*MIN(i,j);

printf(“%d\n”,k);

}

其输出结果是( A )。

A.15 B.100 C.10 D.150

8、以下程序:

#define N 2

#define M N+1

#define NUM (M+1)*M/2

void main()

{ int i;

for(i=1;i<=NUM;i++);

printf(“%d\n”,i);

}

for循环执行的次数是( C )。

A.5 B.6 C.8 D.9

9、以下程序:

#include ”stdio.h”

#define FUDGF(y) 2.84+y

#define PR(a) printf(“%d”,(int)(a))

#define PRINT1(a) PR(a);putchar(‘\n’)

void main()

{ int x=2;

PRINT1(FUDGF(5)*x);

}

其输出结果是( B )。

A.11 B.12 C.13 D.15

10、将大写字母变为小写字母的宏定义为( B )。

A.#define TOLOWER(ch) (ch>=’A’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值