有以下程序: #include <stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf(%c%c%c%c,&c1,&c2,&c3,&c4); c5=getchar();

admin2013-06-11  27

问题 有以下程序:    #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

答案8

解析 在题目中,程序执行到scanf()函数时,会暂停等待用户输入4个字符,按题意输入 123<回车>后,字符1~3被分别输入到c1~c3中,而c4会得到一个换行符’\n’。然后执行第1个getchar()函数,由于前面的scanf()函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678<回车>后,缓冲区第1个字符’4’被读入并赋给c5,第2个getchar()函数会读入缓冲区第2个字符’5’。所以最后依次输出c1、c2、c5、c6的值后,屏幕上的结果是1245。故应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/kNJp777K
0

最新回复(0)