c的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 19:51:19
已知字母A的ASCII码值为65.以下程序运行后输出结果是多少?
main()
{
char a,b;
a='A'+'5'-'3';
b=a+'6'-'2';
printf("%d %c\n",a,b);
}
答案是 67 和 G 为什么是G不是个数?谢谢

char类型的变量在进行计算时,总是转化成int型来计算。
%c格式字符表示输出字符,所以会把71再转化成G

输出的是字符

printf("%d %c\n",a,b);
中%c表示以字符输出
%f表示以浮点输出
%d表示以十进制整数输出
%o表示以八进制整数输出
%x表示以十六进制整数输出
%ld表示以长整型输出
%e表示以科学记数法输出
%g表示四舍五入小数点后的一位输出整数

%d %c分别表示数字格式和字符格式 看清楚了就行了

printf("%d %c\n",a,b);

答案是 67 和 G 为什么是G不是个数?谢谢

如果你要答案是G的数就把它改成
printf("%d %d\n",a,b);