vb教学视频教程全集:C语言问题的

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 22:06:14
若运行时给变量x输入12,则以下程序的运行结果是 。
main()
{
int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
}
A)0 B)22 C)12 D)10
答案为啥是A呀 y=x>12?x+10:x-12;这句是啥意思呀 请各位高手指点一下 让我们中国人多一个懂C语言的 先谢了

scanf(“%d”,&x);
结果12被赋给了变量x。

y=x>12?x+10:x-12;
是条件判断语句。?前面的x>12如果满足就把?后的x+10赋给y,如果不满足就把:后的x-12赋给y。
由于x=12不大于12,于是x-12 的值0被赋给了y,最后输出的结果就是0。

main()
{
int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
}
当x被赋值为12时,x>12为假,也就是逻辑假即为0,所以y=0。
y=x>12?x+10:x-12;这句话的意思是:
当?前的值为逻辑真时,此表达式的值取:前的表达式的值;
当?前的值为逻辑假时,此表达式的值取:后的表达式的值;
本题该表达式的值对y的值无作用,只需要考虑?前表达式的值即可!

> 为二目运算符,逻辑运算符。
表达式?a:b 为三目运算符,当表达式为真执行a,若表达式为假执行b。
= 为二目运算符,赋值运算符。
解决这样的问题首先是要搞清符号的运算顺序。这道题的运算顺序是先进行逻辑运算,再进行选择运算,然后是算术运算,最后是赋值运算。
逻辑运算计算出x>12表达式是否为真,当输入的x为12的话,这道题是假,所以执行了b方位的表达式x-12,通过运算x-12表达式得出0的结果,最后通过赋值运算把0赋给y。这就是这道题的运算过程。

答案是A
y=x>12?x+10:x-12;
是条件判断语句。?前面的x>12如果满足就把?后的x+10赋给y,如果不满足就把:后的x-12赋给y。
由于x=12不大于12,于是x-12 的值0被赋给了y,最后输出的结果就是0。

根据北京理工大学出版的<C语言>一书,我同意以上观点