更多“以下的叙述中不正确的是()A、宏展开不占用运行时间,只占用编译时间B、宏名无类型C、宏名必须用大写字母表示D、预处理命令行都必须以#号开始”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    以下叙述中正确的是

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

    B.在源文件的一行上可以有多条预处理命令

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

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


    正确答案:D
    解析:本题考查的是编译预处理的一些基本概念。在C语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。它们可以根据需要出现在程序的任何一行的开始部位,选项A是错误的。一条预处理命令至少得占一行,选项B是错误的。宏名可以是任何合法的C语言标识符,只不过通常习惯用大写字母,因此选项C是错误的。宏定义是“编译预处理”命令,它们的替换过程在编译时期就已经完成了,因此不会占有程序运行的时间,选项D是正确的。

  • 第3题:

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

    A.使用宏定义可以嵌套

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

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

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


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

  • 第4题:

    以下叙述中不正确的是

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

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

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

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


    正确答案:D
    解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

  • 第5题:

    以下叙述中不正确的是______。

    A.C程序中的预处理命令行都以#号开始

    B.宏定义中的宏名可用大写字母或小写字母

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

    D.使用带参数的宏时,参数的类型应与宏定义时的一致


    正确答案:D
    解析:宏替换和函数调用有相似之处,但在替换时,对参数没有类型的要求。

  • 第6题:

    以下叙述中不正确的是A.预处理命令都必须以#号开始B.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.以下定义是正确的:#define PI 3.1415926;


    正确答案:D
    在C语言程序中,会出现以“#”号开头的预处理命令,如包含命令#include、宏定义命令#define等。在源程序中,这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分。
    所谓预处理,是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所做的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分做处理,处理完毕自动编译源程序。
    在C语言中,宏是一种预处理命令,在定义宏时,不需要以语句标识符“;”来表示宏定义结束,而是另起一行表示结束。
    综合上面的分析,可以知道本题选项中,A、B、C的说法都正确,只有D的宏定义不正确,因此本题的正确答案选D。

  • 第7题:

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

    A.宏名必须用大写字母构成

    B.宏替换具有计算功能

    C.宏替换不具有计算功能

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


    正确答案:A
    宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母,因此,答案为A选项。

  • 第8题:

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

    A)宏定义不做语法检查

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

    C)宏名无类型

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


    正确答案:D

  • 第9题:

    以下叙述中,正确的是()

    • A、“#definePRICE=30”定义了与30等价的符号常量PRICE
    • B、预编译处理命令行都必须以“#”开头
    • C、程序中使用带参的宏时,参数类型要与宏定义时一致
    • D、宏名只能包含大写字母和数字字符

    正确答案:B

  • 第10题:

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

    • A、宏替换不占用运行时间
    • B、宏名无类型
    • C、宏替换只是字符串替换
    • D、宏替换是在运行时进行的

    正确答案:D

  • 第11题:

    单选题
    以下叙述中,正确的是()
    A

    “#definePRICE=30”定义了与30等价的符号常量PRICE

    B

    预编译处理命令行都必须以“#”开头

    C

    程序中使用带参的宏时,参数类型要与宏定义时一致

    D

    宏名只能包含大写字母和数字字符


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    以下关于宏的叙述错误的是(  )。
    A

    宏替换不具有计算功能

    B

    宏是一种预处理指令

    C

    宏名必须用大写字母构成

    D

    宏替换不占用运行时间


    正确答案: C
    解析:
    宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母,答案选择C选项。

  • 第13题:

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

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

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

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

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


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

  • 第14题:

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

    A.宏定义不做语法检查

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

    C.宏名无类型

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


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

  • 第15题:

    以下叙述中不正确的是( )。

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

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

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

    D.定义#define PI 3.1415926;是正确的


    正确答案:D
    解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,行末不加分号。

  • 第16题:

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

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

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

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

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


    正确答案:C
    解析:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母,所以选项A错误;宏命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本源文件结束,通常,宏命令写在文件开头,函数之前,作为文件的一部分,在此文件范围内有效,而并不必须位于源程序中所有语句之前,所以选项B错误;用宏名代替—个字符串,也就是作简单的置换,宏置换不占运行时间,只占编译时间,而日编译时并不分配内存单元,也不进行值的传递处理。而函数调用则占运行时间(分配单元、保留现场、值传递、返回),所以选项D错误;宏替换可以代替任何数据类型,不受数据类型的限制,所以选项C正确。

  • 第17题:

    下面对宏定义的描述中不正确的是

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

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

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

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


    正确答案:C
    解析:本题考察对宏的理解。宏其实就是替换,这种替换不是在运行时进行,而是自编译时就完成的。替换时仅仅将表达式展开.不进行运算求值。

  • 第18题:

    以下的叙述中不正确的是()

    A.宏展开不占用运行时间,只占用编译时间

    B.宏名无类型

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

    D.预处理命令行都必须以#号开始


    参考答案:C

  • 第19题:

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

    A)双引号中出现的宏名不替换

    B)使用宏定义可以嵌套

    C)宏定义仅仅是符号替换

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


    正确答案:D

  • 第20题:

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

    • A、宏替换不占用运行时间
    • B、宏名无类型
    • C、宏替换只是字符替换
    • D、宏名必须用大写字母表示

    正确答案:D

  • 第21题:

    以下有关宏定义的叙述,正确的是()

    • A、宏名必须用大写字母表示
    • B、带参数的宏就是一个函数
    • C、宏名不具有类型
    • D、宏定义和其它C语句,其末尾要加分号

    正确答案:C

  • 第22题:

    单选题
    以下关于宏的叙述中正确的是(  )。
    A

    宏名必须用大写字母表示

    B

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

    C

    宏替换没有数据类型限制

    D

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


    正确答案: B
    解析:
    A项错误,在C语言中,宏名可以是任何合法的C语言标识符,只不过通常习惯用大写字母;B项错误,宏可以根据需要出现在程序的任何一行的开始部位;D项错误,宏定义是“编译预处理”命令,它们的替换过程在编译时期就已经完成了,因此不会占有程序运行的时间。答案选择C选项。

  • 第23题:

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

    宏替换不占用运行时间

    B

    宏名无类型

    C

    宏替换只是字符串替换

    D

    宏替换是在运行时进行的


    正确答案: C
    解析: 暂无解析