python编写程序、输出公元2000年到3000年所有闰年_2019-03-04 计算机二级C语言程序设计之课后习题(2)...

参考资料:高教版《全国计算机等级考试二级教程——C语言程序设计》

P69 填空题

5.15

题目:

有以下程序段:

s = 1.0;

for( k = 1; k <= n; k++ )

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

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

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

s = 0.0;

[1];

k = 0;

do

{

s = s + d;

[2];

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

}

while([3]);

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

题解:

相比原来的程序段,给出的程序段缺少的部分应实现的功能如下:

在第一次循环时使s = 1.0;

每循环一次,k加1;

判断条件,即for语句中的k <= n这部分。

所以应该这样填写:

观察程序段发现没有给d赋值,而且在第一次循环的时候要让s = 1.0,所以[1]处应该是d = 1.0;

在[2]处填写k++实现每循环一次k加1的功能;

由于do-while循环的条件是:while后面的语句为真时,执行循环体,所以[3]处直接填入k <= n。

最终的程序段如下:

s = 0.0;

d = 1.0; //给变量d赋值1.0

k = 0;

do

{

s = s + d;

k++; //每循环一次,k的值增加1

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

}

while( k <= n ); //判断条件

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

5.16

题目:

以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

(注:本人轻度代码洁癖,所以稍微改下原题的代码,最核心的部分没动,只是改了空行,左花括号,缩进,main函数的写法,加return 0等。总之改了也不影响题意,当然如果介意的话可以私信我。)

#include

int main( void )

{

float x, amax, amin;

scanf( "%f", &x );

amax = x;

amin = x;

while( [1] )

{

if( x > amax )

amax = x;

if( [2] )

amax = x;

scanf( "%f", &x );

}

printf( "\namax = %f\namin = %f\n", amax, amin);

return 0;

}

题解:

首先题目中提到“当输入为负数时结束输入”,所以控制循环的表达式应该有判断输入是否为负的情况。题目中还提到要输出最低成绩,所以应该有判断最低成绩的语句。将实现这个功能的语句分别填到[1]和[2]处就可以了。

最终的程序如下:

#include

int main( void )

{

float x, amax, amin;

scanf( "%f", &x );

amax = x;

amin = x;

while( x >= 0 ) //判断输入是否为负数,如果是就结束输入

{

if( x > amax )

amax = x;

if( x < amin ) //记录最低成绩

amax = x;

scanf( "%f",

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值