A-A+

下列程序的输出结果是 #include stdio.h #define M(x y) x

2022-08-06 03:47:28 问答库 阅读 175 次

问题详情

下列程序的输出结果是
#include "stdio.h"
#define M(x,y) x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%dn",a--);}
A.2
B.3
C.4
D.5

参考答案

正确答案:C
解析:带参数的宏定义命令行形式如下:
#define 宏名(形参表) 替换文本
在编译的时候编译预处理程序用"替换文本"来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。

考点:程序