更多“若有如下程序:main(){int k,x=0,y=0;for(k=0;k<=2;k++)switch(k){case0:X++;case1:y++;case2:X++ ”相关问题
  • 第1题:

    以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

    以下程序运行后的输出结果是【 】。

    include<stdio.h>

    main()

    { int k=1,s=0;

    do{

    if((k%2)!=0) continue;

    s+=k; k++;

    }while(k>10);

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

    }


    正确答案:s=0
    s=0 解析:do-while循环结构的形式如下:
    do
    循环体
    while(表达式);
    循环的执行过程如下:
    ①执行do后面循环体中的语句。
    ②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
    ③退出do-while循环。
    在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

  • 第2题:

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

  • 第3题:

    下列语句序列执行后,k的值是______。 int x=10,y=30; do{ y-=x; X++; }while(x++<y--);

    A.0次

    B.1次

    C.2次

    D.3次


    正确答案:C
    解析:题目中的循环为“直到型”循环,至少做1次,选项A可以被排除;程序首先执行循环体,得到x=11,y=20,然后计算终止条件值为true,而x和y的值分别改变为12和19:接着进行第二次循环,执行循环体,得到x=13,y=7,然后计算终止条件值为false,退出循环,因此执行了2次循环,答案为选项C。

  • 第4题:

    下列程序的运行结果是()。includevoid sub(int*s,int*y){static int m=4;*y=s[0];m++;}

    下列程序的运行结果是( )。 #include<stdio.h> void sub(int*s,int*y) {static int m=4; *y=s[0]; m++; } void main() {int a[]={1,2,3,4,5},k; int x; printf("\n"); for(k=0;k<=4;k++) {sub(a,&x); printf("%d,",x); } }

    A.1,1,1,1,1,

    B.1,2,3,4,5,

    C.0,0,0,0,0,

    D.4,4,4,4,4,


    正确答案:A
    解析:本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。

  • 第5题:

    下面程序的运行结果是 ______。 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*

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

    下列程序的运行结果是()。includevoid sub(int*s,int*y){static int m=4:*y=s[m];m--;}

    下列程序的运行结果是( )。 #include<stdio.h> void sub(int*s,int*y) {static int m=4: *y=s[m]; m--; } void main() {int a[]={1,2,3,4,5},k,x; printf("\n"); for(k=0;k<=4;k++) {sub(a,&x); printf("%d,",x); } }

    A.5,4,3,2,1,

    B.1,2,3,4,5,

    C.0,0,0,0,0,

    D.4,4,4,4,4,


    正确答案:A
    解析:本题考查的是静态变量以及函数的实参与形参之间的地址值传递。sub()函数数中定义的变量m是一个静态变量,系统可为其分配固定的存储空间,重复使用时,变量的值保留;所以当mam()函数中的for循环中语句sub(a,&x);执行时,sub函数中m的值依次是4,3,2,1,0;因为变量x进行的是地址值传递,所以最后依次输出的是数组a的元素a[4]、a[3]、a[2]、a[1]、a[0]。

  • 第8题:

    以下程序的输出结果是_______。includemain(){char*a="abcdefghi";int k;fun(a) ;puts

    以下程序的输出结果是_______。 #include<string.h> main() {char*a="abcdefghi";int k; fun(a) ;puts(a) ; } fun(char *s) { int x,y; char c; for(x=0,y=strlen(s)-1; x<y; x++,y--) { c=s[y]; s[y]=s[x];s[x]=c;} }

    A.ihgfedcba

    B.abcdefghi

    C.abcdedcba

    D.ihgfefghi


    正确答案:A
    解析:观察子函数fun()可知,它是实现—个数组首末元素位置互相依次交换。联系主函数,可以看出,是对字符串中的元素依次进行首末位置的对调。

  • 第9题:

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

  • 第10题:

    在下面程序运行后,输出结果为 ______。includevoid count(int x[],int n,int &y

    在下面程序运行后,输出结果为 ______。 #include<iostream.h> void count(int x[],int n,int &y){ int k; y=0; for(k=0:k<n;k++) if(x[k]<0) y++; } void main(){ int b[]={2,1,-8,-3,7,2,4,6,0,-13}; int x; count(b,10,x); cout<<“x”<<x<<end1; }

    A.x=3

    B.x=5

    C.出错

    D.x=0


    正确答案:A

  • 第11题:

    下面哪一个循环会导致死循环()

    • A、for (int k = 0; k < 0; k++)
    • B、for (int k = 10; k > 0; k--)
    • C、for (int k = 0; k < 10; k--)
    • D、for (int k = 0; k > 0; k++)

    正确答案:D

  • 第12题:

    单选题
    下面哪一个循环会导致死循环()
    A

    for (int k = 0; k < 0; k++)

    B

    for (int k = 10; k > 0; k--)

    C

    for (int k = 0; k < 10; k--)

    D

    for (int k = 0; k > 0; k++)


    正确答案: B
    解析: 暂无解析

  • 第13题:

    有以下程序: #include<stdio.h> void fun(int*s) { static int i=0; do{s[J]=s[J]+s[j+I];}while(++j<2); } main( ) { int k.a[l0]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)pfintf("%d",a[k]); printf("\n"); } 程序运行后的输出结果是( )。

    A.12345

    B.23445

    C.34756

    D.35745


    正确答案:D
    本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

  • 第14题:

    有以下程序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条语句。

  • 第15题:

    请阅读以下程序:includevoid fun(int s[]){static int j=0; dos[j]+=s[j+1]; while(++

    请阅读以下程序: #include<stdio.h> void fun(int s[]) { static int j=0; do s[j]+=s[j+1]; while(++j<2);} main() { int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)printf("%d",a[k]);} 上面程序的输出是

    A.34756

    B.23445

    C.35745

    D.12345


    正确答案:C
    解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5},所以正确答案为C)。

  • 第16题:

    有以下程序: #include<stdio.h> main( ) { char*s="[2]34";int k=0,a=0; whil(s[k+1]!=\0) { k++; if(k%2=o){a=a+(s[k]-0+1);continue; } a=a+(s[k]-0); printf("k=%d a=%d\n",k,a); } 程序运行后的输出结果是( )。

    A.k=6 a=11

    B.k=3 a=14

    C.k=4 a=12

    D.k=5 a=15


    正确答案:C
    输出结果:k=1a=2k=2a=4k=3a=7k=4a=12

  • 第17题:

    以下程序的输出结果是【】。 include viod main() {char sl[5]= "ABCD", s2=[5];int k

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

    include<iostream. h>

    viod main() {

    char sl[5]= "ABCD", s2=[5];

    int k;

    for(k=0;k<4:k++)

    s2[k]=(sl[k]- '0' +1) + '0' ;

    s2[k]= '\0' ;

    cout<<s2;


    正确答案:BCDE
    BCDE

  • 第18题:

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

  • 第19题:

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

    A.235

    B.235

    C.2356

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

  • 第20题:

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

    A.3

    B.5

    C.7

    D.9


    正确答案:A
    本题考查了switch开关语句,当表达式与某一个ease后面的常量表达式相等时,就执行case后面的语句,若没有匹配,则执行default后面的语句,各个case和default的出现次序不影响结果,执行完一个case语句,流程就转移到下一个case并继续执行。因此在case的分支后,加break语句来跳出switch语句。当k=1时,switch语句中没有相对应的case,所以执行default语句,此时C为1,没有遇到break语句,则执行case2,c++,此时c的值在下次使用前加1等于2,break跳出。继续for循环,当k=2时,执行Case2,C再次自加值为3,遇到break跳出。当k=3时,不符合循环,则输出c的结果,答案为3。

  • 第21题:

    以下程序的输出结果是______。 include main() { char*a="abcdefghi";int k fun(a);p

    以下程序的输出结果是______。 #include <string.h> main() { char*a="abcdefghi";int k fun(a);puts(a); } fun(char*s) { int x,y; char c for(x=0,y=strlen(s)-1;x<y:x++,y--) {c=s[y];s[y]=s[x];s[x]=c;} }

    A.ihgfedcba

    B.abcdefghi

    C.abcdedeba

    D.ihgfefghi


    正确答案:A

  • 第22题:

    以下程序的输出结果是 void fun(int*s) { static int j=0; do s[j]+=s[j+1]; while(++j<2);} main() { int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)printf("%d",a[k]);}

    A.34756

    B.23345

    C.35745

    D.12345


    正确答案:C
    解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5}。故正确答案为选项C)。

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