题目
22. (4.0分) 已知字母A的ASCII码为十进制[1]的65,下面程序的输出是____,____。 #include void main() {char ch1,ch2; ch1='A'+ '5'- '3'; ch2='A'+ '6'- '3'; printf("%d,%cn",ch1,ch2);
22. (4.0分) 已知字母A的ASCII码为十进制[1]的65,下面程序的输出是____,____。
#include
void main()
{char ch1,ch2;
ch1='A'+ '5'- '3';
ch2='A'+ '6'- '3';
printf("%d,%c\n",ch1,ch2);
题目解答
答案
根据题意:
1. `'A' + '5' - '3' = 65 + 53 - 51 = 67`,即`ch1 = 67`(`'C'`)。
2. `'A' + '6' - '3' = 65 + 54 - 51 = 68`,即`ch2 = 68`(`'D'`)。
3. `printf`中,`%d`输出`ch1 = 67`,`%c`输出`ch2 = 'D'`。
综上,程序输出为:`67,D`。
解析
考查要点:本题主要考查字符与ASCII码的关系以及字符运算的规则。需要明确在C语言中,字符常量(如'A')在运算中会被转换为其对应的ASCII码值,同时注意运算顺序和结果的类型转换。
解题核心思路:
- 将字符转换为对应的ASCII码值,例如
'A'对应65,'5'对应53,'3'对应51。 - 按顺序进行加减运算,注意运算结果的数值范围是否在
char类型允许的范围内。 - 根据
printf的格式说明符,正确输出整数或字符。
破题关键点:
- 字符运算的本质是数值运算,例如
'A' + '5'等价于65 + 53。 %d和%c的区别:%d输出整数,%c输出对应ASCII码的字符。
计算ch1的值
- 字符转ASCII码:
'A'的ASCII码为65。'5'的ASCII码为53。'3'的ASCII码为51。
- 代入表达式:
ch1 = 'A' + '5' - '3' = 65 + 53 - 51 = 67 - 结果分析:
ch1的值为67,对应字符'C'(ASCII码67)。
计算ch2的值
- 字符转ASCII码:
'6'的ASCII码为54。
- 代入表达式:
ch2 = 'A' + '6' - '3' = 65 + 54 - 51 = 68 - 结果分析:
ch2的值为68,对应字符'D'(ASCII码68)。
输出分析
printf("%d,%c\n", ch1, ch2)中:%d输出ch1的整数值67。%c输出ch2的字符值'D'。