1.3 算法基本語句

編輯: 逍遙路 關(guān)鍵詞: 高中數(shù)學(xué) 來源: 高中學(xué)習(xí)網(wǎng)

重難點:經(jīng)歷將具體問題的流程圖轉(zhuǎn)化為偽代碼的過程;理解用偽代碼表示的基本語句??輸入語句、輸出語句、賦值語句、條件語句、循環(huán)語句,進一步體會算法的基本思想.

考綱要求:①理解幾種基本算法語句??輸入語句、輸出語句、賦值語句、條件語句、循環(huán)語句的含義.

經(jīng)典例題:意大利數(shù)學(xué)家菲波拉契,在1202年出版的一書里提出了這樣的一個問題:一對兔子飼養(yǎng)到第二個月進入成年,第三個月生一對小兔,以后每個月生一對小兔,所生小兔能全部存活并且也是第二個月成年,第三個月生一對小兔,以后每月生一對小兔.問這樣下去到年底應(yīng)有多少對兔子? 試畫出解決此問題的程序框圖,并編寫相應(yīng)的程序.

 

 

 

 

當(dāng)堂練習(xí):

1.下邊程序運行后的輸出結(jié)果為(     )

A.17      B.19      C.21      D.23

 

2.下邊程序運行的結(jié)果是(     )

A.1,2,3    B.2,3,1    C.2,3,2    D.3,2,1

 

3.下邊程序運行后輸出的結(jié)果為(     )

A. 3  4  5  6       B. 4  5  6  7        C. 5  6  7  8       D. 6  7  8  9

4下圖給出的是計算的值的一個程序框圖,其中判斷框內(nèi)應(yīng)填入的條件是(     )

A.i>10     B.i<10    C.i>20    D.i<20

5.算法: S1  輸入n;

S2  判斷n是否是2,若n=2,則n滿足條件,

若n>2,則執(zhí)行S3;

s3  依次從2到n一1檢驗?zāi)懿荒苷齨,若不能整除n,

則輸出n.

則輸出n是(     )

A.質(zhì)數(shù)      B.奇數(shù)      C.偶數(shù)     D.約數(shù)

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

對甲乙兩程序和輸出結(jié)果判斷正確的是(     )

A.程序不同結(jié)果不同  B.程序不同,結(jié)果相同 C.程序相同結(jié)果不同  D.程序相同,結(jié)果相同

7.閱讀下列程序:

輸入x;

if x<0,   then y:=;

else if x>0,    then y:=;

else y:=0;

輸出 y.

如果輸入x=-2,則輸出結(jié)果y為(     )

A.3+         B.3-     C.-5         D.--5

8.x=5

y=6

PRINT  xy=11

END

上面程序運行時輸出的結(jié)果是(     )

A.xy≠11       B.11         C.xy=11       D.出錯信息

9.下面的問題中必須用條件結(jié)構(gòu)才能實現(xiàn)的個數(shù)是(     )

(1)已知三角形三邊長,求三角形的面積;

(2)求方程ax+b=0(a,b為常數(shù))的根;

(3)求三個實數(shù)a,b,c中的最大者;

(4)求1+2+3+…+100的值。

A.4個     B. 3個     C. 2個       D. 1個

10.兩個數(shù)5671、10759的最大公約數(shù)是(     )

A.46          B.53          C.28        D.71

11.二進制數(shù)111011001001 (2)對應(yīng)的十進制數(shù)是(     )

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的最小公倍數(shù)                B.求x,y的最大公約數(shù)

C.求x被y整除的商                   D.求y除以x的余數(shù)

13.若連續(xù)函數(shù)在區(qū)間內(nèi)單調(diào),且,則在區(qū)間內(nèi)(     )

  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.看右邊程序運行后,輸出的結(jié)果為______________..

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的正自然數(shù))中,請?zhí)钌峡杖钡牟糠郑?

INPUT “n=”;n

i=1

sum=0

WHILE i<=n

sum=sum+I

i=i+1

         

PRINT sum

END

(第16題)

 

17.用秦九韶算法求n次多項式,當(dāng)時,求需要算乘方、乘法、加法的次數(shù)分別為          .

18.青年歌手電視大賽共有10名選手參加,并請了12名評委,在計算每位選手的平均分?jǐn)?shù)時,為了避免個別評委所給的極端分?jǐn)?shù)的影響,必須去掉一個最高分和一個最底分后再求平均分.試設(shè)計一個算法,解決該問題,要求畫出程序框圖,寫出程序(假定分?jǐn)?shù)采用10分制,即每位選手的分?jǐn)?shù)最高分為10分,最底分為0分).

 

 

 

 

 

 

19.目前高中畢業(yè)會考中,成績在85~100為“A”,70~84為“B”,60~69為“C”,60分以下為“D”.編制程序,輸入學(xué)生的考試成績(百分制,若有小數(shù)則四舍五入),輸出相應(yīng)的等級.

 

 

 

 

 

 

 

 

20.給出30個數(shù):1,2,4,7,……,其規(guī)律是:第1個數(shù)是1,第2個數(shù)比第1個數(shù)大1, 第3個數(shù)比第2個數(shù)大2,第4個數(shù)比第3個數(shù)大3,依此類推.要計算這30個數(shù)的和,現(xiàn)已給出了該問題算法的程序框圖(如圖所示),(I)請在圖中判斷框內(nèi)(1)處和執(zhí)行框中的(2)處填上合適的語句,使之能完成該題算法功能;(II)根據(jù)程序框圖寫出程序.

 

 

 

21.有10個互不相等的數(shù),寫出找出其中一個最大數(shù)的算法和程序.

 

 

 

參考答案:

 

經(jīng)典例題:根據(jù)題意可知,第一個月有1對小兔,第二個月有1對成年兔子,第三個月有兩對兔子,從第三個月開始,每個月的兔子對數(shù)是前面兩個月兔子對數(shù)的和,設(shè)第N個月有兩F對兔子,第N-1個月有S對兔子,第N-2個月有Q對兔子,則有F=S+Q,一個月后,即第N+1個月時,式中變量S的新值應(yīng)變第N個月兔子的對數(shù)(F的舊值),變量Q的新值應(yīng)變?yōu)榈贜-1個月兔子的對數(shù)(S的舊值),這樣,用S+Q求出變量F的新值就是N+1個月兔子的數(shù),依此類推,可以得到一個數(shù)序列,數(shù)序列的第12項就是年底應(yīng)有兔子對數(shù),我們可以先確定前兩個月的兔子對數(shù)均為1,以此為基準(zhǔn),構(gòu)造一個循環(huán)程序,讓表示“第×個月的I從3逐次增加1,一直變化到12,最后一次循環(huán)得到的F”就是所求結(jié)果. 流程圖和程序如下:

 

S=1

Q=1

I=3

WHILE  I<=12

   F=S+Q

   Q=S

   S=F

   I=I+1

WEND

PRINT  F

END

(經(jīng)典例題)

 

 

 

 

當(dāng)堂練習(xí):

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個分?jǐn)?shù),我們可以用循環(huán)語句來完成這12個分?jǐn)?shù)的輸入,同時設(shè)計累加變量求出這12個分?jǐn)?shù)的和,本問題的關(guān)鍵在于從這12個輸入分?jǐn)?shù)中找出最大數(shù)與最小數(shù),以便從總分中減去這兩個數(shù).由于每位選手的分?jǐn)?shù)都介于0分和10分之間,去我們可以先假設(shè)其中的最大數(shù)為0,最小數(shù)為10,然后每次輸入一個評委的分?jǐn)?shù),就進行一次比較,若輸入的數(shù)大于0,就將之代替最大數(shù),若輸入的數(shù)小于10,就用它代替最小數(shù),依次下去,就能找出這12個數(shù)中的最大數(shù)與最小數(shù),循環(huán)結(jié)束后,從總和中減去最大數(shù)與最小數(shù),再除以10,就得到該選手最后的平均數(shù).

程序框圖如上圖所示.

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.該算法使用了當(dāng)型循環(huán)結(jié)構(gòu),因為是求30個數(shù)的和,故循環(huán)體應(yīng)執(zhí)行30次,其中i是計數(shù)變量,因此判斷框內(nèi)的條件就是限制計數(shù)變量i的,故應(yīng)為.算法中的變量p實質(zhì)是表示參與求和的各個數(shù),由于它也是變化的,且滿足第i個數(shù)比其前一個數(shù)大,,第個數(shù)比其前一個數(shù)大i,故應(yīng)有.故(1)處應(yīng)填;(2)處應(yīng)填

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:輸入一個數(shù),放在MAX中

S2:i=1

S3:輸入第1個數(shù),放入x中

S4:若x>MAX,則MAX=z

S5:i=i+1

S6:若i≤9,返回S3繼續(xù)執(zhí)行,否則停.

 


本文來自:逍遙右腦記憶 http://yy-art.cn/gaozhong/146132.html

相關(guān)閱讀:美國高中數(shù)學(xué)都學(xué)什么?