资源简介 第三章 算法的程序实现 章节测试一、选择题1.王伟东同学准备用下列的变量名来进行编程,在程序运行中不会报错的是( )A.we_1 B.3we C.he&w D.input2.利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )。A.分析问题 B.设计算法 C.编写程序 D.调试程序3.下面Python函数的作用,选项错误的是( )A.增加代码的维护难度 B.实现代码的复用C.增强代码的可读性 D.使代码的逻辑结构更清晰4.已知字典dict1={1001:”mali”, 1002:”lucy”, 1003:”jack”, 1004:”jhon” },要得到字典中的“jack”,下列方法可行的是( )A.dict1[2] B.dict1{1003}C.dict1[1003] D.dict1[“jack”]5.某公司在第一年初购买了一台价值为120万元的设备,该设备的价值在使用过程中逐年减少。已知从第2年到第6年,每年初的价值比上年初减少10万元;从第7年开始,每年初的价值为上年初的75%。编写Python程序计算第10年初设备的价值,程序第5行下划线处应填入( )1 #计算设备现有价值2 value=1203 for i in range(2,11):4 if i<=6:5 __________6 else:7 value=value*0.758 print(“该设备第10年初的价值为:”,value,“万元”)A.value=120-10 B.value=value-10 C.value=120-i D.value=value-i6.用高级语言编写的程序( )。A.占用内存空间非常少B.很复杂且难以理解C.必须由翻译程序将其编译成机器语言,才能在计算机上执行D.只能在某种计算机上运行7.小张收集了近阶段要学习的英文单词,存储为“data.txt”文件,格式如图所示。处理“data.txt”文件中英文单词的 Python 程序段如下:file=“data.txt”n=0for word in open(file): #打开文件准备读 if word[0:1]=='c': #word每次读到第一行信息,word[0:1]则是当前行字符的第1个字符 n=n+1 print(n)运行该程序段后,输出的值为( )A.1 B.2 C.3 D.58.input()函数的返回结果都是( ),有时需要将其转化为相应的类型再处理。A.数值 B.字符串 C.列表 D.元组9.在Python中,表达式18//3**2+15%4的结果是( )A.39 B.15 C.5 D.310.下列不属于 Python 的数据类型关键字的是( )A.int B.double C.float D.str11.有如下Python程序段:from random import randintn=8a=[0]*nk=randint(1,3)for i in range(n): a[i]=randint(0,50)for i in range(0,n//k+1): j=0 while j+k< n: if a[j]>a[j+k]: t=a[j];a[j]=a[j+k];a[j+k]=t j+=1print(a)执行该程序段后,输出的结果不可能是( )A.[3,14,17,25,28,31,32,37] B.[31,6,29,12,18,31,17,34]C.[1,4,20,5,48,23,49,46] D.[3,6,30,14,38,32,41,45]12.小曲使用Python编写了下面一个函数,如果执行fact(5)语句的值为( )1 def fact(n)2 i=13 f=14 while i<=n:5 f=f*i6 i=i+17 return fA.1 B.120 C.24 D.72013.小明用某种语言编写了段源代码如下图所示,实现了“任意输入一个整数,输出其绝对值”的功能。如下说法正确的是( )A.这是机器语言编写的指令序列,计算机可以直接指行B.这是汇编语言编写的指令序列,计算机可以直接指行C.这是高级语言编写的指令序列,计算机可以直接指行D.这是高级语言编写的指令序列,需转换成机器语言才能执行14.python单行注释和多行注释分别是什么?( )A.""" """和''' ''' B.#和""" """ C.//和''' ''' D.#和//15.在学习PythonTurtle,小曲编写绘制图形的代码如下所示,此代码绘制的图形是( )1 import turtle as t2 t.speed(0)3 for x in range(100):4 t.circle(x)5 t.left(92)6 t.done()A. B. C. D.二、填空题16.计算机编程解决问题的过程分为4步,分别是 、 、 、 ,其中 是信息编程加工的核心步骤。17.Python表达式50-9*3%4的运算结果是 。18.阅读以下程序,写出程序运行结果。def jc(n):s=1for i in range(2,n+1):s=s*ireturn stotal=jc(4) #调用jc函数print(total)程序运行后,其输出结果为19.要达到在窗口显示不同位置的福字,需要完成两个步骤:(1)在新的位置上 ;(2)把原来的图像 。要“擦掉”某个图像,可以选择 它,通常采用 或者用 来覆盖的方式。20.Python语言,在循环体中可以使用break语句和continue 语句控制程序的流程。 语句用于终止某个循环,使程序跳到循环体以外的第一个可执行语句。三、判断题21.能够产生随机数的Python扩展模块是pandas。( )22.def块中的代码不是主程序的一部分,会跳过该段代码.( )23.注释语句是对程序代码的解释和说明,在运行程序时不会被执行。( )24.下列程序段中,赋值语句s=s+i被重复执行了4次。s=0For i in range(3,10,2): s=s+i ( )25.Python是解释型语言,翻译一行就执行一行。( )四、操作题26.Base64 编码是计算机常见的一种编码方式,规则是把 3 个字节(24 位)的数据按 6 位一组分成 4 组(24÷6=4),然后将每组数据分别转换为十进制,根据图1将这些十进制数所对应的字符连接,即为 Base64 编码。图1-Base64 编码表以编码字符“Web”为例,如图2所示,字符“Web”对应的 ASCII 编码分别是 87,101,98,分别转换为 8 位二进制数,按 6 位二进制数分组后再转换成十进制,查找它们对应的字符,得到“Web”的 Base64 编码为“V2Vi”。图2编写一个 Python 程序,实现上述功能。程序运行时,输入若干个字符(ASCII码,个数必须是3的倍数),输出Base64 编码。请回答以下问题:(1)编码字符“Wea”的 Base64 编码为:(2)实现上述功能的 Python 代码如下,请在划线处填入合适的代码s1 = input("请输入编码字符: ")tmp = 0s = ""ans = ""Base64 = "ABCDEFGHIJKLMNOPQRSTUVWSXYabcdefghijklmnopqrstuvwxyz012345678+/"for x in s1:n =t = ""for i in range(8): # 将十进制数 n 转换为 8 位二进制r = n % 2t =n = n // 2s = s + tfor i in range(len(s)): # 6位二进制一组转换成十进制,查找Base64对应字符tmp =if i % 6 == 5:ans = ans + Base64[tmp]tmp = 0print("Base64 编码:", ans)27.为了督促学生寒假坚持体育锻炼,老师采用线上打卡的方式收集学生锻炼情况,数据如图a所示。为统计冬锻完成情况,编写Python程序。请回答下列问题:(1)定义outdata函数,其中参数dftmp是DataFrame数据类型,数据由图a所示的Excel表导入。函数功能是:统计每天每个学生的锻炼项目个数,返回含有“学籍号”、“姓名”和“项目个数”信息的二维列表。函数代码如下,划线处应填入的代码为 。A.dftmp.at[i,j]==″√″ B.dftmp[i][j]=″√″ C. dftmp.at[j,i]==″√″ D.dftmp[j][i]=″√″def outdata(dftmp):a=[]for i in dftmp.index: #dftmp的行索引itemn=0for j in dftmp.columns[4:]: #dftmp中从“跑步”开始的列标题if______:itemn+=1a.append([str(df[″学籍号″][i]),df[″姓名″][i],itemn])return a(2)冬锻打卡成功的标准为累计运动15天,每天锻炼项目达到3项及以上。统计输出寒假体育锻炼达标的学生名单,并制作四个项目的运动次数对比图,部分界面如图b和图c所示。部分Python程序如下,请在划线处填写合适的代码或改正加框处代码。import pandas as pdimport matplotlib. pyplot as pltdf=pd.read_excel(″sport.xls″)1st=outdata(df)print(″冬锻打卡成功名单:″)i=0:flag=[False]*len(1st)while iif #xjh=1st[i][0]flag[i]=Truefor j in range(i+1,len(1st)):if 1st[j][0]==xjh and lst[j][2]>=3:flag[j]=Truedays+=1if days>=15:print(1st[i][0]+″/″+1st[i][1]+″/″+str(days)+″天″)ydl=df.count() #统计各列非空单元格数量,结果为Seriesiten=[″跑步″,″跳绳″,″俯卧撑″,″仰卧起坐″]nums=plt.bar(item,nums,label=″运动次数″)#设置绘图参数,代码略28.阅读程序。阅读求水仙花数的代码并回答问题。“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。for n in range(100,1000): i=n//100 j=n//10%10 k=n%10 if n==i*i*i+j*j*j+k*k*k:print(n)(1)//的符号作用是 。(2)%的符号作用是 。(3)==的符号作用是 。(4)在代码中,变量i表示的是三位数中的 位。(5)在代码中,变量j 表示的是三位数中的 位。(6)在代码中,变量k表示的是三位数中的 位。(7)在range(100,1000)这个区域内,变量n无法取到的数值是 。29.回文素数是一个既是素数又是回文数的整数。如果一个整数只能被1和本身整除,这个数就是素数。如果一个数从左向右和从右向左读是一样的,这个数就是回文数。(1)实现判断回文素数的Python程序如下,请在划线处填入合适的代码。def ss(i): #判断素数 for j in range(2,i): if ① : return False return Truedef hw(i): #判断回文数 x=i k=0 while x!=0: k=k*10+x%10 ② if k==i: return True else: return Falsen=int(input("请输入待检测数据范围:"))for i in range(2,n+1): if ③ :print(i)程序划线①处应填入的代码为 ;程序划线②处应填入的代码为 ;程序划线③处应填入的代码为 。(2)本程序通过判断并输出回文素数,这种算法属于 (选填:“解析算法”或“枚举算法”)。30.输入一段长度为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 Sub五、简答题31.实现一个简单的出租车计费系统,当输入行程的总里程时,输出乘客应付的车费(车费保留一位小数)。计费标准具体为起步价10元/3千米,超过3千米以后,每千米费用为1.2元,超过10千米以后,每千米的费用为1.5元。32.编写一个程序,从键盘上输入3个数,计算这三个数的和,并输出结果。33.从键盘上输入一个字符,当输入的是英文字母时,输出“输入的是英文字母”;当输入的是数字时,输出“输入的数字”;当输入的是其他字符时,输出“输入的是其他字符”。34.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。提示:考虑使用range(#begin,#end)35.利用python程序设计语言,编写一个输出1-10以内的偶数(包含10)的代码。参考答案1.A2.C3.A4.C5.B6.C7.B8.B9.C10.B11.B12.B13.D14.B15.A16.分析问题 设计算法 编写代码 调试运行 算法设计17.4718.2419.画出图像 擦掉 “覆盖” 重绘背景 其他对象20.break21.错误22.对23.正确24.正确25.正确26.V2Vh ord(x) str(r) + t tmp * 2 + int(s[i])或tmp=tmp*2+ord(s[i])-ord('0')27.AD not flag[i] and lst[i][2]>=3 days=1 i+=1 yd1[4:]或ydl.values[4:]28.整除 取余 判断是否相等 百 十 个 100029.i%j==0 x=x//10 ss(i) and hw(i)或ss(i)=True and hw(i)=True 枚举算法30.5 x j mod 2=0 k=k+131.km=float(input("请输入千米数:"))if km<=0: print("千米数输入错误,重新输入")elif km<=3: print("您需要支付10元车费")elif km<=10: cost=10+(km-3)*1.2 print("您需要支付{:.1f}元车费".format(cost))else: cost=18.4+(km-10)*1.5 print("您需要支付{:.1f}元车费".format(cost))32.a = input ( )b= input( )c = input( )d=int(a)+int(b)+int(c)print (d)33.ch=input("请输入一个字符:")if ch.isdigit()==True: print("输入的是数字")elif ch.isalpha()==True: print("输入的是英文字母")else:print("输入的是其他字符")34.l=[]for i in range(2000,3201): if (i%7==0)and (i%5!=0): l.append(str(i))print (','.join(1))35.代码1:for value in range(2,11,2): print(value)代码2:i=2while i<11: print(i)i=i+2 展开更多...... 收起↑ 资源预览