c语言 有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是__ 20

 我来答
八哥说科技
高粉答主

2020-03-06 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:113 获赞数:78618

向TA提问 私信TA
展开全部

输出结果为:3,E。

解析:C语言中的字符类型是用 ASCII 码存储运算的,运算 c2-c1时,等于 'e'-'b',等于'e'的 ASCII 码 101 -  'b'的 ASCII 码 98,等于 3 ,又因为 printf 输出式样化字符串中使用规定符%d输出,所以是直接输出整型数据 3。

而运算 c2-'a'+"A"等价于 'e'-'a'+"A",等价于'e'的ASCII 码-'a'的ASCII 码+"A"的ASCII 码='E'的ASCII 码。而printf 输出式样化字符串中使用规定符%c输出结果,说以是输出字符 E。

因此,最终输出结果为:3,E。

扩展资料:

输出规则及相关规律:

%d:要求输出十进制有符号整数

%u:要求十进制无符号整数

%o:无符号以八进制表示的整数

%g:把输出的值按照%e或者%f类型中输出长度较小的方式输出

数字的ASCII 码按0到9顺序递增。

字母的ASCII 码按A到Z顺序递增。

几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48

参考资料来源:百度百科-printf()

参考资料来源:百度百科-ASCII

风若远去何人留
2017-07-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
应该是
printf("%d,%c\n",c2-c1,c2-'a'+'A');
c2-c1='e'-'b'=3

c2-'a'+'A' = 'E'
输出结果为
3,E
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hoyoki0123
2017-07-04 · TA获得超过123个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:68.6万
展开全部
字符会被转成asc码当整数计算!!!c2-c1 = 'e'-'b' = 3;中间相隔三个嘛,连续的字符肯定是相隔1的,不然就不符合设计原理!! C2-'a'+'A' 不用想,肯定是小写转大写,应该是'E'; 一个大写字符和小写字符做差,就是大写字符和小写字符之间的asc码差码!!再加上一个小写字符,就是小写转大写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式