资源简介 第三章 算法的程序实现 检测练习一、选择题1.以下表达式运算结果为True的是( )A.23%200**1/2<-2**4+4*2B."Hz" in "Hangzhou Asian Games"C.abs(int(-4.65))==round(4.65)D.not False and not True or not False2.某python程序如下:s=[3,3,3,6,6,8,11,11,9,4,2,5]r=[]for i in range(1,len(s)-1):if not(s[i-1]s[i]>s[i+1]):if s[i-1]==s[i]:continuej=len(r)-1while j>=0 and s[i]<=s[r[j]]:j-=1if j==len(r)-1 or j==-1:j+=1r=r[:j]+[i]+r[j:]print(r)程序运行后,输出的结果为( )A.[3,6,10] B.[6,11,2] C.[6,3,10] D.[10,3,6]3.用python算法控制结构描述“如果报名人数超过10人则输出活动升级,若小于3人则输出活动取消,否则输出活动正常举行”,设t为报名人数,下列选项正确的是( )A. B. C. D.4.使用 Python 程序编程探究平面上圆与圆的位置关系,程序代码如下:def judge(a,b):dis=(cir[a][0]-cir[b][0])**2+(cir[a][1]-cir[b][1])**2if dis==(cir[a][2]+cir[b][2])**2: return 1return 0#cir存储"A"、"B"、"C"三个圆的 x,y 坐标及半径cir={"A":[1,1,1],"B":[4,5,4],"C":[0,2,1]} cnt=judge("A","B")+judge("A","C")+judge("B","C")运行程序后,变量 cnt 的值是()A.3 B.2 C.1 D.05.用python程序处理图像文件“chenchen.jpg”,该图像颜色位深度为24bit,图像如图所示:程序代码如下:from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltimg=np.array(Image.open("chenchen.jpg").convert("L"))rows,cols=img.shapefor i in range(rows):for j in range(cols):if():img[i,j]=1else:img[i,j]=0plt.imshow(img,cmap="gray")plt.show()下列说法正确的是( )A.待处理图像的文件名为“chenchen”B.处理后的图像像素数将增加C.将加框处语句中的“>”改为“<=”,则处理后的图像中黑白色将互换D.将加框处语句中128改为188,则处理后图像中的黑色部分将减少6.已知:food="milkeggbread",feel={1:"love",2:"like",3:"hate"},people=["he","she","it"],则表达式people[2]+feel[2][2:4]+food[1::4]的值是( )A.itkeige B.itteige C.itkemer D.itikeige7.用Python程序对分辨率为500*500的图像文件white.jpg(如图所示)进行处理,程序段如下:from PIL import Imageim = Image.open("white.jpg").convert("L")#打开图像文件,并将其转换为灰度图像pix=im.load()#加载图像像素数据width,height=im.size#获取图像宽度值和高度值for x in range(width):for y in range(height):if x<= width//2 and y<= height//2:if x%50 == 0 or y%50 == 0:pix[x,y]=0elif y > height//2:if x == y:pix[x,y]=0im.show()执行上述程序段后,显示的图像效果是( )A. B. C. D.8.有如下Python程序段:import randoms1="PROGRESS";s2=""f=[False]*8for i in range(1,5):t=random.randint(0,3)*2+1while f[t]:t=random.randint(0,3)*2+1f[t]=Trues2=s2+s1[t]print(s2)执行该程序段后,显示的值不可能是( )A.EGRS B.GERS C.SEOR D.RESG9.输入一个正整数 n 和一个字符 c,输出一个 n 行由字符 c 组成的等腰三角形如图二所示。以下代码组合能够正确绘制图形的是( )def san(n,c): for i in range( ①): print( ②)n= ③(input('输入一个正整数'))c= ④input('输入一个字符')⑤A. ①n ②' '*(n-1-i),c*(i*2+1) ③int ④不填 ⑤san(n,c)B. ①n ②' '*(n-i),c*(i*2+1) ③float ④int ⑤san(n,c)C. ①n ②c*(i*2+1),' '*(n-1-i) ③int ④不填 ⑤san(c,n)D. ①n ②c*(i*2+1),' '*(n-i) ③float ④float ⑤san(c,n)A.A B.B C.C D.D10.有如下Python程序段:a = [123,32,66,12,54,95,211]p = q = a[0]for x in a[1:]:if x < p:p,q = x,pelif x < q:q = xprint(q)执行该程序段后,输出的结果是( )A.123 B.32 C.211 D.1211.完全数是指真因子(即除了自身以外的约数)之和等于它本身的自然数。def per_num(x):sum=1#①for i in range(2,x):#②if x % i == 0:#③sum = sum + i#④return x == sumprint(per_num(6))则下列说法正确的是( )A.上述程序段有误,应将①处语句更改为“sum=0”B.②处语句可以更改为“for i in range(x,2,-1)”C.③处语句的执行次数比④处语句的执行次数多D.函数返回值为False12.现有鸡兔同笼,上有11头,下有28脚。试计算笼中鸡、兔各有多少只(设鸡有a只,兔有b只)。下列代码中不能正确计算鸡、兔数量的是( )A. B.C. D.13.有如下 Python 程序:print("输入两个正整数")n = int(input("输入正整数 1:"))m = int(input("输入正整数 2:"))min = 0if m > n:min = nelse:min = mfor i in range(min,0,-1):if n % i == 0 and m % i == 0:print(i)break分别输入 200、98,程序运行后,输出结果正确的是( )A.1 B.2 C.3 D.414.列表 a 为某学生一天主要运动消耗热量的情况,列表 b 为各项运动,为了求出这六项运动一共消耗多少热量,空白处代码正确的是( )a={'慢走':95,'自行车':100,'羽毛球':122,'爬楼梯':180,'跳绳':245,'慢跑':221}b=['慢走','自行车','羽毛球','爬楼梯','跳绳','慢跑'] s=0for i in ① :②print('总消耗量为:'+ ③ )A.①b ②s=a[i]+s ③ s B.①b ②s+=a[i] ③ str(s)C.①a ②s=a[i]+s ③ s D.①a ②s+=a[i] ③ str(s)15.有如下 Python 程序:s='134b6aac5a678905'c=1a=[]for i in range(1,len(s)):if s[i]>s[i-1]:c+=1else:a.append(s[i-c:i]) #list.append(x)在列表 list 末尾添加元素 xc=1print(a)程序运行后,输出的结果正确的是( )A.['134b', '6aac', '5a', '6789']B.['134b', '6aac', '5a', '6789',’05’]C.['134b', '6a', 'ac', '5a', '6789',’05’]D.['134b', '6a', 'ac', '5a', '6789']二、填空题16.以下python程序段执行后,输出结果为 。m=29if m % 3 != 0:print(m,"不能被3整除")else:print(m, "能被3整除")17.若输入123,以下Python程序的运行结果为 。x=int(input("输入一个三位正整数:"))a=x//100b=x//10%10c=x%10y=a+b+cprint(y)18.a=2,b=3,c=1,d=5 a+b>c+d and a**3>=c+d or not c>0 or d<0的值是 。19.以下用于将小时h折算成秒s的Python表达式正确的有( )(多选)①s=h*60**2 ②s=h*(60**2) ③s=h*60*60 ④s=h*60*2 ⑤s=(h*60)***220.已知a=2,b=1,以下Python程序段运行结束后,b的值是 。21.已知a=4,b=2,c=6时,以下Python程序运行结束后,i的值是 。22.以下Python程序运行后,当输入20时,输出结果是 。23.写出该式子的表达式:24.函数的定义使用的关键字为 。25.循环控制可能使用 语句和continue语句控制循环的跳转。三、操作题26.上城小学将在本学期开展趣味运动会,一(10)班的班主任邀请你为他们设计一个Python程序,用于挑选参加集体项目的选手。挑选规则为:当班级有足够候选人员时,进行随机挑选,并输出人员名单;若无足够人员时,提示“无足够候选人员参加比赛!”,并规定每个学生最多参加一个集体项目。程序要求用户按照规范输入比赛项目及相关人员要求,例如输入“投篮:8,2”即篮球项目要求男生8人,女生2人。该程序的运行效果如下图所示:(1)实现挑选集体项目选手的python代码如下,请在划线处填入合适代码。(2)程序加框处代码有误,请改正。from random import shuffledef disp(inf):#将输入的字符串整理为指定格式,当输入字符串为"跳绳:10,10;投篮:8,2",则将其调整为{"跳绳":[10,10],"投篮":[8,2]}并返回。def player(x,n):for p in range(len(x)):if p>=n:①print(x[p],end=" ")return x[n:]c=[["陈浩琦","男"],["王慧敏","女"],["王子涵","男"],]#班级学生名单ctemp=[[],[]]for② in c:if p[1]=="男":ctemp[0].append(p[0])#append()函数的功能为在列表末尾插入新元素else:ctemp[1].append(p[0])inf=input("请输入比赛项目及相关人员要求:")s=["男","女"]sj=disp(inf)for t in sj:#变量遍历字典中的每个键if sj[t][0]<=len(ctemp[0])andsj[t][1]<=len(ctemp[1]):print(t+"项目:")for i in③ :print(s[i],end=":")shuffle(ctemp[i])#shuffle用于将序列的所有元素进行随机排序print()else:print(t+"项目:\n无足够候选人员参加比赛!")27.一个n位数,如果每一位上的n次幂之和等于它本身,那么这个数我们称之为自幂数。下列代码可以实现输入数字长度n之后,输出所有n位自幂数,并统计个数。程序运行效果如下图所示:(1)寻找n位数的Python程序如下,程序使用算法为 (单选,填字母:A.解析算法B.枚举算法)。(2)请在程序划线处填入合适的代码。n=int(input("请输入你想要找几位自幂数:"))count=0sum1=0for i in range(1*10**(n-1),1*10**n):a=iwhile a>0:①a=a//10if i==suml:count+=1print(i)②print("n位自幂数一共有"+③ +"个")28.三位一体(综合评价招生)是指部分高校拿出一定比例的招生名额,实行的面对浙江考生的以高考成绩、学校综合测试成绩和学业水平考试成绩三种成绩,按照一定的规则计算出综合成绩后,择优录取考生的一种录取形式。已知某校的“三位一体”综合成绩计算方法如下:综合成绩=高考成绩×850÷750+校测成绩+学考折算成绩学考折算成绩=学考成绩之和×30%,其中A等10分,B等9分,C等8分,D等6分,其它等级0分。例如:某考生高考成绩630分,校测成绩96分,学考成绩为“BAAAAABCCA”,学考折算成绩为94×30%,则其综合成绩=630×850÷750+96+94×30%。现已知申报某校某专业的学生信息(如图a所示)存储在文件“info.xlsx”中,编写Python程序实现,输入拟录取人数,输出拟录取学生信息的功能,运行界面如图b所示。(1)已知某学生的学考成绩为“ABACCDAAAB”,则其学考折算成绩是(2)计算综合成绩的Python程序段如下,请在划线处填入合适代码:import pandas as pddf = pd.read_excel("info.xlsx")def score_xk(s):①for ch in s:if ch == 'A':score+=10elif ch==’B’:score+=9elif ch==’C’:score+=8:score+=6return score*0.3df["综合成绩"]=df["高考成绩"]*850/750+df["校测成绩"]+②(3)若将第(2)小题中加框处代码改为else,对程序运行结果 (填:有/无)影响。(4)依据拟录取人数,输出拟录取学生信息cnt = int(input("拟录取人数:"))print("拟录取学生信息如下:")df1=______print(df1)为实现输出如图b的效果,划线处可以填写的语句是 (多选,填字母。注:多选错选不给分)A.df.sort_values("综合成绩",ascending=False).head(cnt)B.df.sort_values("综合成绩",ascending=True).head(cnt)C.df.sort_values("综合成绩",ascending=False).tail(cnt)D.df.sort_values("综合成绩",ascending=True).tail(cnt)E.df.sort_values("综合成绩",ascending=False)[:cnt]四、简答题29.先后输入两个数,如果前一个数大于后一个数,则交换前后两个数的值;否则,两个数保持不变。30.字母转换题目描述:输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。输入输出样例:输入q输出Q31.高级语言的编译过程和解释过程各有什么优势和不足。32.列举Python程序设计语言中,IF 语句的三种常见格式。33.苹果和虫子问题。你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?输入:输入仅三行,包括n,x和y(均为整数)。输出:输出也仅一行,剩下的苹果个数样例输入:1049样例输出:7参考答案:1.D2.D3.D4.B5.C6.A7.D8.C9.A10.B11.C12.C13.B14.B15.D16.不能被3整除17.618.False19.①②③20.421.222.2023.(4*a*c-b**2)/(2*a)24.def25.break26. ctemp[i]=player(ctemp[i],sj[t][i]) break p range(len(ctemp))或range(2)27. B sum1=sum1+(a%10)**n sum1=0 str(count)28. 27 score=0 score_xk(df["学考成绩"]) 有 AE29.a=int(input("请输入第一个整数:"))b=int(input("请输入第二个整数:"))if a-b>0: a,b=b,a print(a,b)else:print(a,b)30.word=input().upper()print(word)31.(1)编译型语言优点是程序执行速度快,程序执行效率高,同等条件下对系统要求较低。不足之处是跨平台性差些。(2)解释型语言优点是不同系统平台间的兼容性高。不足之处是程序执行效率比较低。32.单分支语句格式:If(条件表达式):语句A双分支if语句格式:If(条件表达式):语句Aelse:语句Bif...elif...else语句格式:If(条件表达式):语句1elif:语句2...elif:语句Nelse:语句N+133.n=int(input())x=int(input())y=int(input())print(int(n-y/x)) 展开更多...... 收起↑ 资源预览