C高手帮忙解疑 ---谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:10:15
如果运行时输入字符为‘Q’,则以下程序运行结果是-----
main()
{ char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
ch=(ch>='a'&&ch<='z')?(ch-32):ch;
printf("%c",ch);
}
这个 怎么那中间有两条语句啊 前面那个ch... 是输入大写字母转换成小写字母
后面那个ch....是输入小写字母转换成大写字母
那 最后到底执行哪一个呢?

C执行程序是从main函数开始的,从头议句语句开始,逐句执行!~

对于你程序,
你输入‘Q’后,它执行了ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
ch等于‘q’, 后在执行
ch=(ch>='a'&&ch<='z')?(ch-32):ch;
ch仍然等于‘q’。

提示::
<A>?<B>:<C>;是条件判断符!~
A为真执行B,否则执行C

顺序执行啊,就是考人的嘛

输入大写:
两个都执行,最后还是大写
输入小写:
还是两个都执行,不过第一个语句对ch不起作用,第二个将ch转换为大写