计算机程序设计员 练习卷

四级 / 三级 / 二级 / 一级 | 30 题 | 姓名:__________ 得分:______

返回题库 显示答案 15 题30 题50 题100 题

1在C语言中执行 int a=5; int b=a++ + ++a; 后,b的值是

  1. A. 11
  2. B. 12
  3. C. 13
  4. D. 10

2在 Git 中,已修改工作区文件但尚未暂存,此时执行 git checkout -- <file> 的效果是

  1. A. 用暂存区内容覆盖工作区该文件
  2. B. 删除该文件的所有提交历史
  3. C. 把该文件从暂存区移除
  4. D. 创建该文件的新分支

3某前端页面点击按钮后需向后端提交表单并局部刷新结果,下列实现思路中最合理的是哪一项?

  1. A. 监听按钮点击,使用 fetch 发送请求并将返回数据渲染到目标容器
  2. B. 监听按钮点击,直接修改 window.location 跳转到接口地址
  3. C. 监听按钮点击,用 form 的默认提交并让后端返回整页 HTML
  4. D. 监听按钮点击,使用 setTimeout 轮询数据库直到结果出现

4在 MySQL 中,对已有数据的表执行 ALTER TABLE 添加一个 NOT NULL 且无默认值的列,若表中已有记录,通常结果是

  1. A. 自动为旧记录填 0 或空串
  2. B. 旧记录该列被置为 NULL
  3. C. 语句报错或需先给默认值
  4. D. 旧记录被删除后重建表

5在 C 语言中执行语句 int a = 5; printf("%d", a++ + ++a); 时,若编译器遵循先计算右操作数再计算左操作数的求值顺序,则输出结果是

  1. A. 11
  2. B. 12
  3. C. 13
  4. D. 10

6在 Python 中执行表达式 len("程序设计") 的结果是

  1. A. 4
  2. B. 5
  3. C. 6
  4. D. 8

7关于冒泡排序的稳定性,下列判断正确的是

  1. A. 当相邻元素相等时不交换,冒泡排序是稳定的
  2. B. 冒泡排序一定不稳定,因为会交换相邻元素
  3. C. 冒泡排序的稳定性取决于数组初始顺序
  4. D. 冒泡排序稳定,但前提是每轮必须交换相等元素

8在Python中,关于列表推导式 [x*2 for x in range(3)] 的结果,正确的是

  1. A. [0, 2, 4]
  2. B. [2, 4, 6]
  3. C. [0, 1, 2]
  4. D. [0, 2, 4, 6]

9关于进程与线程的区别,以下叙述正确的有哪些(多选)

  1. A. 进程拥有独立的地址空间,线程共享所属进程的地址空间
  2. B. 线程切换通常比进程切换开销小,因为不涉及地址空间切换
  3. C. 同一进程内的线程可以直接读写对方的栈内存
  4. D. 进程间通信必须通过内核提供的机制,如管道或共享内存
  5. E. 一个线程崩溃必然导致同进程其他线程全部立即终止

10HTTP/1.1中启用持久连接后,若客户端发送的请求未带Connection头,服务器默认采取的行为是

  1. A. 关闭连接并等待下次请求
  2. B. 保持连接直到超时或显式关闭
  3. C. 立即升级为HTTP/2
  4. D. 每条请求重新建立TCP连接

11关于HTTP状态码302与301的区别,正确的描述是

  1. A. 302表示资源永久移动且客户端应更新书签
  2. B. 301表示资源临时移动且后续请求仍用原地址
  3. C. 302表示资源临时移动且后续请求仍用原地址
  4. D. 301与302都表示资源临时移动且行为完全一致

12在关系数据库中,一个事务对某行加了排他锁后,另一事务再对该行加共享锁会

  1. A. 立即获得共享锁
  2. B. 被阻塞直到排他锁释放
  3. C. 自动升级为排他锁
  4. D. 直接读取不加锁

13在 Git 中,需要把已经提交到本地仓库但尚未推送的最后一次提交撤销并保留改动到工作区,应使用的命令是

  1. A. git reset --soft HEAD~1
  2. B. git reset --hard HEAD~1
  3. C. git checkout HEAD~1
  4. D. git revert HEAD

14在面向对象设计中,子类覆盖父类方法时把父类方法的访问权限从 public 改为 private,这主要违反了

  1. A. 里氏替换原则
  2. B. 开闭原则
  3. C. 依赖倒置原则
  4. D. 单一职责原则

15HTML中给一个块级元素设置 margin-top: 20px 和其上方相邻块级元素 margin-bottom: 30px,两元素垂直间距最终为

  1. A. 20px
  2. B. 30px
  3. C. 50px
  4. D. 10px

16用链表实现栈时,若规定只能在链表头部进行插入和删除,则入栈和出栈操作的时间复杂度分别是

  1. A. O(1) 和 O(1)
  2. B. O(1) 和 O(n)
  3. C. O(n) 和 O(1)
  4. D. O(n) 和 O(n)

17关于TCP三次握手,客户端发送SYN后收到服务器回复的SYN+ACK,此时客户端再发送ACK的主要作用是

  1. A. 确认服务器接收能力正常
  2. B. 确认客户端已收到服务器的SYN
  3. C. 协商后续数据传输的窗口大小
  4. D. 请求服务器立即开始发送数据

18Java 中 `String s1 = "abc"; String s2 = new String("abc");` 则 `s1 == s2` 与 `s1.equals(s2)` 的结果分别是

  1. A. false 和 true
  2. B. true 和 true
  3. C. false 和 false
  4. D. true 和 false

19在C语言中,表达式 5 / 2 * 2.0 的运算结果类型和值分别是

  1. A. double 类型,值为 4.0
  2. B. int 类型,值为 4
  3. C. double 类型,值为 5.0
  4. D. int 类型,值为 5

20TCP 三次握手中,客户端收到服务器发来的 SYN+ACK 后应发送的报文段是

  1. A. SYN
  2. B. ACK
  3. C. FIN
  4. D. RST

21前端页面中一个按钮点击后应只触发一次提交,但测试发现连点会重复提交。开发在事件处理函数中未做防抖也未禁用按钮,正确的修复环节是

  1. A. 在提交开始时禁用按钮并在请求结束后恢复
  2. B. 把click事件改为mouseover事件
  3. C. 在提交函数里用setTimeout延迟10秒再发送
  4. D. 把按钮的type由button改为submit

22HTML中要让一个块级元素在父容器内水平居中且父容器宽度固定,下列CSS写法正确的是

  1. A. margin: 0 auto;
  2. B. text-align: center;
  3. C. float: left;
  4. D. position: absolute;

23HTTP 状态码 301 与 302 的关键区别在于

  1. A. 301 表示资源永久迁移,302 表示临时迁移
  2. B. 301 用于 HTTPS,302 用于 HTTP
  3. C. 301 由客户端缓存,302 由服务器缓存
  4. D. 301 只能用于 GET,302 只能用于 POST

24某程序员用 Python 读取一个 2GB 的日志文件并统计关键词出现次数,程序运行后内存迅速涨到数 GB 并崩溃,最可能的原因是?

  1. A. 使用了 readlines() 一次性读入所有行
  2. B. 使用了 with open() 管理文件句柄
  3. C. 使用了 for line in f 逐行迭代
  4. D. 使用了 str.count() 统计关键词

25某函数需要返回多个值,在Go语言中较符合惯例的做法是

  1. A. 返回一个包含所有值的切片
  2. B. 返回多个具名返回值
  3. C. 通过全局变量传出
  4. D. 返回格式化后的字符串

26在C语言中,表达式 sizeof(char) + sizeof(int) 在常见32位平台上求值后通常得到的结果是

  1. A. 2
  2. B. 4
  3. C. 5
  4. D. 8

27某后端接口在高并发下偶发返回旧数据,排查发现读请求走了从库而写请求走主库,且主从复制存在延迟,正确的处置思路是

  1. A. 把所有读请求强制路由到主库
  2. B. 在写后短时间内将该用户读请求路由到主库
  3. C. 增大从库连接池并缩短超时时间
  4. D. 对从库查询结果增加本地缓存

28在关系数据库中,若要保证一个事务的修改在提交前不被其他事务看到,应设置的隔离级别是

  1. A. 读已提交
  2. B. 读未提交
  3. C. 可重复读
  4. D. 串行化

29某后端接口上线后偶发超时,日志显示数据库连接池活跃连接数持续等于最大连接数,此时首先应排查的环节是

  1. A. 前端静态资源是否过大
  2. B. 是否存在未释放的数据库连接
  3. C. 服务器网卡是否千兆
  4. D. 浏览器缓存是否开启

30Python 中用 requests 库请求一个返回 JSON 的接口,取回响应后解析为字典最直接的做法是哪一项

  1. A. json.loads(response.text)
  2. B. response.json()
  3. C. eval(response.text)
  4. D. response.content.decode()