初学C语言4

初学C语言4,第1张

C程序设计第三章第四题

3.4分析下面的程序:

#include
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和c2是字符型数据,占用一个字节。%c 字符,输出的是97,98在ASCII码表中对应的字符,%d 有符号十进制整数,输出的是97和98.

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

	c1 = 197;
	c2 = 198;

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

//改后代码
#include

int main()
{
	char c1, c2;
	c1 = 197;
	c2 = 198;
	printf("c1 = %c, c2 = %c\n", c1, c2);
	printf("c1 = %d, c2 = %d\n", c1, c2);
	return 0;
}

 输出结果截图:

 分析:197和198超出ASCII码表(0-127)范围,计算机无法识别所以输出。输出整型时,整型的大小范围是(-2^7 ~ 2^7-1),197和198超出范围,反向计数从-128开始计数,结果就是-59和-58。

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

int c1, c2;

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

//改后代码
#include
int main()
{
	int c1, c2;
	c1 = 197;
	c2 = 198;
	printf("c1 = %c, c2 = %c\n", c1, c2);
	printf("c1 = %d, c2 = %d\n	", c1, c2);
	return 0;	
}

输出结果截图:

 分析:第一行输出结果同第二问解释。

作者的编译水平有限,欢迎指出代码中的不足,欢迎改进,谢谢点赞。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1295963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存