第二章 算法初步 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

【点此下载】