以下有关宏替换的叙述不正确的是()。

题目

以下有关宏替换的叙述不正确的是()。

  • A、宏替换不占用运行时间
  • B、宏名无类型
  • C、宏替换只是字符替换
  • D、宏名必须用大写字母表示
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下叙述中错误的是( )。

A.预处理命令行必须位于源文件的开头

B.宏替换可以出现在任何一行的开始部位

C.宏替换的作用一直持续到源文件结尾

D.宏替换不占有程序的运行时间


正确答案:A
C语言中对于预处理命令行的位置没有明确的规定。通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。

第2题:

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

A.宏替换占用运行时间

B.宏替换只是字符替换

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

D.宏名有类型


正确答案:ACD

第3题:

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

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

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

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

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


正确答案:B

第4题:

以下有关宏的描述不正确的是( )。

A.宏定义不做语法检查

B.双引号中出现的宏名不进行替换

C.宏名无类型

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


正确答案:D
解析:本题考查宏的使用规则:①字符替换格式:#define标识符字符串.标识符称为宏名,无类型;②双引号中出现的宏名不替换;③宏名的定义通常用大写字母,但不是必须用大写;④宏定义不是赋值语句,不做语法检查。

第5题:

若程序有宏定义:#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,而且这一替换过程是在程序预编译时逊行的。

第6题:

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

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

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

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

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


正确答案:ABD

第7题:

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

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

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

C.宏替换没有数据类型限制

D.宏调用比函数调用耗费时间


正确答案:C
C。【解析】本题考查宏的相关知识点。宏名没有大小写限制;宏定义可以放在程序中的任何位置,其有效范围是从定义开始到文件结束;宏替换可以代替任何数据类型,不受数据类型的限制;函数影响运行时间,宏调用影响编译时间。

第8题:

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

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

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

C) 宏替换没有数据类型限制

D) 宏调用比函数调用耗费时间


正确答案:C

第9题:

下面是对宏定义的描述,不正确的是 ______。

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

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

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

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


正确答案:C
解析:宏替换实质上就是字符替代,它不可能进行计算,故C错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。

第10题:

以下有关宏替换的叙述不正确的是( )。

A.使用宏定义可以嵌套

B.宏定义语句不进行语法检查

C.双引号中出现的宏名不替换

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


正确答案:D
解析:本题考查宏替换的规则。宏替换有两类:简单的字符替换和带参数的宏替换。使用宏应注意:①宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查:②为了区别程序中其他的标示符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。

更多相关问题