粤教版(2019)必修 1 第四章 程序设计基础 章节检测(含答案)

文档属性

名称 粤教版(2019)必修 1 第四章 程序设计基础 章节检测(含答案)
格式 docx
文件大小 223.5KB
资源类型 教案
版本资源 粤教版(2019)
科目 信息科技(信息技术)
更新时间 2025-10-29 12:15:15

图片预览

文档简介

粤教版(2019)必修 1 第四章 程序设计基础 章节检测
(考试时间:60 分钟 满分:100 分)
姓名: 班级: 学号:
一、单选题(每题 2 分,共 50 分。)
1、贵州大数据产业中,常需要定义变量存储 “贵阳 2024 年季度数据量”,下列变量名符合 Python 命名规则的是( )
A、1_guiyang_data B、guiyang-data-2024
C、gz_bigdata_2024_q4 D、for_guiyang
2、存储 “贵州特色水果:刺梨、猕猴桃、蓝莓” 的名称列表,适合的数据类型是( )
A、str B、list C、tuple D、dict
3、某农户销售猕猴桃时,单价 5.8 元/斤,客户购买 12 斤,若购买 10 斤以上打 9 折,计算总价的表达式正确的是( )
A、5.8 * 12 * 0.9 B、5.8 * 12
C、5.8 * (12 - 10) * 0.9 D、5.8 * 10 + 5.8 * 2
4、执行语句count = input("请输入贵州某小学的班级数:")后,输入 “6”,则count的数据类型是( )
A、int B、float C、str D、list
5、要以 “贵州 - 遵义 - 赤水” 的格式输出地名,正确的print语句是( )
A、print ("贵州", "遵义", "赤水", sep="-")
B、print ("贵州 - 遵义 - 赤水", end="-")
C、print ("贵州", "遵义", "赤水", end="-")
D、print ("贵州 - 遵义 - 赤水", sep="-")
6、下列属于 Python 不可变数据类型的是( )
A、list B、dict C、tuple D、set
7、执行表达式(15 // 4) + (10 % 3) * 2的结果是( )
A、7 B、8 C、9 D、10
8、校园垃圾分类统计中,判断 “垃圾重量是否超过 5kg” 的关系表达式是( )
A、weight > 5 B、weight >= 5
C、weight = 5 D、weight < 5
9、变量x = 8,执行x += 3后,x的值是( )
A、8 B、3 C、11 D、24
10、存储 “贵州各州市 GDP:贵阳 4711 亿,遵义 4401 亿” 的键值对,适合的数据类型是( )
A、list B、tuple C、set D、dict
11、执行语句print(len("贵州大数据产业"))的输出结果是( )
A、6 B、7 C、8 D、9
12、表达式not (5 > 3) and (8 // 2 == 4)的结果是( )
A、True B、False C、1 D、0
13、某超市促销:“满 30 减 5”,若购物金额为money,计算实付金额的选择结构正确的是( )
A、if money > 30: pay = money - 5
B、if money >= 30: pay = money - 5
C、if money < 30: pay = money - 5
D、if money == 30: pay = money - 5
14、执行下列循环程序的输出结果是( )
for i in range(2, 8, 2):
print(i, end=" ")
A、2 4 6 B、2 4 6 8
C、3 5 7 D、2 3 4 5 6 7
15、列表fruit = ["刺梨", "猕猴桃", "蓝莓"],要访问 “猕猴桃”,正确的索引是( )
A、1 B、2 C、-1 D、-3
16、某县在进行人口统计时,用while循环计算 “10 个乡镇的总人口”,循环终止条件是( )
A、乡镇数 > 10 B、乡镇数 <10
C、乡镇数>= 10 D、乡镇数 <= 10
17、执行下列程序的输出结果是( )
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
else:
print("合格")
A、优秀 B、良好 C、合格 D、无输出
18、字典city = {"name": "贵阳", "area": 8034, "population": 622},要获取贵阳的面积,正确的语句是( )
A、city[1] B、city["area"]
C、city、area D、city["8034"]
19、循环中遇到 “负数数据则跳过”,应使用的控制语句是( )
A、break B、continue C、if D、else
20、执行下列程序的输出结果是( )
sum = 0
for num in [3, -2, 5, -1, 4]:
if num < 0:
continue
sum += num
print(sum)
A、12 B、14 C、10 D、8
21、将字符串 “123.5” 转换为浮点型数据,正确的函数是( )
A、int("123.5") B、float("123.5")
C、str("123.5") D、len("123.5")
22、下列程序的功能是( )
n = int(input("请输入购买杨梅的数量:"))
price = float(input("请输入单价:"))
total = n * price
print("总价:", total)
A、计算购买杨梅的总价 B、统计学生人数
C、计算垃圾分类重量 D、输出校园社团名称
23、元组gz_city = ("贵阳", "遵义", "六盘水"),下列操作能成功执行的是( )
A、gz_city [0] = "安顺" B、print (gz_city [2])
C、gz_city、append ("毕节") D、gz_city、remove ("遵义")
24、执行下列程序的输出结果是( )
x = 10
while x > 5:
x -= 2
if x == 6:
break
print(x)
A、6 B、5 C、4 D、8
25、贵州大数据平台统计 “每日访问量”,若访问量visit >= 1000则输出 “高访问”,否则输出 “普通访问”,对应的选择结构完整的是( )
A、if visit >= 1000: print ("高访问")
B、if visit < 1000: print ("普通访问")
C、if visit >= 1000: print ("高访问") else: print ("普通访问")
D、if visit == 1000: print ("高访问")
二、填空题(每空 2 分,共 10 分)
1、Python 中,变量名的第一个字符不能是________(填 “字母”“数字” 或 “下划线”)。
2、常见的 Python 数值类型包括整型(int)、浮点型(float)和________(填数据类型名称)。
3、循环控制语句中,________用于直接终止整个循环,________用于跳过本次循环剩余代码并开始下次循环。
4、print函数中,控制输出内容末尾字符的参数是________,其默认值是换行符(\n)。
5、input()函数无论输入何种内容,返回值的默认数据类型是________。
三、编程题(每题 20 分,共 40 分。要求根据情景描述及要求写出完整代码,运行逻辑正确)
1、贵州刺梨汁定价计算
场景:贵州某食品厂生产刺梨汁,根据购买量制定批发价:
购买 100 瓶及以上:单价 4.5 元/瓶
购买 50-99 瓶:单价 5 元/瓶
购买不足 50 瓶:单价 5.5 元/瓶
要求:
① 从键盘输入购买瓶数(整数);
② 根据购买量计算总价(保留 2 位小数);
③ 按格式输出 “购买数量:X 瓶,单价:X.X 元 / 瓶,总价:X.XX 元”。
2、校园社团招新数据统计
场景:新学期开始了,某中学开展社团招新,需统计报名情况:
要求:
① 从键盘输入社团数量n;
② 依次输入n个社团的报名人数,存储到列表中;
③ 计算所有社团的总报名人数和平均报名人数(保留 1 位小数);
④ 按格式输出 “总报名人数:X 人,平均报名人数:X.X 人”。
参考答案
一、选择题(每题 2 分,共 50 分)
1. 答案:C
A 选项 “1_guiyang_data” 首字符是数字,违反命名规则;
B 选项 “guiyang-data-2024” 含 “-” 特殊符号,Python 中 “-” 是减法运算符,不能用于变量名;
C 选项 “gz_bigdata_2024_q4” 以字母开头,用 “_” 连接,符合规则(“gz” 对应 “贵州”,贴合本地场景);
D 选项 “for_guiyang” 中 “for” 是 Python 循环关键字,不能作为变量名组成部分。
2. 答案:B
A 选项 str(字符串)仅能存储单个文本,无法单独区分 “刺梨、猕猴桃、蓝莓” 三个独立数据;
B 选项 list(列表)可有序存储多个水果名称,且支持后续修改(如添加 “杨梅”),符合需求;
C 选项 tuple(元组)虽能存储多个数据,但不可修改,不适合可能调整的水果列表;
D 选项 dict(字典)需 “键值对” 存储(如 “水果 1:刺梨”),本题仅需存储名称,无需键值对应,冗余且没必要。
3. 答案:A
题目中 “购买 10 斤以上打 9 折”,客户买 12 斤(满足折扣条件),总价 = 单价 × 数量 × 折扣率:
单价 5.8 元 / 斤,数量 12 斤,折扣 0.9,故表达式为 “5.8 * 12 * 0.9”,对应 A 选项;
B 选项未乘折扣,错误;C 选项仅计算超出 10 斤的 2 斤,逻辑错误;D 选项未乘折扣,且计算方式冗余(12 斤直接乘单价即可,无需拆分 10 斤和 2 斤)。
4. 答案:C
Python 中 input () 函数无论输入数字、文本还是符号,返回结果均为字符串类型。即使输入 “6”(数字),变量 count 的数据类型仍是 str,若需用该数据进行计算,需用 int () 或 float () 转换,故 C 选项正确。
5. 答案:A
sep 参数用于指定多个输出内容的分隔符(默认是空格),end 参数用于指定输出末尾的字符(默认是换行符 \n);
题目要求以 “贵州 - 遵义 - 赤水” 格式输出(分隔符是 “-”),需用 sep="-",且无需在末尾加 “-”,故 A 选项正确;
B 选项用 end="-",会在末尾多一个 “-”(如 “贵州 - 遵义 - 赤水 -”),错误;C 选项既用 end="-" 又未指定 sep,输出为 “贵州 遵义 赤水 -”,错误;D 选项仅一个字符串,sep 参数无效,错误。
6. 答案:C
不可变数据类型:创建后无法修改内容,包括 int、float、str、tuple;
可变数据类型:创建后可修改内容,包括 list、dict、set;
A(list)、B(dict)、D(set)均为可变类型,C(tuple)为不可变类型,故正确。
7. 答案:B
分步计算:
1.先算括号内:15//4=3(整除,商取整数),10%3=1(取余,余数是 1);
2.再算乘法:1*2=2;
3.最后算加法:3+2=8,对应 B 选项。
8. 答案:A
“超过 5kg” 表示重量 > 5,对应 A 选项;
B 选项 “>=5” 表示 “大于等于 5kg”(包含 5kg),不符合 “超过” 的含义;C 选项 “=5” 是赋值语句,不是关系表达式;D 选项 “<5” 表示 “小于 5kg”,与题意相反。
9. 答案:C
初始 x=8,执行 x +=3 后,x=8+3=11,故 C 选项正确。
10. 答案:D
题目中 “贵阳 4711 亿” 是 “键(城市名)- 值(GDP)” 对应关系,需用 dict 存储;
A(list)、B(tuple)仅能存储有序数据,无法体现 “城市与 GDP 的对应”;C(set)是无序无重复集合,不适合键值对应,故 D 正确。
11. 答案:B
“贵州大数据产业” 共 7 个字符(贵、州、大、数、据、产、业),故 len () 函数返回 7,对应 B 选项。
12. 答案:B
分步计算:
1.not (5>3):5>3 是 True,not 取反后为 False;
2.8//2==4:8//2=4,故该表达式为 True;
3.False and True:and 运算需两边均为 True 才返回 True,此处结果为 False,对应 B 选项。
13. 答案:B
“满 30” 包括 30 元本身(如 30 元也需减 5),故条件应为 money >=30,对应 B 选项;
A 选项 “money>30” 不包含 30 元,不符合 “满 30” 的含义;C、D 选项条件与题意相反,错误。
14. 答案:A
range (2,8,2) 表示 “从 2 开始,到 8 结束(不包含 8),每次加 2”,生成的序列是 2、4、6,故循环输出结果为 “2 4 6 ”,对应 A 选项。
15. 答案:A
列表 fruit = ["刺梨", "猕猴桃", "蓝莓"] 中:
正向索引:0→刺梨,1→猕猴桃,2→蓝莓;
反向索引:-1→蓝莓,-2→猕猴桃,-3→刺梨;
题目要求访问 “猕猴桃”(第二个元素),正向索引是 1,对应 A 选项。
16. 答案:C
设乡镇数为 count,初始 count=0,每次循环统计 1 个乡镇,count 加 1:
当 count <10 时,继续循环;当 count>=10 时,循环终止(已统计 10 个乡镇),对应 C 选项;
A 选项 “count>10” 会多统计 1 个乡镇(count=11 才终止),错误;B、D 选项条件会导致循环无法终止或提前终止,错误。
17. 答案:B
score=85:
先判断 score>=90?85<90,不满足;
再判断 score>=80?85>=80,满足,执行 print ("良好"),后续 else 不再执行,故输出 “良好”,对应 B 选项。
18. 答案:B
字典 city 中,“面积” 对应的键是 "area",故取值语句为 city ["area"],对应 B 选项;
A 选项 “city [1]” 是列表的索引取值方式,字典不能用索引取值;C 选项 “city.area” 是对象的属性取值方式,Python 字典不支持;D 选项 “city ["8034"]” 用值作为键,逻辑错误。
19. 答案:B
break:遇到满足条件时,直接终止整个循环,不再执行后续迭代;
continue:遇到满足条件时,跳过本次循环的剩余代码,直接开始下次迭代(不终止循环);
题目要求 “遇到负数数据则跳过”(仅跳过当前负数,继续统计后续数据),需用 continue,对应 B 选项。
答案:A
初始 sum=0,循环遍历列表 [3,-2,5,-1,4]:
3 是正数:sum=0+3=3;
-2 是负数:continue,跳过,sum 不变;
5 是正数:sum=3+5=8;
-1 是负数:continue,跳过,sum 不变;
4 是正数:sum=8+4=12;
最终 sum=12,对应 A 选项。
21. 答案:B
A 选项 int ("123.5"):int () 只能转换整数字符串(如 "123"),"123.5" 含小数点,转换会报错;
B 选项 float ("123.5"):float () 可将含小数点的字符串转换为浮点型(结果为 123.5),正确;
C 选项 str ("123.5"):str () 是将数据转换为字符串,此处输入已是字符串,无意义;
D 选项 len ("123.5"):len () 是计算字符串长度(结果为 5),不是类型转换,错误。
22. 答案:A
程序逻辑:输入数量 n 和单价 price,计算 total=n*price(总价),输出总价。结合贵州地区场景,“数量 + 单价 = 总价” 最贴合农产品销售(如猕猴桃、刺梨),对应 A 选项;B(统计人数)、C(计算重量)、D(输出社团名称)均与 “数量 × 单价” 的逻辑无关,错误。
23. 答案:B
元组是不可变类型,仅支持 “访问元素”,不支持 “修改、添加、删除元素”:
A 选项 “gz_city [0] = "安顺"”:修改元组元素,错误;
B 选项 “print (gz_city [2])”:访问元组第 3 个元素(“六盘水”),正确;
C 选项 “gz_city.append ("毕节")”:添加元素,错误;
D 选项 “gz_city.remove ("遵义")”:删除元素,错误。
24. 答案:A
初始 x=10,循环条件 x>5:
1.第一次循环:x=10-2=8,8≠6,继续;
2.第二次循环:x=8-2=6,6==6,执行 break,循环终止;
最终 x=6,对应 A 选项。
25. 答案:C
题目要求 “visit>=1000 输出高访问,否则输出普通访问”,需覆盖 “>=1000” 和 “<1000” 两种情况:
A 选项仅处理 “>=1000”,未处理 “<1000”,不完整;
B 选项仅处理 “<1000”,未处理 “>=1000”,不完整;
C 选项 if...else...,完整覆盖两种情况,正确;
D 选项仅处理 “==1000”,遗漏 “>1000” 和 “<1000”,错误。
二、填空题(每空 2 分,共 10 分)
1、数字
2、复数(complex)
3、break;continue
4、end
5、字符串(str)
三、编程题(每题 20 分,共 40 分)
1、参考代码及输出样例:
2、参考代码及输出样例: