大学C语言,为什么选B,求解!

如题所述

第1个回答  2018-01-09
//解释如下,b输出的字符实际上是空格字符,代码如下
#include <stdio.h>
int main()
{
char a,b;
int s;
printf("please input a and b:\n");
a=getchar();
b=getchar();
s=a+b;
printf("a=%c,b=%c",a,b);
printf("\na=%d,b=%d\n",a,b);
return 0;
}
//运行结果
F:\c_work>a.exe
please input a and b:
1 2
a=1,b=
a=49,b=32  //字符1的ASCII码是49,空格的ASCII码是32
//为什么是空格呢?
输入: 1<空格>2<回车>
因此标准输入缓冲区的内容是"1<空格>2\n",那么它把1赋值给了变量a,空格字符赋值给了变量b,赋值就结束了,字符2实际上并没有被赋值给变量b的,所以输出结果是答案B选项。

本回答被提问者采纳
第2个回答  2018-01-09
输入1 2
getchar读入两个字符.
a='1'
b=' '//空格.
所以 输出a b值 就是
a=1 b=
b=后面有一个空格的.
选B本回答被网友采纳
第3个回答  2018-01-09
getchar函数以用户输入换行作为结束标志,一个getchar取一个字符,a取1,b取空格
第4个回答  2018-01-09