数字字符0的ASCII值为48,若有以下程序 main(){ char a=’1’,b=’2’; printf("%c,", b++); printf("%d\n", b-A) ;} 程序运行后的输出结果是

admin2009-01-15  24

问题 数字字符0的ASCII值为48,若有以下程序  main(){    char a=’1’,b=’2’;    printf("%c,", b++);    printf("%d\n", b-A) ;}     程序运行后的输出结果是

选项 A、3,2
B、50,2
C、2,2
D、2,50

答案4

解析 本题考查了字符型变量的运算及输出。在C语言中,字符型变量可以看作整型变量来对待,与整型所不同的是字符型变量在内存中只占1个字节,而整型是2个字节。字符型变量中所存的数值是它所表示字符的ASCII码值。ASCII码中的一些相关字符是顺序排列的,如’0’的ASCII码值为48,’1’为49以此类推一直到’9’;’A’的ASCII码值为65,’B’为66以此类推一直到’Z’。本题程序一开始就定义了两个字符型变量a和b,并初始化为字符’1’和’2’,由于题目已经告诉,0,的ASCII值为48,所以变量a、b中所存储的数据分别为49和50。第一条输出语句是按字符格式输出表达式 b++的值和字符’,’,后缀自加表达式b++的值就是b的值,不过执行完该表达式之后,变量b中的值会增1。所以第一次输出的字符串是"2,",执行完后b中的数据为51.第二条输出语句是按整型格式输出表达式b-a的值和一个换行符’\n’,b-a的值是51-49=2,故最终的输出应该为"2,2\n",’\n’是非打印字符,即不会在屏幕上显示什么,所以,4个选项中选项C符合题意。
转载请注明原文地址:https://kaotiyun.com/show/5nXp777K
0

最新回复(0)