内容正文:
《Python 程序编写入门》高等教育出版社
第三单元 程序中的逻辑关系
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.执行print(list(range(3, 7))),输出结果是( )。
A. [3, 4, 5, 6, 7]
B. [4, 5, 6]
C. [3, 4, 5, 6]
D. [3, 4, 5]
2.import random后,执行random.random(),返回值的范围是( )。
A. [0, 10)
B. (0, 1]
C. [0, 1)
D. (0, 1)
3.在 for 循环实现遍历中,遍历结构不可以是( )。
A. 字符串
B. 列表
C. 整数
D. 集合
4.关于 break 语句的作用,下列说法正确的是( )。
A.跳出所有 for 循环
B.跳出所有 while 循环
C.只跳出本层循环
D.按照缩进跳出当前层语句块
5.在多分支结构中,下列说法正确的是( )。
A. 必须有 else 语句块
B. 必须有 elif 语句块
C. 可以没有 if 语句块
D. 多个条件同时满足时,只执行第一个满足条件的语句块
6.以下关于 for 循环遍历对象的说法,错误的是( )。
A. for 循环可以遍历字符串,逐个获取字符
B. for 循环能遍历列表,依次取出列表元素
C. for 循环不可以遍历字典,因为字典是无序的
D. for 循环可遍历 range 生成的数字序列
7.执行 s = 0; for i in range(1, 6): s += i; print(s) ,输出结果是( )。
A. 15
B. 10
C. 20
D. 5
8.以下能正确遍历字典 d = {'a':1, 'b':2} 键值对的 for 循环是( )。
A.for k, v in d.items(): print(k, v)
B.for k in d: print(k, d[k])
C. for v in d.values(): print(v)
D.for k in d.keys(): print(k)
9.关于continue关键字,说法正确的是( )。
A. 跳出本层循环
B. 跳出本次循环,继续下一次循环
C. 用于保持程序结构完整性,无实际操作
D. 是Python 3新增关键字
10.要判断一个年份year是否为闰年(能被4整除但不能被100整除,或能被400整除 ),正确的条件表达式是( )。
A. (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
B. (year % 4 == 0 or year % 100 != 0) and (year % 400 == 0)
C. year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
D. 以上都不对
11.执行x = 10; if x > 5: print("A"); if x > 8: print("B"); else: print("C"),输出是( )。
A. A
B. A B
C. A C
D. B
12.执行age = 20; if age >= 18: print("成年"); elif age >= 12: print("青少年"); else: print("儿童"),输出是( )。
A. 成年
B. 青少年
C. 儿童
D. 无输出
13.以下关于Python分支结构的说法,错误的是( )。
A. if语句是最基本的分支结构
B. if-else用于处理双分支情况
C. if-elif-else可以处理多分支,但elif数量有限制
D. 分支结构的条件表达式结果必须是布尔值
14.关于while循环条件,说法错误的是( )。
A. 条件表达式返回布尔值
B. 条件为True时循环持续执行
C. 必须有改变条件的语句避免死循环
D. 条件只能是比较运算表达式
15.以下关于 Python 循环结构的说法,错误的是( )。
A. for 循环可以遍历列表、字符串等可迭代对象
B. while 循环的条件表达式可以是任意能返回布尔值的表达式
C. break 语句只能用于 for 循环,不能用于 while 循环
D. continue 语句可以跳过当前循环的剩余部分,进入下一次循环
16.关于random.randint(5, 15),说法正确的是( )。
A. 返回值范围是[5, 15)
B. 可能返回15
C. 可能返回4
D. 返回值是浮点数
17.要随机选取列表lst = [10, 20, 30]中的一个元素,应使用( )。
A. random.choice(lst)
B. random.sample(lst, 1)
C. random.shuffle(lst)
D. random.randint(lst)
18. 下列代码运行后,count 的值是( )。
count = 0
for num in range(10):
if num % 2 != 0:
continue
count += 1
A. 3
B. 4
C. 5
D. 6
19. 执行以下代码,输出结果是( )。
for i in range(5):
if i == 3:
continue
print(i)
A. 0 1 2
B. 0 1 2 4
C. 0 1 2 3 4
D. 3
20.想要遍历列表 lst = [10, 20, 30] 并获取每个元素的索引和值,正确的代码是( )。
A. for i in lst: print(i)
B. for index, value in lst: print(index, value)
C. for index, value in enumerate(lst): print(index, value)
D. for index in range(len(lst)): print(lst[index])
二、填空题(本大题共20小题,每小题2分,共40分)
1.random模块中,____________________函数用于生成0到1之间的随机浮点数。
2.从列表nums = [1, 3, 5]中随机选取一个元素,代码是____________________ 。
3.程序流程图中,______ 表示程序的注释。
4.用 input() 函数输入一个整数,需使用______ 函数(如 int() )进行类型转换才能得到整数类型。
5.异常处理是______ 结构的一种扩展,用于捕获和处理程序运行中的错误。
6.for 循环遍历字符串时,会逐个获取字符串的______ 。
7. 生成从 3 到 9 (包含 3 和 9 ),步长为 3 的数字序列,range 函数是______。
8. break关键字的作用是______ 。
9.双分支结构if-else中,else块的代码在______时执行。
10.多分支结构中,______(只能有一个/可以有多个 )分支的代码会被执行。
11.执行for i in range(2, 6): print(i * 2, end=" "),输出______ 。
12. i = 3,执行while i < 6: print(i); i += 1,循环执行______次。
13.流程图中,输入/输出操作使用______图形表示。
14.while 循环的条件表达式为______ (填布尔值)时,循环结束。
15.执行 for i in range(3, 8) ,循环中 i 最后一次的值是______ 。
16.执行 i = 1; while i <= 5: print(i); i += 2 ,输出的数字是______ 。
17.执行 for i in range(0, 10, 2): print(i, end=',') ,输出结果的最后一个字符是______ 。
18.计算1到10的奇数和的循环语句可写为:
total = 0
for i in range(1, 11, 2):
total += i
执行后total的值是________。
19.Python中,循环结构有________和________两种。
20.循环结构分为当型循环和直到型循环,在Python中,while循环属于__________循环,它先判断条件,条件成立才执行循环体。
三、简答题(本大题共4小题,每小题5分,共20分)
1.程序编写,键盘输入一个年份,判断是否是闰年。
2. 程序编写,打印输出九九乘法表。
3. 计算斐波那契数列的第n项,n由用户输入。
4.输入一个分数(0-100),根据分数输出等级:90-100:A,80-89:B,70-79:C,60-69:D,60以下:E。
学科网(北京)股份有限公司
$$
《Python 程序编写入门》高等教育出版社
第3单元 程序中的逻辑关系
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.执行print(list(range(3, 7))),输出结果是( )。
A. [3, 4, 5, 6, 7]
B. [4, 5, 6]
C. [3, 4, 5, 6]
D. [3, 4, 5]
【答案】C
【解析】range(3, 7)生成从3开始(包含3)到7结束(不包含7)的整数序列,转为列表是[3, 4, 5, 6]。
2.import random后,执行random.random(),返回值的范围是( ).
A. [0, 10)
B. (0, 1]
C. [0, 1)
D. (0, 1)
【答案】C
【解析】random.random()生成0(包含)到1(不包含)之间的随机浮点数,范围是[0, 1),所以选C。
3.在 for 循环实现遍历中,遍历结构不可以是( )。
A. 字符串
B. 列表
C. 整数
D. 集合
【答案】C
【解析】for 循环遍历的是可迭代对象,字符串、列表、集合都是可迭代对象,整数不是可迭代对象,不能遍历, 所以选C。
4.关于 break 语句的作用,下列说法正确的是( )。
A.跳出所有 for 循环
B.跳出所有 while 循环
C.只跳出本层循环
D.按照缩进跳出当前层语句块
【答案】C
【解析】break 用于跳出本层循环,不再执行本层循环后续迭代,所以选C。
5.在多分支结构中,下列说法正确的是( )。
A. 必须有 else 语句块
B. 必须有 elif 语句块
C. 可以没有 if 语句块
D. 多个条件同时满足时,只执行第一个满足条件的语句块
【答案】D
【解析】多分支结构中,else 和 elif 不是必须的;if 是必须的起始;多个条件同时满足,只会执行第一个满足条件的分支,D 正确;A 多分支可没有 else ;B 可没有 elif ,只有 if 和 else ;C 必须有 if 。
6.以下关于 for 循环遍历对象的说法,错误的是( )。
A. for 循环可以遍历字符串,逐个获取字符
B. for 循环能遍历列表,依次取出列表元素
C. for 循环不可以遍历字典,因为字典是无序的
D. for 循环可遍历 range 生成的数字序列
【答案】C
【解析】for 循环可以遍历字典,可通过 keys()、values()、items() 等方法遍历字典的键、值、键值对 ,所以选C。
7.执行 s = 0; for i in range(1, 6): s += i; print(s) ,输出结果是( )。
A. 15
B. 10
C. 20
D. 5
【答案】A
【解析】range(1, 6) 是 1、2、3、4、5 ,循环累加,1 + 2 + 3 + 4 + 5 = 15 ,输出 15 ,所以选A。
8.以下能正确遍历字典 d = {'a':1, 'b':2} 键值对的 for 循环是( )。
A.for k, v in d.items(): print(k, v)
B.for k in d: print(k, d[k])
C. for v in d.values(): print(v)
D.for k in d.keys(): print(k)
【答案】A
【解析】d.items() 返回字典键值对可迭代对象,for k, v in d.items() 能遍历键值对;B 虽也能获取键值对,但 A 是更直接遍历键值对的方式;C 遍历值,D 遍历键,所以选 A 。
9.关于continue关键字,说法正确的是( )。
A. 跳出本层循环
B. 跳出本次循环,继续下一次循环
C. 用于保持程序结构完整性,无实际操作
D. 是Python 3新增关键字
【答案】B
【解析】continue作用是跳过本次循环剩余语句,进入下一次循环,B正确;A是break作用,C是pass作用,continue不是新增,所以选 B 。
10.要判断一个年份year是否为闰年(能被4整除但不能被100整除,或能被400整除 ),正确的条件表达式是( )。
A. (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
B. (year % 4 == 0 or year % 100 != 0) and (year % 400 == 0)
C. year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
D. 以上都不对
【答案】A
【解析】闰年判断条件是能被4整除但不能被100整除,或者能被400整除,A的逻辑表达式正确描述该条件,选 A 。
11.执行x = 10; if x > 5: print("A"); if x > 8: print("B"); else: print("C"),输出是( )。
A. A
B. A B
C. A C
D. B
【答案】B
【解析】这里是两个独立的if语句,不是if-elif-else结构。x = 10 > 5,执行第一个print("A");x = 10 > 8,执行第二个print("B"),输出A B,所以选B 。
12.执行age = 20; if age >= 18: print("成年"); elif age >= 12: print("青少年"); else: print("儿童"),输出是( )。
A. 成年
B. 青少年
C. 儿童
D. 无输出
【答案】A
【解析】age = 20 >= 18,满足第一个if条件,输出成年。
13.以下关于Python分支结构的说法,错误的是( )。
A. if语句是最基本的分支结构
B. if-else用于处理双分支情况
C. if-elif-else可以处理多分支,但elif数量有限制
D. 分支结构的条件表达式结果必须是布尔值
【答案】C
【解析】if-elif-else中elif数量无严格限制,可根据需求添加 ,所以选C。
14.关于while循环条件,说法错误的是( )。
A. 条件表达式返回布尔值
B. 条件为True时循环持续执行
C. 必须有改变条件的语句避免死循环
D. 条件只能是比较运算表达式
【答案】D
【解析】while条件可以是任意能返回布尔值的表达式,如逻辑运算、函数返回值等,所以选 D 。
15.以下关于 Python 循环结构的说法,错误的是( )。
A. for 循环可以遍历列表、字符串等可迭代对象
B. while 循环的条件表达式可以是任意能返回布尔值的表达式
C. break 语句只能用于 for 循环,不能用于 while 循环
D. continue 语句可以跳过当前循环的剩余部分,进入下一次循环
【答案】C
【解析】break 语句既可以用于 for 循环,也可以用于 while 循环,用于跳出当前所在的循环,所以选 C。
16.关于random.randint(5, 15),说法正确的是( )。
A. 返回值范围是[5, 15)
B. 可能返回15
C. 可能返回4
D. 返回值是浮点数
【答案】B
【解析】random.randint(a, b)生成[a, b]范围内的整数,包含a和b,所以可能返回15,所以选B。
17.要随机选取列表lst = [10, 20, 30]中的一个元素,应使用( )。
A. random.choice(lst)
B. random.sample(lst, 1)
C. random.shuffle(lst)
D. random.randint(lst)
【答案】A
【解析】random.choice用于从序列中随机选一个元素;random.sample是选指定数量不重复元素,返回列表;shuffle是打乱顺序;randint用于整数范围 ,选 A。
18. 下列代码运行后,count 的值是( )。
count = 0
for num in range(10):
if num % 2 != 0:
continue
count += 1
A. 3
B. 4
C. 5
D.6
【答案】C
【解析】range(10) 生成 0 - 9 的数字序列,循环中判断 num % 2 != 0 ,即当 num 为奇数时跳过本次循环;当 num 为偶数(0, 2, 4, 6, 8 )时,执行 count += 1 ,所以 count 最终值为5,所以选A。
19. 执行以下代码,输出结果是( )。
for i in range(5):
if i == 3:
continue
print(i)
A. 0 1 2
B. 0 1 2 4
C. 0 1 2 3 4
D. 3
【答案】B
【解析】当 i = 0、1、2 时,不满足 i == 3 ,正常输出;当 i = 3 时,遇到 continue ,跳过本次循环剩余内容(即不执行 print(i) ),继续下一次循环;当 i = 4 时,正常输出,所以结果是 0 1 2 4,所以选B。
20.想要遍历列表 lst = [10, 20, 30] 并获取每个元素的索引和值,正确的代码是( )。
A. for i in lst: print(i)
B. for index, value in lst: print(index, value)
C. for index, value in enumerate(lst): print(index, value)
D. for index in range(len(lst)): print(lst[index])
【答案】C
【解析】enumerate 函数可以同时返回元素的索引和值,C正确;A只能获取元素值;B 中 lst 是列表,不能直接解包为索引和值;D只能获取元素值,无法同时获取索引和值 ,所以选C。
二、填空题(本大题共20小题,每小题2分,共40分)
1.random模块中,____________________函数用于生成0到1之间的随机浮点数。
【答案】random()
【解析】random.random()专门生成该范围的随机浮点数。
2.从列表nums = [1, 3, 5]中随机选取一个元素,代码是____________________ 。
【答案】random.choice(nums)
【解析】choice函数从序列选一个元素返回。。
3.程序流程图中,______ 表示程序的注释。
【答案】注释框
【解析】程序流程图里注释框用于添加程序说明、注释内容 。
4.用 input() 函数输入一个整数,需使用______ 函数(如 int() )进行类型转换才能得到整数类型。
【答案】int()
【解析】input() 获取的是字符串,要转整数用 int() ,转浮点数用 float() 等 。
5.异常处理是______ 结构的一种扩展,用于捕获和处理程序运行中的错误。
【答案】分支(或选择 )
【解析】异常处理(try - except 等 )类似分支结构,依据是否发生异常选择执行不同代码块。
6.for 循环遍历字符串时,会逐个获取字符串的______ 。
【答案】字符
【解析】for 循环遍历字符串,每次迭代取一个字符。
7. 生成从 3 到 9 (包含 3 和 9 ),步长为 3 的数字序列,range 函数是______。
【答案】range(3, 10, 3)
【解析】range 结束值要大于 9 才能包含 9 ,步长 3 ,所以是 range(3, 10, 3) ,生成 3、6、9 。
8. break关键字的作用是______ 。
【答案】跳出本层循环
【解析】遇到break,立即终止当前所在循环,执行循环后续代码。
9.双分支结构if-else中,else块的代码在______时执行。
【答案】if条件表达式结果为False
【解析】条件不满足,进入else块执行。
10.多分支结构中,______(只能有一个/可以有多个 )分支的代码会被执行。
【答案】只能有一个
【解析】依次判断条件,遇到第一个满足的分支执行,后续不再判断。
11.执行for i in range(2, 6): print(i * 2, end=" "),输出______ 。
【答案】4 6 8 10
【解析】i取2、3、4、5,分别乘2后输出。
12. i = 3,执行while i < 6: print(i); i += 1,循环执行______次。
【答案】 3
【解析】i为3、4、5时满足条件,共执行3次。
13.流程图中,输入/输出操作使用______图形表示。
【答案】平行四边形框
【解析】流程图规范里,平行四边形框用于表示输入或输出操作 。
14.while 循环的条件表达式为______ (填布尔值)时,循环结束。
【答案】False
【解析】while 循环在条件表达式结果为 False 时,停止执行循环体,结束循环 。
15.执行 for i in range(3, 8) ,循环中 i 最后一次的值是______ 。
【答案】7
【解析】range(3, 8) 生成的序列是 3, 4, 5, 6, 7 ,所以 i 最后一次的值为7。
16.执行 i = 1; while i <= 5: print(i); i += 2 ,输出的数字是______ 。
【答案】1 3 5
【解析】第一次循环:i = 1 ,1 <= 5 成立,输出 1 ,i = 1 + 2 = 3;第二次循环:i = 3 ,3 <= 5 成立,输出 3 ,i = 3 + 2 = 5;第三次循环:i = 5 ,5 <= 5 成立,输出 5 ,i = 5 + 2 = 7;此时 7 <= 5 不成立,循环结束,输出 1 3 5 。
17.执行 for i in range(0, 10, 2): print(i, end=',') ,输出结果的最后一个字符是______ 。
【答案】,
【解析】range(0, 10, 2) 生成 0, 2, 4, 6, 8 ,print(i, end=',') 使输出的数字之间用逗号分隔,最后一个数字 8 输出后,也会加上逗号,所以最后一个字符是 , 。
18.计算1到10的奇数和的循环语句可写为:
total = 0
for i in range(1, 11, 2):
total += i
执行后total的值是________。
【答案】25
【解析】1+3+5+7+9=25。
19.Python中,循环结构有________和________两种。
【答案】for,while
【解析】for用于遍历可迭代对象,while用于条件循环。
20.循环结构分为当型循环和直到型循环,在Python中,while循环属于__________循环,它先判断条件,条件成立才执行循环体。
【答案】当型
【解析】while循环在每次执行循环体之前先检查条件表达式,当条件为真时,就执行循环体中的代码,然后再次检查条件,只要条件一直为真,就会不断重复执行循环体,符合当型循环“先判断,后执行”的特点。
三、简答题(本大题共4小题,每小题5分,共20分)
1.程序编写,键盘输入一个年份,判断是否是闰年。
【答案】
year = int(input(“输入年份”))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print("是闰年")
else:
print("不是润年")
2.程序编写,打印输出九九乘法表。
【答案】
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={j*i}", end=' ')
print()
3.计算斐波那契数列的第n项,n由用户输入。
【答案】
n = int(input("输入n:"))
a, b = 0, 1
for i in range(n):
a, b = b, a + b
print(a)
4.输入一个分数(0-100),根据分数输出等级:90-100:A,80-89:B,70-79:C,60-69:D,60以下:E。
【答案】
score = int(input("输入分数:"))
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("E")
学科网(北京)股份有限公司
$$