有以下程序: #include<stdio.h> main( ) int i,j,k,a=5,b=6; i=(a = =b)?+ +a:— —b; j=a+ +;k=b; printf(″%d,%d,%d\n″,i,j,k); } 程序的运行结果是(

admin2020-07-28  24

问题 有以下程序:
#include<stdio.h>
main( )
int i,j,k,a=5,b=6;
i=(a = =b)?+ +a:— —b;
j=a+ +;k=b;
printf(″%d,%d,%d\n″,i,j,k);
}
程序的运行结果是(    )。

选项 A、7,6,5
B、5,5,5
C、7,5,5
D、5,6,5

答案B

解析 i=(a= =b)?+ +a:— —b;中先执行a= =b,为否,根据三元运算符语法规则,执行— —b,此时b为5,赋给i,i=5;j=a+ +,将a=5先赋给j,再进行a+ +,k=b=5,故最后输出的是5,5,5。
转载请注明原文地址:https://jikaoti.com/ti/m8D0FFFM
0

最新回复(0)