若有定义:int a,b,c;以下程序段的输出结果是( )。  a=11;b=3;c=0;  printf("%d\n",c=(a/b,a%b));

admin2022-04-01  30

问题 若有定义:int a,b,c;以下程序段的输出结果是(          )。
 a=11;b=3;c=0;
 printf("%d\n",c=(a/b,a%b));

选项 A、2
B、0
C、3
D、1

答案A

解析 C语言中,逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式。逗号运算符的优先级是所有运算符中级别最低的,逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算,并以最右边表达式值作为整个逗号表达式的值。因此c的值为a%b即11%3=2,故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/MHd0FFFM
0

最新回复(0)