C语言程序设计

单选题若程序中有宏定义行:#define N 100则以下叙述中正确的是(  )。A 宏定义行中定义了标识符N的值为整数100B 在编译程序对C源程序进行预处理时用100替换标识符NC 上述宏定义行实现将100赋给标识符ND 在运行时用100替换标识符N

题目
单选题
若程序中有宏定义行:#define N 100则以下叙述中正确的是(  )。
A

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

B

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

C

上述宏定义行实现将100赋给标识符N

D

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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下关于宏的叙述错误的是()

A.宏名必须用大写字母表示

B.宏替换时要进行语法检查

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

D.宏定义中不允许引用已有的宏名


正确答案:ABD

第2题:

当源程序被汇编时,汇编程序将对每个宏调用作宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,并且用实元取代宏定义中的哑元,对应关系是一一对应。( )


正确答案:对

第3题:

若程序中有宏定义行 :#define N 100 则以下叙述中正确的是

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

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

C) 对 C 源程序进行编译时用 100 替换标识符N

D) 在运行时用 100 替换标识符N


正确答案:B

第4题:

以下关于宏的叙述中正确的是( )

A.宏名必须用大写字母表示

B.宏替换时要进行语法检查

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

D.宏定义中不允许引用已有的宏名


正确答案:C

第5题:

以下叙述正确的是______。

A.可以把define和if定义为用户标识符

B.可以把define定义为用户标识符,但不能把if定义为用户标识符

C.可以把if定义为用户标识符,但不能把define定义为用户标识符

D.define和if都不能定义为用户标识符


正确答案:B
解析:if是C语言中的保留字,所以不能作为用户标识符;define是C语言中的预编译命令,由于C语言中的预编译命令都是以#开头,所以define可以作为用户标识符。

第6题:

在下列有关宏替换的叙述中,错误的是()

A.宏替换占用运行时间

B.宏替换只是字符替换

C.带参数的宏替换和函数等价

D.宏名有类型


正确答案:ACD

第7题:

若程序有宏定义:#define N l00,则以下叙述中正确的是( )。

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

B.在编译程序对C源程序进行预处理时用l00替换标识符N

C.对C源程序进行编译时用100替换标识符N

D.在运行时用100替换标识符N


正确答案:B
#defineN100定义了标识符N的替换文本为100,而非N的值为100。即在该命令行后的程序中,所有出现标识符N的地方都将替换为l00,而且这一替换过程是在程序预编译时逊行的。

第8题:

若有以下宏定义:

#define N 2

#define Y(n)((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果是( )。

A.语句有错误

B.z=34

C.z=70

D.z无定值


正确答案:B

本题考查宏定义的功能,可以把它看成一个函数,直接代人参数,可计算出结果为34, 故选B。 

第9题:

若程序中有宏定义行:#define N 100 则以下叙述中正确的是

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

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

C.对C源程序进行编译时用100替换标识符N

D.在运行时用100替换标识符N


正确答案:B
解析:宏定义是预处理命令,即在C源程序进行编译之前,编译程序对源程序进行编译预处理时所进行的一种替换操作。所以选项C和 D可以排除。宏定义是用宏名代替一个字符串,也就是作简单的置换,不做正确性检查。所以选项A的叙述也不正确,宏替换时100被当作一个字符串来替换宏名的,而不是被看作整数值100。故本题的正确答案为B。

第10题:

在下列关于宏定义命令# define的叙述中,正确的一条是 ( )

A.用一个指定的标识符(宏名)来代替一个长整型数

B.用一个指定的标识符(宏名)来代替一个双精度数

C.用一个指定的标识符(宏名)来代替一个字符串

D.用一个指定的标识符(宏名)来代替一个单精度实数


正确答案:C

更多相关问题