资源简介 第三单元 算法和程序设计 单元检测一、选择题1.已知正方形的边长为a,其中有一个内切圆,圆内小正方形的边长为a/2。下列流程图执行后的输出结果为( )。A.圆外四角面积之和B.内切圆面积C.小正方形面积D.阴影部分面积2.某算法部分流程图如图所示。执行这部分流程,输入x、y的值分别为60,27,则输出m的值是( )A.3 B.87 C.120 D.5403.某算法的部分流程图如下图所示,执行这部分流程,若输入i的值为序列[2, 3, 4, 5]中的随机数,则下列说法正确的是( )A.变量c的最大值为11 B.“a>0 ”至少执行5次C.程序结束时变量a一定等于0 D.只能使用while语句实现该循环结构4.为了防止他人登录自己的邮箱,每个邮箱都需要设置密码。以下密码最为安全的是( )A.ABCDEF B.a&b_12xyC.Anywhere D.200112015.有VB程序段如下:s1 = Text1.Texts2 = ""For i = 1 To Len(s1) c = Mid(s1, i, 1) If c >= "0" And c <= "9" Then c = Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0")) s2 = s2 + c ElseIf c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32) s2 = c + s2 End IfNext iText2.Text = s2执行该程序段,在文本框Text1中输入“GoLand,19”,则文本框Text2中显示的内容为( )A.lg20 B.lg210 C.210,dnalog D.210,goland6.要设置可靠的三叶草登录密码。以下最适合的选项是( )A.12345678 B.20191909 C.ASDFGH D.G1_ 19#Wxm7.算法的空间复杂度是指( )。A.算法程序的长度 B.算法程序中的指令条数C.算法程序所占的存储空间 D.算法执行过程中所需要的存储空间8.下图是把华氏温度转换为摄氏温度的算法,这种描述算法的方式是( )A.自然语言 B.流程图C.伪代码 D.高级语言9.关于三种基本结构的流程图,下列选择正确的是()A.一是顺序结构、二是分支结构、三是循环结构B.一是顺序结构、二是循环结构、三是分支结构C.一是分支结构、二是顺序结构、三是循环结构D.一是循环结构、二是分支结构、三是顺序结构10.以下三斜求积术中正确顺序是( )①用公式计算面积 ②输出三角形面积s③计算 ④输入边长a、b、cA.④③①② B.①③②④ C.④①③② D.①②③④11.下列流程图中不包含循环结构的是( )。A. B.C. D.12.下列关于算法特征的叙述,正确的是( )A.算法所包含的步骤可以是无穷的 B.算法每一步骤必须确切地定义C.一个算法可以没有输出 D.算法只能用Visual Basic来实现13.以下流程图描述的算法执行结果是( )A.50B.FalseC.TrueD.30<5014.有27个砝码,外观一模一样,其中有一个异常砝码重0.95g,其他砝码重1g。有一个只能分清轻重的天平,请问最少需要使用( )次天平能找出那个重0.95g的砝码。A.2 B.3 C.4 D.515.如下左图和右图所示,是求绝对值的算法,其描述方式分别是A.自然语言、流程图 B.伪代码、流程图C.自然语言、伪代码 D.流程图、自然语言二、填空题16.完善程序。求出100以内满足afor a in range(1,101) for b in range :for c in range(1,101): if : print(a," ",b,"",c)17.阅读下列程序,写出运行结果a,b = 1,1 n = int(input("请输入一个大于等于3的正整数n:")) for i in range(n-2): c = a + b a = b b = c print(c) 程序运行后,输入:6运行输出结果是:18.以下流程图中,输出结果 。19.下图所示的算法流程图:执行情况如下:当输入a、b的值分别为3、8时,输出结果为5当输入a、b的值分别为11、7时,输出结果为4问题一:下列流程图填入虚线框中,符合条件的是 。A B C问题二:依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果为 。20.算法的常用表示方法有3种: 、 、 。三、判断题21.衡量算法的优劣往往从时间复杂度和空间复杂度两个维度考虑。( )22.程序实际上是一组机器操作的指令或语句的序列,程序有三种基本控制结构:顺序结构、选择结构和循环结构。( )23.调用函数的方式十分灵活,可以单独调用也可以让其返回值参与表达式运算。( )24.任何一个算法必须包含顺序结构、选择结构和循环结构。( )25.千言万语不如一张图。以特定的图形符号加上说明,表示算法(有限的步骤去解决问题)的图,称为流程图或框图。 (判断对错)四、操作题26.如果一个正整数从左到右读与从右到左读是一样的,就称它为回文式数(简称回数),如图321。“回数猜想”的主要思想是,对任意正整数,若它不是回数,则按下列算法即可获得一个回数:(1)把该整数的数字顺序颠倒,求得该数的逆序数;(2)将该整数和其对应的逆序数相加;(3)若相加结果不是回数,则将结果作为新的整数,返回步骤(1)。小林按照上述算法,设计了验证回数猜想的VB程序(猜想次数不超过10次),程序功能如下:在文本框Text1中输入一个正整数,单击“验证”按钮(Command1),获取文本框Text1中的数,当该数不是回数时,采用回数猜想的方法进行验证,并在列表框List1中输出每次验证的过程,若验证成功或验证次数超过10次,则停止验证,最后在列表框List1中输出验证结果。程序运行效果如图所示。实现上述功能的VB程序如下:Private Sub Command1_Click() Dim t As String, a As Long, b As Long Dim count As Integer ' count用于存储回数猜想的验证次数 t = Text1.Text count = 1 Do While Check(t) = False And count <= 10 a = Val(t) ① c = a + b List1.AddItem Str(a) & " +" & Str(b) & " =" & Str(c) count = count + 1 t = c Loop If Check(t) Then List1.AddItem "验证成功!" Else List1.AddItem "10次内未验证成功!" End IfEnd Sub' 自定义函数TurnFunction Turn(x As String) As Long Dim s As String, i As Integer s = "" For i = Len(x) To 1 Step -1 s = s & Mid(x, i, 1) Next i Turn = ②End Function' 自定义函数Check,检查x是否为回文数Function Check(x As String) As Boolean Dim i As Integer Check = True For i = 1 To Len(x) \ 2 Step 1 If Mid(x, i, 1) <> ③ Then Check = False mid(x,len(x)+1-i,1) Next iEnd Function(1)程序代码中,自定义函数Turn(x)的功能是(2)请在划线处填入合适代码。27.收集2020年度中国主要城市交通运行数据,并记录在Excel表格中,部分界面如图1所示图1请回答下列问题:(1)如图1所示的数据,其结构严格遵循一定的数据格式与长度规范,该数据的结构类型属于 (单选,填字母:A.结构化数据B.半结构化数据C.非结构化数据)(2)为统计各省份的交通数据情况,选中J3单元格输入公式,然后利用自动填充完成J3:K33的数据计算,请修改J3单元格中的计算公式 。(提示:AVERAGEIF函数用于对一定区域中满足指定条件的单元格求平均值。如:=AVERAGEIF(B3:B52, 13,E3:E52)表示计算B3:B52区域中广东“交通健康指数”的平均分)(3)将I列、J列计算好的数据复制并粘贴到新的Excel表格cs.xls中,再利用python 程序的matplotlib模块,建立如图2所示的图表,请在划线①和②处填入合适的代码。① ② 图2import pandas as pdimport matplotlib. pyplot as pltcs=pd. read_excel ("cs. xls")cs. plot. ① (x='省份',y='交通健康指数', color='red')② #将纵坐标的范围更改为[0.3, 0.8]plt. show()28.归并排序是建立在归并操作上的一种有效、稳定的排序算法。其思想是将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。小明通过代码模拟了二路归并的算法,代码如下:import randoma=[]b=[]for i in range(1000): a.append(random.randint(1,1000))for i in range(1000): b.append(random. randint(1,1000))a.sort()b.sort()#随机产生两个升序排序的整数数组a和数组b,分别包含1000个元素c=[0]*2000i=j=k=0while ①: if ②: c[k]=a[i] i+=1 else: ③ j+=1 k+=1while i c[k]=a[i] i+=1 k+=1while j c[k]=b[j] j+=1 k+=1for i in range(k): print(c[i],end=' ')29.输入一段长度为n的英文字母,对其进行某种加密方法,描述如下:(1)将原文转换为若干行m列(m为奇数)的矩阵,最后一行若不足m个数据则以“#”填充。(2)将矩阵中的数据,从末行末列数据开始以回路的方式提取字符。按顺序生成加密字符。例如对字符“helloworld”,m=3的加密过程如下图,其加密结果为“#lwleor#dolh”程序窗口界面如图:请回答下列问题:(1)字符串“helloworld""”经过加密后密文为“dollrleowh,则加密矩阵列数m为 。(2)上述加密算法对应解密的VB程序代码如下,请在划线处填入合适的代码。Private Sub commandl_click() Dim a As String, n As Integer, yw As String Dim i As Integer, j As Integer Dim index As Integer, k As Integer, x As Integer s= Text1.ext'文本框text中为待解密的字符串 m =Val(Text2.Text) n = Len(s) yw=″″ k=0 x=n/m For i= 1 To index=n-i+1 yw = yw+ Mid(s, index, 1) Forj=2 To m If Then index = index-2*(x-i)-1Else index = index-2*(i-1)-1 End If If Mid(s, index, 1) = "#" Then yw = yw+ Mid(s,index, 1) Next jNext iLabel1. Caption = Mid(yw, 1, Len(yw) - k)End Sub30.调试程序。请阅读以下程序并写出运行结果。#ex16.pyi=0sum=0while i<10: if i%3==0: sum+=i print(i) i=i+1print('sum',sum)五、简答题31.思考高楼的自动电梯在运行时需要考虑哪些方面(例如方便乘客,节约能源等),请为自动电梯设计一个适宜的算法。32.数据应用既为我们带来便利,同时也存在许多安全隐患,如未经许可数据被复制、篡改、暴露或破坏等,因此平时使用过程中采取相应的策略,进行数据保护,如设置安全密码和验证码等方法来对数据进行加密。结合学过的知识,请说明如何设置安全密码。33.用计算机解决实际问题的过程中,需要进行算法设计,请问什么是算法?参考答案:1.D2.D3.B4.B5.A6.D7.D8.B9.A10.A11.D12.B13.C14.B15.A16.(1,101) a*a==b*b+c*c17.818.10719.C 320.流程图 自然语言 伪代码21.正确22.正确23.正确24.错误25.正确26.(1)求x的逆序数(2)①b=turn(t) ②Val(s) ③ mid(x,len(x)+1-i,1)27.A=AVERAGEIF($B$3:$B$52,$ I3,E$3:E$52) bar plt.ylim(0.3, 0.8)28.i29.5 x j mod 2=0 k=k+130.031.自动电梯能实现自动升降,主要是它安装了微型电脑控制器。微型电脑控制器主要任务如下:A.要让乘客方便,尽可能减少等待。B.要节约能源,尽可能减少空开里程和往返次数。我们可以从上述两个方向思考,设计适宜的算法。一个参考算法如下:① 乘客进入电梯房,按目标楼层键并关门启动运行;② 控制器根据事先存储在电脑中的指标判断人员是否超载?若超载发出提示信息,下去若干人,返回第①步;若未超载,执行下一步;③关闭电梯门,根据目标楼层键判断上升或下降;④ 随时判断是否有人按下同方向的请求键。若是,则运行到该层停下,开门上下人,并按键启动;若没有新的请求,则到达既定目标层后,停止;⑤接受新的请求,转而执行①;否则,停止。32.一、设置密码长度不能太少二、密码同时包含字母大小写、数字及特殊字符33.算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。 展开更多...... 收起↑ 资源预览