Computer Programmer practice paper

四级 / 三级 / 二级 / 一级 | 30 questions | Name:__________ Score:______

Back Hide answers 15 Q30 Q50 Q100 Q

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关于进程与线程的区别,以下叙述正确的有哪些(multiple)

  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()

Answer key

  1. B 知识点是自增运算符与序列点。a++先取5再加1使a=6,随后++a使a=7并取7,故b=5+7=12。选项11错在把两次…
  2. A 知识点是 Git 工作区与暂存区关系。checkout -- 会用暂存区版本覆盖工作区修改。删除提交历史是 reset …
  3. A 知识点:AJAX 局部刷新。fetch 异步请求并局部更新 DOM 是标准做法。B 错,整页跳转会丢失当前页面状态;C …
  4. C 知识点:MySQL 加非空无默认值列的行为。严格模式下会报错,需指定默认值或允许 NULL。A 项把严格模式下的隐式转换…
  5. B 知识点为自增运算符与表达式中操作数求值顺序。若先算右操作数 ++a,a 变为 6,右操作数为 6;再算左操作数 a++,…
  6. A 知识点:Python 中 len() 对字符串返回字符个数,中文字符按一个字符计。"程序设计"共 4 个汉字,故结果为 …
  7. A 知识点:排序稳定性。稳定性指相等元素的相对次序是否保持,冒泡排序在相等时不交换即可保持稳定。选项B误以为交换相邻元素必然…
  8. A 知识点为列表推导式。range(3)产生0、1、2,各乘2得0、2、4。选项含2、4、6起点错;0、1、2未乘2;多出6…
  9. A、B、D 知识点:进程与线程模型。A、B、D 均正确;C 错,线程各自有独立栈,不能随意读写对方栈;E 错,线程崩溃可能影响进程但…
  10. B HTTP/1.1默认持久连接,未带Connection头时连接保持,直到超时或收到close。关闭连接、升级HTTP/2…
  11. C 知识点是HTTP重定向语义。302为临时重定向,客户端后续仍应请求原URL,C对;A把302说成永久;B把301说成临时…
  12. B 知识点是数据库锁兼容性。排他锁与共享锁不兼容,后申请者需等待前者释放。选立即获得者忽略了互斥性;选自动升级者混淆了锁升级…
  13. A 知识点是 Git reset 三种模式的区别。--soft 只移动 HEAD 保留暂存区和工作区改动。--hard 会丢…
  14. A 知识点是SOLID原则。子类收紧访问权限会使父类引用无法调用原方法,破坏子类可替换父类的里氏替换原则。开闭原则讲扩展开放…
  15. B 知识点是CSS外边距塌陷(margin collapsing)。相邻块级元素的上下外边距会合并取较大值,故为30px。选…
  16. A 知识点是链表栈的操作位置与复杂度。头部插入和头部删除都只需改动头指针和常数个指针域,都是O(1),故A正确。B误以为出栈…
  17. B 知识点是TCP连接建立过程。第三次ACK用于确认客户端已收到服务器的SYN,使服务器进入ESTABLISHED状态。选项…
  18. A 知识点为 Java 字符串常量池与对象引用比较。s1 指向常量池对象,s2 指向堆中新对象,故 == 比较引用为 fal…
  19. A 知识点:整数除法与隐式类型转换。5/2 先按整数除法得 2,再与 2.0 相乘时 2 被提升为 double,结果为 4…
  20. B 知识点:TCP 建连流程。第三步客户端回 ACK 确认服务器序号,连接建立。错误项分析:SYN 是第一步请求;FIN 用…
  21. A 知识点是重复提交的防护。提交期间禁用按钮可阻止连点,A对。B用mouseover会引入错误触发;C延迟10秒不解决连点且…
  22. A 知识点是块级元素水平居中。设置左右外边距为 auto 且元素有确定宽度即可居中,故 A 对;B 是行内内容居中,对块级元…
  23. A 知识点是重定向语义:301 表示永久移动,客户端与搜索引擎会更新链接;302 表示临时移动,后续请求仍用原 URL。选项…
  24. A 知识点:大文件流式处理。正确项对,readlines() 会把所有行载入列表,2GB 文件极易撑爆内存。with ope…
  25. B 知识点是Go多返回值惯例。正确项:Go原生支持多返回值,可具名返回。错误项:切片丢失类型信息;全局变量破坏封装;字符串需…
  26. C 知识点是sizeof运算符返回类型占字节数。char占1字节、int占4字节,相加为5,故C正确;A把int当1字节;B…
  27. B 知识点是主从延迟下的读写一致性。写后短时间读主库可保证读己之写。选项0全走主库会失去读写分离意义并压垮主库;选项2连接池…
  28. A 知识点为事务隔离级别。读已提交保证只能读到已提交数据,未提交修改不可见,故a项正确。读未提交会读到未提交数据;可重复读主…
  29. B 知识点是连接池耗尽类故障定位。活跃连接数持续等于上限说明连接被占满,常见原因是代码中连接未关闭或长事务。前端静态资源、网…
  30. B 知识点是 requests 响应对象的 JSON 解析。正确项:response.json() 内部按响应声明的编码解析…