单选题若程序中有宏定义行:#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


相似考题
参考答案和解析
正确答案: B
解析:
D项正确,预处理程序对源程序中所有使用宏名的地方进行直接替换。A项错误,宏定义没有类型限制;B项错误,预处理程序进行宏替换,而非编译程序;C项错误,宏定义不是赋值操作,而是进行在预编译时进行替换。答案选择D选项。
更多“单选题若程序中有宏定义行:#define N 100则以下叙述中正确的是(  )。A 宏定义行中定义了标识符N的值为整数100B 在编译程序对C源程序进行预处理时用100替换标识符NC 上述宏定义行实现将100赋给标识符ND 在运行时用100替换标识符N”相关问题
  • 第1题:

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


    正确答案:对

  • 第2题:

    以下叙述正确的是______。

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

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

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

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


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

  • 第3题:

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

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

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

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

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


    正确答案:C

  • 第4题:

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

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

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

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

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


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

  • 第5题:

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


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

  • 第6题:

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

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

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

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

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


    正确答案:B
    C语言中,凡是以“#”号开头的行,都称为“编译预处理”。对C源程序进行编译前,由编译预处理程序对这些编译预处理命令进行处理。

  • 第7题:

    在宏定义“#define MAX  100”中,用宏名代替一个()。

    • A、整数
    • B、长整数
    • C、字符串
    • D、常量

    正确答案:C

  • 第8题:

    “e2”是()。

    • A、实型常数100
    • B、值为100的整型常数
    • C、非法标识符
    • D、合法标识符

    正确答案:D

  • 第9题:

    在Access中,宏是按()调用的。

    • A、名称
    • B、标识符
    • C、编码
    • D、关键字

    正确答案:A

  • 第10题:

    单选题
    在宏定义“#define MAX  100”中,用宏名代替一个()。
    A

    整数

    B

    长整数

    C

    字符串

    D

    常量


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

  • 第11题:

    单选题
    表示一个语句是宏定义语句的标识符是()。
    A

    include

    B

    #include

    C

    define

    D

    #define


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

  • 第12题:

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

    宏替换不具有计算功能

    B

    宏是一种预处理指令

    C

    宏名必须用大写字母构成

    D

    宏替换不占用运行时间


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

  • 第13题:

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

  • 第14题:

    若程序中有宏定义行:#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。

  • 第15题:

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

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

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

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

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


    正确答案:C

  • 第16题:

    若程序中有宏定义行:

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    常量定义在编译时替换,所以答案选择A)。

  • 第17题:

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

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

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

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

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


    正确答案:B
    解析: 本题考查的重点是宏定义。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时,发现该标识符就都用该串替换,因此选项B是正确的。

  • 第18题:

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

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

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

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

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


    正确答案:B

  • 第19题:

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

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

    正确答案:D

  • 第20题:

    表示一个语句是宏定义语句的标识符是()。

    • A、include
    • B、#include
    • C、define
    • D、#define

    正确答案:D

  • 第21题:

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

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

    正确答案:D

  • 第22题:

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

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

    B

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

    C

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

    D

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


    正确答案: D
    解析:
    D项正确,预处理程序对源程序中所有使用宏名的地方进行直接替换。A项错误,宏定义没有类型限制;B项错误,预处理程序进行宏替换,而非编译程序;C项错误,宏定义不是赋值操作,而是进行在预编译时进行替换。答案选择D选项。

  • 第23题:

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

    宏替换不占用运行时间

    B

    宏名无类型

    C

    宏替换只是字符串替换

    D

    宏替换是在运行时进行的


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

  • 第24题:

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

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

    B

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

    C

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

    D

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


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