#include <stdio.h>
int main()
{
char c1,c2;
c1 = 97;
c2 = 98;
printf(“c1=%c,c2=%c\n”,c1, c2);
printf(“c1=%d,c2=%d\n”,c1, c2);
return 0;
}
(1)运行会输出什么信息?为什么?
(2)如果将程序4、5行改为:c1=197,c2=198。运行时会输出什么信息?为什么?
(3)如果将程序第3行改为: int c1,c2。运行时会输出什么信息?为什么?
(1) c1=a c2=b
c1=97 c2=98
int表示整形,%c是输出字符,a的ASCll代码是97,b的是98,所以c1=a,c2=b
%d表示输出十进制整数,所以输出c1=97,c2=98
(2)c1=? c2=?
c1=-59,c2=-58
如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,
因此输出的是197-256=-59,198-256=-58,用%c一般机器输出的是?,
一般的就输出0-127能输出字符。
(3)c1=a c2=b
c1=97 c2=98
如果给c1,c2的赋值是97 98用%c输出结果与(1)相同,
若赋值197 198,是不可预料字符。用%d输出时,输出整数197 198,
因为在int类型的有效范围内。