参考答案和解析
2
更多“若int i=1;执行下面程序段后,变量i的值是()。 switch (i) { case '1': i+=1 ; case '2': i+=1 ; case '3': i+=1 ; default : i+=1 ; }”相关问题
  • 第1题:

    下列程序段选择项,使i的运行结果为3的程序段是( )。

    A.int i=0,j=O; (i=2,(j++)+i);

    B.int i=1,j=0; j=i=((i=3)*2);

    C.int i=0,j=1; (j=1)?(i=1):(i=3);

    D.int i=1,j=1; i+=j+=1;


    正确答案:D

  • 第2题:

    以下程序的运行结果是______。 include fun(int a,int b) { int m=0,i=2; i+=m+1; m

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

    include<iostrearn.b>

    fun(int a,int b)

    {

    int m=0,i=2;

    i+=m+1;

    m=i+a+b;

    return m;

    }

    void main()

    {int k=4,m=1,p;

    p=fun(k,m);cout<<p<<end1;

    }


    正确答案:8
    8

  • 第3题:

    下列程序的输出结果是()。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,结束循环。

  • 第4题:

    下列程序的运行结果为【】。 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

  • 第5题:

    下列程序执行后的输出结果是 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

  • 第6题:

    下面程序执行后的结果是()。includeusing namespace std;void func1(int i);void func

    下面程序执行后的结果是( )。 #include<iostream> using namespace std; void func1(int i); void func2(int i); char st[]="hello, friend!"; void func1(int i) { cout<<st[i]; if(i<3){i+=2;func2(i);} } void func2(int i) { cout<<st[i]; if(i<3){i+=2;func1(i);} } void main() { int i=0;func1(i);cout<<endl;}

    A.ello

    B.hel

    C.hlo

    D.him


    正确答案:C
    解析:主函数中调用func1()函数,实参赋值为0,在该函数中先输出st[0],即“h,,;然后func1()函数又调用func2()函数,实参赋值为2,func2()函数运行时先输出st[2],即“1”;然后又调用func1()函数,实参赋值为4,func1()函数运行时先输出st[4],即“o”。

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

    有下列程序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");}执行后的输出结果是A.hello B.helC.hlo D.hlm


    正确答案:C
    根据变量作用域与其定义语句在程序中出现位置之间的关系,可把变量分为局部变量和全局变量两种。其中,在函数外部定义的变量叫做全局变量,又称为外部变量;在函数体内定义的变量是局部变量,又称为内部变量。全局变量的作用域是整个程序,而局部变量的作用域是定义它的函数或者程序段。
    在本题中,程序首先声明两个无返回值函数func1和func2,然后定义一个全局数组st。做这类除主函数外,有其他函数的试题时,首先需要分析其他函数来得知函数的作用,然后再看主函数。
    func1函数带有一个整型变量的形参,在函数体中,首先输出以形参作为下标的数组元素值,然后执行if条件判断语句,其条件为形参变量i<3。如果结果为真,则将变量i加2后保存,然后调用func2函数;如果条件结果为假,则结束该函数。
    从程序中不难看出,func2函数与func1函数基本类似,只是最后它对函数func1进行调用,与前者不同,两个函数是互相调用的。
    在主函数中定义一个变量i并赋值为0,然后调用函数func1,根据我们对函数func1的分析可知,输出st[0]即字符‘h’,而此时if语句的结果为真,执行i加2并调用func2函数操作。此时变量i的值为2,因此,输出st[2]即字符‘l’,此时函数func2中的if条件语句结果为真,同样执行i加2,并调用func1函数操作,然后通过func1函数输出st[4]即字符‘o’,此时由于变量i的值等于4,是大于3的,函数结束。程序运行到出口,最后输出换行。因此,本程序最终的输出结果是hlo。

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

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


    正确答案:错误

  • 第12题:

    单选题
    若要实现total=1+2+3+4+5求和,以下程序段错误的是(  )。
    A



    int i=1,total=1;
    while(i<5)
    {
     total+=i;
     i+=1;
    }

    B



    int i=1,total=0;
    while(i <=5)
    {
     total+=i;
     i+=1;
    }

    C



    int i=0,total=0;
    while(i <5)
    {
     i+=1;
     total+=i;
    }

    D



    int i=0,total=0;
    while(i <=5)
    {
     total+=i;
     i+=1;
    }


    正确答案: A
    解析:
    A项执行过程为:i=1,total=1,判断while循环条件1<5成立,total=1+1,i=2;判断循环条件执行函数体,直到i=4,total=1+1+2+3+4,i=5;i=5循环条件不成立,退出循环,A项不能实现题目要求,错误。B项执行过程:i=1,total=0,1<=5成立,total=0+1=1,i=2;直到i=5,total=1+2+3+4+5,i=6;i=6条件不成立,退出循环,程序正确。C项执行过程:i=0,total=0,0<5成立,i=1,total=1;直到i=5,total=1+2+3+4+5;i=5条件不成立,退出循环,程序正确。D项执行过程:i=0,total=0,0<=5成立,total=0,i=1;直到i=5,total=1+2+3+4+5,i=6;i=6条件不成立,退出循环,程序正确。答案选择A选项。

  • 第13题:

    下程序的输出结果是

    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;

    }

    A.31

    B.13

    C.10

    D.20


    正确答案:A
    解析:本题也是考察switch语句中的break的作用,由于题中所有的case分支都没有 break,故将顺序执行这些分支。只要耐心按照流程将数据累加到a上,就可以得到正确答案为A。

  • 第14题:

    下列程序的输出结果是( )。 #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,结束循环。

  • 第15题:

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

  • 第16题:

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

    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

  • 第17题:

    以下程序的输出结果是 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。

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

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

  • 第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选项。