读代码·推结果·选答案——继续练你的“代码眼力”
以下题目延续前两套风格,侧重于代码执行过程的理解与逻辑推理。请认真阅读每段代码,判断运行后输出的正确选项。
第41题
def add(x, y): return x + ya = add(3, 4)print(a)
第42题
A. "hel"B. "ell"C. "llo"D. "el"
第43题
nums = [1, 2, 3, 4, 5]print(len(nums))
A. 4B. 5C. 6D. 报错
第44题
def test(a, b=2): return a * bprint(test(3))print(test(3, 4))
A. 6 和 12B. 6 和 6C. 12 和 6D. 报错
第45题
x = 10while x > 0: x -= 3print(x)
A. -2B. 1C. -1D. 0
第46题
a = [1, 2, 3]b = aa[1] = 5print(b)
A. [1, 2, 3]B. [1, 5, 3]C. [5, 2, 3]D. 报错
第47题
A. 64B. 512C. 36D. 12
第48题
def outer(): x = 10 def inner(): nonlocal x x += 5 inner() return xprint(outer())
A. 10B. 15C. 5D. 报错
第49题
data = {"name": "Alice", "age": 25}print(data.get("gender", "未知"))
A. "未知"B. "gender"C. NoneD. 报错
第50题
s = set([1, 2, 2, 3, 3, 3])print(len(s))
A. 6B. 3C. 4D. 报错
第51题
def fac(n): if n <= 1: return 1 return n * fac(n - 1)print(fac(4))
第52题
a = [1, 2, 3, 4]b = [x * 2 for x in a if x % 2 == 0]print(b)
A. [4, 8]B. [2, 4, 6, 8]C. [2, 6]D. [2, 4, 8]
第53题
def change(lst): lst.append(4)a = [1, 2, 3]change(a)print(a)
A. [1, 2, 3]B. [1, 2, 3, 4]C. [4]D. 报错
第54题
try: print(1 / 0)except ZeroDivisionError: print("错误")finally: print("结束")
A. "错误" 然后 "结束"B. 只输出 "错误"C. "结束" 然后报错D. 只报错
第55题
for i in range(2, 10, 3): print(i, end=" ")
A. 2 5 8B. 2 5 8 11C. 2 3 4 5 6 7 8 9D. 2 4 6 8
第56题
print(1 == 1.0)print(1 is 1.0)
A. True 和 TrueB. True 和 FalseC. False 和 FalseD. False 和 True
第57题
import mathprint(math.floor(3.9))print(round(3.9))
A. 3 和 3B. 3 和 4C. 4 和 3D. 4 和 4
第58题
def greet(name, msg="你好"): return msg + ", " + nameprint(greet("小明"))print(greet("小明", "Hello"))
A. "你好, 小明" 和 "Hello, 小明"B. "小明, 你好" 和 "小明, Hello"C. "你好, 小明" 和 报错D. 报错
第59题
d = {1: "a", 2: "b", 3: "c"}for k, v in d.items(): if k == 2: d[4] = "d"print(d)
A. {1: "a", 2: "b", 3: "c"}B. {1: "a", 2: "b", 3: "c", 4: "d"}C. 报错(字典大小改变)D. 只输出 {4: "d"}
第60题
def multiply(x, y): return x * yfunc = multiplyprint(func(2, 3))
A. 5B. 6C. 23D. 报错
答案汇总
| 题号 | 答案 | 解析 |
|---|
| 41 | A | 略 |
| 42 | B | 切片 [1:4] 取索引1到3,即 "ell" |
| 43 | B | 略 |
| 44 | A | 第一次缺省参数 b=2,3*2=6;第二次传入4,3*4=12 |
| 45 | A | 循环:10→7→4→1→-2,x=1 时仍满足 >0,再减3得 -2 |
| 46 | B | b = a 使两者指向同一列表,修改 a[1] 会影响 b |
| 47 | B | 乘方运算是右结合的:2 ** (3 ** 2) = 2 ** 9 = 512 |
| 48 | B | nonlocal x 让内层函数可以修改外层函数的 x,10+5=15 |
| 49 | A | 略 |
| 50 | B | 略 |
| 51 | C | 递归:4*3*2*1=24 |
| 52 | A | 列表推导式过滤偶数(2,4),翻倍后得到 [4, 8] |
| 53 | B | 列表作为可变对象传入函数,append 会修改原列表 |
| 54 | A | 捕获异常后先输出"错误",finally 块始终执行输出"结束" |
| 55 | A | 略 |
| 56 | B | == 比较值,1==1.0 为 True;is 比较身份,整数和浮点不是同一对象,为 False |
| 57 | B | 略 |
| 58 | A | 略 |
| 59 | C | 在遍历字典时修改字典大小会报错(RuntimeError: dictionary changed size during iteration) |
| 60 | B | 略 |