有以下程序:
#include<stdio.h>
main()
char c1, c2, c3, c4, c5, c6;
scanf("%c% c%c%c", &c1, &c2, &c3, &c4);
c5=getchar(); c6=getchar();
putchar(c1); putchar(c2);
printf("%c%c\n", c5, c6);
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是( )。
A) 1267
B) 1256
C) 1278
D) 1245
参考答案:D
解析: 本题考查的是输入输出函数。scanf()是格式化输入函数;getchar()函数从键盘缓冲区读入下一个字符;putchar()输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到scanf()函数时,会暂停等待用户输入4个字符,按题意输入123<回车>后,字符1~3被分别输入到c1~c3中,而c4会得到一个换行符'\n'。然后执行第1个getchar()函数,由于前面的scanf()函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678<回车>后,缓冲区第一个字符4输入到C5,第二个字符5输入到C6,所以本题应该选择D)。