C语言问题,求大神解决,说下所使用的原理及知识点,谢谢啦,我是小白。

1、 若char c=’A’;则c = (c>=’A’ && c<=’Z’) ? (c+32) : c的值是( )
A.‘A’ B.‘a’ C.‘Z’ D.‘z’

char c=’A’; //在ASCII码中 字符'A'是 65
c = (c>=’A’ && c<=’Z’) ? (c+32) : c;

这个表达式的意思是: c>=’A’成立, c<=’Z’也成立,
所以执行c+32
c+32 = 65+32 = 97;

在ASCII码中 字符97是字符'a'

所以答案选择 B追问

问号这个操作是什么意思呢?A?B:C这是什么意思呢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
1. C语言中唯一的三元运算符 ? :,使用如下D= A?B:C 其中A是逻辑判断式,A为真,结果D=B,否则,D=C。

2. 类型转换 char类型和整形在进行加法的时候 进行转化 最终c+32 为‘a'。在进行char的比较的时候,对其ASCII码进行比较。ASCII码中 a的为A加32,满足a>Z>A

3. &&与运算,C = A&&B,A,B均为真的时候,C为真 AB中有一个为假,C就为假

题中,c='A' c>='A 'c<=’Z‘都为真,所以c=c+32 选B
第2个回答  2013-03-01
先去查'A'的ASCII码。65.
然后,c=(c>='A' && c<='Z')?(c+32):c的意思是:

若c>='A' && c<='Z' 这一句为true,则c=c+32,否则c=c。
理解了之后,我们就可以得到 c>='A' && c<='Z' 为true,因此我们可以得到 c=65+32
查一下ASCII码,可以知道97为 'a'
故,选A
第3个回答  2013-03-01
选B
因为c=’A’满足c = (c>=’A’ && c<=’Z’)
所以执行(c+32)
否则执行c
所以输出是小写a
第4个回答  2013-03-01
答案是A。(呵呵,看错了,是B)如果只是输入字母的话,就是都转换为小写字母的意思。
1.看下字母在asii的表示。就是一个int的值。
2.看看三目运算(表达式?A:B)。
百度收下1和2的问题,比我这里打字更清楚。
相似回答