王者荣耀月爱:请教c语言问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 23:12:35
main()
{ char a='1',b='2';
printf("%c,",b++);
printf("%d ",b-a);
}
程序运行后的输出结果是 C
A)3,2
B)50,2
C)2,2
D)2,50
为什么选c呀?

第一个printf的时候输出的是b的原始数据,第二个printf输出的时候b已经执行了b++,变成3,然后运算b-a=3-1=2,所以选C。

去看一下C语言关于++运算符的运行优先级的描述

因为输出b的时候b并没有实现++的功能.而在之后的程序中b已经运行了++,这时b=3,实现b-a的程序时候就为3-1结果就为2

printf(\"%c,\",b++);
等价与
printf(\"%c,\",b);
b=b+1;
就是把b按字符‘2’打印

printf(\"%d \",b-a);
是把b的ascii码原98加1后得99
减去a的ascii码97得2
按数字输出

C语言26分的人飘过

第一个printf的时候输出的是b的原始数据,第二个printf输出的时候b已经执行了b++,变成3,然后运算b-a=3-1=2