itgle.com

下面程序的输出是______。 main() {char *s="12134211"; int v1=0, v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default;v4++; case'1':v1++; case'3':v3++; case'2':v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4): }A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1

题目

下面程序的输出是______。 main() {char *s="12134211"; int v1=0, v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default;v4++; case'1':v1++; case'3':v3++; case'2':v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4): }

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8


相似考题
参考答案和解析
正确答案:C
解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。
更多“下面程序的输出是______。main(){char *s="12134211";int v1=0, v2=0,v3=0,v4=0,k;for(k=0;s[k];k ”相关问题
  • 第1题:

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

  • 第2题:

    下面程序的输出是_______。 main() {char*s="12134211"; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case'1':v1++; case'3':v3++; case'2':v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }

    A.v1=4,v2=2,v3=1,v4=1

    B.v1=4,v2=9,v3=3,v4=1

    C.v1=5,v2=8,v3=6,v4=1

    D.v1=8,v2=8,v3=8,v4=8


    正确答案:C
    解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。

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


    A

  • 第4题:

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

    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;}

    }

    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',执行case'1',i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为'2',执行case'2',i的值为1,因为没有break语句,继续执行其后的语句,到最后一小语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,case'4'也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[0]~v[2]的值一直没有变化,故选择B选项。

  • 第5题:

    下面程序的输出是______。 main() {char *s="12134211"; int v1=0, v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default,v4++; case'1':v1++; case'3':v3++; case'2':v2++; } printf("vl=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }

    A.v1=4,v2=2,v3=1,v4=1

    B.v1=4,v2=9,v3=3,v4=1

    C.v1=5,v2=8,v3=6,v4=1

    D.v1=8,v2=8,v3=8,v4=8


    正确答案:C
    解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。