操作题:1.程序操作题
1.编程能力考查(15分)
内容要求:1.7 掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题,体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。
学业要求:掌握一种程序设计语言的基本知识,利用程序设计语言实现简单算法,解决实际问题。
命题思路:主要考查学生阅读、修改程序的能力。能读懂Python程序段,明确要解决的问题;能补全其中的空缺,找出并改正其中的错误。
题目1
题目要求
编程实现人机互动猜1到100之间整数游戏。
计算机随机生成一个数,游戏参与人有5次猜数机会,每次在程序界面输入所猜的数,游戏程序会给予相应提示“猜大了!”或“猜小了!”
猜对游戏直接结束,如5次尝试都不对游戏结束。请你阅读下列程序段,根据题意,实现游戏功能。
【操作要求】
1. 补充完善下划线处的内容使程序语句完整。(下划线须删去)
2. 找出程序中的两处错误并改正。
3. 运行程序,输入你猜的数字,验证结果是否正确。
1
2
3
4
5
6
7
8
9
10
11
12
13 | import random
num = random.randint(1, 100)
print("**********游戏开始**********")
for i in range(1, ___):
n = ___(input("请输入你猜的数:"))
if n == num:
print("恭喜你,猜对了!")
break
elif n < num:
print("猜小了!")
elif:
print("猜大了!")
print("******游戏结束******")
|
提示
- 请注意,代码中有一个错误:在elif语句之后应该有一个条件,但是在elif后面没有条件。正确的应该是else,而不是elif。此外,for循环中的____应该被替换为用户希望的尝试次数。例如,如果想让用户有10次机会猜测,就应该写成range(1, 11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | import random # 导入random模块以使用其函数
# 使用random模块的randint函数生成一个1到100之间的随机数,并将其赋值给变量num
num = random.randint(1, 100)
print("**********游戏开始**********") # 打印游戏开始的信息
for i in range(1, ___): # 使用for循环,让用户有多次机会猜测数字,____处应填写尝试的次数
n = ___(input("请输入你猜的数:")) # 获取用户输入的数字,并转换为整数类型
if n == num: # 如果用户猜的数字与程序生成的随机数相同
print("恭喜你,猜对了!") # 打印恭喜信息
break # 退出循环
elif n < num: # 如果用户猜的数字小于程序生成的随机数
print("猜小了!") # 提示用户猜小了
elif: # 如果用户猜的数字大于程序生成的随机数
print("猜大了!") # 提示用户猜大了
print("******游戏结束******") # 当循环结束时,打印游戏结束的信息
|
答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | import random # 导入random模块以使用其函数
# 使用random模块的randint函数生成一个1到100之间的随机数,并将其赋值给变量num
num = random.randint(1, 100)
print("**********游戏开始**********") # 打印游戏开始的信息
for i in range(1, 6): # 使用for循环,让用户有多次机会猜测数字,____处应填写尝试的次数 #填空1
n = int(input("请输入你猜的数:")) # 获取用户输入的数字,并转换为整数类型 #填空2
if n == num: # 如果用户猜的数字与程序生成的随机数相同
print("恭喜你,猜对了!") # 打印恭喜信息
break # 退出循环
elif n < num: # 如果用户猜的数字小于程序生成的随机数
print("猜小了!") # 提示用户猜小了
else: # 如果用户猜的数字大于程序生成的随机数 #错误1
print("猜大了!") # 提示用户猜大了 #错误2
print("******游戏结束******") # 当循环结束时,打印游戏结束的信息
|
题目2
题目要求
为切实增强学生身体素质,学校每学期进行体质健康测试。其中一个项目为“一分种垫排球”,考核规则为: 每人三次机会,
需有两次连续垫球次数满35次(包含35)方能通过考核。请你完善程序,输入学生每次的垫球次数,并判断是否通过考核。
【操作要示】
(1)补充完善下划线处的内容使程序语句完整
(2)找出程序中的两处错误并改正
(3)运行程序,当依次输入每次的垫球次数为36、32、38时,检查输出结果是否为”恭喜你,已通过考核!”。
| count = 0
for time in range(1, 3, 1):
dig = int(input("请输入你的垫球次数"))
if________:
count = ________
if count >= 2:
print("恭喜你,通过考核")
else
print("抱歉,未通过考核")
|
提示
- 请注意,if语句后面的条件和count变量的更新需要根据实际情况来填写。在这个例子中,我假设如果用户输入的垫球次数大于或等于35次,就认为是一次成功的垫球,并更新计数器。如果用户在两次机会中都达到了这个标准,程序就会恭喜他们通过考核。如果没有达到,就会告诉他们未通过考核。这个标准(5次)可以根据实际需要进行调整。
| count = 0 # 初始化计数器为0
for time in range(1, 3, 1): # 使用for循环,范围从1到2,每次增加1
dig = int(input("请输入你的垫球次数")) # 通过input函数获取用户输入的垫球次数,并将其转换为整数类型
if________: # 这里应该有一个条件判断语句,例如:如果输入的次数大于等于35,则计数器加1
count = ________ # 如果满足条件,计数器加1
if count >= 2: # 如果计数器的值大于或等于2
print("恭喜你,通过考核") # 则打印“恭喜你,通过考核”
else # 否则
print("抱歉,未通过考核") # 打印“抱歉,未通过考核”
|
答案
| count = 0 # 初始化计数器为0
for time in range(1, 3, 1): # 使用for循环,范围从1到2,每次增加1
dig = int(input("请输入你的垫球次数")) # 通过input函数获取用户输入的垫球次数,并将其转换为整数类型
if dig>=35: # 这里应该有一个条件判断语句,例如:如果输入的次数大于等于35,则计数器加1 #填空1
count = count+1 # 如果满足条件,计数器加1 #填空2 #错误1
if count >= 2: # 如果计数器的值大于或等于2
print("恭喜你,通过考核") # 则打印“恭喜你,通过考核”
else: # 否则 #错误2
print("抱歉,未通过考核") # 打印“抱歉,未通过考核”
|
题目3
题目要求
某地发生了一起肇事车辆逃追事故,据调查发现如下线索:①车牌号为晋W 652?6,
其中车牌号后五位全部由数字组成,且倒数第二位数字模糊不清;②这个五位数是53的倍数。
请你阅读下列程序段,根据上述线索,找出符合条件的车牌号。
【操作要求】 print(”该事故可能涉及到的车辆车牌共有:”count,”个”)
(1)补充完善下划线处的内容使程序语句完整。
(2)找出程序中的两处惜误并改正。
(3)运行程序,直至输出正确的结果,以协助交警队事故科快速处理该事故。
| ______
for i in range(0,___, 1):
t=65206+i*100
if t%53=0:
count+=1 #用count计数
print("该事故可能涉及到的车辆车牌号码为:晋W",t)
print("该事故可能涉及到的车辆车牌共有",count,"个")
|
提示
- 请注意,代码中的if t%53=0:应该是if t%53 == 0:,因为在Python中,==用于比较操作符,而=用于赋值操作。此外,for循环的范围需要根据实际情况来确定,例如,如果要检查从65206到65306之间的车牌号码,可以将替换为1。如果要检查更大范围内的车牌号码,可以相应地增加这个数字。
| ______ # 初始化计数器为0
for i in range(0, ___, 1): # 使用for循环遍历一个范围内的数字,这里的范围需要根据实际情况填写
t = 65206+i*100 # 计算可能涉及事故的车牌号码
if t % 53 = 0: # 如果车牌号码除以53的余数为0,则认为该车牌号码满足条件
count += 1 # 用count计数 # 满足条件的车牌号码计数加1
print("该事故可能涉及到的车辆车牌号码为:晋W", t) # 打印出满足条件的车牌号码
print("该事故可能涉及到的车辆车牌共有", count, "个") # 最后打印出满足条件的车牌号码总数
|
答案
| count=0 # 初始化计数器为0 #填空1
for i in range(0, 10, 1): # 使用for循环遍历一个范围内的数字,这里的范围需要根据实际情况填写 #填空2
t = 65206+i*10 # 计算可能涉及事故的车牌号码 #错误1
if t % 53 == 0: # 如果车牌号码除以53的余数为0,则认为该车牌号码满足条件 #错误2
count += 1 # 用count计数 # 满足条件的车牌号码计数加1
print("该事故可能涉及到的车辆车牌号码为:晋W", t) # 打印出满足条件的车牌号码
print("该事故可能涉及到的车辆车牌共有", count, "个") # 最后打印出满足条件的车牌号码总数
|
题目4
题目要求
身体质量指数(BMI)是衡量人体肥胖程度的重要标准,其计算方法为身体质量指数等于体重(单位:kg)除以身高(单位:m)的平方。
下表是高二男生BMI数值对应的等级表。请你根据提供的程序段输入身高和体重,计算BMI的值并判断BMI的等级。
BMI数值范围 BMI数值范围
16.7以下(包含16.7) 低体重
16.7以上23.7以下(包含23.7) 正常
23.7以上26.5以下(包含26.5) 超重
26.5 以上 肥胖
【操作要求】
(1)补充完善程序中画线处的内容,使程序语句完整。
(2)找出程序中的两处错误并改正。
(3)运行程序,输入身高和体重,测试输出结果是否正确。
1
2
3
4
5
6
7
8
9
10
11
12
13 | h=float(input("请输入你的身高(单位:m)"))
__=float(input("请输入你的体重(单位:kg)"))
BMI=w/h**2 # 计算相应的BMI值
BMI=round(BMI, 1) # 对变量BMI的值进行四舍五入后,保留1位小数
print("你的身体质量指数是:",BMI)
if BMI___16.7:
print("BMI等级:低体重")
elif BMI<23.7:
print("BMI等级:正常")
elif BMI>26.5:
print("BMI 等级:超重")
else:
print("BMI等级:肥胖")
|
提示
4.请注意,代码中需添了缺失的变量w,它代表用户的体重。此外,要修正if语句中的条件,以确保所有可能的BMI值都被正确分类。
1
2
3
4
5
6
7
8
9
10
11
12
13 | h = float(input("请输入你的身高(单位:m)")) # 请求用户输入身高(单位:米),并将输入值转换为浮点数
__ = float(input("请输入你的体重(单位:kg)")) # 请求用户输入体重(单位:千克),并将输入值转换为浮点数
BMI = w/h**2 # 计算相应的BMI值 # 使用体重除以身高的平方来计算BMI值
BMI = round(BMI, 1) # 对变量BMI的值进行四舍五入后,保留1位小数 # 将BMI值四舍五入到小数点后一位
print("你的身体质量指数是:", BMI) # 输出用户的BMI值
if BMI___16.7: # 根据BMI值判断用户的体重等级,如果BMI小于16.7
print("BMI等级:低体重") # 输出低体重等级
elif BMI < 23.7: # 如果BMI在16.7到23.7之间(不包含23.7)
print("BMI等级:正常") # 输出正常等级
elif BMI > 26.5: # 如果BMI大于26.5
print("BMI 等级:超重") # 输出超重等级
else: # 否则
print("BMI等级:肥胖") # 如果BMI在23.7到26.5之间,输出肥胖等级
|
答案
1
2
3
4
5
6
7
8
9
10
11
12
13 | h = float(input("请输入你的身高(单位:m)")) # 请求用户输入身高(单位:米),并将输入值转换为浮点数
w = float(input("请输入你的体重(单位:kg)")) # 请求用户输入体重(单位:千克),并将输入值转换为浮点数 #填空1
BMI = w/h**2 # 计算相应的BMI值 # 使用体重除以身高的平方来计算BMI值
BMI = round(BMI, 1) # 对变量BMI的值进行四舍五入后,保留1位小数 # 将BMI值四舍五入到小数点后一位
print("你的身体质量指数是:", BMI) # 输出用户的BMI值
if BMI <= 16.7: # 根据BMI值判断用户的体重等级,如果BMI小于等于16.7 #填空2
print("BMI等级:低体重") # 输出低体重等级
elif BMI <= 23.7: # 如果BMI在16.7到23.7之间(包含23.7) #错误1
print("BMI等级:正常") # 输出正常等级
elif BMI <= 26.5: # 23.7以上26.5以下(包含26.5) #错误2
print("BMI 等级:超重") # 输出超重等级
else: # 否则
print("BMI等级:肥胖") # 如果BMI在23.7到26.5之间,输出肥胖等级
|
题目5
题目要求
用户身份认证是各类信息系统的一个重要功能模块,
现运用Python程序模拟用户登录,
通过输入用户名和密码,实现用户身份验证。
即输入用户名和密码,如果正确,显示欢迎信息,否则输出错误信息。
若连续输入达3次错误,则不能继续登录。程序代码如下:
【操作要求】
(1)补充完善程序中画线处的内容,使程序语句完整。(2)找出程序中的两处错误并改正。
(3)运行程序,输入一组数据,测试输出结果是否正确。
用户名:张萌,密码:123456,输出:登录成功!
输人错误信息,
输出:用户名或密码错误!输入错误信息三次,
输出:输入错误达3次,不允许登录!
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | uname = "张萌"
upass="123456"
count=0
for i in range(1,___):
sname=input("请输人用户名:")
spass = input("请输人密码:")
if(sname == uname ___ spass == upass):
print("登录成功!")
break
else
print("用户名或密码错误!")
count+= 1
if count>3:
print("输入错误达3次,不允许登录!")
|
提示
- 请注意,range(1, 4) 表示循环将执行从1到3的数字,总共3次。if 语句中使用 and 来确保用户名和密码都必须正确才能登录成功。如果计数器 count 达到或超过3,表示用户已经连续三次输入错误,程序将输出相应的提示信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | uname = "张萌" # 该变量预先保存用户名 # 预设的用户名
upass = "123456" # 预设的密码
count = 0 # 计数器,记录用户输入错误的次数 # 初始化计数器,用于记录用户输入错误的次数
for i in range(1, ___): # 构造一个最多执行3次的循环
sname = input("请输人用户名:") # 请求用户输入用户名
spass = input("请输人密码:") # 请求用户输入密码
if(sname == uname ___ spass == upass): # 判断输入的用户名和密码是否与预设的匹配
print("登录成功!") # 如果匹配打印登录成功
break # 退出循环
else # 否则
print("用户名或密码错误!") # 如果不匹配,打印错误信息
count += 1 # 增加计数器
if count > 3: # 如果用户输入错误达到3次,打印不允许登录的信息
print("输入错误达3次,不允许登录!") # 出错3次,退出程序
|
答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | uname = "张萌" # 该变量预先保存用户名 # 预设的用户名
upass = "123456" # 预设的密码
count = 0 # 计数器,记录用户输入错误的次数 # 初始化计数器,用于记录用户输入错误的次数
for i in range(1, 4): # 构造一个最多执行3次的循环 #填空1
sname = input("请输人用户名:") # 请求用户输入用户名
spass = input("请输人密码:") # 请求用户输入密码
if(sname == uname and spass == upass): # 判断输入的用户名和密码是否与预设的匹配 #填空2
print("登录成功!") # 如果匹配打印登录成功
break # 退出循环
else: # 否则 #错误1
print("用户名或密码错误!") # 如果不匹配,打印错误信息 #错误2
count += 1 # 增加计数器 #错误2?
if count > 3: # 如果用户输入错误达到3次,打印不允许登录的信息
print("输入错误达3次,不允许登录!") # 出错3次,退出程序
|
题目6
题目要求
生产厂家现要包装1200个“冰墩墩”送往超市售卖,包装的规格分别是小箱(每箱5个)和大箱(每箱12个),
要求每种规格至少有1箱,且每箱都必须装满。厂家需要计算出所有可能的组合方案,
请你帮忙完善下面的程序,输出所有的方案。
(1)补充完善程序中画线处的内容,使程序语句完整。
(2)找出程序中的两处错误并改正。
(3)运行程序,输出所有的方案。
| c=1
for x in range(1,240):
i= ____
if ___==0:
c*=1
y=i//12
print("方案",c,":小箱", x, ";大箱",y)
|
提示
6.请注意,代码中有两个空白____部分需要填写具体的表达式或条件。例如,i可能是根据小箱x的数量来计算的,而if语句中的条件应该是检查i除以12是否没有余数。如果您提供具体的计算方法或条件
| c = 1 # 初始化方案计数器为1
for x in range(1, 240): # 开始一个循环,x代表小箱的数量,从1到239
i = ____ # 这里应该是一个表达式,计算出大箱中“冰墩墩”的总数
if ___ == 0: # 如果i除以12的余数为0,说明大箱正好装满
c *= 1 # 这里的操作实际上没有改变c的值,可能是要做其他操作,其等价于c=c*1
y = i//12 # 计算大箱的数量,使用整除得到完整的大箱数
print("方案", c, ":小箱", x, ";大箱", y) # 打印出当前的方案编号、小箱数量和大箱数量
|
答案
| c = 1 # 初始化方案计数器为1
for x in range(1, 241): # 开始一个循环,x代表小箱的数量,从1到239 #错误1
i = 1200-x*5 # 这里应该是一个表达式,计算出大箱中“冰墩墩”的总数 #填空1
if i % 12 == 0: # 如果i除以12的余数为0,说明大箱正好装满 #填空2
c += 1 # 这里的操作实际上没有改变c的值,可能是要做其他操作,其等价于c=c*1 #错误2
y = i//12 # 计算大箱的数量,使用整除得到完整的大箱数
print("方案", c, ":小箱", x, ";大箱", y) # 打印出当前的方案编号、小箱数量和大箱数量
|
题目7
题目要求
学校要举行学生演讲比赛,选手分数的计算规则为;去掉最高分和最低分然后计算平均分(至少3个评委,输入的分数保证是0~100之间的整数)即为选手的最后得分。
请你用Python编写程序实现计算选手最后得分的功能。
【操作要求】
(1)补充完善下划线处的内容使程序语句完整;
(2)找出程序中的两处错误并改正:
(3)运行程序,输入一组数据,测试输出结果是否正确。
1
2
3
4
5
6
7
8
9
10
11
12 | n=float(input("请输入评委数"))
s=int(input("请输入第1位评委的成绩"))
maxx=minn=s
for i in range(2,____):
temp=int(input("输入一位评委的成绩"))
s=s+temp
if temp<minn:
__________
else temp > maxx:
maxx = temp
avg=(s-maxx-minn)/(n-2)
print("选手最终的成绩",avg)
|
题目8
题目要求
太原市滨河东路、西路(胜利桥至祥云桥)早晚高峰期实施阶段性机动车辆限行。
周-至周五限行机动车车牌尾号分别为:1和6,2和7,3和8,4和9,5和0。
车牌尾号为英文字母的以车牌最后一位数字作为尾号。
编程实现输入后6位车牌号,即可查询周几限行。【操作要求】
(1)补充完善程序中画线处的内容,使程序语句完整。联合束(2)找出程序中的两处错误并改正。
(3)运行程序,输入:AU88CA,测试输出结果是否正确。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | s=input("请输入后6位车牌号:")
n=6 #车牌号的长度为6
x=s[___]
while x < "0" or x > "9":
n = ___ # 取位向前移一位
x=s[n-1] #取车牌号的第n个符号
if int(x)%5==1:
print("星期一限行")
elif int(x)%5==2:
print("星期二限行")
elif int(x)%5==3:
print("星期三限行")
elif int(x)%5==4:
print("星期四限行")
elif int(x) % 5 == 5:
print("星期五限行")
|
题目9
题目要求
某商场举行抽奖活动,具体方案:每人可抽取3个幸运数字(0~9),
抽到的数字依次作为个位、十位、百位上的数,组成一个三位数。
若该三位数能同时被3、7、23 整除,则表示抽到一等奖;若能同时被7、23整除,
则表示抽到二等奖;若只能被23整除,则表示抽到三等奖;否则没中奖。
请你完善程序实现对中奖结果的自动分析。
【操作要求】
(1)补充完善程序中画线处的内容,使程序语句完整。(2)找出程序中的两处错误并改正。
(3)运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。
1
2
3
4
5
6
7
8
9
10
11
12 | num=0
for i in range(1,3):
luck=___(input("请输入幸运数字:"))
num=num+luck*10**(i-1) #组合生成三位数
if num%3==0 and num%7==0 and num%23==0:
print("一等奖")
elif num%7==0 and num%23==0:
print("二等奖")
elif ___:
print("三等奖")
elif:
print("很遗憾,没有中奖")
|
题目10
题目要求
某特许专营店销售世界杯纪念章,每枚进价为7元,预计这种纪念章以每枚20元的价格销售时,该店一年可销售2000枚,
经过市场调研发现每枚纪念章的销售价格在每枚20元的基础上每减少一元则增加销售400枚,而每增加则减少销售100枚,
假设售价只能是[10,30]区间内的整数,请你帮忙完善下面程序,输出专营店按多少元销售时所得利润最大。【操作要求】
(1)补充完善下划处处的内容使程序语句完整。
(2)找出程中两处错误并改正。
(3)运行程序,检查是否输出:16元时利润最大,此时利润为:32400元
1
2
3
4
5
6
7
8
9
10
11
12 | a=0
for i in ____(10,30):
if ____:
s=(i-7)*(2000+400*(20-i))
elif i==20:
s=13*2000
else:
s=(i-7)*(2000+100*(i-20))
if s>a:
a=s
b=i
print(b,a)
|
题目11
题目要求
《密室逃脱》是一款实景逃脱类游戏,依靠细节推理来完成任务,小明和朋友们在完成任务过程中遇到了如下问题:需要计算出10至100之间能被6整除但不能被8整除的整数之和即可获取重要线素,请你完善下列代码段,帮助他们解决问题获取线索。
【操作提求】
(1)补充完善下划线处的内容是程序语句完整。
(2)找出程序中的两处错误并改正。
(3)运行程序,测试sum的输出结果是否为570。
| ________
for i in range(10,101)
if i%6==0 or i%8!=0 :
sum=sum+i
________("10 到100 之间能被6整除不能被8整除的整数之和为:",sum)
|