下列程序的输出结果是 #include "stdio.h" #define M(x,y) x%y main( ) { int a,m=12,n=100; a=M(n,m); printf("%d\n",a--)

admin2010-09-05  19

问题 下列程序的输出结果是
   #include "stdio.h"
   #define M(x,y)  x%y
   main( )
   { int a,m=12,n=100;
     a=M(n,m);
     printf("%d\n",a--);}

选项 A、2
B、3
C、4
D、5

答案C

解析 带参数的宏定义命令行形式如下:
   #define宏名(形参表)替换文本
   在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一些处理时间。
转载请注明原文地址:https://kaotiyun.com/show/pwWp777K
0

最新回复(0)