niusouti.com

阅读下列程序段,写出运行结果 int a=2,b=7,c=5; switch (a>0) { case 1:switch (b<0) { case 1:printf("@");break; case 2:printf("!");break; } case 0:switch (c==5) { case 0:printf("*");break; case 1:printf("#");break; case 2:printf("$");break; } default:printf("&"); }

题目

阅读下列程序段,写出运行结果 int a=2,b=7,c=5; switch (a>0) { case 1:switch (b<0) { case 1:printf("@");break; case 2:printf("!");break; } case 0:switch (c==5) { case 0:printf("*");break; case 1:printf("#");break; case 2:printf("$");break; } default:printf("&"); }


相似考题
更多“阅读下列程序段,写出运行结果 int a=2,b=7,c=5; switch (a>0) { case 1:switch (b<0) { case 1:printf("@");break; case 2:printf("!");break; } case 0:switch (c==5) { case 0:printf("*");break; case 1:printf("#");break; case 2:printf("$");break; } default:printf("&"); }”相关问题
  • 第1题:

    有以下程序:includemain(){intx=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a+

    有以下程序: #include<stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1: b++;break; } case 2:a++;b++;break; case 3:a++;b++; } printf("a=%d,b=%d\n",a,B); } 程序的运行结果是( )。

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D

  • 第2题:

    下面程序的输出结果为( )。 main( ) { int a=1,b=0; switch(a) { case 1:switch (b) { case 0: printf("**0**"); break; case 1: printf("**1**"); break; } case 2: printf("**2**"); break; }}

    A.**0**

    B.**0****2**

    C.**0****1****2**

    D.有语法错误


    参考答案B

  • 第3题:

    下列程序的输出结果是______。 main() { int i=3; switch(i) { case1: case2:printf("%d",i); case3: case4:break; default: printf ("OK"); } }

    A.0

    B.3

    C.OK

    D.没有任何输出


    正确答案:D
    解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case4:”后面的语句为break强行退出switch语句,所以,本题没有任何输出。

  • 第4题:

    有下列程序:includemain(){ int a=6,b=7,m=1;switch(a%2){ case 0:m++;break;case 1:m

    有下列程序:#include<stdio.h>main(){ int a=6,b=7,m=1; switch(a%2) { case 0:m++;break; case 1:m++; switch(b%2) { defaut:m++; case0:m++;break; } } printf("%d\n",m);}程序运行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考查switch语句。第一个switch语句,因为a=6,a%2=0,所以执行case0.将m加1,遇到break语句跳出switch语句,结束循环。

  • 第5题:

    以下程序的输出结果是

    #include<stdio.h>

    main()

    {int a=15,b=21,m=0;

    switch(a%3)

    {case 0:m++;break;

    case 1:m++;

    switch(b%2)

    { default:m++;

    case 0:m++;break; } }

    printf("%d\n",m);}

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    解析:考查switch语句的使用。switch语句的条件是"a%3=15%3=0",所以执行case 0后面的语句,m++;m=1,然后就执行break,跳出switch语句,所以最后输出m的值为1。

  • 第6题:

    下列程序的运行结果是( )。 #include<stdio.h> void main {int s=0,k; for(k=7;k>1;k--) {switch(k) {case 1: case 4: case 7: s++: break; case 2: case 3: case 6:break; case 0: case 5: s+=2: break; }} printf("s=%d",s); }

    A. s=3

    B.s=4

    C.s=5

    D.无输出结果


    正确答案:B
    运行程序,当k=7时switch(7)执行case:7,s++后s=1,break跳出。k--,k=7继续循环switch(6),执行case6;直接跳出循环,k--变成5,继续循环switch(5),执行case5后面的语句s+=2,也相当于s=s+2,此时s为3,break跳出,k变为4,继续循环,执行case4为空,继续执行case7;s++为4跳出循环,k--变为3,继续循环,执行case3,空语句往下执行case6,跳出,k--为2,继续循环,执行case2;空语句往下执行case3,空语句再执行case7,跳出循环,k--为1不符合循环,退出,此时S=4。

  • 第7题:

    有下列程序:includemain(){int a=6,b=7,m=1; switch(a%2) {case0:m++;break;case 1=m+

    有下列程序: #include<stdio.h> main() { int a=6,b=7,m=1; switch(a%2) { case0:m++;break; case 1=m++; switch(b%2) { defaut:m++; case0:m++;break; } } printf("%d\n",m); } 程序运行后的输

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析: 本题考查switch语句。第一个switch语句,因为a=6,a%2=0,所以执行case0,将m加1,遇到break语句跳出switch语句,结束循环。

  • 第8题:

    有以下程序: main() { int a=15,b=21,m=0; switch(a%3) {case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0;m++;break; } } printf("%d\n",m); } 程序运行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    解析:在switch语句中break语句的作用是退出分支语句,若没有break语句则一直向下执行。本题中首先计算switch后面括号里的表达式a%3,即15%3为0:执行case0:后面的语句“m++;”,m自加1,即m为1;遇到break语句;然后跳出switch语句,所以最后输出的m值为1。所以选项A正确。

  • 第9题:

    有以下程序: main( ) { int a=15,b=21,m=0; switch(a%3) { case 0:m++;break; case l:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf("%d\n",m); } 程序运行后的输出结果是

    A.1

    B.2

    C.3

    D.4


    正确答案:A

  • 第10题:

    有以下程序: include main() {int a=6,b=7,m=1;switch(a%2){ case 0:m++;break;case 1

    有以下程序: #include<stdio.h> main() { int a=6,b=7,m=1; switch(a%2) { case 0:m++;break; case 1 :m++; switch(b%2) { defaut:m++; case0:m++;break; } } printf("%d\n",m); }

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考查swish语句。第一个switch语句,因为a=6,a%2=0,所以执行case 0,将m加1,遇到break语句跳出switch语句,结束循环。

  • 第11题:

    下列程序的输出结果是(). main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d/n",a,b); }

    • A、a=1,b=0
    • B、a=2,b=1
    • C、a=1,b=1
    • D、a=2,b=2

    正确答案:B

  • 第12题:

    单选题
    有以下程序#include main(){ int x=1,y=0,a=0,b=0; switch(x) {  case 1:      switch(y)      {       case 0:a++;break;       case 1:b++;break;      }  case 2:a++;b++;break;  case 3:a++;b++;break; } printf(a=%d,b=%d,a,b);}程序的运行结果是(  )。
    A

    a=1,b=0

    B

    a=2,b=2

    C

    a=1,b=1

    D

    a=2,b=1


    正确答案: D
    解析:
    当执行swicth语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到switch语句体结束;每当执行到break语句时,立即跳出 switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正起到分支的作用。本题中,x=1,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=1,接下来遇到break,跳出内层switch;由于外层分支中没有break语句,会继续执行外层分支2,执行a++,b++,此时a=2,b=1;然后遇到break语句,跳出外层switch。答案选择D选项。

  • 第13题:

    以下程序段的运行结果是( )。 include main() {int x=2,y=1: switch(x) {case 1: switch

    以下程序段的运行结果是( )。 include<stdio.h> main() {int x=2,y=1: switch(x) {case 1: switch(y) {case 0:printf("x=2,y=1\n");break; case 1:printf("y=1\n");break; } case 2:printf("x=2\n"); } }


    正确答案:x=2
    x=2

  • 第14题:

    有下列程序:

    #include<stdio.h>

    main

    { int a=6,b=7,m=1;

    switch(a%2)

    { case 0:m++;break;

    case 1:m++;

    switch(b%2)

    { default:m++;

    case 0:m++;break;

    }

    }

    printf("%d\n",m);

    }

    程序的运行结果是( )。

    A.3

    B.2

    C.4

    D.1


    正确答案:B
    本题考查switch语句及break的用法。第一个switch语句,因为a=6.a%2=0,所以执行“case0,m++;”,将m加1,遇到break语句跳出switch语句,结束循环。不执行下面的switch。

  • 第15题:

    以下程序的运行结果是( )。

    main()

    (int a=2,b=7,c=5;

    switch(a>0)

    {case 1:switch(b<0)

    {case 1:switch(");break;

    case 2:printf("!");break;

    }

    case 0:switch(c==5)

    {case 0:printf("*");break;

    case 1:printf("");break;

    case 2:printf("$");break;

    }

    default:printf ("&");

    }

    printf("\n");

    }


    正确答案:#&
    #& 解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case 0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。

  • 第16题:

    设有说明:int a=1,b=0;,则执行以下语句的输出结果是______。 switch(a) {case 1: switch(b) {case 0:printf("**0**\n");break; case 1:printf("**1*\n");break; } case 2:printf("**2**\n");break; }

    A.**0**

    B.**0** **2**

    C.**0** **1** **2**

    D.switch语句中存在语法错误


    正确答案:B
    解析:本题是switch-case语句的嵌套使用,外层switch语句的第一个分支(嵌套switch语句)执行完后,没有break;语句,将继续执行第二个分支。

  • 第17题:

    有下列程序:includemain(){int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0

    有下列程序: #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,B) ; } 程序的运行结果是( )。

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个switch(x)判断,进入case 1中进行嵌套判断,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接着执行case 2,a自加为2,b自加为1,遇到break,结束循环,此时a=2,b=1,故选项D)正确.

  • 第18题:

    有下列程序: main() {int k=5,n=0; do {switch(k) {case 1: case 3:n+=1;k--;break; default:n=0;k--; case 2: case 4;n+=2;k--;break; } printf("%d",n); }while(k>O&&n<5); } 程序运行后的输出结果是( )。

    A.235

    B.0235

    C.02356

    D.2356


    正确答案:B
    解析: 因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case 4:这个分支,结果是n=2,k=3,打印出2;这时n=2,k=-3,程序进行第3次循环,执行case 3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第 4次循环,执行case 2:case 4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印

  • 第19题:

    有以下程序:includemain(){int a=6,b=7,m=I;switch(a%2){case 0:m++;break;case 1:m++

    有以下程序: #include<stdio.h> main() {int a=6,b=7,m=I; switch(a%2) {case 0:m++;break; case 1:m++; switch(b%2) {defaut:m++; case 0:m++;break; } } printf("%d\n",m); } 程序运行后的输出结果是( )。

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考查switch语句。因为a=6,所以a%2=0,因此第一个switch语句,执行case 0,将m加1,遇到break语句跳出switch语句,输出m值为2。

  • 第20题:

    下列程序段的输出结果是【】。int n="c"; switch(n++) {default:printf("error"

    下列程序段的输出结果是【】。

    int n="c";

    switch(n++)

    {default:printf("error");break;

    case "a":

    case "A":

    case "b":

    case "B":printf("good");break;

    case "c":case"C":printf("pass");

    case "d":case"D":printf("warn");

    }


    正确答案:

    n++是在执行完其所在的语句后再加1,因此,在执行case的时候,n的值依然为'c',执行case'c'后面的语句,先打印出“pass”;在执行完case'c'后,未遇到break跳出switch,便接着执行下面的语句,又打印出warn。所以此题输出结果是passwarn。

  • 第21题:

    有以下程序 #include<stdi0.h> main( ) {int a[]={2,3,5,4),i; for(i=0;i<4;i++) switch(i%2) {case 0:switch(a[i]%2) {case 0:a[i]++;break; case l:a[i]--; }break; case1:a[i]=0; } for(i=0;i<4;i++)printf("%d",a[i]);printf("\n"); } 程序运行后的输出结果是( )。

    A.3344

    B.2050

    C.3040

    D.0304


    正确答案:C
    本题考查嵌套分支语句。共输出4个值:当i=0时,i%2取余后还是0,则执行ease0语句,继续switch语句,此时i为0,数据的下标是从0开始的,a[03的值为2,则a[0]%2=0,继续执行case0,数组a[0]++,值变为3,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第一个值为3。i++后值为1,i%2=1%2取余后值为1,执行casel,将0赋给a[l],退出开关语句,输出第二个值为0。i++后值为2,i%2=2%2取余后值为0’a[2]的值为5,则a[2]%2=1,继续执行casel,数组a[2]--,值变为4,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第三个值为4。i++后值为3,i%2=3%2取余后值为1,执行casel,将0赋给a[3],退出开关语句,输出第四个值为0。结果为3040。

  • 第22题:

    下列程序的输出结果是_______。 main() { int i=3; switch(i) { case1: case 2:printf("%d",i) case 3: case 4:break; default : printf("OK") } }

    A.0

    B.3

    C.OK

    D.没有任何输出


    正确答案:D
    解析:在题中,i的值为3,由于“case3:”后面没有break语句,所以继续向下执行“case4:”后面的语句,由于“case 4:”后面的语句为break强行退出switch语句,所以,本题没有任伺输出。

  • 第23题:

    单选题
    有以下程序#include main(){ int x=1,y=0,a=0,b=0; switch(x) {  case 1:      switch(y)      {       case 0:a++;break;       case 1:b++;break;      }  case 2:a++;b++;break;  case 3:a++;b++; } printf(a=%d,b=%d,a,b);}程序的运行结果是(  )。
    A

    a=2,b=1

    B

    a=2,b=2

    C

    a=1,b=1

    D

    a=1,b=0


    正确答案: C
    解析:
    当执行swicth语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到switch语句体结束;每当执行到break语句时,立即跳出 switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正起到分支的作用。本题中,x=1,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=1,接下来遇到break,跳出内层switch;由于外层分支中没有break语句,会继续执行外层分支2,执行a++,b++,此时a=2,b=1;然后遇到break语句,跳出外层switch。答案选择A选项。

  • 第24题:

    单选题
    有以下程序:#include main(){ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) {  case 0:      switch(a[i]%2)      {       case 0:a[i]++;break;       case 1:a[i]--;      }break;  case 1:a[i]=0; } for(i=0;i<4;i++)printf(%d,a[i]); printf();}程序运行后的输出结果是(  )。
    A

    3344

    B

    2050

    C

    3040

    D

    0304


    正确答案: B
    解析:
    main函数的主体是一个for循环语句,for循环中包含一个switch语句,如果判断条件为0则进入第二个switch语句,如果判断语句为1则执行“a[i]=0”,最后将数组顺序输出。所以程序功能是将数组下标为奇数的项设为0,数组下标为偶数的项,如果对应的元素为偶数则加1,如果对应的元素为奇数则减1。答案选择C选项。