第1周摸底测试(选择题)
姓名:__________ 日期:__________ 限时:30分钟 满分:40分
提示:第1---10题为公共基础知识(你之前可能没学过,凭感觉选即可);第11---40题为Python语法题。
一、公共基础知识(第1---10题,每题1分,共10分)
1. 下列关于栈的叙述中,正确的是( )
A. 栈按"先进先出"组织数据
B. 栈按"先进后出"组织数据
C. 只能在栈底插入数据
D. 不能删除数据
2. 算法的时间复杂度是指( )
A. 算法的执行时间
B. 算法所处理的数据量
C. 算法执行过程中所需要的基本运算次数
D. 算法程序中的语句或指令条数
3. 软件生命周期中,确定软件系统"怎么做"的阶段是( )
A. 需求分析
B. 软件设计
C. 软件测试
D. 系统维护
4. 在E-R图中,用来表示实体联系的图形是( )
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
5. 数据库系统的核心是( )
A. 数据模型
B. 数据库管理系统
C. 数据库
D. 数据库管理员
6. 设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列入队与退队操作后,front=rear=25,则循环队列中的元素个数为( )
A. 0或50
B. 25
C. 26
D. 49
7. 下列属于黑盒测试方法的是( )
A. 逻辑覆盖
B. 边界值分析
C. 路径覆盖
D. 语句覆盖
8. 衡量模块独立性的两个标准是耦合性和内聚性,下列描述正确的是( )
A. 耦合性越高,内聚性越低,模块独立性越好
B. 耦合性越高,内聚性越高,模块独立性越好
C. 耦合性越低,内聚性越低,模块独立性越好
D. 耦合性越低,内聚性越高,模块独立性越好
9. 某二叉树共有399个节点,其中有199个度为2的节点,则该二叉树中的叶子节点数为( )
A. 不存在这样的二叉树
B. 200
C. 198
D. 199
10. 下列排序方法中,最坏情况下时间复杂度最低的是( )
A. 冒泡排序
B. 简单插入排序
C. 希尔排序
D. 直接选择排序
二、Python语言知识(第11---40题,每题1分,共30分)
11. 以下关于Python语言特性的描述中,错误的是( )
A. Python是解释型编程语言,运行时无需提前编译为机器码
B. Python支持面向对象、面向过程、函数式多种编程范式
C. Python采用强制缩进规范定义代码块,缩进错误会直接导致程序运行异常
D. Python代码运行速度显著高于C++等编译型语言
12. Python中对变量描述错误的选项是( )
A. Python不需要显式声明变量类型,在第一次变量赋值时由值决定变量的类型
B. 变量通过变量名访问
C. 变量必须在创建和赋值后使用
D. 变量 PI 与变量 Pi 被看作相同的变量
13. 以下Python语句运行结果异常的选项是( )
A. PI, r = 3.14, 4
B. a = 1 然后 b = a = a + 1
C. x = True 然后 int(x)
D. a(单独写一个a)
14. 下列表达式的运算结果是:a = 100,b = False,a * b > -1( )
A. False
B. 1
C. 0
D. True
15. 运行以下程序,输出结果的是( )
python
str1 = "Nanjing University"
str2 = str1[:7] + " Normal " + str1[-10:]
print(str2)
A. Normal U
B. Nanjing Normal
C. Normal University
D. Nanjing Normal University
16. 运行以下程序,输出结果的是( )
python
print(" love ".join(["Everyday", "Yourself", "Python"]))
A. Everyday love Yourself
B. Everyday love Python
C. love Yourself love Python
D. Everyday love Yourself love Python
17. 以下选项中,用于在Python中导入标准库math的正确写法是( )
A. importmathasm
B. import math
C. includemath
D. installmath
18. 已知 s = "Python程序设计",执行表达式 len(s) 的返回结果是( )
A. 10
B. 8
C. 12
D. 14
19. 已知 a = [1, 2, 3, 4, 5],执行语句 a[2:4] = [6, 7, 8] 后,列表a的内容为( )
A. [1, 2, 6, 7, 8, 5]
B. [1, 2, [6, 7, 8], 5]
C. [1, 2, 6, 7, 8, 4, 5]
D. 报错
20. 以下关于Python序列类型的描述中,正确的是( )
A. 列表属于可变序列,支持原地修改元素,切片操作返回新的列表对象
B. 元组属于不可变序列,所以元组内部的元素无法做任何修改操作
C. 字符串属于可变序列,可以通过索引位置直接修改指定字符
D. 所有序列类型都支持原地添加元素的 append() 方法
21. 已知 d = {"name": "张三", "age": 18, "score": 90},执行 d.pop("age") 后,字典d的内容为( )
A. {"name": "张三", "score": 90}
B. {"age": 18}
C. {"name": "张三", "age": 18, "score": 90, "age": None}
D. 报错
22. 下列代码的运行结果是( )
python
for i in range(1, 6):
if i == 3:
break
print(i, end="")
A. 123
B. 1245
C. 12
D. 12345
23. 以下关于Python函数参数的描述中,错误的是( )
A. 默认参数必须放置在非默认参数的后面定义
B. 可变位置参数 *args 会将传入的多个位置参数打包为元组类型
C. 可变关键字参数 **kwargs 会将传入的多个关键字参数打包为列表类型
D. 函数内部定义的局部变量默认无法在函数外部直接访问
24. 以下关于Python异常处理机制的描述中,错误的是( )
A. try 块可以捕获运行过程中出现的所有异常
B. 一个 try 语句可以对应多个 except 分支
C. finally 块中的代码无论是否发生异常都会执行
D. raise 语句可以主动抛出指定类型的异常
25. 以下选项中,符合Python文件操作的描述是( )
A. 以 "w" 模式打开文件写入内容时,会覆盖原有文件的全部内容
B. 以 "r" 模式打开文件时,如果文件不存在会自动创建新文件
C. read() 方法默认每次从文件中读取一行内容
D. close() 方法可以释放文件资源,即使不调用也不会出现资源占用问题
26. 哪个选项是使用 PyInstaller 库对 Python 源文件打包的基本使用方法( )
A. pip -h
B. pip install <拟安装库名>
C. pip download <拟下载库名>
D. 在命令行运行:pyinstaller 加上源文件名
27. 以下哪个文件打开模式可以实现:以文本格式打开文件,既可以向文件末尾追加新内容,也可以读取文件原有内容,文件不存在时自动创建新文件( )
A. "a+"
B. "r+"
C. "w+"
D. "x+"
28. 下列选项中,不属于Python合法保留字的是( )
A. pass
B. lambda
C. type
D. nonlocal
29. 已知 ls = ['try'],执行以下代码后,输出结果是( )
python
def mtry(lt):
lt.append(ls)
return lt
print(mtry(mtry(['try'])))
A. try try try
B. [['try'], ['try'], ['try']]
C. ['try', ['try'], ['try']]
D. ['try', 'try', 'try']
30. 以下表达式运算结果为 False 的是( )
A. 3 > 2 > 1
B. 10 % 3 == 1
C. 'abc' > 'abd'
D. not (5 < 3)
31. 执行代码 s = "Python2025",以下选项中可以得到字符串 "2025" 的操作是( )
A. s[-4:]
B. s.split()[-1]
C. s[7:]
D. 以上选项都可以
32. 以下关于Python程序设计风格描述错误的选项是( )
A. Python中不允许把多条语句写在同一行
B. Python语句中,增加缩进表示语句块的开始,减少缩进表示语句块的退出
C. Python可以将一条长语句分成多行显示,使用续行符"\"
D. 以上描述中有错误
33. 以下运算符中,优先级最高的是( )
A. 逻辑与 and
B. 加法 +
C. 幂运算 **
D. 成员判断 in
34. 执行如下代码段:x, y, z = sorted([9, 3, 1, 7])[:3],则三个变量的取值分别为( )
A. x=1, y=3, z=7
B. x=9, y=7, z=3
C. x=3, y=1, z=7
D. 代码直接报错无法执行
35. 下列选项中,不属于Python序列类型的是( )
A. 列表
B. 字典
C. 元组
D. 字符串
36. 以下选项中,符合Python变量命名规则的是( )
A. 2name
B. my-name
C. _score
D. class
37. 执行 print(0x452 // 2) 的结果是( )
A. 0x452
B. 553
C. 226
D. 报错
38. 以下关于 range() 函数的描述中,正确的是( )
A. range(5) 生成的序列包含 5
B. range(1, 5) 生成的序列包含 1 和 5
C. range(1, 10, 2) 生成的序列是 1, 3, 5, 7, 9
D. range() 函数返回的是一个列表
39. 以下代码运行后,a 的值是( )
python
a = [1, 2]
b = a
b.append(3)
A. [1, 2]
B. [1, 2, 3]
C. [3]
D. 报错
40. 以下关于 input() 函数的描述中,正确的是( )
A. input() 返回的是整数类型
B. input() 返回的是字符串类型
C. input() 可以直接用于数学运算
D. input() 不需要参数
答案与简要解析
| 题号 | 答案 | 简要提示 |
|---|---|---|
| 1 | B | 栈是"先进后出" |
| 2 | C | 时间复杂度看基本运算次数 |
| 3 | B | "怎么做"是设计阶段 |
| 4 | C | E-R图:矩形=实体,椭圆=属性,菱形=联系 |
| 5 | B | DBMS是数据库系统的核心 |
| 6 | A | front=rear时,队列可能空也可能满 |
| 7 | B | 黑盒测试不关心内部逻辑 |
| 8 | D | 高内聚、低耦合 |
| 9 | B | 叶子节点数 = 度为2的节点数 + 1 |
| 10 | C | 希尔排序最坏情况优于简单排序 |
| 11 | D | Python运行速度通常低于C++ |
| 12 | D | Python区分大小写 |
| 13 | D | 变量未定义直接使用会报错 |
| 14 | D | 100 * False = 0,0 > -1 为 True |
| 15 | D | 切片拼接 |
| 16 | D | join 用分隔符连接列表元素 |
| 17 | B | import math 标准写法 |
| 18 | B | "Python" 6个 + "程序设计" 4个,共10个字符。 |
| 19 | A | 切片赋值替换对应位置 |
| 20 | A | B错在元组内可变对象可改;C字符串不可变;D元组无append |
| 21 | A | pop删除指定键并返回对应值 |
| 22 | C | i==3 时 break,输出 1 和 2 |
| 23 | C | **kwargs 打包为字典,不是列表 |
| 24 | A | try只能捕获对应except的异常类型 |
| 25 | A | "w" 模式清空重写 |
| 26 | D | PyInstaller 在命令行使用 |
| 27 | A | "a+" 追加+读取,不存在则创建 |
| 28 | C | type 不是保留字 |
| 29 | C | 由内向外求值,append追加的是对象引用 |
| 30 | C | 'abc' < 'abd',所以 'abc' > 'abd' 为 False |
| 31 | D | s[-4:] 截取倒数4位,得到 "2025";B选项默认按空格切分,没空格所以返回 ['Python2025'],取 [-1] 还是整串;C选项索引7对应字符 '0',切出来是 "025"。 |
| 32 | A | Python允许用分号写多条语句 |
| 33 | C | 幂运算优先级最高 |
| 34 | A | sorted 升序,取前3个 |
| 35 | B | 字典不是序列类型 |
| 36 | C | 下划线开头合法 |
| 37 | B | 0x452 十进制为1106,//2 得553 |
| 38 | C | range(1,10,2) 步长为2 |
| 39 | B | b = a 是引用,修改b影响a |
| 40 | B | input() 返回字符串 |