有以下程序 #include <stdio.h> main() {char c1,c2,c3,c4,c5,c6; s

题目
有以下程序 include main() {char c1,c2,c3,c4,c5,c6; s

有以下程序 #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
解析:此题考核的是字符输入输出函数的应用,getchar()函数只能接收一个字符,即使输入多个字符后再按回车还是只能将第—个字符读入。scanf()和printf()是按格式输入输出的函数,当输入123回车>,scanf()分别读入字符“1”、“2”、“3”、“回车>”;接下来输入45678回车>,则getchar()读入字符“4”赋值给c5,字符“5”赋值给c6,所以输出语句输出结果为1245。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

【简答题】分析下面的程序,写出程序的运行结果。 #include <stdio.h> int main() { char c1='a',c2='b',c3='c',c4='110',c5; c5=c4+1; printf("a%c b%c c%ctabcn",c1,c2,c3); printf("%c %cn",c4,c5); return 0; }


程序运行结果:10 分析递归函数调用过程: 第1次递归: N=1,RETURN $RES = 2*(FUN(2)+1)。 第2次递归: N=2,RETURN $RES = 2*(FUN(3)+1)。 第3次递归: N=3,RETURN 1。 由此返回:FUN(3)=1; FUN(2)=4;FUN(1)=10

第2题:

有以下程序includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,

有以下程序 #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
解析: putchar(c1)输出1,putchar(c2)输出 2,pfintf("%c%c\n",c5,c6)输出45。

第3题:

有以下程序:includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2

有以下程序: #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(格式控制,地址表列),该函数段执行scanf函数后c1='1'、c2='2'、c3='3'、c4='\n',getchar为字符输入函数,函数的值就是从输入设备得到的字符。

第4题:

有下列程序:includemain(){ char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c

有下列程序:#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<CR>45678<CR>则输出结果是( )。

A.1267

B.1256

C.1278

D.1245


正确答案:D
解析:当用scanf函数从键盘输入数据时,每行数据的末尾按下回车键(Enter键)之前,可以任意修改。但按下回车键putchar(c1)(Enter键)之后,seanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入123CR>时,变量c1、c2、c3的值分别为1、2、 3,当输入45678CR>时,变量c5、c6的值4和5。所以用输出函数putchar(c1)输出1,putchar(c2)输出2,printf("%c%c\n",c5,c6)输出45。所以选项D)为正确答案。

第5题:

有下列程序:includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2

有下列程序: #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<CR> 45678<CR> 则输出结果是(

A.1267

B.1256

C.1278

D.1245


正确答案:D
解析: 当用scanf函数从键盘输入数据时,每行数据的末尾按下回车键(Enter键)之前,可以任意修改。但按下回车键putchar(c1) (Enter键)之后,scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入123CR>时,变量c1、c2、c3的值分别为1、2、3,当输入45678CR>时,变量c5、c6的值4和5。所以用输出函数putchar(c1)输出1,putchar(c2)输出2,printf("%c%c\n",c5,c6)输出45。所以选项D)为正确答案。

第6题:

有以下程序.

#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);

}

程序运行后,若从键盘输入(从第l列开始)

123<回车>

45678<回车>

则输出结果是( )。

A.1267

B.1256

C.1278

D.1245


正确答案:D
scanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,'\n'。

第7题:

有以下程序. #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); } 程序运行后,若从键盘输入(从第l列开始) 123<回车> 45678<回车> 则输出结果是( )。

A.1267

B.1256

C.1278

D.1245


正确答案:D
scanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,\n。

第8题:

有以下程序:includemain(){ charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&

有以下程序: #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()函数时,会暂停等待用户输入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。

第9题:

有以下程序:include main( ) { ehar c1,c2,c3,c4,c5,c6; scanf( "% c% c% c% c", &

有以下程序: #include <stdio.h> main( ) { ehar c1,c2,c3,c4,c5,c6; scanf( "% c% c% c% c", &c1, &c2, &c3, &c4); c5 = getehar( ); c6 = getchar( ); putehar(c1); putehar(c2); printf("%c%c\n", c5, c6); } 23 <回车> 45678 <回车>

A.1267

B.1256

C.1278

D.1245


正确答案:D
解析:getchar函数只能接收一个字符,即使输入多个字符也只能将第一个字符读入。当输入123回车>时:seanf函数分别读人字符'1'、'2'、'3'、'回车>';再输入45678回车>,则getehar读人字符'4'赋值给c5,字符'5'赋值给c6,所以输出结果为1245。