C语言编程初学问题

分析下面的程序:#include<stdio.>intmain(){charc1,c2;c1=97;c2=98;printf("c1=%c,c2=%c\n",c1,c2)... 分析下面的程序:
# include<stdio.>
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)如果将程序第三行改为
int c1,c2;
运行时会输出什么信息?为什么?
展开
 我来答
不喜欢放风筝
推荐于2018-02-28 · TA获得超过345个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:147万
展开全部
(1)程序输出:c1=a;c2=b;
c1=97;c2=98;
因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b;
(2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,因此输出的是197-256=-59,198-256=-58,貌似用%c一般机器输出的是?吧,一般的就输出0-127能输出字符吧。
(3)换成int和(2)的%c一样,%d就是int的值。
yiqiu2324
2012-10-30 · TA获得超过632个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:86.9万
展开全部
首先明白下面几点:
1.单个字符在内存中以二进制补码形式存储(对应ASCII表)
2.一个字符占一字节,那么无符号字符取值范围为:0~255,有符号为:-128~+127
看这个程序:
c1: 97 98
二进制:0110 0001 0110 0010
printf("c1=%c,c2=%c\n",c1,c2);//输出格式为%c,也就是以字符形式输出,对应ASCII表中的'a','b'

printf("c1=%d,c2=%d\n",c1,c2);//以十进制形式输出,97,98

②查表得出相应字符
③int c1,c2;//这时候c1,c2中的值是以32位(4B)存储的,数据的取值范围变了:-2^31~2^31-1
输出结果同①.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友544cc2310
2012-10-30 · TA获得超过119个赞
知道答主
回答量:94
采纳率:0%
帮助的人:56.3万
展开全部
建议你在vc6.0上自己动手试试。
这种题目还是要自己动手,做出才有感觉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
学益得智能硬件
2021-03-16
知道答主
回答量:79
采纳率:0%
帮助的人:3.5万
展开全部

初学C语言 要不要抄代码

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由哉高处
2012-10-30 · 超过28用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:66.1万
展开全部
你咋这么懒尼,自己上机试试不就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式