資源簡(jiǎn)介 課件33張PPT。3.8 選擇、循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)考點(diǎn)1考點(diǎn)2考點(diǎn)1選擇結(jié)構(gòu)程序的設(shè)計(jì)選擇語句:根據(jù)不同的判斷結(jié)果,選擇執(zhí)行不同的語句。選擇語句主要有If語句,在VB中,If語句又分為兩種形式,行If語句和塊If語句。?1.行If語句行If語句必須在一行內(nèi)寫完。該語句的執(zhí)行過程是先計(jì)算條件表達(dá)式的值,如果條件表達(dá)式的計(jì)算結(jié)果是True,就執(zhí)行Then后面的語句,否則執(zhí)行Else后面的語句。如果Else和它的后隨語句不出現(xiàn),則條件表達(dá)式值為True時(shí)執(zhí)行Then后面的語句,否則就什么也不執(zhí)行,程序轉(zhuǎn)向IF語句下面的后繼語句。行IF語句格式如下:If 條件表達(dá)式 Then 語句1 Else 語句2或If 條件表達(dá)式 Then 語句考點(diǎn)1考點(diǎn)22.塊If語句塊If語句的格式如下:If 條件表達(dá)式1 Then語句塊1ElseIf 條件表達(dá)式2 Then語句塊2……ElseIf 條件表達(dá)式n Then語句塊nElse 語句塊0End If考點(diǎn)1考點(diǎn)2其中的語句塊可以由一個(gè)或多個(gè)語句組成。如果只有兩種不同情形的分別處理,則中間所有的ElseIf部分都不必書寫,只保留語句塊1和語句塊0相應(yīng)的部分即可,即塊If語句可以簡(jiǎn)化為以下格式:If 條件表達(dá)式 Then語句塊1Else語句塊0End If如果只須處理一種情況,則Else部分也不必書寫,即塊If語句可以簡(jiǎn)化為以下格式:If 條件表達(dá)式 Then語句塊End If考點(diǎn)1考點(diǎn)2當(dāng)條件表達(dá)式為True或False時(shí)進(jìn)行處理的語句都只有一個(gè)時(shí),可采用行If語句,也可采用塊If語句;而如果分支中進(jìn)行處理的語句不止一個(gè)時(shí),必須采用塊If語句。考點(diǎn)1考點(diǎn)2例1目前,世界上普遍采用空氣污染指數(shù)API確定城市空氣質(zhì)量等級(jí),API的分級(jí)標(biāo)準(zhǔn)如下表所示。若變量s已存入了API的值,現(xiàn)根據(jù)API值判斷空氣質(zhì)量等級(jí),并將等級(jí)顯示在標(biāo)簽Label1中,下列程序不能正確完成要求的是( )考點(diǎn)1考點(diǎn)2A.if s<=50 thengrade=″優(yōu)″elseif s<=100 thengrade=″良好″elseif s<=200 thengrade=″輕度污染″elseif s<=300 thengrade=″中度污染″elsegrade=″重度污染″end iflabel1.caption=″等級(jí):″+grade考點(diǎn)1考點(diǎn)2B.if s<=50 thengrade=″優(yōu)″elseif s<=100 and s>=51 thengrade=″良好″elseif s<=200 and s>=101 thengrade=″輕度污染″elseif s<=300 and s>=201 thengrade=″中度污染″elseif s>300 thengrade=″重度污染″end iflabel1.caption=″等級(jí):″+grade考點(diǎn)1考點(diǎn)2C.if s<=50 then grade=″優(yōu)″if s<=100 and s>=51 then grade=″良好″if s<=200 and s>=101 then grade=″輕度污染″if s<=300 and s>=201 then grade=″中度污染″if s>300 then grade=″重度污染″label1.caption=″等級(jí):″+gradeD.if s<=50 then grade=″優(yōu)″if s<=100 and s>=51 then grade=″良好″if s<=200 and s>=101 then grade=″輕度污染″if s<=300 and s>=201 then grade=″中度污染″ else grade=″重度污染″label1.caption=″等級(jí):″+grade答案:D考點(diǎn)1考點(diǎn)2解析:本題是關(guān)于選擇結(jié)構(gòu)程序的語法結(jié)構(gòu)問題。If語句語法結(jié)構(gòu)主要有行形式和塊形式。對(duì)于多重判斷的塊形式If語句,它的語法結(jié)構(gòu)如下:If條件1 Then 語句塊1ElseIf條件2 Then 語句塊2……ElseIf條件n Then 語句塊nElse 語句塊0End If考點(diǎn)1考點(diǎn)2其執(zhí)行過程是當(dāng)?shù)?個(gè)條件滿足時(shí),如果該條件成立,執(zhí)行語句塊1,執(zhí)行語句塊1后不再判斷其他的條件,直接跳轉(zhuǎn)到End If后面執(zhí)行后續(xù)語句;若第1個(gè)條件不滿足時(shí),再執(zhí)行判斷第2個(gè)條件,如果不成立,再判斷第3個(gè)條件……如果所有n個(gè)條件都不滿足,則執(zhí)行Else后面的語句塊0。選項(xiàng)D用了4個(gè)獨(dú)立的If語句,其中第4句的功能是如果API在201~300之間,等級(jí)是中度污染,如果不是這個(gè)范圍,即API<=200或API>=301為重度污染,不合題意。考點(diǎn)1考點(diǎn)2變式有如下VB程序段Private Sub Command1_Click()s=val(text1.text)if s>=62 thengrade=″A″elseif s>=55 thengrade=″B″elseif s>=50 thengrade=″C″elseif s>=43 thengrade=″D″else考點(diǎn)1考點(diǎn)2grade=″E″end iflabel1.caption=″等級(jí):″+gradeEnd Sub運(yùn)行該程序,在文本框中輸入52,單擊命令按鈕Command1,在標(biāo)簽label1中顯示的內(nèi)容是 。?答案:等級(jí):C解析:本題是關(guān)于選擇結(jié)構(gòu)程序的變量求值問題。選擇結(jié)構(gòu)涉及多種情況判斷,在程序的執(zhí)行過程中將會(huì)選擇其中符合條件的一路分支執(zhí)行。題中變量s的值是52,第3個(gè)條件判斷s>=50的值為True,因此執(zhí)行語句grade=″C ″,其他分支不再執(zhí)行,在標(biāo)簽label1中顯示的內(nèi)容是“等級(jí):C”。考點(diǎn)1考點(diǎn)2Do語句格式:Do While 條件表達(dá)式語句塊LoopDo語句與For語句的運(yùn)行機(jī)制相近,但Do語句更側(cè)重于循環(huán)次數(shù)未知情況下的程序。考點(diǎn)1考點(diǎn)2例2有如下程序:x=1For i=1 To 5 Step 2x=x*iNext i該程序運(yùn)行后,變量x的值是( )A.120 B.15 C.5 D.1答案:B解析:本題涉及循環(huán)結(jié)構(gòu)程序(For語句)的變量求值問題。For語句中的循環(huán)變量的值,會(huì)在[初值,終值]的范圍內(nèi)按照步長(zhǎng)增加或減少,直至超出終值,循環(huán)結(jié)束。本題是通過循環(huán)體中的“x=x*i”語句,將i的值依次累積到變量x中,下表羅列了程序中各變量在語句執(zhí)行過程中的變化情況:考點(diǎn)1考點(diǎn)2如果把本題中的步長(zhǎng)改為-2,要完成同樣功能,則程序可改為:x=1For i=5 To 1 Step-2x=x* iNext i即如果步長(zhǎng)為負(fù)值,那么初值須大于等于終值,循環(huán)變量i的值將依次是5、3、1、-1。考點(diǎn)1考點(diǎn)2變式有如下程序:x=1i=1do while i<=5x=x*ii=i+2loop該程序運(yùn)行后,變量i的值是 。?答案:7解析:本題涉及循環(huán)結(jié)構(gòu)程序(Do語句)的循環(huán)變量求值問題。For循環(huán)通過Next語句,按照步長(zhǎng)改變循環(huán)變量的值,直至循環(huán)結(jié)束。Do語句則需要在其循環(huán)體內(nèi)編寫改變循環(huán)變量的語句,直至While條件表達(dá)式的值為False時(shí),循環(huán)結(jié)束。程序運(yùn)行中,各變量變化過程如下表所示:考點(diǎn)1考點(diǎn)2由上表結(jié)合程序可知,當(dāng)語句塊進(jìn)入第3次循環(huán)時(shí),執(zhí)行語句i=i+2后,循環(huán)變量x的值將會(huì)變?yōu)?,從而使條件表達(dá)式i<=5的值為False,程序無法進(jìn)入第4次循環(huán),循環(huán)終止。1.有以下VB程序dim x as integer,y as integerx=val(text1.text)if x>=0 theny=x^3elsey=-x^3end iflabel2.caption=str(y)若要測(cè)試所有分支程序代碼是否正確,下列測(cè)試數(shù)據(jù)中最恰當(dāng)?shù)囊唤M是( )A.0,10 B.-1,-2 C.-1,0 D.10,100答案:C 2.用VB語句描述:如果x≤10且x>1,則y=x3,否則y=-x3,是( )A.If 1B.If x<=10,x>y Then y=x3 else y=-x3C.If x<=10 and x>1 then y=x^3 else y=-x^3D.If x<=10 or x>1 then y=x^3 else y=-x^3答案:C3.有如下Visual Basic程序段:a=2b=1c=3m=aIf b>a Then m=bIf c>m then m=c該程序段運(yùn)行后,變量m的值是( )A.1 B.2 C.3 D.0答案:C 解析:程序中兩個(gè)if語句實(shí)現(xiàn)了把a(bǔ)、b、c中的最大數(shù)賦值給m的功能。4.下列VB程序段用來判斷某數(shù)的正負(fù)情況:x=val(text1.text)if then?label1.caption=″正數(shù)″elselabel1.caption=″負(fù)數(shù)″end if則程序劃線處應(yīng)填入( )A.x<0 B.x<>0 C.x>0 D.x<=0答案:C5.以下事件處理過程用來判斷三邊能否組成三角形:Private Sub Command1_Click()a=3b=4c=5if a+b>c and b+c>a and a+c>b then label1.caption=″可以″ else label1.caption=″不行″ end ifEnd Sub運(yùn)行程序后,單擊命令按鈕Command1后,結(jié)果是( )A.標(biāo)簽label1顯示“不行”B.標(biāo)簽label1顯示“可以”C.出現(xiàn)“語法錯(cuò)誤”的錯(cuò)誤信息D.出現(xiàn)“塊if沒有end if”的錯(cuò)誤信息答案:C 解析:行if語句結(jié)尾不需要end if。6.某算法的部分程序代碼和其相對(duì)應(yīng)的流程圖分別表示如下:Private Sub Command1_click( ) dim s as integer,i as integer dim n as integer n=val(text1.text) s=0 for ① ?② ? next i label1.caption=str(s)End Sub則程序①②處應(yīng)填入的代碼是( )A.①i=0 to n step 2 ②s=s+iB.①i=0 to n ②s=s+iC.①i=1 to n step 2 ②s=s+iD.①i=0 to n step 2 ②s=s*i答案:A 解析:由流程圖可知,i是循環(huán)變量,初值是0,終值是n,步長(zhǎng)為2,則1處代碼是i=0 to n step 2;每次循環(huán)把i的值累加到S中,則2處代碼是s=s+i。7.有以下VB程序段:s=0for i=1 to 10 step 3s=s+inext該程序執(zhí)行后,變量i和s的值分別為( )A.13,22 B.10,22 C.13,35 D.10,35答案:A 解析:for語句步長(zhǎng)是3,循環(huán)變量i的值依次是1、4、7、10,循環(huán)4次,最后i=13,每次循環(huán)把i的值累加到s中,所以s=1+4+7+10=22。8.為計(jì)算1+3+5+…+99的值,某人編程如下:k=1s=0do while k<=99k=k+2s=s+kloopprint s在調(diào)試時(shí)發(fā)現(xiàn)運(yùn)行結(jié)果有錯(cuò)誤,需要修改。下列對(duì)于錯(cuò)誤原因和修正方案的描述正確的是( )A.do while...loop循環(huán)語句錯(cuò)誤,應(yīng)改為For k=1 To 99...Next kB.循環(huán)條件錯(cuò)誤,應(yīng)改為k<99C.循環(huán)前的賦值語句k=1錯(cuò)誤,應(yīng)改為k=0D.循環(huán)中兩條賦值語句的順序錯(cuò)誤,應(yīng)改為s=s+k:k=k+2答案:D9.有以下VB程序段:s=1:i=1do while s<100s=s*ii=i*2loop該程序執(zhí)行后,變量i和s的值分別為( )A.8,64 B.16,1024 C.32,1024 D.16,64答案:C 解析:程序運(yùn)行中,各變量變化過程如下表所示:10.有以下VB程序段:s=0for i=10 to step-2?s=s+inext i若要使語句s=s+i執(zhí)行6次,則循環(huán)變量i終值應(yīng)為 ( )A.0 B.1 C.2 D.-2答案:A11.有如下VB程序s=0:i=1do while ?s=s+ii=i+2loop該程序運(yùn)行后,變量S的值等于16,則程序劃線處的語句是( )A.i<=5 B.i<=7 C.i<7 D.i<=9答案:B 解析:i的變化規(guī)律是1、3、5、7、9….,s的值由i累加而得,s=1+3+5+7=16,所以條件是i<=7。12.現(xiàn)要求編寫VB程序,編輯界面如圖甲所示,運(yùn)行界面如圖乙所示,程序功能如下:在文本框Text1中輸入N的值,單擊“求和”按鈕Command1,完成N以內(nèi)奇數(shù)和的計(jì)算,并在文本框Text2中顯示計(jì)算結(jié)果。(1)觀察編輯界面和運(yùn)行界面,發(fā)現(xiàn)缺少控件,需要添加的對(duì)象為 (填寫對(duì)象名稱)。?(2)請(qǐng)根據(jù)題意將下列程序補(bǔ)充完整。Private Sub Command1_Click()Dim n As Integer,s As Integer,i As Integern=Val(Text1.Text)For i=① ?s=s+iNext i② =Str(s)?End Sub答案:(1)Text2 (2)①1 To n Step 2 ②Text2.Text解析:題目要求文本框Text2中顯示計(jì)算結(jié)果,需要添加的對(duì)象為Text2,程序最后把求和結(jié)果顯示在文本框Text2中,所以②處填寫Text2.Text。程序中for循環(huán)用以計(jì)算N以內(nèi)奇數(shù)和,每次循環(huán)把i的值累加到s中,所以i的變化規(guī)律應(yīng)該是1、3、5、7…n,所以①處填入1 To n Step 2。 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫