后端开发刷题 | 笔试

1.关于C++的纯虚函数,下列说法错误的是()

A

纯虚函数不能实例化对象,拥有纯虚函数的类是抽象类

B

纯虚函数不能做指针和引用

C

纯虚函数声明的最后面"=0"并不表示函数返回值为0,它只起形式上的作用

D

虚函数和纯虚函数都可以在子类中被重载,以多态的形式被调用

正确答案:B

解析:纯虚函数可以做指针和引用,B选项错误。
2.在C++中,关于以下代码输出正确的是()

|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 | #include <iostream> using namespace std; int main() { ``int a , b , c; ``a = 0 , b = 1 , c = 3; ``a = ++b <= a || a+b != c; ``cout << a << ``"," << b; ``return 0; } |

A

1,2

B

1,1

C

0,2

D

0,1

正确答案:A

解析:

本题主要考察运算符的优先级。

++的优先级高于 <=,因此b自增后值为2;<=的优先级高于|| 因此先进行2<=0的判断,结果为false。

+和!=的优先级高于||,因此计算a+b != c的结果,结果为true。

最后false || true后将结果赋值给int变量a,因此a的值为1。

综上所述,正确答案为A选项。

运算符优先级参考记忆:C语言运算符优先级(超详细)-CSDN博客
3.在 MySQL 中,有两张使用以下命令创建的数据库表:

create table T(a INT, b char);

有几条查询语句如下所示:

语句1:

select a, b from T where a = 10

union all

select a, b from T where c = "20"

语句2:

select a, b from T where a = 10

union

select a, b from T where c = "20"

语句3:

select a, b from T group by a, b

语句4:

select a, b from T group by a, b order by null;

以下说法正确的是?

A

语句2比语句1更加高效。

B

语句2与语句1不会有效率上的差异。

C

语句4比语句3更加高效。

D

语句4与语句3不会有效率上的差异。

正确答案:C

解析:

MySQL 通过创建并填充临时表的方式来执行union查询。除非确实要消除重复的行,否则建议使用union all。原因在于如果没有all这个关键词,MySQL会给临时表加上distinct选项,这会导致对整个临时表的数据做唯一性校验,这样做的消耗相当高。因此语句1比语句2的效率更高,A、B选项均错误。

默认情况MySQL 会对GROUP BY分组的所有值进行排序,如 "GROUP BY col1,col2,....;" 查询的方法如同在查询中指定 "ORDER BY col1,col2,...;" 如果显式包括一个包含相同的列的 ORDER BY子句,MySQL 可以毫不减速地对它进行优化,尽管仍然进行排序。因此,如果查询包括 GROUP BY 但你并不想对分组的值进行排序,你可以指定 ORDER BY NULL禁止排序,因此语句4比语句3更高效,C选项正确。

4.在牛牛系统中使用请求分段存储管理方式,当进程在主存中没有找到需要访问的页面且内存中没有空闲物理块,这时就需要进行页面置换等操作,下列哪个选项的处理顺序是正确的()

A

决定换出页--页面调入-页面调出

B

决定换出页--页面调出-页面调入

C

缺页中断-决定换出页-页面调入-页面调出

D

缺页中断-决定换出页-页面调出-页面调入

正确答案:D

解析:

考查操作系统的内存管理。

根据缺页中断的处理流程,产生缺页中断后,首先去内存寻找空闲物理块,若内存没有空闲物理块,使用相应的页面置换算法决定淘汰页面,然后调出该淘汰页面,最后调入该进程需要访问的页面,所以答案选D。

5.下列关于 Java 中 volatile 关键字的说法错误的是()

A

volatile 关键字修饰的共享变量是线程安全的

B

volatile 关键字可以保证被修饰变量在运算时不会进行指令重排

C

volatile 底层实现遵循 happens-before 原则

D

volatile 关键字修饰的变量被修改之前会从主存中读取最新的值覆盖掉cpu缓存

正确答案:A

解析:

volatile 关键字并不能保证线程安全。
6.HTTP协议响应码的表示形式是()

A

二进制数字

B

十六进制数字

C

十进制数字

D

八进制数字

正确答案:C

解析:

HTTP协议的响应码由三个十进制数字组成,第一个数字为1~5表示5种状态,因此选C。
7.Java中,下列赋值语句错误的是()

A

double a = 1.0;

B

double a = 1;

C

float a = 1;

D

float a = 1.0;

正确答案:D
8.TCP"三次握手"建立连接过程中,所有的标志位至少会有多少次被置为1?

A

1

B

2

C

3

D

4

正确答案:D

解析:

TCP 传输连接的建立采用"3 次握手"的方式,包括 3 个基本的步骤:A 发送一个请求连接报文给B(SYN 标志置为 1),B 发回确认(SYN+ACK 标志置为 1),A 再加以确认(ACK 标志置为1)。因此选D。
9.MySQL支持分布式事务,以下关于分布式事务选项说法正确的是()

A

事务资源必须是关系型数据库系统

B

使用InnoDB存储引擎时,在分布式事务下,事务的隔离级别必须是串行化(SERIALIZEABLE)

C

XA事务不允许不同数据库之间的分布式事务

D

其余选项都正确

正确答案:B

解析:

分布式事务中,事务资源可以是关系型数据库也可以是其他类型的资源,XA事务允许不同数据库之间的分布式事务,比如一台服务器是MySQL,另一台是oracle
10.下面关于 C++ 中 string 类的说法错误的是()

A

string类中的 sort() 方法可以对字符串按照字典顺序排序

B

string类相比于传统的字符数组可以更加简单和安全地进行字符串操作

C

string类定义在头文件<string>中,可以使用标准命名空间std来访问它

D

string类提供了一组重载的运算符来方便地执行字符串的拼接、比较等操作

正确答案:A

解析:C++ string类中没有自带的排序方法,但是可以使用算法库中的sort()方法来进行排序。可以使用std::sort()方法对string类型的字符串进行排序,sort()方法默认按照字典序进行排序。
11.

Linux 中,执行以下命令的结果是()

|---|------------------------------------|
| 1 | dirname /etc/sysconfig/network |

A

/etc/sysconfig/network

B

sysconfig/network

C

/etc/sysconfig

D

network

正确答案:C

解析:

dirname 在一个路径中取目录名

如 dirname /etc/sysconfig/network

结果为 /etc/sysconfig

相关推荐
Java水解7 小时前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端
Java水解7 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
千寻girling7 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
南风9997 小时前
Claude code安装使用保姆级教程
后端
爱泡脚的鸡腿7 小时前
Node.js 拓展
前端·后端
蚂蚁背大象8 小时前
Rust 所有权系统是为了解决什么问题
后端·rust
子玖10 小时前
go实现通过ip解析城市
后端·go
Java不加班10 小时前
Java 后端定时任务实现方案与工程化指南
后端
心在飞扬10 小时前
RAG 进阶检索学习笔记
后端