C语言一道题 求详解!

2025-03-12 23:11:35
推荐回答(2个)
回答1:

单个字符进行算术运算时,实际上是用其ASCII码值进行运算,所以当以十进制输出结果时输出的是字符对应的ASCII码值,而以字符输出的时候就是字符
char
a='a';
//此时a
为字符'a'
十进制代码为97
a--;//执行完毕后,a十进制代码为96
printf("%d,%c\n",a+'2'-'0',
a+'3'-'0');
先执行a+'3'-'0'
=
a
+
3
=
96+3
=99
,此时a为字符'c'
再执行a+'2'-'0'
=
a+2
=
96+2
=98,此时a为字符'b',十进制值为98
故而打印的结果为:
98
c

回答2:

已知字母a的ASCII
十进制
代码为97
char
a
=
'a';
a='a'也就是97
a--;这时候a=a-1=96
printf("%d,%c\n",a+'2'-'0',
a+'3'-'0');
"%d,%c\n"按照整型(%d)和字符型(%c)输出a+'2'-'0'和a+'3'-'0'
'2'-'0'=2,'3'-'0'=3
a+2=96+2=98
a+3=96+3=97+2=‘a’+2='c'
所以结果是98,c