计算机二级

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

题目

有以下程序段

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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

9、计算运行下列程序段后s的值: After running the following program segment, the value of s is: n=10; s=0; for(k = 1; k < n - 1; k++) for(j = n; j >= k; j--) s = s + 1;


A

第2题:

6、有下列程序段,且变量已正确定义和赋值 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(① ) { s=s+1.0/(k*(k+1)); ②; } printf("s=%f\n\n", s);

A.k<=n n++

B.n<=k n++

C.k<=s k++

D.k<=n k++


0,1

第3题:

下述程序段中, 与其他程序段的作用不同。

A.k=1; while (1) { s+=k ; k=k+1 ; if (k>100) break ; } printf(“n%d”,s) ;

B.k=1; Repeat : s+=k ; if (k<=100) goto Repeat printf(“n%d”,s) ;

C.int k,s=0; for (k=1;k<=100;s+=++k); printf(“n%d”,s) ;

D.k=1; do s+=k; while (k<=100) ; printf(“n%d”,s) ;


C

第4题:

有下列程序段,且变量已正确定义和赋值 for(s=1.0, k=1; k<=n; k++) s=s+1.0/(k*(k+1)); printf("s=%fnn", s); 使下列程序段与上述程序段功能完全相同,则①、②处的正确语句分别为: s=1.0; k=1; while(① ) { s=s+1.0/(k*(k+1)); ②; } printf("s=%fnn", s);

A.k<=n n++

B.n<=k n++

C.k<=s k++

D.k<=n k++


k<=n k++

第5题:

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

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


正确答案:

k<=n     k++ 

第6题:

有以下程序

#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数组元素的值。

第7题:

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

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

第8题:

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

第9题:

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

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


正确答案: