資源簡介 4.1.1解析法概述學校:___________姓名:___________班級:___________考號:___________一、選擇題1.解析算法是通過找出解決問題的前提條件與結(jié)果之間的關(guān)系表達式,并計算表達式來實現(xiàn)問題的求解,下列更適合使用解析算法實現(xiàn)的是( )A.找出1000以內(nèi)的所有質(zhì)數(shù) B.輸入長方形的長和寬,計算長方形的周長C.統(tǒng)計全班同學的身高 D.將輸入的三個數(shù)從小到大進行排序2.下列問題中適合使用解析算法解決的是( )A.找出區(qū)模考中所有滿分同學的試卷B.將10頭小豬按體重由大到小的順序進行排列C.猜測一臺筆記本電腦的價格D.已知三角形的邊長分別為a、b、c,求該三角形面積3.下列問題適合用解析算法求解的是( )A.尋找一堆彩球中的所有紅球。 B.計算一個球從100米高的樓頂?shù)粝聛砺涞貢r的速度。C.將全班同學根據(jù)身高從低到高排隊。 D.統(tǒng)計10000以內(nèi)各位數(shù)字之和是18的偶數(shù)個數(shù)。4.2022年的開年明星,“冰墩墩”當仁不讓,整個冬奧會賽事期間,冰墩墩常常霸榜微博熱搜。除了話題度,與冰墩墩相關(guān)的衍生品也一直脫銷,線下線上“一墩難求”。家在太原的小明有幸較早買到了幾個冰墩墩和雪容融毛絨公仔,準備選擇順豐標快郵寄給在臨汾老家的表弟,經(jīng)查找獲取到順豐標快省內(nèi)實時計費規(guī)則為首重(1.0kg以內(nèi)):13.0元,超過1.0kg的部分:2.0元/kg,為了預估郵費,小明準備用所學Python語言編寫一個計費程序。小明在設(shè)計算法時運用weight=n×i+m×j等數(shù)學式子來求解,他采用的算法屬于( )A.枚舉法 B.二分法 C.解析法 D.遞歸法5.以下適合用解析法解決的問題是()。A.計算出租車費B.求符合要求的三位正整數(shù)的“水仙花數(shù)”C.將10個評委的打分按由大到小的順序排序D.找出一筐乒乓球質(zhì)量不符合標準的球6.mn(m、n均為正整數(shù),且m、n均大于1)可以分解成m項公差為2的等差數(shù)列,該數(shù)列各項之和與mn等值。程序界面如圖所示,實現(xiàn)該功能的VB程序段如下:m = Val(Text1.Text)n = Val(Text2.Text)s = ""x = (1) For i = 1 To m s = s + Str(x) If (2) Then s = s & " +" x = x + 2Next iLabel1.Caption = Str(m) + " ^" + Str(n) + " =" + s上述程序段中方框處可選語句為:①m ^ (n - 1) - m + 1 ②m ^ (n - 1) - n + 1③i < m ④i = m則(1)(2)處填入的語句依次為( )A.①③ B.①④ C.②③ D.②④7.有VB程序段如下a=0:b=0n= Val(Text1. Text)Do While n>0 r=n Mod 2 a=a+r b=b+1-r n=n\2LoopIf a=b Then Print"相等"Else Print"不等"該程序段運行后,在文本框Text1中分別輸入下列值,其中運行結(jié)果不同的是( )A.11 B.12 C.13 D.148.有如下VB程序段:For i= 1 To 6 a(i)= Int(Rnd* 15) If i >= 3 Then lf a(i) = a(i- 1)+ a(i - 2)Then a(i)= a(i) Mod 2 Else a(i) = a(i)\ 2 End If End IfNext i執(zhí)行該程序段后,在下列選項中,a(1)-a(6)各元素值不可能的是( )A.7 13 2 1 1 3 B.9 3 2 3 0 2C.2 8 10 3 5 7 D.14 11 7 2 4 19.在日常生活中,我們常常會碰到許多可以用算法解決的問題,以下描述中適合用解析法來解決的有( )。① 已知5個電阻阻值,求它們并聯(lián)后的阻值② 求某個同學期中考試各科成績總分③ 求某個班級期中考試某門科目的最高成績④ 根據(jù)三個系數(shù)a、b、c的值,求一元二次方程ax2+bx+c=0的解A.①②③ B.②③④ C.①②④ D.①②③④10.下列問題適合用解析算法求解的是( )A.將全般40名學生根據(jù)身高從低到高排隊B.在一筐雞蛋中尋找鴨蛋C.計算5個電阻并聯(lián)的總的電阻值D.統(tǒng)計3000以內(nèi)各位數(shù)字之和是20的偶數(shù)的個數(shù)11.有如下ⅤB程序段:For i=1 To 10b(a(i) Mod 10)= b(a(i) Mod 10)+1b(a(i)\10)=b(a(i)\10)+1Next inum=0Fori=0 To 9If b(i>num Then num b(i)Next i數(shù)組b各元素初始值為0,數(shù)組元素a(1)到a(10)的值依次為“68,17,24,30,36,40,55,58,61,66”,執(zhí)行該程序段,num的值為( )A.2 B.3 C.4 D.512.某算法的部分流程圖如圖所示。執(zhí)行該流程,輸出s的值約為A.0 B.1 C.2 D.3二、操作題13.用英文字母 A~D 對數(shù)字字符 0~9 進行編碼, 規(guī)則如下表所示:數(shù)字字符 0 1 ... 7 8 9二進制值 0 0 0 0 0 0 0 1 ... 0 1 1 1 1 0 0 0 1 0 0 1十進制值 0 0 0 1 ... 1 3 2 0 2 1對應(yīng)編碼 A A A B ... B D C A C B例如, 數(shù)字字符串“709”的編碼為“BDAACB”。 用 VB 程序?qū)崿F(xiàn)上述編碼,功能如下:在文本框 Text1 中輸入編碼的一串數(shù)字字符,單擊“編碼”命令按鈕 Command1, 在文本框 Text2 中顯示編碼結(jié)果。程序 運行界面如圖所示。(1)若要將按鈕中的“編碼”二字替換成“字符編碼”,應(yīng)修改其對應(yīng)的 屬性。(2)下列屬于 VB 窗體文件的是 (單選, 填字母)。A.szbm.vbp B.szbm.frm C.szbm.exe(3) 實現(xiàn)上述功能的 VB 程序如下, 請在劃線處填入合適的代碼。Private Sub Command1_Click()Dim code As String, s As String, ch As String, result As StringDim i As Integer, numL As Integer, numR As IntegerDim flag As Booleancode = "ABCD"s = Text1.Textflag = Trueresult = ""For i = 1 ToIf ch < "0" Or ch > "9" Thenflag = FalseExit For ' 退出循環(huán)ElsenumL = Val(ch) \ 4numR =result = result + Mid(code, numL + 1, 1) +End IfNext iIf flag ThenText2.Text = resultElseText2.Text = "輸入錯誤"End IfEnd Sub(3) 運行該程序, 若在文本框 Text1 中輸入“58,單擊“編碼”命令按鈕 Command1,在 文本框 Text2 中顯示編碼結(jié)果為 。14.行程編碼(Rim-length Coding)是一種相對簡單的壓縮技術(shù),是將一個相同字符的連續(xù)串用一個串長和字符來代替。例如,有一個字符串“aaabccddddd”,經(jīng)過行程編碼壓縮后可以用“3a1b2c5d”來表示。小李編寫了一個行程編碼的VB程序,功能如下:在文本框Text1中輸入原碼,單擊“壓縮”按鈕Command1后,在文本框Text2中顯示壓縮碼。程序設(shè)計界面和運行界面分別如圖a和圖b所示。圖a 圖b(1)在設(shè)計程序界面時,要使文本框Text2顯示為空,可在其屬性窗口中將 屬性的屬性值修改為空。(2)實現(xiàn)上述功能的VB程序如下。請在劃線處填入合適代碼。Private Sub Command1_Click()Dim i As Integer, count As Integer, length As IntegerDim ch As String, key As String, s As Strings= Text1.Textlength= ①key= Mid(s,1,1)i= 2 : count= 1Do While i <= lengthch= Mid(s,i,1)If ch = key Then②ElseText2.Text = Text2.Text + Str(count) + keycount= 1key= chEnd If③LoopText2.Text = Text2.Text + Str(count)+ key '④End Sub(3)如果刪除“④”所在的那一行代碼,運行該程序,在文本框Text1 中輸入“aaddddd”,單擊“壓縮”按鈕,則文本框Text2中顯示的內(nèi)容為 。15.某市對一戶一表居民實行階梯電價,電費計算方式如下:月用電量在1-50千瓦時部分不調(diào)價;月用電量在51-200千瓦時部分,電價每千瓦時上調(diào)0.03元;月用電量超過200千瓦時部分,電價每千瓦時上調(diào)0.10元。若假定某用戶一個月的用電量為x千瓦時,當前單價為p元/千瓦時,則計算標準如下:當時,電費為元;當時,電費為元;當時,電費為元。程序設(shè)計界面如下圖所示,程序的功能是:在文本框Text1中輸入用電量x(單位:千瓦時),在文本框Text2中輸入電量p(單位:元),單擊“計算”按鈕(Command1)后,在標簽Label4中輸出計算結(jié)果。(1)實現(xiàn)上述功能的VB程序如下,請在劃線處填入合適的代碼。①②③(2)程序代碼中加框處代碼有誤,請改正。改正:Private Sub Command1_Click()Dim x As Single, p As SingleDim s As Singlex = ①p = '此處改錯If x <= 50 Then s = p * x② s = p * x + (x - 50) * 0.03Else s = p * x + 4.5 + (x - 200) * 0.1End IfLabel4.Caption = "本月的電費為:" + ③ + "元"End Sub16.現(xiàn)要求編寫VB程序,編輯界面如1圖所示,運行界面如2圖所示,程序功能如下:在文本框Text1中輸入n的值,單擊“求和”按鈕Command1,完成n以內(nèi)奇數(shù)和的計算,并在文本框Text2中顯示計算結(jié)果。1圖 2圖(1)觀察編輯界面和運行界面,發(fā)現(xiàn)圖1缺少控件,需要添加的對象為________(填寫對象名稱).(2)請根據(jù)題意將下列程序補充完整。Private Sub Command1_Click()Dim n As Integer, s As Integer, i As Integer①For i = 1 To n Step 2②Next iText2.Text= Str(s)End Sub(3)該程序?qū)儆?算法(選填:枚舉/解析)參考答案:1.B【詳解】本題考查解析算法的描述。解析算法是通過找出解決問題的前提條件與結(jié)果之間關(guān)系的表達式,并計算表達式來實現(xiàn)問題的求解。結(jié)合選項,可知更適合使用解析算法實現(xiàn)的是:輸入長方形的長和寬,計算長方形的周長。故選B。2.D【詳解】本題主要考查解析算法的應(yīng)用。解析算法,即解析法(analysis algorithm)是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學表達式,并通過表達式的計算來實現(xiàn)問題求解。已知三角形的邊長分別為a、b、c,求該三角形面積,可以使用數(shù)學表達式計算求解,故本題選D選項。3.B【詳解】本題主要考查算法的描述。所謂解析法(analysis algorithm)是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學表達式,并通過表達式的計算來實現(xiàn)問題求解。結(jié)合選項可知,計算一個球從100米高的樓頂?shù)粝聛砺涞貢r的速度,適用于解析算法;統(tǒng)計10000以內(nèi)各位數(shù)字之和是18的偶數(shù)個數(shù),使用于枚舉算法,故本題選B選項。4.C【詳解】本題主要考查算法描述。運用weight=n×i+m×j等數(shù)學式子來求解,這種算法屬于解析法,故本題選C選項。5.A【詳解】本題主要考查解析法應(yīng)用。能夠使用數(shù)學的解析表達式來計算的問題可采用解析法,計算出租車費可借助數(shù)學公式求解,因此A選項正確;求符合要求的三位正整數(shù)的“水仙花數(shù)”可使用枚舉法,因此B選項錯誤;將10個評委的打分按由大到小的順序排序使用排序算法,因此C選項錯誤;找出一筐乒乓球質(zhì)量不符合標準的球可使用枚舉法,因此D選項錯誤。【點睛】6.A【詳解】本題主要考查解析算法程序?qū)崿F(xiàn)。該程序考查m^n可以分解成m項公差為2的等差數(shù)列,其中該等差數(shù)列起始項為m ^ (n - 1) - m + 1,當i < m 時,該數(shù)列元素均自增2,因此A選項正確。【點睛】7.B【詳解】本題主要考查進制轉(zhuǎn)換的算法實現(xiàn)。變量a存儲的是n轉(zhuǎn)換為二進制后1的個數(shù),變量b存儲的是n轉(zhuǎn)換為二進制后0的個數(shù),11,12,13,14轉(zhuǎn)換為二進制后依次為1011,1100,1101,1110,所以只有12輸出的結(jié)果為相等,其他均為不等,因此B選項正確。【點睛】8.C【詳解】本題考查的知識點是VB程序的解讀。a(i)= Int(Rnd* 15)可知a(i)的值為0~14之間的正整數(shù),程序完畢后,a(1)、a(2)的值為0~14之間的正整數(shù),a(3)~a(6)的值0~7之間的正整數(shù),選項C中如果a(3)的值為10,則a(3)減半之前的數(shù)為20,所以不可能,故答案選C。9.C【詳解】本題考查是解析法相關(guān)知識。解析法是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學表達式。并通過表達式的計算來實現(xiàn)問題求解。故選項C正確。10.C【詳解】本題考查的是解析算法。所謂解析法是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學表達式。故選項C正確。11.D【詳解】本題考查算法的綜合能力。任意整數(shù)a(i)Mod 10是取出數(shù)a(i)中的個位數(shù)字,本題中a數(shù)組中的元素都是2位整數(shù),a(i)\10取出的是數(shù)字中的十位數(shù)字,第一個循環(huán)統(tǒng)計個位、十位每個數(shù)字出現(xiàn)的次數(shù),第二個循環(huán)統(tǒng)計出現(xiàn)次數(shù)最多的數(shù)字。根據(jù)統(tǒng)計可知,數(shù)字6出現(xiàn)的次數(shù)最多為5次,故num最后的值為5,故選D。12.C【詳解】本題考查的知識點是循環(huán)函數(shù)用法。假設(shè)s是int型第1次循環(huán):s=3,k=1→k<50成立→s=3-2/3=2第2次循環(huán):s=2.333,k=2→k<50成立→s=3-2/2=2……第49次循環(huán):s=2,k=49→k<50成立→s=3-2/2=2第50次循環(huán):s=2,k=50→k<50不成立→退出循環(huán),輸出s=2,故選項C正確。13. Caption B Len(s) 或 Len(Text1.Text) ch = Mid(s, i, 1) Val(ch) Mod 4 或 其他等價表達式 Mid(code, numR + 1, 1) BBCA【詳解】本題考查的知識點是VB程序的循環(huán)結(jié)構(gòu)及其算法。完整對照表如下:(1)若要將按鈕中的“編碼”二字替換成“字符編 碼”,應(yīng)修改其對應(yīng)的Caption屬性。(2)szbm.vbp是VB項目文件,szbm.frm是VB窗體文件,szbm.exe是可執(zhí)行程序。故選項B正確。(3)該for循環(huán)次數(shù)為輸入字符串s的字符個數(shù)len(s);(4)每次循環(huán)從前向后依次提取字符,并賦值給變量ch,故ch=Mid(s, i, 1);(5)由對照表可知,對4取整運算得到的是左側(cè)對應(yīng)code字母,對4求余運算的到的是右側(cè)對應(yīng)code字母,故numR=Val(ch) Mod 4 。(6)將每次循環(huán)的到的字母組合起來,即result = result + Mid(code, numL + 1, 1) +Mid(code, numR + 1, 1);(7)由圖表查詢可知,5對應(yīng)編碼BB,8對應(yīng)編碼CA,即BBCA。14. Text ①Len(s) ②count= count + 1 ③i=i+1 2a【詳解】本題考查的知識點是VB程序。(1)VB中Caption屬性用來在窗口中用來顯示窗口標題,在控件中用來顯示控件名稱。文本框中text屬性用來顯示文本框中需要顯示的內(nèi)容。故填Text;(2)首先要獲取輸入字符串Text1的長度,故length=Len(s);(3)如果下一個字符與上一個字符重復,則該字符計數(shù)count加1,故count= count + 1;(4)進入下一個循環(huán),即判斷下一個字符是重復字符還是新的字符,故i=i+1;(5)不刪除④的代碼,顯示內(nèi)容為“2a5d”,如果刪除④的代碼,則最后一個重復字符不加入壓縮代碼,故顯示內(nèi)容為“2a”。15. val(text1.text) elseif x>50 and x<=200 then str(s) val(text2.text)【詳解】本題考查解析算法。(1)代碼第一空,當前用電量從文本框1中得到,同時注意數(shù)據(jù)類型,故填入val(text1.text)。(2)根據(jù)題干,當5050 and x<=200 then。(3)代碼第三空,本月的電費為str(s)元。(4)將加框處改為val(text2.text)。16.(1)text2(2)① n=val(text1.text) ② s=s+i(3)解析【詳解】本題主要考查VB編程。(1)對照運行界面1和運行界面2可知圖1缺少一個文本框控件,結(jié)合程序提示該對象應(yīng)為text2;(2)文本框Text1接收輸入后,應(yīng)該轉(zhuǎn)換為數(shù)值型賦值給變量n,因此① n=val(text1.text);題目要求n以內(nèi)奇數(shù)和的計算,F(xiàn)or循環(huán)結(jié)構(gòu)步長值為2即可列舉各奇數(shù),因此② s=s+i;(3)解析法是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學表達式,并通過表達式的計算來實現(xiàn)問題求解。【點睛】 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫