有以下程序#include <stdio.h>#define P 24;#define S(x) P*x+x;main(){ int a=2, b=2; p

11 查阅

有以下程序#include <stdio.h>#define P 24;#define S(x) P*x+x;main(){ int a=2, b=2; printf("%d\n",S(a+b));}程序的运行结果是A.程序编译运行时报错,无法输出 B.54 C.96 D.100

参考答案:

A本题主要考查宏的定义。宏定义用一个标识符来表示一个字符串,这个字符串可以是常量、变量或表达式。在宏调用中将用该字符串代换宏名。宏定义中,我们主要需要注意以下几点:(1)同一宏名不能重复定义,除非这两个宏定义命令行完全一致。(2)定义宏时,记得其结尾处不要用分号隔开。(3)替换带参数的宏名时,一对圆括号必不可少,圆括号中实参个数应该与形参个数相同,若有多个参数,它们之间用逗号隔开。(4)宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。在本题中,定义宏时,出现了一个明显的错误,即在宏的定义后

计算机二级