首页 > 其他 > 详细

分析下面的程序: (1)运行时会输出什么信息?为什么?

时间:2020-09-05 13:46:20      阅读:226      评论:0      收藏:0      [点我收藏+]

分析下面的程序:

#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)运行时会输出什么信息?为什么?

? 答:会输出 :

技术分享图片

? c1=97, c2=98

? 因为第一行十一字符形式输出,所以会吧97和98当作相依字符的ascii值,输出的时候按照字符显示,

? 第二行由于是以整形输出,所以输出对应整数值

(2)如果将程序第4,5行改为

c1 = 197;

c2 = 198;

运行时会输出什么信息?为什么?

? 答: 会输出:

技术分享图片

? 因为c1和c2为char类型,其保存的数据范围为-128~127,当c1=197,c2=198时,已经超出了char类型所能够保存的数据范围,此时会进行相应的转换为c1=-59,c2=-58,只是第一行以字符输出时,c1=-59,c2=-58为不可显示字符,所以输出了?,而第二行以整数输出时就进行了相应的整数显示。

(3)如果将程序第3行改为

int c1, c2;

运行时会输出什么信息?为什么?

? 答: 会输出

技术分享图片

? 因为c1和c2为int时,第二行以整形输出自然能够保存的下,但第一行以字符输出时,虽然数据int能够储存,但是在输出时需要准换为字符,转换后数据就超出了范围,此时c1=-59,c2=-58,两者都为不可显示字符,所以就显示了?。

分析下面的程序: (1)运行时会输出什么信息?为什么?

原文:https://www.cnblogs.com/cyuyanchengxu/p/13617744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!