1.3 算法基本语句

编辑: 逍遥路 关键词: 高中数学 来源: 高中学习网


重难点:经历将具体问题的流程图转化为伪代码的过程;理解用伪代码表示的基本语句??输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想.

考纲要求:①理解几种基本算法语句??输入语句、输出语句、赋值语句、条件语句、循环语句的含义.

经典例题:意大利数学家菲波拉契,在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继续执行,否则停.

 


本文来自:逍遥右脑记忆 http://www.jiyifa.com/gaozhong/146132.html

相关阅读:做好高考数学题的方法