柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序 #include main() { int a=0,b=0,c=0,d=0; (a++ && b++) ? c++ : d++; printf("%d,%d,%d,%d\n", a,b,c,d); } 程序的运行结果是


  • A.1,0,0,1
  • B.1,1,0,1
  • C.1,0,1,0
  • D.1,1,1,0
热度🔥353
参考答案:A
解析:

【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。条件运算符“?”,执行规则为: 若exp1为真,求解exp2,输出exp2的值,不计算exp3的值;若为假,求解exp3,输出exp3的值,不计算exp2的值。“&&”逻辑与表达式:exp1&&exp2。规则为,对exp1求值,若为0,则表达式为0,且不计算exp2;若exp1非0,则求exp2值,作为表达式值。题目中a++先取值为0,则(a++ && b++)为0,且不计算b++与c++,而计算d++,并把这个值作为整个表达式的值输出,然后a与d自加1,最后得到a=1,b=0,c=0,d=1。A选项正确。
复制题目向AI提问