有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);请填空,使下面程序段的功能为完全相同s=1.0;k=1;while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;}printf("s=%f\n\n",s);

题目

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

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

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

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

s=1.0;k=1;

while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;}

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


相似考题
更多“有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k&lt;=n;k++)s=s+1.0/(k*(k+1));pr ”相关问题
  • 第1题:

    (20)以下程序中的变量已正确定义

    for(i=0;i<4;i++,i++

    for(k=1;k<3;k++);printf(“*”);

    程序段的输出结果是

    A)******** B)**** C)** D)*


    正确答案:B

  • 第2题:

    以下程序运行后的输出结果是【】。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。

  • 第3题:

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

  • 第4题:

    下列程序段中的变量已正确定义: for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*&qu

    下列程序段中的变量已正确定义:

    for(i=0;i<4;i++,i++)

    for(k=1;k<3;k++);printf("*");

    程序段的输出结果是( )。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    D。【解析】本题中第二个for循环语句的后面有一个分号,所以两个for循环语句的执行语句为空。当两个for循环语句执行完后,再执行printf语句输出一个星号。所以正确答案为选项D。

  • 第5题:

    有以下程序: main() { char nn[4][3]={"12","34","56","78"),*pn[4]; int k,s=0; for(k=0;k<4;k++)pn[k)=nn[k]; for(k=1;k<4;k+=2) s=s*10+pn[k][1]-'0'; printf("%d\n",s); } 程序的输出结果是( )

    A.48

    B.26

    C.3478

    D.576


    正确答案:A

  • 第6题:

    若有定义:int k;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("%d",k);


    正确答案:

    本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。

  • 第7题:

    以下程序段中的变量已正确定义 for(=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*") 程序段的输出结果是______。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    解析:本题考查的是for循环语句的使用以及分号“;”的使用,第一层for循环由于i两次自增运算故执行两次,每执行一次第一层for循环,第二条for循环语句执行三次,但由于语句后面加了分号,因此这一条空循环语句,结果当第一层的for语句执行完,跳出整个循环语句后,执行printf语句,因此执行一次printf语句,选项D是正确的。

  • 第8题:

    有以下程序

    #include<stdio.h>

    void fun(int *s)

    { static int j=0;

    do { s[j]=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]);

    printf("\n");

    }

    程序运行后的输出结果是

    A) 12345

    B)23445

    C)34756

    D) 35745


    正确答案:D
    【答案】D
    【知识点】static变量的使用
    【解析】静态局部变量在函数内定义,它的生存期为整个源程序。第一次k=1调用结束后,s[0]的值为3,s[1]的值为5,j的值为2。当k=2时,继续调用函数fun,此时j的值为2,但是因为do while语句先执行后判断,所以执行了s[2]=s[2]+s[3],所以s[2]的值变成了7。循环结束回到主函数,k的值为3,不满足条件结束循环。最后打印输出a数组元素的值。

  • 第9题:

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

  • 第10题:

    以下程序段中的变量已正确定义。

    for(i=0;i<;4;i++,i++)

    for(k=1;k<;3;k++);prinff(”*”);该程序段的输出结果是( )。

    A.*

    B.****

    C.**

    D.********


    正确答案:A
    c语言约定分号为一条语句的结束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的语句,对研nd();没有任何影响,最后一nff(”·’),执行一次。因此答案为A选项。

  • 第11题:

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

    B.k=3 a=3 b=2

    C.k=2 a=3 b=2

    D.k=2 a=2 b=3


    正确答案:C

  • 第12题:

    单选题
    以下程序段中的变量已正确定义for( i=0; i<4; i++,i++ ) for( k=1; k<3; k++ ); printf(* );该程序段的输出结果是(  )。
    A

    *******

    B

    ****

    C

    **

    D

    *


    正确答案: C
    解析:
    for语句在没有"{}"说明时仅仅是跟随其后的第一条语句,即另外一个for语句,第二个for循环有个";"结束,所以整个双重循环将被视为空语句。然后执行下一个顺序语句,即输出语句,只输出一个"*"。答案选择D选项。

  • 第13题:

    有以下程序: include using namespace std; class MyClass { public: static int s; M

    有以下程序:

    include<iostream>

    using namespace std;

    class MyClass

    {

    public:

    static int s;

    MyClass();

    void SetValue(int val);

    };

    int MyClass::s=0;

    MyClass::MyClass()

    {

    S++;

    }

    void MyClass::SetValue(int val)

    {

    s=val;

    }

    int main()

    {

    MyClass my[3],*p;

    p=my;

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

    {

    p->SetValue(k+1);

    p++;

    }

    cout<<MyClass::s<<end1;

    return 0;

    }

    运行后的输出结果是______。


    正确答案:3
    3

  • 第14题:

    以下程序的输出结果是【 】。include defineN 5 int fun(int *s,int a,int n) {int j; *s=

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

    include <stdio.h>

    define N 5

    int fun(int *s,int a,int n)

    { int j;

    *s=a j=n;

    while(a!=s[j]) j-;

    return j;

    main()

    { int s[N+1]; int k:

    for(k=1 ;k<=N;k++) s[k]=k+1:

    print f("%d\n",fun(s,4,N));

    }


    正确答案:3
    3 解析:本题主函数中定义了一个一维数组s,并通过for循环给s[1]到s[5]的元素分别赋值为2、3、4、5、6。然后调用 fun函数,使指针变量s与数组s共用同一存储单元。在函数fun中,a=4,n=5,所以while的条件表达式首先判断的是 4!=s[5]是否成立,由于s[5]=6,所以成立,执行j-;接着判断4!=s[4]是否成立,由于s[4]=5,所以成立,执行j-;然后判断4!=s[3]是否成立,由于s[3]=4,所以条件表达式不成立,返回j的值3。

  • 第15题:

    以下程序正确计算p=n!(n=0)的是()。

    A.for(p=1.0,k=1;k=n;)p*=k++;

    B.p= 1.0;k=0;while(kn)p*=++k;

    C.p= 1.0;k=1;do{++k;p*=k;}while(k=n);

    D.p=1.0;for(k=n;k=1;k--)p*=k--;


    正确答案:AB

  • 第16题:

    将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。

    (a) double s=0.0;

    【 】;

    int k=0;

    do{

    s+=d;

    k++;

    d=1.0/(k*k+1);

    }while(【 】);

    (b) double s=1.0;

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


    正确答案:d=1.0 k=10
    d=1.0 k=10 解析:本题考核while循环与for循环之间的转换。只要把握住循环的起始条件、结束条件和变量控制,就易解这种类型的题目。

  • 第17题:

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

    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++。当然也可写成与之等价的其他形式。

  • 第18题:

    以下程序的运行结果是( )。 define S(x)x*x main() {int k=1; while(k<=4) {printf("%d,",S(k)); k++;}


    正确答案:14916
    1,4,9,16, 解析:分析程序执行过程,第1次循环,k=1时,此时s(1)=1*1=1,然后k的值加1;第2次循环,k=2时,s(2)=2*2=4,然后k的值加1;第3次循环,k=3时,s(3)=3*3=9,然后k的值加1;第4次循环,k=4时,s(4)=4*4=16,然后k的值加1;当k=5时,条件不满足,退出循环。

  • 第19题:

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

  • 第20题:

    有以下程序段

    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语句中三个表达式中的第二个表达式。

  • 第21题:

    以下程序的输出结果是#include <stdio.h>main(){ int k=4,s=0; do{ if((k%3)==0) continue; s+=k;k++; }while(k>10); printf("s=%d\n",s);}


    正确答案:s=4
    在本题中,程序首先定义了两个整型变量k和s,其中k的初值为4,s为0。然后开始做do…while结构的循环。
    第一次循环时,变量k和s的值分别是4和0,条件判断语句的条件结果为假,执行s+=k,此时s的值变为4,而k的值变为5,此时k的值小于10,循环结束;最终输出变量s的结果为s=4。

  • 第22题:

    以下程序段中的变量已正确定义: for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 程序段的输出结果是______。

    A.******

    B.****

    C.**

    D.*


    正确答案:D
    解析: 本题考杏for循环语句中嵌套for循环语句的情况。由于第一个for语句没有具体的执行语句,故当i=0时,k=1时,执行一次语句 printf(“*”);,程序便会跳出整个循环,故运行结果为一个星号。

  • 第23题:

    下列程序段中的变量已正确定义: for(i=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*"); 程序段的输出结果是( )。

    A.********

    B.****

    C.**

    D.*


    正确答案:D
    D。【解析】本题中第二个for循环语句的后面有一个分号,所以两个for循环语句的执行语句为空。当两个for循环语句执行完后,再执行printf语句输出一个星号。所以正确答案为选项D。

  • 第24题:

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