第二章 算法初步
2.4.2条件语句同步练习
一、选择题
1、给出以下四个问题,①输入一个数x,输出它的相反数.②求面积为6的正方形的周长.
③求三个数a,b,c中的最大数.④求函数的函数值. 其中不需要用条件语句来描述其算法的有 ( )
A. 1个 B. 2个 C. 3个 D. 4个
二、解答题
2、 影碟超市,每张影碟售价25元,如果顾客购买5张以上(含5张)唱片,按照九折收费,如果顾客购买10张以上(含10张)唱片,按照八五折收费,用语句描述完成计费工作的算法,并画出算法流程图。
3、设计一个算法,根据x的值输入y值,写出伪代码,并画出流程图。其中。
[来源:]
4、 已知,请用流程图描述求S的算法并用伪代码表示。
5、 经过市场调查分析得知,1999年第一季度内,某地区对某件商品的需求量为12000件。为保证商品不脱销,商家在月初时将商品按相同数量投放市场。已知年初商品的库存量为50000件,用S表示商品的库存量。请写出一个程序。求出第一季度结束时商品的库存量。
6、某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物
在1000元以上者,按九五折优惠。
在2000元以上者,按九折优惠。
在3000元以上者,按八五折优惠。
在5000元以上者,按八折优惠。
编写程序求优惠价。
7、画出九九乘法表:
8 、某超市为了促销,规定:一次性购物50元以下(含50元)的,按原价付款;超过50元但在100元以下(含100元)的,超过部分按照九折付款;超过100元的,超过部分按照八折付款。请设计完成计费工作的算法。
9、设计一个程序,输入一个三位数,把这个数的百位数与个位数对调,输出对调后的数。
10、写出求m=60和n=33的最大公约数的算法和程序框图.
[来源:]
11、1982年我国大陆人口10亿3千万,编程上机计算,若人口增长率r=1%,则哪一年我国人口增长到12亿,若r=O.5%,r=O.2%又是何年?
12、给定一个年份,写出该年是不是闰年的算法[来源: ]
答案:
一、选择题
1、B
二、解答题
2、解:伪代码程序如下:
Read x
If x<5 then
y←25x
Else if x<10
y←22.5x
Else
y←21.25x
End if
Print y
3、解:
Read x
If x≤2.5 then
y←x2+1
Else
y←x2-1
End if
Print y
4、运用循环语句来实现。
Begin
S←5
For I from 10 to 1500 step 5
S←S+I
End For
Print S
End
5、解析:因为第一季度商品的需求量为12000件,而且每个月以相同数量投放市场,因此每个月向市场投放4000件商品。可以用下表表示存量随着月份的变化情况。
月份 库存
一月
二月
三月
S
46000
42000
38000
还可以用下列赋值语句来表示库存量的变化S←S─4000
赋值号左边的变量S可看作盒子,如果它表示的是这个月的存储量,那么右边的变量S表示的是上个月的存储量。
这是对变量S的赋值,赋值的目的是改变变量的值,将变量上次的值减去4000再次赋予变量S。
流程图如右所示。
6、解释:设购物款数为本元,优惠价为元,则优惠付款方式为
用条件语句表示为:
Read x
If x<1000 then
y=x
Else
If x<2000 then
y=0.95x
Else
If x<3000 then
y=0.9x
Else
If x<5000 then
y=0.85x
Else
y=0.8x
End if
Print y
7、Private Sub CommandButton1_Click()
Dim Se As String
Picturel.Print Tab(35); "乘法表"
For I = 1 To 9
For J = 1 To 9
Se = I & "x" & J & "=" & I * J
Picturel.Print Tab((J - 1) * 9); Se;
Next J
Picturel.Print
Next I
End Sub
8、Read x
If x<50 then
y←x
Else if 50>x>100
y←0.9x
Else
y←0.8x
End if
Print y
9、解:INPUT x[来源: ]
IF x>99 AND x<1000 THEN
a=x\100
b=(x-a*100)\10
c=x-a*100-b*10
y=c*100+b*10+a
PRINT y
END
ELSE
PRINT"该数不是3位数"
END[来源:]
10、S1:以n 除m,得余数r=27
S2:判断r是否为零,若r=0,则n为解,若r≠0,则重复S3操作(r=27)
S3:以n作为新的m(33),以r作为新的,l(27),求新的m/n的余数r=6
S4:判断r是否为零,若r=O,则前一个n即为解,否则要继续S5操作
S5:以n 作为新的m(即m=27),以r作为新的n(即n=6),求新的余数r=3
S6:判断上一个r 是否为零,若r=O,则前一个n即为解,否则要执行S7操作
S7:以n作为新的m(m =6),r作为新的n(n=3),求新的r= O
S8:判断r是否为零,这里r=O,算法结束,得,n=3是60与33的最大公约
11、INPUT r=O.01
i=O
p=10.3
y=1982
WHILE P≤12
i=i+1
p=p※(1+ r)
y=y+1
WEND PRINT y,p
END
12、INPUT x
IF x=100k(k是正整数)THEN
IF x=400k(k是正整数)THEN
PRINT“x是闰年”
ELSE“x不是闰年”
END
ELSE IF x=4k(k是正整数)THEN
PRINT“x是闰年”
ELSE“x不是闰年”
END
【点此下载】