第三章 算法的程序实现 检测练习(含答案)2023—2024学年浙教版(2019)高中信息技术必修1

资源下载
  1. 二一教育资源

第三章 算法的程序实现 检测练习(含答案)2023—2024学年浙教版(2019)高中信息技术必修1

资源简介

第三章 算法的程序实现 检测练习
一、选择题
1.以下表达式运算结果为True的是( )
A.23%200**1/2<-2**4+4*2
B."Hz" in "Hangzhou Asian Games"
C.abs(int(-4.65))==round(4.65)
D.not False and not True or not False
2.某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]:
continue
j=len(r)-1
while j>=0 and s[i]<=s[r[j]]:
j-=1
if j==len(r)-1 or j==-1:
j+=1
r=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])**2
if dis==(cir[a][2]+cir[b][2])**2:
return 1
return 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.0
5.用python程序处理图像文件“chenchen.jpg”,该图像颜色位深度为24bit,图像如图所示:
程序代码如下:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open("chenchen.jpg").convert("L"))
rows,cols=img.shape
for i in range(rows):
for j in range(cols):
if():
img[i,j]=1
else:
img[i,j]=0
plt.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.itikeige
7.用Python程序对分辨率为500*500的图像文件white.jpg(如图所示)进行处理,程序段如下:
from PIL import Image
im = 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]=0
elif y > height//2:
if x == y:
pix[x,y]=0
im.show()
执行上述程序段后,显示的图像效果是( )
A. B. C. D.
8.有如下Python程序段:
import random
s1="PROGRESS";s2=""
f=[False]*8
for i in range(1,5):
t=random.randint(0,3)*2+1
while f[t]:
t=random.randint(0,3)*2+1
f[t]=True
s2=s2+s1[t]
print(s2)
执行该程序段后,显示的值不可能是( )
A.EGRS B.GERS C.SEOR D.RESG
9.输入一个正整数 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.D
10.有如下Python程序段:
a = [123,32,66,12,54,95,211]
p = q = a[0]
for x in a[1:]:
if x < p:
p,q = x,p
elif x < q:
q = x
print(q)
执行该程序段后,输出的结果是( )
A.123 B.32 C.211 D.12
11.完全数是指真因子(即除了自身以外的约数)之和等于它本身的自然数。
def per_num(x):
sum=1#①
for i in range(2,x):#②
if x % i == 0:#③
sum = sum + i#④
return x == sum
print(per_num(6))
则下列说法正确的是( )
A.上述程序段有误,应将①处语句更改为“sum=0”
B.②处语句可以更改为“for i in range(x,2,-1)”
C.③处语句的执行次数比④处语句的执行次数多
D.函数返回值为False
12.现有鸡兔同笼,上有11头,下有28脚。试计算笼中鸡、兔各有多少只(设鸡有a只,兔有b只)。下列代码中不能正确计算鸡、兔数量的是( )
A. B.
C. D.
13.有如下 Python 程序:
print("输入两个正整数")
n = int(input("输入正整数 1:"))
m = int(input("输入正整数 2:"))
min = 0
if m > n:
min = n
else:
min = m
for 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.4
14.列表 a 为某学生一天主要运动消耗热量的情况,列表 b 为各项运动,为了求出这六项运动一共消耗多少热量,空白处代码正确的是( )
a={'慢走':95,'自行车':100,'羽毛球':122,'爬楼梯':180,'跳绳':245,'慢跑':221}
b=['慢走','自行车','羽毛球','爬楼梯','跳绳','慢跑'] s=0
for 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=1
a=[]
for i in range(1,len(s)):
if s[i]>s[i-1]:
c+=1
else:
a.append(s[i-c:i]) #list.append(x)在列表 list 末尾添加元素 x
c=1
print(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=29
if m % 3 != 0:
print(m,"不能被3整除")
else:
print(m, "能被3整除")
17.若输入123,以下Python程序的运行结果为 。
x=int(input("输入一个三位正整数:"))
a=x//100
b=x//10%10
c=x%10
y=a+b+c
print(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)***2
20.已知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 shuffle
def 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=0
sum1=0
for i in range(1*10**(n-1),1*10**n):
a=i
while a>0:

a=a//10
if i==suml:
count+=1
print(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 pd
df = pd.read_excel("info.xlsx")
def score_xk(s):

for ch in s:
if ch == 'A':
score+=10
elif ch==’B’:
score+=9
elif ch==’C’:
score+=8

score+=6
return score*0.3
df["综合成绩"]=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
输出
Q
31.高级语言的编译过程和解释过程各有什么优势和不足。
32.列举Python程序设计语言中,IF 语句的三种常见格式。
33.苹果和虫子问题。
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入:
输入仅三行,包括n,x和y(均为整数)。
输出:
输出也仅一行,剩下的苹果个数
样例输入:
10
4
9
样例输出:
7
参考答案:
1.D
2.D
3.D
4.B
5.C
6.A
7.D
8.C
9.A
10.B
11.C
12.C
13.B
14.B
15.D
16.不能被3整除
17.6
18.False
19.①②③
20.4
21.2
22.20
23.(4*a*c-b**2)/(2*a)
24.def
25.break
26. 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["学考成绩"]) 有 AE
29.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(条件表达式):
语句A
else:
语句B
if...elif...else语句格式:
If(条件表达式):
语句1
elif:
语句2
...
elif:
语句N
else:
语句N+1
33.n=int(input())
x=int(input())
y=int(input())
print(int(n-y/x))

展开更多......

收起↑

资源预览