资源简介 4.1.1解析法概述学校:___________姓名:___________班级:___________考号:___________一、选择题1.解析算法是通过找出解决问题的前提条件与结果之间的关系表达式,并计算表达式来实现问题的求解,下列更适合使用解析算法实现的是( )A.找出1000以内的所有质数 B.输入长方形的长和宽,计算长方形的周长C.统计全班同学的身高 D.将输入的三个数从小到大进行排序2.下列问题中适合使用解析算法解决的是( )A.找出区模考中所有满分同学的试卷B.将10头小猪按体重由大到小的顺序进行排列C.猜测一台笔记本电脑的价格D.已知三角形的边长分别为a、b、c,求该三角形面积3.下列问题适合用解析算法求解的是( )A.寻找一堆彩球中的所有红球。 B.计算一个球从100米高的楼顶掉下来落地时的速度。C.将全班同学根据身高从低到高排队。 D.统计10000以内各位数字之和是18的偶数个数。4.2022年的开年明星,“冰墩墩”当仁不让,整个冬奥会赛事期间,冰墩墩常常霸榜微博热搜。除了话题度,与冰墩墩相关的衍生品也一直脱销,线下线上“一墩难求”。家在太原的小明有幸较早买到了几个冰墩墩和雪容融毛绒公仔,准备选择顺丰标快邮寄给在临汾老家的表弟,经查找获取到顺丰标快省内实时计费规则为首重(1.0kg以内):13.0元,超过1.0kg的部分:2.0元/kg,为了预估邮费,小明准备用所学Python语言编写一个计费程序。小明在设计算法时运用weight=n×i+m×j等数学式子来求解,他采用的算法属于( )A.枚举法 B.二分法 C.解析法 D.递归法5.以下适合用解析法解决的问题是()。A.计算出租车费B.求符合要求的三位正整数的“水仙花数”C.将10个评委的打分按由大到小的顺序排序D.找出一筐乒乓球质量不符合标准的球6.mn(m、n均为正整数,且m、n均大于1)可以分解成m项公差为2的等差数列,该数列各项之和与mn等值。程序界面如图所示,实现该功能的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中分别输入下列值,其中运行结果不同的是( )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执行该程序段后,在下列选项中,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个电阻阻值,求它们并联后的阻值② 求某个同学期中考试各科成绩总分③ 求某个班级期中考试某门科目的最高成绩④ 根据三个系数a、b、c的值,求一元二次方程ax2+bx+c=0的解A.①②③ B.②③④ C.①②④ D.①②③④10.下列问题适合用解析算法求解的是( )A.将全般40名学生根据身高从低到高排队B.在一筐鸡蛋中寻找鸭蛋C.计算5个电阻并联的总的电阻值D.统计3000以内各位数字之和是20的偶数的个数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数组b各元素初始值为0,数组元素a(1)到a(10)的值依次为“68,17,24,30,36,40,55,58,61,66”,执行该程序段,num的值为( )A.2 B.3 C.4 D.512.某算法的部分流程图如图所示。执行该流程,输出s的值约为A.0 B.1 C.2 D.3二、操作题13.用英文字母 A~D 对数字字符 0~9 进行编码, 规则如下表所示:数字字符 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对应编码 A A A B ... B D C A C B例如, 数字字符串“709”的编码为“BDAACB”。 用 VB 程序实现上述编码,功能如下:在文本框 Text1 中输入编码的一串数字字符,单击“编码”命令按钮 Command1, 在文本框 Text2 中显示编码结果。程序 运行界面如图所示。(1)若要将按钮中的“编码”二字替换成“字符编码”,应修改其对应的 属性。(2)下列属于 VB 窗体文件的是 (单选, 填字母)。A.szbm.vbp B.szbm.frm C.szbm.exe(3) 实现上述功能的 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 ' 退出循环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 中显示编码结果为 。14.行程编码(Rim-length Coding)是一种相对简单的压缩技术,是将一个相同字符的连续串用一个串长和字符来代替。例如,有一个字符串“aaabccddddd”,经过行程编码压缩后可以用“3a1b2c5d”来表示。小李编写了一个行程编码的VB程序,功能如下:在文本框Text1中输入原码,单击“压缩”按钮Command1后,在文本框Text2中显示压缩码。程序设计界面和运行界面分别如图a和图b所示。图a 图b(1)在设计程序界面时,要使文本框Text2显示为空,可在其属性窗口中将 属性的属性值修改为空。(2)实现上述功能的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中显示的内容为 。15.某市对一户一表居民实行阶梯电价,电费计算方式如下:月用电量在1-50千瓦时部分不调价;月用电量在51-200千瓦时部分,电价每千瓦时上调0.03元;月用电量超过200千瓦时部分,电价每千瓦时上调0.10元。若假定某用户一个月的用电量为x千瓦时,当前单价为p元/千瓦时,则计算标准如下:当时,电费为元;当时,电费为元;当时,电费为元。程序设计界面如下图所示,程序的功能是:在文本框Text1中输入用电量x(单位:千瓦时),在文本框Text2中输入电量p(单位:元),单击“计算”按钮(Command1)后,在标签Label4中输出计算结果。(1)实现上述功能的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.现要求编写VB程序,编辑界面如1图所示,运行界面如2图所示,程序功能如下:在文本框Text1中输入n的值,单击“求和”按钮Command1,完成n以内奇数和的计算,并在文本框Text2中显示计算结果。1图 2图(1)观察编辑界面和运行界面,发现图1缺少控件,需要添加的对象为________(填写对象名称).(2)请根据题意将下列程序补充完整。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)该程序属于 算法(选填:枚举/解析)参考答案:1.B【详解】本题考查解析算法的描述。解析算法是通过找出解决问题的前提条件与结果之间关系的表达式,并计算表达式来实现问题的求解。结合选项,可知更适合使用解析算法实现的是:输入长方形的长和宽,计算长方形的周长。故选B。2.D【详解】本题主要考查解析算法的应用。解析算法,即解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。已知三角形的边长分别为a、b、c,求该三角形面积,可以使用数学表达式计算求解,故本题选D选项。3.B【详解】本题主要考查算法的描述。所谓解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。结合选项可知,计算一个球从100米高的楼顶掉下来落地时的速度,适用于解析算法;统计10000以内各位数字之和是18的偶数个数,使用于枚举算法,故本题选B选项。4.C【详解】本题主要考查算法描述。运用weight=n×i+m×j等数学式子来求解,这种算法属于解析法,故本题选C选项。5.A【详解】本题主要考查解析法应用。能够使用数学的解析表达式来计算的问题可采用解析法,计算出租车费可借助数学公式求解,因此A选项正确;求符合要求的三位正整数的“水仙花数”可使用枚举法,因此B选项错误;将10个评委的打分按由大到小的顺序排序使用排序算法,因此C选项错误;找出一筐乒乓球质量不符合标准的球可使用枚举法,因此D选项错误。【点睛】6.A【详解】本题主要考查解析算法程序实现。该程序考查m^n可以分解成m项公差为2的等差数列,其中该等差数列起始项为m ^ (n - 1) - m + 1,当i < m 时,该数列元素均自增2,因此A选项正确。【点睛】7.B【详解】本题主要考查进制转换的算法实现。变量a存储的是n转换为二进制后1的个数,变量b存储的是n转换为二进制后0的个数,11,12,13,14转换为二进制后依次为1011,1100,1101,1110,所以只有12输出的结果为相等,其他均为不等,因此B选项正确。【点睛】8.C【详解】本题考查的知识点是VB程序的解读。a(i)= Int(Rnd* 15)可知a(i)的值为0~14之间的正整数,程序完毕后,a(1)、a(2)的值为0~14之间的正整数,a(3)~a(6)的值0~7之间的正整数,选项C中如果a(3)的值为10,则a(3)减半之前的数为20,所以不可能,故答案选C。9.C【详解】本题考查是解析法相关知识。解析法是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式。并通过表达式的计算来实现问题求解。故选项C正确。10.C【详解】本题考查的是解析算法。所谓解析法是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式。故选项C正确。11.D【详解】本题考查算法的综合能力。任意整数a(i)Mod 10是取出数a(i)中的个位数字,本题中a数组中的元素都是2位整数,a(i)\10取出的是数字中的十位数字,第一个循环统计个位、十位每个数字出现的次数,第二个循环统计出现次数最多的数字。根据统计可知,数字6出现的次数最多为5次,故num最后的值为5,故选D。12.C【详解】本题考查的知识点是循环函数用法。假设s是int型第1次循环:s=3,k=1→k<50成立→s=3-2/3=2第2次循环:s=2.333,k=2→k<50成立→s=3-2/2=2……第49次循环:s=2,k=49→k<50成立→s=3-2/2=2第50次循环:s=2,k=50→k<50不成立→退出循环,输出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程序的循环结构及其算法。完整对照表如下:(1)若要将按钮中的“编码”二字替换成“字符编 码”,应修改其对应的Caption属性。(2)szbm.vbp是VB项目文件,szbm.frm是VB窗体文件,szbm.exe是可执行程序。故选项B正确。(3)该for循环次数为输入字符串s的字符个数len(s);(4)每次循环从前向后依次提取字符,并赋值给变量ch,故ch=Mid(s, i, 1);(5)由对照表可知,对4取整运算得到的是左侧对应code字母,对4求余运算的到的是右侧对应code字母,故numR=Val(ch) Mod 4 。(6)将每次循环的到的字母组合起来,即result = result + Mid(code, numL + 1, 1) +Mid(code, numR + 1, 1);(7)由图表查询可知,5对应编码BB,8对应编码CA,即BBCA。14. Text ①Len(s) ②count= count + 1 ③i=i+1 2a【详解】本题考查的知识点是VB程序。(1)VB中Caption属性用来在窗口中用来显示窗口标题,在控件中用来显示控件名称。文本框中text属性用来显示文本框中需要显示的内容。故填Text;(2)首先要获取输入字符串Text1的长度,故length=Len(s);(3)如果下一个字符与上一个字符重复,则该字符计数count加1,故count= count + 1;(4)进入下一个循环,即判断下一个字符是重复字符还是新的字符,故i=i+1;(5)不删除④的代码,显示内容为“2a5d”,如果删除④的代码,则最后一个重复字符不加入压缩代码,故显示内容为“2a”。15. val(text1.text) elseif x>50 and x<=200 then str(s) val(text2.text)【详解】本题考查解析算法。(1)代码第一空,当前用电量从文本框1中得到,同时注意数据类型,故填入val(text1.text)。(2)根据题干,当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缺少一个文本框控件,结合程序提示该对象应为text2;(2)文本框Text1接收输入后,应该转换为数值型赋值给变量n,因此① n=val(text1.text);题目要求n以内奇数和的计算,For循环结构步长值为2即可列举各奇数,因此② s=s+i;(3)解析法是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。【点睛】 展开更多...... 收起↑ 资源预览