后端开发刷题 | 笔试

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

相关推荐
半夏知半秋1 分钟前
lua debug相关方法详解
开发语言·学习·单元测试·lua
BUG制造机.2 分钟前
修炼之道 ---其四
linux·c++
Andy01_4 分钟前
Java八股汇总【MySQL】
java·开发语言·mysql
滴_咕噜咕噜4 分钟前
学习笔记 --C#基础其他知识点(持续更新)
笔记·学习·c#
pk_xz1234568 分钟前
R 和 Origin 完成细菌 OTU 表、土壤理化性质数据的微生物 Beta 多样性分析
算法·机器学习·r语言
唐 城12 分钟前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·spring·log4j
Ning_.16 分钟前
力扣第116题:填充每个节点的下一个右侧节点指针 - C语言解法
c语言·算法·leetcode
V+zmm1013421 分钟前
社区二手物品交易小程序ssm+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
小小unicorn23 分钟前
第二章:算法练习题2
算法
坊钰23 分钟前
【Java 数据结构】合并两个有序链表
java·开发语言·数据结构·学习·链表