跳转至

操作题: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("******游戏结束******")

提示

  1. 请注意,代码中有一个错误:在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时,检查输出结果是否为”恭喜你,已通过考核!”。

代码调试区 在线调试

1
2
3
4
5
6
7
8
9
count = 0
for time in range(1, 3, 1):
    dig = int(input("请输入你的垫球次数"))
    if________:
    count = ________
if count >= 2:
    print("恭喜你,通过考核")
else
    print("抱歉,未通过考核")

提示

  1. 请注意,if语句后面的条件和count变量的更新需要根据实际情况来填写。在这个例子中,我假设如果用户输入的垫球次数大于或等于35次,就认为是一次成功的垫球,并更新计数器。如果用户在两次机会中都达到了这个标准,程序就会恭喜他们通过考核。如果没有达到,就会告诉他们未通过考核。这个标准(5次)可以根据实际需要进行调整。
1
2
3
4
5
6
7
8
9
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("抱歉,未通过考核")  # 打印“抱歉,未通过考核”

答案

1
2
3
4
5
6
7
8
9
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)运行程序,直至输出正确的结果,以协助交警队事故科快速处理该事故。

代码调试区 在线调试

1
2
3
4
5
6
7
______
for i in range(0,___, 1):
    t=65206+i*100    
    if t%53=0:        
       count+=1       #用count计数 
       print("该事故可能涉及到的车辆车牌号码为:晋W",t)
print("该事故可能涉及到的车辆车牌共有",count,"个")

提示

  1. 请注意,代码中的if t%53=0:应该是if t%53 == 0:,因为在Python中,==用于比较操作符,而=用于赋值操作。此外,for循环的范围需要根据实际情况来确定,例如,如果要检查从65206到65306之间的车牌号码,可以将替换为1。如果要检查更大范围内的车牌号码,可以相应地增加这个数字。
1
2
3
4
5
6
7
______   # 初始化计数器为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, "个")   # 最后打印出满足条件的车牌号码总数

答案

1
2
3
4
5
6
7
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次,不允许登录!")  

提示

  1. 请注意,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)运行程序,输出所有的方案。

代码调试区 在线调试

1
2
3
4
5
6
7
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是否没有余数。如果您提供具体的计算方法或条件

1
2
3
4
5
6
7
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)   # 打印出当前的方案编号、小箱数量和大箱数量

答案

1
2
3
4
5
6
7
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。

代码调试区 在线调试

1
2
3
4
5
________
for i in range(10,101)
    if i%6==0 or i%8!=0 :  
       sum=sum+i
________("10 到100 之间能被6整除不能被8整除的整数之和为:",sum)