参考答案和解析
正确答案:B
更多“程序段如下intk=1;while(!k==0){k=k+1;printf("%d\n",k);}说法正确的是()。 ”相关问题
  • 第1题:

    下面是一段Pascal程序: for h:=1 tO n-1 dO begin x:=A[h+1]; k:=h; while (k>=1) and (A[k]>x) do begin A[k+1):=A[k]; k:=k-1 end; A[k+1]:=x end; 假设在程序开始执行时,数组A[1..n)是一组随机整数。下列答案中,哪一个最好的描述了最差情况下的程序执行时间(运行时间阶数)?( )

    A.0(nlog2n)

    B.O(n)

    C.0(log2n)

    D.O(n2)


    正确答案:D

  • 第2题:

    下面程序段的循环次数是()intk=2;while(k==0)printf(″%d″,k);k--;printf(″\n″);

    A.0次

    B.1次

    C.2次

    D.无限次


    正确答案:A

  • 第3题:

    程序段如下 int k=-20; while (k=0)k=k+1; 则以下说法中正确的是( )

    A.while循环执行20次

    B.循环是无限循环

    C.循环体语句一次也不执行

    D.循环体语句执行一次


    正确答案:C

  • 第4题:

    有以下程序段,且变量已正确定义和赋值

    for(s=1.0, k=1; k<=; k++) s=s+1.0/(k*(k+1));

    printf("s=%f\n\n", s);

    请填空,使下面程序段的功能与之完全相同

    s=1.0; k=1;

    while(【 】) { s=s+1.0/(k*(k+1));【 】; }

    prinff("s=%f\n'n", s);


    正确答案:(10)k=n  或  n>=k  (11)K++
    (10)k=n  或  n>=k  (11)K++ 解析:本题考查的知识点是:while语句和for语句。
     while语句和for语句的作用都是循环控制语句的执行,两者之间是可以互相转换的。将while(EXP)转换为for语句可以写成for(;EXP;);将for(EXP1;EXP2;EXP3)转换为while语句可以写成:EXP1;while(EXP2){… EXP3;}。故本题的两个空分别应填写for语句的第2和第3个表达式。即K=n或n>=K和k++。当然也可写成与之等价的其他形式。

  • 第5题:

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

  • 第6题:

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

  • 第7题:

    以下程序的输出结果是#include <conio.h>#include <stdio.h>#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }


    正确答案:77
    在本题中,程序首先定义一个宏M,然后定义一个fun函数,函数带有三个形参,分别是一个整型形参m和两个整型指针形参a、n。在函数体中,首先定义两整型变量i和j,并给j赋初值为0,然后执行循环,循环体中首先是一个条件判断语句,如果结果为真,则说明变量i能同时被7和11整除,并将变量i保存到数组中,循环结束后,将数组中元素的个数通过指针变量n进行返回。通过分析可以知道,fun函数的作用是求取1到m中能同时被7和11整除的整数,并将结果保存到数组a中。
    在主函数中,首先定义了两个整型变量和一个整型数组aa,然后调用clrscr()函数对文本模式窗口进行清除操作。接着调用fun函数,根据上面我们对fun函数的分析,要计算1~100之间能同时被7和11整除的整数,很显然,这样的数只有77一个,那么此时数组aa中只有一个元素为77,而n的值是1。
    接着执行for循环,从程序中不难看出循环的作用是将数组aa中的元素按一定的规则输出,其规则为每行最多只能输出20个值。结合上面的分析,数组aa中只有一个元素为77,因此,本题程序的最终输出结果为77。

  • 第8题:

    设有程序段: intk=12: while(k=1)k=k-1: 则下列描述中正确的是( )。A.while循环执行10次

    设有程序段: intk=12: while(k=1)k=k-1: 则下列描述中正确的是( )。

    A.while循环执行10次

    B.循环是无限循环

    C.循环体语句一次也不执行

    D.循环体语句执行一次


    正确答案:C
    本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。

  • 第9题:

    有下列程序:

    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。

  • 第10题:

    程序段intk=10;while(k=0)k=k-1;中,while循环执行10次。


    正确答案:错误

  • 第11题:

    单选题
    程序段如下   int k=1    while(!k= =O){k=k+1;printf(“%d\n”,k);}    说法正确的是()
    A

    while循环执行2次

    B

    循环是无限循环

    C

    循环体语句一次也不执行

    D

    循环体语句执行一次


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

  • 第12题:

    单选题
    有以下程序:#includemain(){ char *s=12134; int k=0,a=0; while(s[k+1]!='\0') {  k++;  if(k%2==0)  {   a=a+s[k]-'0'+1;   continue;  }  a=a+(s[k]-'0'); } printf(k=%d a=%d,k,a);}程序运行后的输出结果是(  )。
    A

    k=6 a=11

    B

    k=3 a=14

    C

    k=4 a=12

    D

    k=5 a=15


    正确答案: A
    解析:
    第一次循环,k=1,s[1]=2,执行a=a+s[1]-'0'=2;第二次循环,k=2,s[2]=1,执行a=a+s[2]-'0'+1=2+2=4;第三次循环,k=3,s[3]=3,执行a=a+s[3]-'0'=4+3=7;第四次循环,k=4,s[4]=4,执行a=a+s[k]-'0'+1=7+5=12,可得到结果k=4,a=12。答案选择C选项。

  • 第13题:

    该程序运行的结果是( )。

    #include

    #include

    #define M 100

    void fun(int m, int *a, int *n)

    { int i,j=0;

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

    if(i%7==0||i==0)

    a[j++]=i;

    *n=j;}

    main()

    { int aa[M],n,k;

    clrscr();

    fun(10,aa,&n);

    for(k=0;k

    if((k+1) ==0)printf("\n");

    else printf("M",aa[k]);

    printf("\n");}


    正确答案:
    7

  • 第14题:

    若k为整形,则while循环执行()次。k=2;while(k==0)printf(“%d”,k);k--;printf(“\n”);

    A、10

    B、9

    C、0

    D、1


    参考答案:C

  • 第15题:

    有如下程序,该程序的执行结果为______。 Dim k As Integer n=5 m=1 k=1 Do While k <= n m=m*2 k=k+1 Loop Print m

    A.1

    B.5

    C.32

    D.40


    正确答案:C

  • 第16题:

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

  • 第17题:

    有以下程序段

    s=1.0;

    for(k =1;k<=n;k++) s=s+1.0/(k*(k=1));

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

    请填空,使以下程序段的功能与上面的程序段完全相同。

    s=1.0; k=1;

    while( 【 9 】).

    { s=s+1.0/(k*(k+1)); k=k+1;}

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


    正确答案:
    【答案】k<=n
    【知识点】while语句与for语句互化
    【解析】while语句的条件即为for语句中三个表达式中的第二个表达式。

  • 第18题:

    以下程序的输出结果是______。 main() { char*s="121"; int k=0,a=0,b=0; do {k++; if(k%2==0){a=a+s[k]-'\0';continue;} b=b+s[k]-'\0';a=a+s[k]-'\0'; }while(s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); }

    A.k=3 a=98 b=49

    B.k=3 a=99 b=50

    C.k=2 a=99 b=50

    D.k=2 a=98 b=49


    正确答案:C
    解析:第1次循环中,k=1,不执行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’进入第2次循环,k=2,执行if分支,s[k]=‘1’,使a=3,进而提前结束本次循环,s[k+1]=‘\0’,则退出循环,所以k=2,a=3,b=2。

  • 第19题:

    若有以下程序段,w和k都是整型变量:

    w=k:

    LB:if(w==0)go to LE;

    W--:

    printf("*")

    goto LB;

    LE;

    则不能与上面程序段等价的循环语句是( )。

    A.for(w=k;w!=0;w--)printf("*");

    B.for(w=k;w;--w)printf("*");

    C.w=k; while(w--!=0)printf("*");

    D.w=k;w++; do{w--;printf("*");}while(w!=0);


    正确答案:C
    当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择C选项。

  • 第20题:

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

  • 第21题:

    程序段如下   int k=1    while(!k= =O){k=k+1;printf(“%d\n”,k);}    说法正确的是()

    • A、while循环执行2次
    • B、循环是无限循环
    • C、循环体语句一次也不执行
    • D、循环体语句执行一次

    正确答案:B

  • 第22题:

    执行下面的程序段后,k的值是()。intk=1,n=325;do{k*=n%10;n/=10;}while(n)

    • A、3
    • B、30
    • C、523
    • D、325

    正确答案:B

  • 第23题:

    单选题
    执行下面的程序段后,k的值是()。intk=1,n=325;do{k*=n%10;n/=10;}while(n)
    A

    3

    B

    30

    C

    523

    D

    325


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