c语言入门基础题!

#include<stdio.h>#include<windows.h>intmain(){charc1,c2;SetConsoleOutputCP(437);//设置A... #include <stdio.h>
#include <windows.h>
int main()
{
char c1,c2;
SetConsoleOutputCP(437); //设置ASCII 码扩展字符集输出时使用的代码页
c1=42;
c2=43;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}
(1)运行时会输出什么信息?
(2)如果将程序中c1,c2的赋值改为
c1=242;
c2=243;
运行时会输出什么信息?
(3)如果将程序中c1,c2的定义改为
int c1,c2;
上述(1)(2)两种情况下运行时会输出什么信息?
展开
 我来答
wjcmqyd
2018-04-04 · TA获得超过5629个赞
知道大有可为答主
回答量:3236
采纳率:79%
帮助的人:828万
展开全部
答:(1) 因为42、43对应的ASCII码为*、+,所以用%c输出是:*、+;因为42、43二进制数8位表示为:0010 1010、0010 1011,没有超过8位可表示的最大正数127,所以用%d输出是42、43。
(2) 因为242、243对应的扩展ASCII码为≥、≤,所以用%c输出是:≥、≤;因为242、243二进制数8位表示为:1111 0010、1111 0011,超过8位可表示的最大正数127,所以用%d输出时将其视为负数,1111 0010、1111 0011分别为-14、-13,故输出为:-14、-13。
(3) 当程序中c1,c2的定义改为int c1,c2;时。(1)的情况与原来相同;
(2)输出对应的扩展ASCII码仍然为≥、≤;因为242、243都在int类型数据的正数范围内,所以用%d输出时就是:242、243。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式