一、单项选择题(本大题共 10 小题)
1、以下关于 Python 程序三种基本控制结构的描述,错误的是:
① 顺序结构是语句从上到下依次执行
② 选择结构是根据条件判断执行不同的路径
③ 循环结构是根据条件重复执行一段代码
④ 三种结构可以完全互相替代,只用一种就能解决所有问题
2、在 Python 中,实现多分支选择(根据多个条件执行不同操作)最常用的语句是:
① 多个并列的 if 语句
② if-elif-else 语句
③ 三元条件表达式
④ match-case 语句
3、用于判断两个变量是否引用同一个对象的运算符是:
① ==
② is
③ in
④ as
4、while 循环和 for 循环的主要区别之一是:
① while 循环必须有明确的循环变量
② for 循环用于遍历可迭代对象,while 循环用于条件循环
③ for 循环不能使用 break 语句
④ while 循环不能使用 else 子句
5、在循环中,break 语句的作用是:
① 跳过本次循环的剩余语句,直接进入下一次循环
② 终止当前循环,跳出循环体
③ 什么也不做,只是一个占位符
④ 在循环正常结束后执行一些操作
6、以下代码段输出的结果是什么?
x = 5y = 10result = x if x > y else yprint(result)① 5
② 10
③ True
④ False
7、在 Python 中,range(1, 10, 2) 生成的序列是:
① [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
② [1, 3, 5, 7, 9]
③ [2, 4, 6, 8, 10]
④ [1, 2, 3, 4, 5, 6, 7, 8, 9]
8、以下关于循环中 else 子句的说法,正确的是:
① else 子句在循环每次迭代后都会执行
② else 子句只有在循环被 break 中断时才执行
③ else 子句只有在循环正常结束(未被 break 中断)时才执行
④ else 子句不能用于循环语句
9、在 Python 3.10+ 中引入的 match-case 语句主要用于:
① 替代所有的 if-elif-else 语句
② 根据表达式的值进行模式匹配
③ 定义函数参数的模式
④ 创建正则表达式匹配
10、以下代码段的作用是:
n = 7for i in range(2, int(n**0.5)+1): if n % i == 0: print(f"{n} 不是素数") breakelse: print(f"{n} 是素数")① 计算 n 的平方根
② 判断 n 是否为素数
③ 找出 n 的所有因子
④ 计算 n 的阶乘
二、判断题(本大题共 5 小题)
1、在 Python 中,for 循环只能用于遍历数字序列,不能用于遍历字符串或列表。( )
2、continue 语句会跳过当前循环的剩余语句,直接开始下一次循环迭代。( )
3、pass 语句不执行任何操作,只是一个占位符,用于保持程序结构的完整性。( )
4、在 if-elif-else 结构中,可以有多个 elif 分支,但只能有一个 else 分支。( )
5、Python 中的逻辑运算符 and 和 or 具有短路求值特性,即如果根据第一个操作数就能确定结果,就不会计算第二个操作数。( )
三、多项选择题(本大题共 5 小题)
1、以下哪些是 Python 中的循环控制语句?
① break
② continue
③ pass
④ exit
2、关于 Python 的比较运算符,以下哪些描述是正确的?
① == 用于比较两个值是否相等
② is 用于比较两个变量是否引用同一个对象
③ in 用于判断元素是否在序列中
④ = 用于比较两个值是否相等
3、在 Python 中,以下哪些是可迭代对象,可以用于 for 循环?
① range(5)
② "Hello"
③ [1, 2, 3, 4, 5]
④ {"name": "艾婉婷", "age": 18}
4、以下关于 while 循环的说法,哪些是正确的?
① while 循环必须有明确的循环变量
② while 循环的条件表达式为 True 时执行循环体
③ while 循环可能永远不会执行(如果初始条件为 False)
④ while 循环中必须包含 break 语句以避免无限循环
5、以下哪些是有效的 Python 条件表达式?
① age >= 18
② score > 60 and score <= 100
③ name == "艾婉婷" or name == "岳麓珊"
④ x is not None
四、程序填充题(本大题共 5 小题)
1、以下程序用于找出所有的“水仙花数”(三位数,各位数字的立方和等于该数本身)。请在下划线处补全代码。
for num in range(100, 1000): a = num // 100 # 百位数 b = num // 10 % 10 # 十位数 c = num % 10 # 个位数 if ________ == num: # 判断是否为水仙花数 print(num, end=" ")2、以下程序用于统计 1 到 100 之间素数的个数。请在下划线处补全代码。
count = 0for num in range(2, 101): is_prime = True for i in range(2, int(num**0.5) + 1): if ________: # 如果能被整除 is_prime = False break if is_prime: count += 1print(f"1到100之间共有{count}个素数")3、以下程序使用莱布尼茨公式计算圆周率 π 的近似值:π = 4 × (1 - 1/3 + 1/5 - 1/7 + 1/9 - ...)。请在下划线处补全代码。
pi = 0sign = 1for i in range(0, 100000): term = 1 / (2*i + 1) pi += ________ # 加上带符号的项 sign = -sign # 符号取反 pi = 4 * piprint(f"π的近似值为: {pi}")4、以下程序用于找出 1000 以内的所有完数(一个数等于它的所有真因子之和)。请在下划线处补全代码。
for num in range(2, 1001): factors_sum = 0 for i in range(1, num): if ________: # 如果是真因子 factors_sum += i if factors_sum == num: print(num, end=" ")5、以下程序用于输出斐波那契数列的前 20 项。请在下划线处补全代码。
a, b = 0, 1count = 0while count < 20: print(a, end=" ") ________ # 更新a和b的值 count += 1附:参考答案与解析
“点赞有美意,赞赏是鼓励”