一道c语言题,请大家来看下

已知char ch=′C′;则以下表达式的值是
ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
A)A
B)a
C)Z
D)c
正确答案: D
为什么选D呢,请大家指教下,题中的?是什么意思呢,麻烦说详细点,谢谢

因为表达式
ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
的意思是先判断ch(即C)是否在A~Z这个范围内,如果在的话ch的值就等于(ch+32)否则就等于后面那个ch;因为这题种C是在这个范围的,所以取(ch+32)这个值,所以等于ASCⅡ码的99,即是小写c,所以输出c.(其中的ch(即C)的ASCⅡ码值是67)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-10
ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
如果ch>=′A′ && ch<=′Z′,则ch=ch+32.
如果不是ch>=′A′ && ch<=′Z′,则ch=ch
就是无论怎么样,都是输出小写字母.
第2个回答  2008-06-10
没什么难的,主要知道ch+32是什么意思就行了,看看ascii表就知道了,字母大小写的分布中大写和小写的差为32,所以同个字母大写转化为小写即+32,小写转大写即-32

因此该语句的含义为:ch原值为大写的C;ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch表明当ch的值在大写字母A到Z之间时(包含A、Z),ch赋予新值=(ch+32)即变为小写,否则保持原始值不变
第3个回答  2008-06-10
其实这整个就是一个表达式,意思是 ch是否在大写字母A和Z之间。如果在就选择 冒号前面的,如果不是就选择冒号后面的。这道题目就是将大写字母转换成小写字母。
相似回答