有以下程序 #include <stdio.h> #define N 2 #define M N+1 #define MUN (M+1)*M/2 main() { printf( "%d\n", MUN ); } 程序运行后的输出结果是

admin2021-04-28  29

问题 有以下程序
#include <stdio.h>
#define  N  2
#define  M  N+1
#define  MUN   (M+1)*M/2
main()
{
   printf( "%d\n", MUN );
}
程序运行后的输出结果是

选项 A、8
B、9
C、5
D、6

答案D

解析 带参数的宏的调用格式:宏名(实参表),替换过程是,用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。MUN被置换成(M+1)*M/2,M置换成N+1,N置换为2;得到M=N+1=3,MUN=(M+1)*M/2=6,程序的运行结果是6,D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/9Wtp777K
0

最新回复(0)