有以下程序: #include #define SUB(x,y)(x)*(y) main() {int a=3,b=4; printf("%d\n",SUB(a++,b++)); } 程序运行后的输出

admin2016-04-07  29

问题 有以下程序:
    #include
    #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://jikaoti.com/ti/6zi0FFFM
0

最新回复(0)