后端开发刷题 | 笔试
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
原文地址:https://blog.csdn.net/jingling555/article/details/140645779
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!