x←x+3;
Endif
x←x-1;
输出x的值;
算法结束
18.输入一学生成绩,评定其等级.方法是:
90~100分为“优秀”,80~89分为“良好”,60~79分为“及格”,60分以下为“不合格”.写出其算法的伪代码并画出流程图.
19.随着人的年龄的增加,成年人的肺活量会逐渐减少,假如我们用V表示人的肺活量(单位为L),用h表示人的身高(单位为英寸),a表示年龄,则这几个量近似的满足关系式:
V=0.104h-0.018a-2.69.请设计算法流程图,输入身高、年龄,输出肺活量.
20.一块橡皮1元钱,一枝笔2元钱,问100元钱能买橡皮和笔各多少?
数学模型:
设能买橡皮X块,笔Y枝,则X+2Y=100.求此方程的正整数解.
设计一个求此问题的算法,画出流程图并用伪代码表示.
21.通过计算机验证:
任意给定一个自然数N,一定存在自然数n,使1+1/2+1/3+…+1/n>N.
写出流程图和伪代码.
22.相传在远古时代有一片森林,栖息着3种动物,凤凰、麒麟和九头鸟.凤凰有1只头2只脚,麒麟是1只头4只脚,九头鸟有9只头2只脚.它们这3种动物的头加起来一共是100只,脚加起来也正好是100只,问森林中各生活着多少只凤凰、麒麟和九头鸟?
写出算法、流程图及伪代码.
算法初步单元练习题答案
一、选择题(10×5=50分)
题号
1
2
3
4
5
6
7
8
9
10
答案
D
B
B
A
B
B
C
A
D
B
二、填空题(6×4=24分)
11.①及格 ②办留级手续12.是直角三角形!
13.起止框 处理框 判断框
14.确切性 有1个或多个输出15.流程图16.①a>b ②b-a
三、解答题(12+12+12+13+13+14=76分)
17.
(1)寻找最小的正整数I,使1×3×5×7×…×I>10000.
(2)6.
18.输入一学生成绩,评定其等级.方法是:
90~100分为“优秀”,80~89分为“良好”,60~79分为“及格”,60分以下为“不合格”.写出其算法的伪代码并画出流程图.
解:
可以用If…then…Else的嵌套完成.
伪代码如下:
Readx
Ifx≥90then
Print“优秀”
ElseIfx≥80then
Print“良好”
ElseIfx≥60then
Print“及格”
Else
Print“不及格”
EndIf
流程图:
19.随着人的年龄的增加,成年人的肺活量会逐渐减少,假如我们用V表示人的肺活量(单位为L),用h表示人的身高(单位为英寸),a表示年龄,则这几个量近似的满足关系式:
V=0.104h-0.018a-2.69.请设计算法流程图,输入身高、年龄,输出肺活量.
解:
20.一块橡皮1元钱,一枝笔2元钱,问100元钱能买橡皮和笔各多少?
数学模型:
设能买橡皮X块,笔Y枝,则X+2Y=100.求此方程的正整数解.
设计一个求此问题的算法,画出流程图并用伪代码表示.
解:
伪代码和流程图如下:
Begin
ForYfrom1to49
X←100-2Y
PrintX,Y
Endfor
End
21.通过计算机验证:
任意给定一个自然数N,一定存在自然数n,使1+1/2+1/3+…+1/n>N.
写出流程图和伪代码.
解:
伪代码:
ReadN
S←1
n←1
WhileS≤N
n←n+1
S←S+1/n
Endwhile
Printn
End
流程图:
22.相传在远古时代有一片森林,栖息着3种动物,凤凰、麒麟和九头鸟.凤凰有1只头2只脚,麒麟是1只头4只脚,九头鸟有9只头2只脚.它们这3种动物的头加起来一共是100只,脚加起来也正好是100只,问森林中各生活着多少只凤凰、麒麟和九头鸟?
写出算法、流程图及伪代码.
解:
假设凤凰的只数为x,麒麟的只数为y,九头鸟的只数为z,那么,
(1)凤凰的只数x可能的取值为1~50,如果用伪代码表示,就应该如下:
Forx=1To50Step1
(2)麒麟的只数y可能的取值为1~25,如果用伪代码表示,就应该如下:
Fory=1To25Step1
(3)如果知道了凤凰和麒麟的只数后,那么九头鸟的只数就应该如下:
z=(100-x-y)/9.
如何考虑x、y、z三个变量之间的关系?
当凤凰x=1时(只在开始时),变量麒麟y的取值可以从1~25,让变量y从1开始取值(例如:
y的值为1);
通过(100-x-y)/9表达式,计算出z的值;
完成上述步骤后,x、y、z三个变量都取到了自己相应的值,但是这三个值是否是正确的解呢?
我们必须通过以下的两个条件来判断:
x+y+9×z=100 And 2×x+4×y+2×z=100.
如果全部满足,就输出x、y、z的值,如果不满足,就让y值加1,然后重复步骤
(2)到步骤(4),直至y的取值超过25;
然后让x的取值加1后,重复步骤
(1)到步骤(5)的操作,直至x的取值超过50为止,退出算法.
流程图和伪代码如下:
Forxfrom1to50
Foryfrom1to25
z←(100-x-y)/9
If2x+4y+2z=100then
PrintI,J,K
Endfor
Endfor