A-A+
以下程序运行后的输出结果是【 】。 main() { int p=30; printf(\%
问题详情
以下程序运行后的输出结果是【 】。 main() { int p=30; printf("%dn",(p/3>0?p/10:p%3)); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:3
三目运算表达式的规则为如果“?”前面表达式的值为真,则取“:”前的表达式的值,否则,取“:”后面表达式的值。又由于条件运算符的结合方向是自右向左的,所以在本试题中,先计算表达式中p%3,该值为0,再计算表达式p/10其值为3,最后计算表达式P/3该值为10,所以此表达式等价于“10?3:0”,显然取“:”前的值为3,所以最后输出的值为3。