早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c语言字母地址若有以下定义和语句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);则输出结果()A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定

题目详情
c语言 字母地址
若有以下定义和语句char c1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A); 则输出结果 ( )
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
▼优质解答
答案和解析
字符的计算是用它对应的ASCII码进行计算.
c2='e'; ASCII码是101
c1='b';ASCII码是98
所以c2-c1=3
又是%d输出,所以第一个输出的就是3
c2-‘a’+A,这里的A没有单引号,编译器会把它认为是一个变量,而之前没有定义A,所以会报错说A没定义.
如果有单引号,即c2-'a'+'A',那还是用它们各自的ASCII码进行计算.
e 对应101
a 对应97
A 对应65
所以最终结果是69
而输出格式是%c,所以要找69对应的字符,是E,所以最终输出大写字母E