itgle.com
参考答案和解析
D
更多“若int i=10; 执行下列程序后,变量i的正确结果是 switch (i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; }”相关问题
  • 第1题:

    下列程序的输出结果是( )。 #include<stdio.h> main( ) { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=1; case 1: case 2:a+=2; default:a+=3; } } printf("%d",i); }

    A.19

    B.1

    C.6

    D.8


    正确答案:A
    本题考查switch语句。当i=1时,执行casel,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。

  • 第2题:

    有下列程序:main{int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(&qu

    有下列程序:

    main

    {int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

    for(i=0;i<9;i+=2)s+=*(t+i);

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

    }

    程序执行后的输出结果是( )。

    A.A.45

    B.20

    C.25

    D.36


    正确答案:C
    在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

  • 第3题:

    以下程序的输出结果是 include void main() { inta=0,i; for(i=1 ;i<5;i++) { swi

    以下程序的输出结果是 #include <iostream.h> void main() { int a=0,i; for(i=1 ;i<5;i++) { switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } } cout<<a<<end1; return; }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:本题考核for语句和switch语句的综合运用。switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束。在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。因为每个case语句后面都没有break语句,所以,第1次循环(i=1)执行后,a的值为8。第2次循环(i=2)执行过后,a的值变为16。第3次循环(i=3)执行过后,a的值变为26。第4次循环执行过后,a的值变为31。然后执行i++,这的循环条件为假,结束循环。所以最后a的值为31。

  • 第4题:

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

    A.hello

    B.hel

    C.hlo

    D.hlm void func1 (int i); void func2 (int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){ i+=2;func2(i); } } void func2 (int i) { printf("%c",st[i]); if(i<3){ i+=2;func1(i); } } main() { int i=0;func1(i);printf("\n");}


    正确答案:C

  • 第5题:

    以下程序的输出结果是 include void main (){int a=0, i;for (i=1; i<5; i++){swi

    以下程序的输出结果是 #include <iostream.h> void main () { int a=0, i; for (i=1; i<5; i++) { switch (i) { case 0 : case 3 : a+=2; case 1 : case 2 : a+=3; default : a+=5; } } cout<<a<<endl; return; }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:本题考核for语句和switch语句的综合运用。switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束。在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。因为每个case语句后面都没有break语句,所以,第1次循环(i=1)执行后,a的值为8。第2次循环(i=2)执行过后,a的值变为16。第3次循环(i=3)执行过后,a的值变为26。第4次循环执行过后,a的值变为31。然后执行i++,这时循环条件为假,结束循环。所以最后a的值为31。

  • 第6题:

    若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。

  • 第7题:

    以下程序的输出结果是 main() { int a=0,i; for(i=1;i<5;i++) { switch(i) {case0: case3:a+=2; case 1: case2:a+=3; default:a+=5; } } printf(“%d\n”,A) ; }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行该case分支的语句。如果在该语句的后面没有break语句,则按顺序继续执行下一个case分支,直到遇到break语句或switch多分支语句结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i==1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束。

  • 第8题:

    下列程序段的执行结果是______ 。 k=0 For j=1 To 2 For i=1 To 3 k = i+ 1 Next i For i=1 To 7 k= k + 1 Next i Next j Print k

    A. 11

    B.10

    C.9

    D.8


    正确答案:A

  • 第9题:

    以下程序的输出结果是( )。 main() { int a=0,i; for(i=1;i<5;i++) { switch(i) { casc 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:在本题中,因为每个case语句后面都没有break语句,所以,第一轮循环(i=1)执行过后a的值为8,第2轮(i==2)执行过后a的值为16,第3轮(i==3)执行过后a的值为26,第4轮(i==4)执行过后a的值为31,然后执行“i++”语句,这时循环条件为假,循环结束。所以,4个选项中A正确。

  • 第10题:

    若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是 ______。

    A.for (i=1,p=1; i<=5; i+ +)p* = i;

    B.for (i=1;i<=5; i+ +) {p=1;p*=i;}

    C.i=1;p= 1;while( i<=5) { p* =i;i+ +; }

    D.i=1;p=1;do{ p*=i;i+ +; } while (i<=5);


    正确答案:B
    解析:选项B中每次执行循环体都要执行p=1,无法保存上次的运算结果,执行完while循环后p=5。

  • 第11题:

    若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

  • 第12题:

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

  • 第13题:

    下列程序的输出结果是()。includemain(){int a=0,i; for(i=1;i<5;i++) { switch(i) { c

    下列程序的输出结果是( )。 #include<stdio.h> main() { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=1; case 1: case 2:a+=2; default:a+=3; } printf("%d",A) ; }

    A.19

    B.18

    C.6

    D.8


    正确答案:A
    解析:本题考查switch语句。当i=1时,执行case1,因为没有遇到break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2时,执行case2,因为没有遇到break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。

  • 第14题:

    有以下程序 main( ) { int a=0,i; for(i=1;i<5; i++) { switch (i) { case 0 case 3:a+ =2; case 1; case 2;a+=3; default, a+=5; } } printf("%d\n",a) ; }

    A.31

    B.13

    C.10

    D.20


    正确答案:A

  • 第15题:

    下列程序的运行结果为【】。 include void main(void) {int i=10;switch(i){case 9:i=i

    下列程序的运行结果为【 】。

    include<iostream.h>

    void main(void)

    {int i=10;

    switch(i)

    { case 9:i=i+1;

    case 10:i=i+1;

    case 11:i=i+1;

    default:i=i+1;

    }

    cout<<i<<endl;

    }


    正确答案:13
    13

  • 第16题:

    下列程序执行后的输出结果是 void funcl(int i); void func2(int i); char st[]="hello,friend!"; void funcl(int i) {printf("%c",st[i]); if(i<3){i+=2;func2(i);}} void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);}} main() {int i=

    A.hello

    B.hel

    C.hlo

    D.hlm


    正确答案:C

  • 第17题:

    若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。

  • 第18题:

    下列程序执行后的输出结果是( )。 void func1 (int i); void func2(int i); char st[]="hello,friend!"; void func1 (int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);}

    A.hello

    B.hel

    C.hol

    D.hlm


    正确答案:C

  • 第19题:

    以下程序的输出结果是()。includemain(){int a,i;a=0; for(i=1;i<5;i++) {switch(i){ c

    以下程序的输出结果是( )。 #include <stdio.h> main() { int a,i;a=0; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf("%d\n",a); }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:多分支选择switch语句的一般形式为:switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;┆case常量表达式n:语句n;default:语句n+1;}其语义是:计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,不再进行判断,继续执行后面所有case后的语句。如果表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

  • 第20题:

    下列程序执行后的输出结果是( )。 void funcl(int i); void func2(int i); char st[]="hello,friend!"; void funcl(int i) { printf("%C",st[i]); if(i<3) { i+=2;func2(i); ) } void func2(int i) {printf("%c",st[i]); if(i<3) { i+=2;func1(i); } } main() {int i=0;funcl(i);printf("\n"); )

    A.hlm

    B.hlo

    C.hello

    D.he1


    正确答案:B
    解析:本题定义了两个很相似的子函数互相调用,子函数首先输出st[i],然后判断i是否小于3,是的话就让i增2后调用另一个子函数。在主函数中只调用了一次funcl(0),funcl()输出st[0],然后调用func2(2),func2()输出st[2],又调用func1(4),此时i不小于3,所以funcl()只输出st[4]就返回了。故最终输结果为h1o,正确答案为B。

  • 第21题:

    下列程序的输出结果是( )。 #include<stdio.h> main { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=1; case 1; case 2:a+=2; default:a+=3; } } printf("%d",a); }

    A.19

    B.1

    C.6

    D.8


    正确答案:A
    本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。

  • 第22题:

    下列程序的输出结果是( )。

    #include<stdio.h>

    main

    { int a=0,i;

    for(i=1;i<5;i++)

    { switch(i)

    { case 0:

    case 3:a+=1;

    case 1;

    case 2:a+=2;

    default:a+=3;

    }

    }

    printf("%d",a);

    }

    A.19

    B.1

    C.6

    D.8


    正确答案:A
    本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。

  • 第23题:

    执行i=-1;while(i<10)i+=2;i++;后,i的值为11。


    正确答案:错误

  • 第24题:

    单选题
    以下程序段中,循环次数不超过10的是(  )。
    A

    int i=10;do{i=i+1;}while(i<0);

    B

    int i=int i=5;do{i+=1;}while(i>0);

    C

    int i=1;do{i+=2;}while(i!=10);

    D

    int i=6;do{i-=2;}while(i!=1);


    正确答案: C
    解析:
    A项,执行循环体i=i+1,判断条件i<0不成立,退出循环,循环次数为1,a项正确。b项执行一次循环体后i=6,判断条件为i>0,由于执行循环体时i始终在增加,i>0一直成立,程序陷入无限循环,循环次数大于10,B项错误。C项执行循环体一次后i=3,判断条件为i!=10,由于循环体中i每次增加2,所以永远不可能等于10,故程序会陷入无限循环,循环次数大于10,C项错误。D项执行循环体一次后i=4,判断条件为i!=1,由于循环体中i每次减少2,所以永远不可能等于1,故程序会陷入无限循环,循环次数大于10,D项错误。答案选择A选项。