2 dabentudou dabentudou 于 2016.01.14 00:08 提问

已知字母A的ASCII码为十进制的65,下面程序的输出是

已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.
#include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); }
A) 67,D B) B,C C) C,D D) 不确定的值

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.14 00:12
已采纳

选A
printf("%d,%c\n",ch1,ch2);
第一个%d,按照数字输出

q4444tita
q4444tita   2016.01.14 08:52

要知道char的加减,可以按照他对应的asc表的值加减,A对应65,'3'对应51,'5'对应53,'6'对应54,ch1的值就是67,题目中ch1是按照数字输出的,就是
67,ch2的值是68,68对应的asc表中的值是D,题目中要求ch2按照字符输出,好吧那就是字符'D'了。首先你要明白,计算机中12345不一定就是阿拉伯数字
用单引号括起来,就是一个字符,是一个符号,而符号对应的数字值在asc表中有,你可以理解成数字就是字典中的偏旁部首或者拼音,字符就是字典中
对应的那个汉字。

qq_27564553
qq_27564553   2016.01.14 08:53

这种问题在编译器里编译下就能得到答案了,然后再去思考为什么?

dabentudou
dabentudou   2016.01.14 00:10

刘佳佳说选A,为什么不选择C?

91program
91program 如果是 printf("%c,%c\n",ch1,ch2); 就是选C,但第一个格式化的字符串是 %d 就要输出数字、而不是字母
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!