2.2.2-循环语句.md

问答库

2.2.2 循环语句(问答库)

  1. 【单选题·易】Python 中可以用下列哪两种语句实现循环结构? A. if 和 else B. for 和 while C. break 和 continue D. try 和 except 答案:B 解析: 课程明确指出:Python 中可以用 for 和 while 实现循环结构,称为循环语句。break/continue 是循环内部的控制语句,不是实现循环结构的语句。
  2. 【单选题·易】关于 for 循环,下列说法正确的是: A. 通常用于迭代次数未知的情况 B. 必须手动管理循环计数器,否则会形成无限循环 C. 通常用于已知迭代次数的情况,例如遍历可迭代对象,无须手动管理循环计数器 D. 不能用来遍历字符串 答案:C 解析: for 循环依次访问可迭代对象中的每个元素,无须手动管理循环计数器。A、B 描述的是 while 循环的特点;字符串是可迭代对象,可以用 for 遍历。
  3. 【判断题·易】while 循环必须手动设置和更新循环条件,让循环趋向于结束,否则会形成无限循环。 答案:√ 解析: 课程对 while 的说明正是:适用于迭代次数未知,根据条件决定是否继续;需要手动更新循环条件,否则会形成无限循环。
  4. 【单选题·易】执行到 break 时,会发生什么? A. 跳过当前循环的剩余代码,立即开始下一次循环 B. 当前循环立即停止,程序跳出循环体,继续执行循环之后的代码 C. 程序直接结束,不再执行循环之后的任何代码 D. 只跳过下一行语句,循环本身继续 答案:B 解析: break 用于提前终止循环:当前循环立即停止,跳出循环体,继续执行循环之后的代码。A 是 continue 的作用。
  5. 【多选题·中】下列哪些对象可以用 for 循环直接遍历? A. 列表 ["apple", "banana", "cherry"] B. 字符串 "hello" C. 字典(可通过 person.items() 同时取出键和值) D. 只有事先用计数器算出长度的对象 答案:ABC 解析: 课程分别给出了遍历列表、字符串、字典的 for 示例。for 的特点正是无须手动管理循环计数器,D 错误。
  6. 【判断题·中】continue 语句会终止整个循环,使程序跳出循环体。 答案:× 解析: continue 只跳过当前这一轮循环体中尚未执行的代码,然后进入下一次循环判断;提前终止并跳出循环体的是 break。
  7. 【单选题·中】下列程序的功能是求 1 到 100 的和。循环体中 i += 1 的作用是什么?
i = 1
s = 0
while i <= 100:
    s += i
    i += 1
print('1到100的和是:', s)

A. 可有可无,删掉后结果不变 B. 改变循环变量 i 的值,让循环趋向于结束 C. 把 s 清零 D. 使 i 永远保持为 1,形成无限循环 答案:B 解析: 变量 i 是循环变量。课程强调循环体中 i += 1 必不可少,作用是改变循环变量的值,让循环趋向于结束。若删掉它,i 一直为 1,条件 i <= 100 恒真,将形成无限循环。

  1. 【多选题·中】关于循环嵌套,下列说法正确的是: A. 一个循环的代码块内又包含另一个循环,就形成循环嵌套 B. 外层循环每执行一次,内层循环会完整运行一遍 C. 常用于处理表格、矩阵、多维数组等场景 D. 对 4 行 4 列矩阵,内层循环的代码只需执行 4 次 答案:ABC 解析: A、B、C 与课程表述一致。4 行 4 列时内层循环要执行 4×4=16 次,D 错误。
  2. 【简答题·中】简述 for 循环与 while 循环的适用场景及关键差异。 答案: for 通常用于已知迭代次数的情况,例如遍历可迭代对象,依次访问每个元素,无须手动管理循环计数器。while 适用于迭代次数未知的情况,根据条件决定是否继续执行循环体,需要手动设置和更新循环条件,让循环趋向于结束,否则会形成无限循环。 解析: 评分要点:①点明 for 适合已知次数/遍历、无须手动计数;②点明 while 适合未知次数、必须更新条件;③提到无限循环风险。
  3. 【单选题·难】运行下列程序,输出结果是什么?
a = [8000, 9500, 12000, 15000]
for v in a:
    if v > 10000:
        print(v)
        break

A. 8000 B. 12000 C. 12000 和 15000 各占一行 D. 没有任何输出 答案:B 解析: 与课程例 2-4 相同:找到第一个大于 10000 的工资后立即 break,后续元素不再访问。8000、9500 不满足条件;12000 满足,打印后退出,15000 不会被输出。

  1. 【单选题·难】运行下列程序,输出结果是什么?
a = [501, 800, 1001, 1200]
for v in a:
    if v % 2 == 1:
        continue
    v //= 2
    print(v)

A.

501
800
1001
1200

B.

400
600

C.

800
1200

D.

250
400
500
600

答案:B 解析: 与课程例 2-5 相同:奇数执行 continue,跳过减半和 print。501、1001 为奇数被跳过;800、1200 为偶数,整除 2 后打印 400 和 600。注意打印的是减半后的循环变量,不是原列表中的偶数本身。

  1. 【简答题·难】二维列表 a 表示 4 行 4 列矩阵。请写出按行输出全部元素(元素之间用空格分隔)的嵌套循环程序,并说明内层循环代码的执行次数。给定:
a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

答案: 外层循环控制行索引,内层循环控制列索引;外层每迭代一次,内层完整执行一遍。内层循环的代码共执行 4×4=16 次。程序如下:

a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
for i in range(4):
    for j in range(4):
        print(a[i][j], end=' ')
    print()

运行后每行四个数字、以空格分隔,例如第一行为 1 2 3 4(行末因 end=' ' 会多一个空格),随后 print() 换行。 解析: 评分要点:①嵌套 for 且用 a[i][j];②end=' ' 实现空格分隔,内层结束后 print() 换行;③执行次数为 16;④代码可直接运行。

下载此文件