题目名称
目录
推荐阅读顺序:
1.题目->3.答案->2.题目分析->4.题目知识点
1.题目
1、执行下面程序,正确的输出是( )
设有以下宏定义:
#define N 3+1
#define Y(n) ((N+1)*n)
则执行语句 z=2*(N+Y(5+1))后,z 的值为()
A、60 B、190 C、248 D、上述答案都不对
2.题目分析
这是一道很典型的#define的替换规则的题目。
3.题目答案
正确答案: A、60
4.题目知识点
4.1define 替换规则
在程序中扩展#define定义符号和宏时,需要涉及几个步骤。
1. 在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先被替换。
2. 替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。
3. 最后,再次对结果文件进行扫描,看看它是否包含任何由#define定义的符号。如果是,就重复上 述处理过程。
请注意:
宏的参数不是计算之后进入而是直接替换进入的。
更多相关知识点请看我整理的这篇博客:
(1条消息) 程序环境和预处理(下):#define、#undef、命令行编译、条件编译、文件包含(超全整理,建议收藏!!!_vpurple__的博客-CSDN博客
————————————————
大家好,这里是媛仔!欢迎来到媛仔的题目分享栏目,这里在之后应该会作为媛仔的错题本,将易错或者经典的题目记录下来分享给大家。感谢你阅读到最后,如果有什么错误或者遗漏欢迎私信我。
这道题目的来源是我c语言结课的测试题,稍微感慨一下,如果我之前上课不昏睡过去的话,认真听课的话,我在测评的时候这道题就不会错了。不过还好有录播,亡羊补牢为时不晚。
希望接下来能够更加努力,和大家共同进步!!