C语言问题,图

求过程

ch=(ch>='A'&&ch<='Z')?(ch+32):ch

这句话可以这样看,ch=( (ch>='A'&&ch<='Z')?(ch+32):ch )

首先这是一个赋值语句,然后问号前面是判断句,根据ASCII码,判断ch是否在A-Z之间,也就是说ch是否为大写字母,如果是,则取值(ch+32),即转化成小写,否则取值ch

A的ASCII码是65,a是97,刚好相差32,其他字母也是这样

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-13
这个是ASCII码,将大写字母变成小写,先判断字符是不是大写,A是大写,执行加32,加32后的码对应的就是小写a
第2个回答  2018-12-14
字符在参与数值运算时会隐含转换为数组,所以你可以把这题的A当成65来算,其他的ASCII同样可以通过推理所得。此外,记住大小写相差32,而32正好是空格,这样就会好记多了。
第3个回答  2018-12-14
这个是ASCII码,将大写字母变成小写,先判断字符是不是大写,A是大写,执行加0x32,加0x32后的码对应的就是小写a
第4个回答  2018-12-14
我把这个代码翻译成if...else语句,你就知道了:
if(ch>='A'&&ch<='Z'){
ch=ch+32;
}else{
}
因为char类型可以转换成int类型的,但是转换过来,就是那个字符的ASCII码值,字符A的ASCII码值是65,65+32-97,97这个ASCII码值对应的字符是a ,所以答案是B本回答被提问者采纳
相似回答