逍遥学能 2014-07-06 17:22
重难点:经历将具体问题的流程图转化为伪代码的过程;理解用伪代码表示的基本语句??输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想.
考纲要求:①理解几种基本算法语句??输入语句、输出语句、赋值语句、条件语句、循环语句的含义.
经典例题:意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序.
当堂练习:
1.下边程序运行后的输出结果为( )
A.17 B.19 C.21 D.23
2.下边程序运行的结果是( )
A.1,2,3 B.2,3,1 C.2,3,2 D.3,2,1
3.下边程序运行后输出的结果为( )
A. 3 4 5 6 B. 4 5 6 7 C. 5 6 7 8 D. 6 7 8 9
4下图给出的是计算的值的一个程序框图,其中判断框内应填入的条件是( )
A.i>10 B.i<10 C.i>20 D.i<20
5.算法: S1 输入n;
S2 判断n是否是2,若n=2,则n满足条件,
若n>2,则执行S3;
s3 依次从2到n一1检验能不能整除n,若不能整除n,
则输出n.
则输出n是( )
A.质数 B.奇数 C.偶数 D.约数
6.读程序
甲:INPUT i=1 乙:INPUT I=1000
S=0 S=0
WHILE i≤1000 DO
S=S+i S=S+i
i=i+l I=i一1
WEND Loop UNTIL i<1
PRINT S PRINT S
END END
对甲乙两程序和输出结果判断正确的是( )
A.程序不同结果不同 B.程序不同,结果相同 C.程序相同结果不同 D.程序相同,结果相同
7.阅读下列程序:
输入x;
if x<0, then y:=;
else if x>0, then y:=;
else y:=0;
输出 y.
如果输入x=-2,则输出结果y为( )
A.3+ B.3- C.-5 D.--5
8.x=5
y=6
PRINT xy=11
END
上面程序运行时输出的结果是( )
A.xy≠11 B.11 C.xy=11 D.出错信息
9.下面的问题中必须用条件结构才能实现的个数是( )
(1)已知三角形三边长,求三角形的面积;
(2)求方程ax+b=0(a,b为常数)的根;
(3)求三个实数a,b,c中的最大者;
(4)求1+2+3+…+100的值。
A.4个 B. 3个 C. 2个 D. 1个
10.两个数5671、10759的最大公约数是( )
A.46 B.53 C.28 D.71
11.二进制数111011001001 (2)对应的十进制数是( )
A.3901 B.3902 C.3785 D.3904
12.下面的代码的算法目的是( )
10 Read a,b
20 r←mod(a,b)
30 If r=0 then Goto 80
40 Else
50 a←b
60 b←r
70 Goto 20
80 Print b
A.求x,y的最小公倍数 B.求x,y的最大公约数
C.求x被y整除的商 D.求y除以x的余数
13.若连续函数在区间内单调,且,则在区间内( )
A. 至多有一个根 B.至少有一个根 C.恰好有一个根 D.不确定
14.已知算法如下:
S=0;
输入 n;
for i:=1 to n do
begin
S=S+2*i;
end.
输出S.
若输入变量n的值为3,则输出变量S的值为 ;
若输出变量S的值为30,则变量n的值为 .
15.看右边程序运行后,输出的结果为______________..
x=5
y=-20
IF x<0 THEN
x=y-3
PRINT x
ELSE
y=y+3
PRINT y
END IF
END (第15题)
16.算法程序:计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数)中,请填上空缺的部分.
INPUT “n=”;n
i=1
sum=0
WHILE i<=n
sum=sum+I
i=i+1
PRINT sum
END
(第16题)
17.用秦九韶算法求n次多项式,当时,求需要算乘方、乘法、加法的次数分别为 .
18.青年歌手电视大赛共有10名选手参加,并请了12名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最底分后再求平均分.试设计一个算法,解决该问题,要求画出程序框图,写出程序(假定分数采用10分制,即每位选手的分数最高分为10分,最底分为0分).
19.目前高中毕业会考中,成绩在85~100为“A”,70~84为“B”,60~69为“C”,60分以下为“D”.编制程序,输入学生的考试成绩(百分制,若有小数则四舍五入),输出相应的等级.
20.给出30个数:1,2,4,7,……,其规律是:第1个数是1,第2个数比第1个数大1, 第3个数比第2个数大2,第4个数比第3个数大3,依此类推.要计算这30个数的和,现已给出了该问题算法的程序框图(如图所示),(I)请在图中判断框内(1)处和执行框中的(2)处填上合适的语句,使之能完成该题算法功能;(II)根据程序框图写出程序.
21.有10个互不相等的数,写出找出其中一个最大数的算法和程序.
参考答案:
经典例题:根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N个月有两F对兔子,第N-1个月有S对兔子,第N-2个月有Q对兔子,则有F=S+Q,一个月后,即第N+1个月时,式中变量S的新值应变第N个月兔子的对数(F的旧值),变量Q的新值应变为第N-1个月兔子的对数(S的旧值),这样,用S+Q求出变量F的新值就是N+1个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I从3逐次增加1,一直变化到12,最后一次循环得到的F”就是所求结果. 流程图和程序如下:
S=1
Q=1
I=3
WHILE I<=12
F=S+Q
Q=S
S=F
I=I+1
WEND
PRINT F
END
(经典例题)
当堂练习:
1.A; 2.C; 3.A; 4.A; 5.A; 6.B; 7.B; 8.C; 9.C; 10.B; 11.C; 12.B; 13.D; 14. 12,5; 15.-17; 16. WEND; 17. 0,n,n;
18. 由于共有12位评委,所以每位选手会有12个分数,我们可以用循环语句来完成这12个分数的输入,同时设计累加变量求出这12个分数的和,本问题的关键在于从这12个输入分数中找出最大数与最小数,以便从总分中减去这两个数.由于每位选手的分数都介于0分和10分之间,去我们可以先假设其中的最大数为0,最小数为10,然后每次输入一个评委的分数,就进行一次比较,若输入的数大于0,就将之代替最大数,若输入的数小于10,就用它代替最小数,依次下去,就能找出这12个数中的最大数与最小数,循环结束后,从总和中减去最大数与最小数,再除以10,就得到该选手最后的平均数.
程序框图如上图所示.
s=0
k=1
max=0
min=10
DO
INPUT x
s=s+x
IF max<=x THEN
max=x
END IF
IF min>=x THEN
min=x
END IF
k=k+1
LOOP UNTIL k>12
s1=s-max-min
a=s1/10
PRINT a
END (第18题程序)
19. I=1
WHILE I=1
INPUT “shu ru xue sheng cheng ji a=”;a
IF a<60 THEN
PRINT “D”
ELSE
IF a<70 THEN
PRINT “C”
ELSE
IF a<85 THEN
PRINT “B”
ELSE
PRINT “A”
END IF
END IF
END IF
INPUT “INPUT 1,INPUT 2”;I
WEND
END (第19题)
20.该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为.算法中的变量p实质是表示参与求和的各个数,由于它也是变化的,且满足第i个数比其前一个数大,,第个数比其前一个数大i,故应有.故(1)处应填;(2)处应填
i=1
p=1
s=0
WHILE i<=30
s=s+p
p=p+i
i=i+1
WEND
PRINT a
END
(第20题程序)
21.S1:输入一个数,放在MAX中
S2:i=1
S3:输入第1个数,放入x中
S4:若x>MAX,则MAX=z
S5:i=i+1
S6:若i≤9,返回S3继续执行,否则停.