更多“执行下面程序段后,k的值是:()。 int k=2; switch(k+1) { case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k; }”相关问题
  • 第1题:

    以下程序运行结果是【8】 。

    long fib (int g)

    { switch (g)

    { case 0∶return 0;

    case 1∶case2∶return 1;

    }

    return (fib (g-1)+fib(g-2));

    }

    main ()

    { long k;

    k=fib (5);

    printf ("k=%(d\n)",k);

    }


    正确答案:
    k=5

  • 第2题:

    有以下程序 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>0&&n<5); } 程序运行后的输出结果是

    A.235

    B.235

    C.2356

    D.2356


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

  • 第3题:

    下列程序的输出结果是______。 main() { char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } vii]++; } for(k=O;k<4;k++) printf("%d ",v[k]); }

    A.4211

    B.0008

    C.4678

    D.8888


    正确答案:B

  • 第4题:

    有以下程序includemain(){int k=5,n=0;while(k>0){switch(k){defhult:break;case 1:n+

    有以下程序 #include<stdio.h> main() {int k=5,n=0; while(k>0) {switch(k) {defhult:break; case 1:n+=k: case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

  • 第5题:

    若int k=8;则执行下列程序后,变量k的正确结果是main(){ int k=8; switch(k)  { case 9:k+=1;  case 10:k+=1;  default:k+=1;  case 11:k+=1;break; } printf("%d\n",k);} A.12 B.1 C.10 D.9


    正确答案:C
    在本题中,程序首先定义了一个整型变量k,并赋初值8,然后执行switch选择结构。由于k的初值为8,与程序中给出的选择结构不匹配,那么只能执行default结构,即执行k+=1,将变量k的值变为9,执行完后,由于没有break语句,程序接着往下执行,执行case 11结构,将变量k的值再加1,然后执行break语句,跳出switch选择结构。此时变量k的值为10,然后执行输出语句输出k的值。因此,本题程序的最后输出结果为10,答案选C。

  • 第6题:

    下列程序运行后的输出结果是 ______。 include void main(){ int s=0,k for(k=7;k>=0

    下列程序运行后的输出结果是 ______。

    include<iostream.h>

    void main()

    {

    int s=0,k

    for(k=7;k>=0;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;

    }


    正确答案:s=7
    s=7

  • 第7题:

    以下程序的输出结果是( )。 main { char*s="12134211"; int v[4]=(0,0,0,0),k,i; for(k=0;s[k];k++) { switch(s[k]) { case1:i=0; case2:i=1; case3:i=2; case4:i=3;} } v[i]++: } for(k=0;k<4;k++)printf("%d",v[k]);

    A.4 2 1 1

    B.0 0 0 8

    C.4 6 7 8

    D.8 8 8 8


    正确答案:B
    本题考查switch,case语句,当k=0时,循环体成立,执行switch后表达式的值为1,执行case1,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为2,执行case2,i的值为1,因为没有break语句,继续执行其后的语句,到最后一小语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,case4也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[0]~v[2]的值一直没有变化,故选择B选项。

  • 第8题:

    有下列程序: 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的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印

  • 第9题:

    有以下程序: main( ) { int k=5,n=0; do { switch(k) { case 1: case 3:n+=l;k--;break; defalut:n=0;k--; case 2: case 4:n+=2;k--;break: } printf("%d",n); }while(k>0&&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次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

  • 第10题:

    下列程序执行后,k的值是 public class Testddd{ public static void main(String args[ ]) { inti;10,j=18 K=30; switch(j-i) { case 8:k++; case 9:k+ =2; case 10:k+ =3; default:k/=j; } System.out.println(k); } }

    A.31

    B.32

    C.2

    D.33


    正确答案:C
    解析:仔细观察case后的语句,每个都没有用break关键字;在switch语句中,是通过break关键字来退出switch语句的。而在题目中,case8:k++;后没有break,则继续执行k+=2;这时还没有break语句,继续执行,这时的k的值是33;一直执行完k+=3;这时k的值是36;default语句是当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句。在题目中,因为在执行完case10:k+=3;后还没有break,所以要执行k=k/j得k的值是2。break语句是用来退出循环,并从紧跟该循环语句的第―条语句处开始执行;而continue语句则是跳过循环体中下面尚未执行的语句,回到循环体的开始处继续下一轮的循环。

  • 第11题:

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

  • 第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


    正确答案: 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。答案选择C选项。

  • 第13题:

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

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:在switch语句中,若case语句后没有break语句,则执行完本层case后会继续执行后面case中的操作。k的初值为5,while条件成立,进入switch(5),执行default语句,退出switch,执行k--后得4,再进入while循环,执行switch(4),退出switch,再执行k--后得3,继续while循环,执行switch(3),n=n+k=3,再执行k--后得2,进入while循环,执行case 2,再执行n=n+k=5,然后执行k--后得1,最后一次进入while循环,执行case1,n=n+k=6,然后继续执行case 2和case 3后的语句,n=n+k=7,且执行k--后得0,此时while条件不满足,退出循环,输出n的值为7。

  • 第14题:

    下面程序的运行结果是()#includestdio.hmain(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break;default:k=k/3;}k++;}while(c'。

    :A.k=3

    B.k=4

    C.k=2

    D.k=0


    正确答案:B

  • 第15题:

    有以下程序: main() {int k=5,n=0; while(k>0) {switch(k) { default:break; case 1:n+=k; case 2: case3:n+=k; } k-; } printf("%d\n",n); } 程序运行后的输出结果是 ______。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:在switch语句中,表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的 case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。所以在本题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行“case3:n+=k;”得n=3,然后执行default;当k=2时,执行“case2:case3:n+=k”得n=5,然后执行default;当 k=1时,执行“case1:n+=k;case2:case3:n+=k;”使得n加两次k,得到n=7。

  • 第16题:

    若int k=8;,则执行下列程序后,变量k的正确结果是main(){ int k=8; switch(k) { case 8:k+=1; case 10:k+=1; case 11:k+=1;break; default:k+=1; } printf("%d\n",k);}A.12 B.11 C.10 D.9


    正确答案:B
    在本题中,程序的作用是通过switch语句改变已经被赋初值的变量k的值。程序中首先将变量k赋初值为8,然后使用switch选择结构。由于k的值为8,在switch结构中找到与之对应的块case 8执行,完成一次k加1的操作,此时变量k的值变为9,由于没有break语句,程序接着往下执行,执行case 10程序块,再完成一次k加1的操作,此时k的值为10,又由于没有break语句,程序接着往下执行,执行case 11,再完成一次k加1的操作,此时k的值为11,程序碰到break语句,跳出switch结构。然后执行输出语句,输出的结果为11。

  • 第17题:

    下面程序的运行结果是 ______。 include void main() { char str[]="SSSWLIA",c; int

    下面程序的运行结果是 ______。

    include<iostream.h>

    void main()

    {

    char str[]="SSSWLIA",c;

    int k;

    for(k=2;(c=str[k]!='\0';k++)

    {

    switch(c)

    {

    case'I':++k;break;

    case'l';continue;

    default;c


    正确答案:SWL*
    SWL*

  • 第18题:

    有下列程序: main { int k=5,n=0; while(k>0) {switch(k) {dcfault:break; case 1:n=n+k; case 2: case 3:n+=k; } k--; } printf("%d\n".n); } 程序运行后的输出结果足( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第19题:

    下列程序的运行结果是( )。 #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。

  • 第20题:

    有以下程序

    #include<stdio.h>

    main( )

    {int C=O,k;

    for (k=1;k<3;k++)

    switch(k)

    {default:C+=k;

    case 2:C++;break;

    cKse 4:C+=2;break;

    }

    prinff(“%d\n”,C);

    {

    程序运行后的输出结果是

    A.3

    B.5

    C.7

    D.9


    正确答案:A
    解析:第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没有break语句,所以不会跳出switch结构,会接着执行case2后面的语句,即c=c+1=2,然后跳出switch;第二次循环时,k=2,直接执行case2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行输出语句。

  • 第21题:

    有以下程序: include main ( ) {int k=5,n =0; while ( k>0){switch (k) {default: b

    有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:在程序中,当L的值为5和4时,case都没有与其匹配的值,所以执行default语句;当k=3时,执行n+=k;得n=3;当L=2时,执行case2:然后顺序执行case3:n+=k;得n=5;当k=1时,执行case1:n+=k;得n=6,然后顺序执行case2:和case3:n+=k;使得n=7。

  • 第22题:

    有下列程序:

    main

    { int k=5,n=0;

    while(k>0)

    {switch(k)

    {default:break;

    case 1:n=n+k;

    case 2:

    case 3:n+=k;

    }

    k--;

    }

    printf("%d\n".n);

    }

    程序运行后的输出结果足( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第23题:

    若int k=8;则执行下列程序后,变量k的正确结果是

    main()

    {int k=8;

    switch(k)

    {case 9:k+=1;

    case 10:k+=1;

    case 11:k+=1;break;

    default:k+=1;}

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

    A.12

    B.11

    C.10

    D.9


    正确答案:D

  • 第24题:

    单选题
    有以下程序: #include  main() {  int i=1,k=0;  for(;i<6;)  {   switch(i%3)   {    case 0:k++;    case 1:k++;break;    case 2:k++;continue;   }   i+=1;  }  printf(%d,k); } 程序的运行情况是(  )。
    A

    形成无限循环

    B

    输出6

    C

    输出5

    D

    输出4


    正确答案: A
    解析:
    本题执行过程为:i=1,k=0,i<6成立,执行for循环:i%3=1,匹配case1,k=1,退出switch,i=2;i<6成立,执行for循环:i%3=2,匹配case2,k=2,执行continue,退出switch,且不执行i+=1,i=2不变,i<6成立,执行下一次for循环,以后的循环情况完全一致,i=2不会改变,形成无限循环。答案选择A选项。