#677. Q_003

Q_003


选择题

  1. 执行以下代码后,print(a is b)print(a == b) 的输出分别是?
a = [1, 2, 3]
b = a[:]

{{ select(1) }}

  • True, True
  • False, True
  • True, False
  • False, False
  1. 下列关于 Python 内存管理的说法,正确的是?( ) {{ select(2) }}
  • 所有整数对象都共享同一内存地址
  • 小整数(如 -5 到 256)会被缓存复用
  • 字符串拼接总是创建新对象,无法优化
  • 列表切片操作 [:] 返回原列表的引用
  1. 表达式 [] == Falsebool([]) == False 的结果分别是?( ) {{ select(3) }}
  • True, True
  • False, True
  • True, False
  • False, False
  1. 以下程序的输出是?
def f(x, lst=[]):
    lst.append(x)
    return lst

print(f(1))
print(f(2))

{{ select(4) }}

  • [1][2]
  • [1][1, 2]
  • [1, 2][1, 2]
  • 报错:默认参数不能是可变对象
  1. 已知 d = {'a': 1, 'b': 2},执行 d.update([('c', 3), ('a', 4)]) 后,d 的值是?( ) {{ select(5) }}
  • {'a': 1, 'b': 2, 'c': 3}
  • {'a': 4, 'b': 2, 'c': 3}
  • {'a': 1, 'b': 2, 'c': 3, 'a': 4}
  • 报错:update 不支持列表传参
  1. 关于集合运算,{1, 2, 3} ^ {2, 3, 4} 的结果是?( ) {{ select(6) }}
  • {1, 4}
  • {2, 3}
  • {1, 2, 3, 4}
  • set()
  1. 执行以下代码后,x 的值是?
x = 0
for i in range(10):
    if i % 2 == 0:
        continue
    elif i == 7:
        break
    x += i

{{ select(7) }}

  • 9
  • 16
  • 25
  • 0
  1. 下列哪段代码能正确实现“交换字典的键和值”(假设值唯一且可哈希)?( ) {{ select(8) }}
  • {v: k for k, v in d.items()}
  • {k: v for v, k in d.items()}
  • dict(zip(d.values(), d.keys()))
  • A 和 C 都正确
  1. 使用 enumerate(['a', 'b', 'c'], start=1) 遍历时,第一次迭代得到的值是?( ) {{ select(9) }}
  • (0, 'a')
  • (1, 'a')
  • ('a', 1)
  • 1, 'a'
  1. 关于 Turtle 模块,以下说法错误的是?( ) {{ select(10) }}
  • turtle.setheading(90) 使画笔朝上(北)
  • turtle.stamp() 可在当前位置留下一个印记
  • turtle.reset() 会清除屏幕并重置所有状态
  • turtle.circle(r) 以当前位置为圆心画圆
  1. 要高效判断一个大列表中是否存在重复元素,最佳方法是?( ) {{ select(11) }}
  • 用双重循环逐个比较
  • 将列表转为集合,比较长度
  • 使用 list.count() 统计每个元素
  • 排序后检查相邻元素是否相等
  1. 以下程序用于计算阶乘,横线处应填入?
def fact(n):
    if n <= 1:
        return 1
    return ______

{{ select(12) }}

  • n * fact(n)
  • fact(n - 1)
  • n * fact(n - 1)
  • (n - 1) * fact(n)
  1. 程序出现 “UnboundLocalError: local variable 'x' referenced before assignment”,最可能的原因是?( ) {{ select(13) }}
  • 在函数内先使用 x,后赋值,且全局存在 x
  • 变量名拼写错误
  • 在类中未使用 self.x
  • 循环变量未初始化
  1. 要解决“找出 1000 以内所有完数(等于其真因子之和)”的问题,核心算法思想是?( ) {{ select(14) }}
  • 解析法
  • 枚举 + 因子求和
  • 动态规划
  • 贪心算法
  1. 以下关于 range 对象的说法,错误的是?( ) {{ select(15) }}
  • range(5) 占用内存远小于 [0,1,2,3,4]
  • range 对象支持索引和切片
  • len(range(10)) 返回 10
  • range 对象是可变的

判断题

  1. 0.1 + 0.2 == 0.3 在 Python 中返回 True。( ) {{ select(16) }}
  1. 元组 (1, [2, 3]) 是不可变的,因此不能修改其中的列表元素。( ) {{ select(17) }}
  1. dict.fromkeys(['a', 'b'], []) 创建的两个键共享同一个空列表对象。( ) {{ select(18) }}
  1. sorted([3, 1, 2], reverse=True) 返回 [3, 2, 1],且原列表不变。( ) {{ select(19) }}
  1. 在 Python 中,True + True 的结果是 2。( ) {{ select(20) }}
  1. list(filter(None, [0, 1, '', 'hello', [], [1]])) 的结果是 [1, 'hello', [1]]。( ) {{ select(21) }}
  1. for 循环中的变量在循环结束后仍存在于作用域中。( ) {{ select(22) }}
  1. chr(ord('A') + 32) 的结果是 'a'。( ) {{ select(23) }}
  1. 使用 deepcopy 复制嵌套列表后,修改副本不会影响原列表。( ) {{ select(24) }}
  1. with open("file.txt") as f: 若文件不存在,会自动创建该文件。( ) {{ select(25) }}