单选题有以下程序: #include main() {char c;while((c=getchar())!=''){switch(c-'2'){case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;}}printf(); } 程序运行后从第一列开始输入以下数据: 2473<回车> 程序的输出结果是(  )。A 668977B 4444C 6677877D

题目
单选题
有以下程序: #include  main() {  char c;  while((c=getchar())!='')  {   switch(c-'2')   {    case 0:    case 1:putchar(c+4);    case 2:putchar(c+4);break;    case 3:putchar(c+3);    default:putchar(c+2);break;   }  }  printf();  } 程序运行后从第一列开始输入以下数据: 2473<回车> 程序的输出结果是(  )。
A

668977

B

4444

C

6677877

D

68766


相似考题
参考答案和解析
正确答案: A
解析:
本题执行过程为:读入c='2',c-'2'=0,首先匹配case0,依次输出6,6,后执行break语句,跳出分支结构;读入c='4',c-'2'=2,匹配case2,输出8,执行break语句,跳出分支结构;读入c='7',c-'2'=5,匹配default,输出9,执行break语句,跳出分支结构;读入c='3',c-'2'=1,匹配case1,依次输出7,7,执行break语句,跳出分支结构。输入回车,结束循环。答案选择A选项。
更多“单选题有以下程序: #include main() {  charc;  while((c=getchar())!='')  {   switch(c-'2')   {    case0:    case1:putchar(c+4);    case2:putchar(c+4);break;    case3:putchar(c+3);    default:putchar(c+2);break;   }  }  printf(); } 程序运行后从第一列开始输入以下数据: 2473回车 程序的输出结果是”相关问题
  • 第1题:

    有以下程序. #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。

  • 第2题:

    有以下程序includemain(){int c;while((c=getchar())!='\n'){switch(c-'2'){case 0:ca

    有以下程序 #include<stdio.h> main() { int c; while((c=getchar())!='\n') { switch(c-'2') { case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break;}} printf("\n")} 从第一列开始输入以

    A.66877

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析: 本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。

  • 第3题:

    有以下程序:includemain(){int c; while((c=getchar())!='\n') {switch(c-'2'){case 0

    有以下程序: #include<stdio.h> main() { int c; while((c=getchar())!='\n') { switch(c-'2') { case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break;}} printf("\n")} 从第一列开始输入以下数据<CR>代表一个回车符。 2743<CR> 程序的输出结果是

    A.66877

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上。并且字符可以看作整数参与运算。

  • 第4题:

    有以下程序 #include<stdio.h> main() { int c; while((c=getchar())!='\n'){ switch(c-'2'){ case O:case1:putchar(c+4); case 2:putchar(c+4);braeak; case3:putchar(c+3); default:putchar(c+2);break;} } } 从第一列开始输入以下数据,↓代表一个回车符。 2473↓ 程序的输出结果是_______。

    A.668977

    B.668966

    C.66778777

    D.6688766


    正确答案:A
    解析:getchar()函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据 C-'2'的值进行分支选择;putchar()是在屏幕上打印一个字符,最后的结果应当为668977。

  • 第5题:

    有以下程序: #include main( ) { int k,n=0;char c,str[]="teach"; for(k=0;str[k];k++) { c=str[k]; switch(k) { case 1:case 3:case 5:putchar(c);printf("%d",++n);break; default:putchar(′N′); } } } 序的运行结果是( )。

    A.Ne1NN

    B.e1a2e3

    C.Ne1Nc2N

    D.Na1NNNN


    答案:C
    解析:程序执行过程:k=0时,c=str[0]=′t′,执行default分支,输出N;k=1时,c=′e′,执行case 1分支,没有break语句,继续执行case 3分支,没有break语句,继续执行case 5分支,输出e1;k=2时,c=′a′,输出N;k=3,c=′c′,输出c2;k=4,c=′h′,输出N。故程序的输出结果为Ne1Nc2N。

  • 第6题:

    若程序执行时的输入数据是“2473”,则下述程序的输出结果是includevoid main(){int cs;

    若程序执行时的输入数据是“2473”,则下述程序的输出结果是 #include<stdio.h> void main() { int cs; while((cs=getchar())!=;'\n') {switch(cs-'2') { case 0 case 1:putchar(cs+4); case 2:putchar(cs+4); break; case 3:putchar(cs+3);default:putchar(cs+2),}}}

    A.668977

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析:本题主要考查switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

  • 第7题:

    有以下程序   #include      main( )  {char C1,C2:C3,C4,C5,C6; scanf("%C%C%C%C”,&Cl,&C2,&C3,&C4);      C5=getchar( );C6=getchar( );      Putchar(c1);putchar(c2);  printf(”%C%C/n”,C5,C6);      }  程序运行后,若从键盘输入(从第l列开始)      123<回车>  45678<回车>    则输出结果是()

    • A、1245
    • B、1256
    • C、1267
    • D、1278

    正确答案:A

  • 第8题:

    单选题
    有以下程序: #include main() {  if('\0'==0)putchar('1');  if('0'==0)putchar('2');  if('a'>'b')putchar('3'); } 程序运行后的输出结果是(  )。
    A

    1

    B

    123

    C

    23

    D

    3


    正确答案: A
    解析:
    '\0'是转义字符,表示空字符,对应的ASCII码为0,成立,输出1;'0'是字符常量和0不等,'a'和'b'都是字符常量,因为'b'>'a',不执行if后面的语句,所以最后输出只有1,答案选择A选项。

  • 第9题:

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

    1245

    B

    1256

    C

    1278

    D

    1267


    正确答案: B
    解析:
    scanf是格式化输入函数;getehar函数从键盘缓冲区读入下一个字符;putchar输出一个字符;printf函数是格式化输出函数。在题目中,程序执行到scanf函数时,会暂停等待用户输入4个字符,按题意输入123<回车>后,字符'1'~'3'被分别赋值到c1~c3中,而c4会得到一个换行符''。然后执行第1个getchar函数,由于前面的scanf函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用户输入,按题意输入45678<回车>后,缓冲区第一个字符'4'赋值c5,第二个字符'5'赋值给c6。答案选择A选项。

  • 第10题:

    单选题
    有以下程序:#include int disp(char *str){ while(*str) putchar(*str++); putchar('#'); return *str;}main(){ printf(%d,disp(C##123));}程序运行后的输出结果是(  )。
    A

    C##123#0

    B

    C##1230

    C

    C##0

    D

    C##123#\0


    正确答案: B
    解析:
    disp函数中,存在while循环,当指针指向地址单元存储的字符不等于空字符'\0',输出此字符,否则退出循环,输出'#'。在主函数中调用disp函数时,字符串"C##123"先全部输出,当指针指向字符串最后的空字符时,退出循环,输出'#',并且再将'\0'返回输出。由于disp函数返回类型为int,所以返回'\0'的ASCII码0,答案选择A选项。

  • 第11题:

    单选题
    有如下程序#include main() { if('\0'== 0)putchar('X'); if('0'== 0)putchar('Y'); if('a'>'b')putchar('Z'); printf();}程序运行后的输出结果是(  )。
    A

    X

    B

    XYZ

    C

    YZ

    D

    Y


    正确答案: C
    解析:
    考查ASCII字符,字符'\0'、'0'、'a'、'b'的ASCII码值分别为0、48、97、98。putchar函数是向标准输出设备上输出一个字符。程序执行过程为:判断'\0'==0成立,输出X;判断'0'==0不成立,不输出;判断'a'>'b'不成立,不输出。答案选择A选项。

  • 第12题:

    单选题
    有以下程序:#include main(){ int k,n=0;char c,str[]=teach; for(k=0;str[k];k++) {  c=str[k];  switch(k)  {   casel: case3: case5: putchar(C); printf(%d,++n); break;   default:putchar('N');  } }}程序的运行结果是(  )。
    A

    Ne1NN

    B

    e1a2e3

    C

    Ne1Nc2N

    D

    Na1NNNN


    正确答案: A
    解析:
    程序执行过程:k=0时,c=str[0]='t',执行default分支,输出N;k=1时,c='e',执行case 1分支,没有break语句,继续执行case 3分支,没有break语句,继续执行case 5分支,输出e1;k=2时,c='a',输出N;k=3,c='c',输出c2;k=4,c='h',输出N。故程序的输出结果为Ne1Nc2N。答案选择C选项。

  • 第13题:

    有以下程序:includemain(){int c; while((c=getchar() )!='\n') {switch(c-'2'){ case

    有以下程序: #include <stdio.h> main() { int c; while((c=getchar() )! ='\n') { switch(c-'2') { case 0: case 1: putchar(c+4); case 2:putehar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; } } } 运行程序,从第一列开始输入以下数据: 2473<回车>则程序的输出结果是( )。

    A.668977

    B.668966

    C.66778777

    D.6688766


    正确答案:A
    解析:本题考查switch语句。while中的表达式判断用getchar函数从键盘接收的字符是否是回车符,若不是,则执行switch多分支选择语句,根据表达式c-'2'的值进行分支选择;函数putchar是在屏幕上输出一个字符,最后的结果应当为668977。

  • 第14题:

    有以下程序

    #include

    main( )

    { int c;

    while((c=getchar())!='\n')

    { switch(c-'2')

    { case0:

    case 1:putchar(c+4);

    case 2:putchar(c+4);break;

    case 3:putchar(c+3);

    case 4:putchar(c+3);break;}}

    printf("\n")}

    从第一列开始输入以下数据代表一个回车符。

    2743

    程序的输出结果是

    A.66877

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。

  • 第15题:

    有以下程序:includemain(){int c;while((c=getchar())!='\n'){switch(c-'3'){case 0:c

    有以下程序: #include<stdio.h> main() {int c; while((c=getchar())!='\n') {switch(c-'3') {case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break; }} printf("\n");} 从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为( )。

    A.77889

    B.77868

    C.776810

    D.7.78866e+007


    正确答案:A

  • 第16题:

    有以下程序

    #include<stdio.h>

    main()

    { int c;

    while((c=getchar())!=′\n)

    { switch(c-′2′)

    { case 0:

    case 1:putchar(c+4);

    case 2:putchar(c+4);break;

    case 3:putchar(c+3);

    case 4:putchar(c+3);break; } }

    printf("\n")}

    从第一列开始输入以下数据<CR>代表一个回车符。

    2743<CR>

    程序的输出结果是

    A.66877

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析:本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。

  • 第17题:

    若程序执行时的输入数据是"2473",则下述程序的输出结果是

    #include<stdio.h>

    void main()

    { int cs;

    while((cs=getchar())!=; '\n')

    {switch(cs-'2')

    { case 0

    case 1: putchar(cs+4);

    case 2: putchar(cs+4);

    break;

    case 3: putchar(cs+3); default: putchar(cs+2); } } }

    A.668977

    B.668966

    C.6677877

    D.6688766


    正确答案:A
    解析:本题主要考查switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

  • 第18题:

    有以下程序:includemain(){int c;while((c=getchar())!='\n')switch(c-'2'){case 1:pu

    有以下程序: #include<stdio.h> main() { int c; while((c=getchar())!='\n') switch(c-'2') {case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+4); case 4:putchar(c+4);break; } printf("\n"); } 输入以下数据,<CR>代表一个回车符, 2743<CR> 程序的输出结果是( )。

    A.877

    B.966

    C.778

    D.766


    正确答案:A
    解析:本题通过一个while循环向键盘缓冲区读取字符,直到读到的字符是回车键结束循环。当读到的c为'2'时,c-'2'为0, switch语句中没有case 0:所以没有输出,继续读下一个;当c为'7'时,c-'2'=5,也没有输出;当c为'4'时,c-'2'=2,执行case 2:后面的语句输出一个字符c+4='4'+4='8';当c为'3'时,c-'2'=1,执行case 1:后面的语句,连续输出两次c+4='3'+4='7'。故程序输出结果是877,应该选择A。

  • 第19题:

    有以下程序: #include void main() {while(putchar(getchar())!=’?’);} 当输入"hello?"时,程序的执行结果是()

    • A、hello
    • B、dijob
    • C、dijob?
    • D、hello?

    正确答案:D

  • 第20题:

    单选题
    有以下程序:#include main(){ char c; do {  c = getchar();  putchar(c); }while(c!='#'); printf();}执行时如输入:abcdefg##<回车>,则输出结果是(  )。
    A

    abcdefg#

    B

    abcdefg

    C

    abcdefg##

    D

    ##


    正确答案: B
    解析:
    程序执行过程为:读入一个字符存入缓存区,判断字符是否为“#”,如不是,继续读入字符,直到读入的字符是“#”,存入缓存区,退出循环,将缓冲区字符一个个输出,结果为abcdefg#。答案选择A选项。

  • 第21题:

    单选题
    有以下程序 #include  char fun(char *c) {  if(*c<='Z'&&*c>='A')   *c-='A'-'a';  return *c; } main() {  char s[81],*p=s;  gets(s);  while(*p)  {   *p=fun(p);   putchar(*p);   p++;  }  printf(); } 若运行时从键盘上输入OPEN THE DOOR<回车>,程序的输出结果是(  )。
    A

    OPEN THE DOOR

    B

    OPEN tHE dOOR

    C

    open the door

    D

    Open The Door


    正确答案: D
    解析:
    在ASCII码表中,同一字母的小写编码比大写编码大32。fun函数中对大字字母执行*c-= 'A'-'a',即*c = *c-(-32),把*c从大写变成了小写。该程序的功能就是先将数组s中的大写字符转变为小写字符,然后输出s。答案选择C选项。

  • 第22题:

    单选题
    有以下程序: #include void main() {while(putchar(getchar())!=’?’);} 当输入"hello?"时,程序的执行结果是()
    A

    hello

    B

    dijob

    C

    dijob?

    D

    hello?


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    有以下程序: #include  mian() {  char c;  for(;(c=getchar())!= '#';) putchar(++c); } 执行时如输入为:abcdefg##<回车>,则输出结果是(  )。
    A

    abcdefg

    B

    bcdefgh$

    C

    bcdefgh$$

    D

    bcdefgh


    正确答案: A
    解析:
    for循环每次将函数getchar()的输入值赋给变量c,如果不等于#,则执行putchar(++c),即将当前变量c的ASCII码加1后,再输出改变后的变量c的值。当变量c的值等于#,则终止循环,所以输出应该是bcdefgh。答案选择D选项。