C语言 求详细过程: main() { char a,b,c,d; scanf(”%c%c”,&a,&b); c=getchar(); d=getchar(); printf(

main()
{
char a,b,c,d;
scanf(”%c%c”,&a,&b);
c=getchar(); d=getchar();
printf(”%c%c%c%c\n”,a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)
12<CR>
34<CR>
则输出结果是:

解释:由于你定义的是字符变量,那么a,b,c,d都只能接受一个字符,要么是一个单个数如1-9或者是一个单个字符a,b,c等等。如是你输入12时被a,b接受,然后你输入<CR>3时被c,d接收。可是你输入4时已经无法接收了,再输入<CR>就执行了printf命令。
另外要提醒你的是你输入的双引号是中文的,希望养成好习惯,否则很麻烦的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-23
scanf(%c%c",&a,&b);输入a,b的值,不过a和b之间千万别打空格也不要先输入a再打回车键再输入b,如果那样的话,编译系统会将回车、空格当作一个字符输入的,c=getchar();d=getchar();输入c和d
正确输入为 abcd或其他字符中间不能有其他符号
第2个回答  2011-03-23
对于scanf函数输入时a和b之间可以有空格,回车。因为scanf函数是能把空格,回车滤去的,但你最后输入的回车确认是不能滤去的。getchar函数没有这个功能,它能接受任何字符,包括控制字符。也就是说空格,回车都能接收,并且每次只能接收一个字符。
第3个回答  2011-03-23
答案:12<CR>3
解答:空格,回车,都是字符都会被接收,所以只会输出前四个字符
第4个回答  2011-03-22
scanf(”%c%c”,&a,&b); 输入a,b的值,c=getchar(); d=getchar(); 然后d获得b的值,再然后.....(你的程序没罗).
相似回答