有以下程序 #inelude<stdio.h> #define SUB(x,y)(x)*(y) main() {int a=3,b=4; printf("%d\n",SUB(a++,b++)); } 程序运行后的输出结果是( )。

admin2021-06-15  18

问题 有以下程序
#inelude<stdio.h>
#define SUB(x,y)(x)*(y)
main()
{int a=3,b=4;
printf("%d\n",SUB(a++,b++));
}
程序运行后的输出结果是(    )。

选项 A、15
B、12
C、16
D、20

答案B

解析 #define命令是C语言的宏定义命令,标识符一般使用大写,为了区分其他标识符,将标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。后置自增运算:k++表示先运算,后自加。意思是遇到k++了,先把当前的k的值拿来参加运算,后面再去管它的自加。SUB(a++,b++)→(a++)*(b++)→3*4。故答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/o5tp777K
0

最新回复(0)