单选题
已知字母c的ASCⅡ十进制代码为99,则执行以下语句后的输出结果为______。
char a='c';
a--;
printf("%d,%c/n",a+'2'-'0',a+'3'-'0');
A.d,e B.a--运算不合法,故有语法错
C.100,e D.格式描述和输出项不匹配,输出无定值
【正确答案】
C
【答案解析】[解析] C语言规定,所有字符常量可以作为整型常量来处理,因而字符常量也可参与算术运算。本题中字符变量a的初值为字符c,其对应整数值就是c的ASCⅡ码,其十进制代码为99,经过自减运算a--后,变量a所对应的整数值为98;虽然题中未给出字符'2'和'0'的ASCⅡ代码值,但是'2'-'0'是求字符'2'和字符'0'之间的距离为2。故a+'2'-'0'的值为100。同理可知,第二个输出项相当于算术表达式98+3,其值为101。按照题中所给定的格式描述符,第一个输出项应当以%d格式输出100,;第二个输出项应当以%c格式输出字符,已知字符c的ASCⅡ代码值为99,故不难推算出101的对应字符应该是字母e。