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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 22:10:43
c语言 字母地址若有以下定义和语句char c1='b',c2='e'printf(

c语言 字母地址若有以下定义和语句char c1='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.输出项与对应的格式控制不一致,输出结果不确定

c语言 字母地址若有以下定义和语句char c1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A); 则输出结果 ( )A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定
字符的计算是用它对应的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