小米面经.

.

某数据库有供应商表S(SNO,SNAME,STATUS,CITY),零件表P(PNO,PNAME,COLOR,WEIGHT,CITY)和供应情况表SP(SNO,PNO,QTY),其中,SNO、SNAME、STATUS、CITY分别表示供应商编号、供应商名称、状态和所在城市;PNO、PNAME、COLOR、WEIGHT、CITY分别表示零件编号、零件名称、颜色、重量和存放地;QTY表示零件数量;样本值如图。
 



 

查询出重量大于15且颜色为"Red"的零件名称。在MySQL数据库中,下面SQL语句正确的是:( )

A

select PNAME

from P

where (WEIGHT>=15) or (COLOR='Red')

B

select PNAME

from P

where (WEIGHT>=15) and (COLOR='Red')

C

select PNAME

from P

where (WEIGHT>15) || (COLOR='Red')

D

select PNAME

from P

where (WEIGHT>15) && (COLOR='Red')

选D,看清楚或和且的操作

2.

下列说法正确的一项是

A

多态是封装的基础

B

封装是继承的基础

C

面向对象程序设计思想的重要特性是封装、继承、多态

D

方法重载是多态的体现

解析:选C,因为封装、继承、多态都是各自为一个整体,不是谁是谁的基础。方法重载是静态多态,我们说的多态一般是方法重写

3.

现有代码段如下。下列说法中不正确的一项是

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class A {

private int a;

public int geta() {

return a;

}

public void seta(int a) {

this.a = a;

}

..

}

public class B extends A {

private double b;

public double getb() {

return b;

}

public void setb(double b) {

this.b = b;

}

...

}

A

b是B的私有成员变量

B

B是A的子类

C

A的对象可以调用b的修改器

D

B的对象可以调用a的访问器

解析:子类能调用父类的方法,但父类是private所以不能直接调用

4.

当一个系统应该独立于它的产品创建,构成和表示时,应选择哪种设计模式( )

A

原型模式

B

单例模式

C

装饰器模式

D

代理模式

解析:工厂模式和抽象工厂模式应该才是一个系统应该独立与它的产品创建,原型模式是复制,单例模式是一个访问点、全局访问,装饰器和代理是结构型,装饰器是额外添加职责,代理是为其他对象提供一个对象控制这个对象的访问

5.

传输层之间传输的报文称为传输协议数据单元,下列属于传输协议数据单元组成部分的是( )

A

TTL

B

TPDU头部

C

帧头部

D

帧尾部

解析:选B,TTL属于网络层头部,不属于TPDU,帧头部和帧尾部都属于数据链路层

8.

求解最短路径的弗洛伊德算法的时间复杂度为

A

O(n)

B

O(n+e)

C

O(n^2)

D

O(n^3)

解析:弗洛伊德算法的时间复杂度是N3,它首先得找所有顶点作为中心点的位置,再找顶点到中心点的位置的最小距离

9.

AVL树是( )

A

二叉搜索树

B

平衡二叉树

C

B树

D

红黑树

解析:AVL树是平衡二叉树,具有二叉树和平衡两个特点,红黑树不是完全平衡

10.

使用一维数组存放高度为3的满二叉树,需要的数组长度至少为

A

2

B

4

C

7

D

8

解析:选c满二叉树就是满的二叉树,左右节点都有,每层节点都放满。满二叉树公式2n次方-1

11.

已知入栈顺序为甲乙丙丁戊己庚,出栈顺序为丁戊丙乙甲己庚,则栈的最小长度为

A

1

B

3

C

4

D

7

解析:栈是先入后出的,因为丁先出所以一定是甲乙丙丁先入,深度为4后戊出,意味着戊进戊出,深度还是4,之后出丙乙甲,深度为0,最后,入己出己,入庚出庚

12.

实际的操作系统对资源的分配一般采取( )

A

死锁的预防

B

死锁的避免

C

死锁的检测

D

其他3个一起使用

解析:选D

13.

下列关于内存管理错误的是( )

A

在现代操作系统中,不允许用户干预内存的分配。

B

固定分区存储管理的各分区的大小不可变化,这种管理方式不适合多道程序设计系统。

C

CPU 不能直接访问外存上的数据,需要放入内存后才可以存取。

D

动态存储分配时,要靠硬件地址变换机构实现重定位。

解析:选A,现代程序java中new可以分配内存。固定分区存储管理适合多道程序设计系统

14.

关于生产者-消费者问题描述正确的是( )

A

缓冲池中有n个缓冲区,所以empty为n

B

两个进程有同步也有互斥关系

C

生产者进程中wait(empty)可以和wait(mutex)交换顺序

D

生产者进程中(mutex)的作用是是可决定是否可以访问缓冲区

解析:# 生产者

wait(empty) # 等待空缓冲区

wait(mutex) # 获取缓冲区互斥锁

produce_item()

signal(mutex) # 释放互斥锁

signal(full) # 增加已用缓冲区计数

# 消费者

wait(full) # 等待有数据的缓冲区

wait(mutex) # 获取互斥锁

consume_item()

signal(mutex) # 释放互斥锁

signal(empty) # 增加空缓冲区计数

答案A.empty最开始为n,full最开始为0;B正确;C.不可交换,先看是否有缓冲区再判断锁,不然可能发生死锁风险

15.

下列程序的运行结果是( )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

class B {

int n;

public:

voidshow() {

cout << "***";

}

};

class A: public B {

public:

voidshow() {

cout << "###";

}

};

int main() {

A oa;

B* p = &oa;

p->show();

return 0;

}

A

***

B

###

C

***###

D

###***

解析:因为派生类A虽重写了B的show方法,但没使用virtual(虚函数)进行动态绑定,所以依旧指向B的方法

16.

下面代码执行后的结果是( )

1

2

3

#!/usr/bin/python3

demo_list = ['hello']

print(demo_list[2])

A

输出'hello'

B

输出'e'

C

输出'l'

D

报"IndexError"错误

解析:选D索引越界错误,demo_list是一个列表,其中[]代表列表,只有hello一个元素,如果想要选中l则要[0][2]

小李天生偏爱一些字符,对于一个字符串,他总是想把字符串中的字符变成他偏爱的那些字符。如果字符串中某个字符不是他所偏爱的字符,称为非偏爱字符,那么他会将该非偏爱字符替换为字符串中距离该字符最近的一个偏爱的字符。这里的距离定义即为字符在字符串中的对应下标之差的绝对值。如果有不止一个偏爱的字符距离非偏爱字符最近,那么小李会选择最左边的那个偏爱字符来替换该非偏爱字符,这样就保证了替换后的字符串是唯一的。小李的所有替换操作是同时进行的。
假定小李有 mm 个偏爱的字符,依次为c1,c2...cmc1,c2...cm,当小李看到一个长度为 nn 的字符串 ss 时,请你输出小李在进行全部替换操作后形成的字符串。

思路:

循环所有下标数组,判断是否为偏爱数组,若不是先调用最左边的数组之后调用最右边的数组,找到最近的偏爱数组进行替换。

1.循环所有下标

2.判断是否为偏爱数组

3.判断该位置的位置,位于

3.若不是,则依次循环左右数组(不能大于边界,思路卡死,怎么判断左右边界距离长短?,)

4.判断左边是否为偏爱数组

5.如果是,则替换然后跳出循环

17.

有员工表employee(id,employee_name,dept_id,salary),

部门表dept(id,dept_name,leader_name),样本值如下图。

公司工资调整,给财务部门涨了工资,财务部门每个员工增加工资500。下面SQL语句正确的是:( )

A

UPDATE employee SET salary= salary+500 WHERE dept_id in (SELECT id FROM dept WHERE id=2 )

B

UPDATE employee SET salary= salary+500 WHERE id in (SELECT id FROM dept WHERE id=2 )

C

UPDATE employee e INNER JOIN dept d

ON e.dept_id = d.id SET salary= salary+500 WHERE d.id=2

D

UPDATE employee e LEFT JOIN dept d

ON e.dept_id = d.id SET salary= salary+500 WHERE d.id=2

解析:多选题,C和D都对

18.

哪些情况建立索引会降低查询效率( )

A

数据量级太小

B

更新频繁的字段

C

区分度低的字段

D

经常与其它表进行连接的表字段

解析:A数据量太小说明全表扫描更快,使用索引要扫描原表和索引表,B更新频繁的字段,搜索虽然有索引比较快,但增加比较麻烦、占内容;C、区分度第的字段,如:性别:男和女,不用索引。

19.

下面说法正确的是( )

A

贪心算法不一定得到整体最优解

B

贪心算法一定能得到整体最优解

C

不同的贪心选择方案,最终结果可能不同

D

不同的贪心选择方案,最终结果相同

解析:贪心算法跟"贪心选择性质"和"最优子结构"时才有最优解。

20.

下面哪些算法的时间复杂度为 O(n^2)( )

A

堆排序

B

快速排序

C

插入排序

D

选择排序

解析:堆排序的时间复杂度为n log n,快速排序的时间复杂度为(n log n),插入排序和选择排序的时间复杂度为n²

21.

下列哪些事件会引起新的进程创建( )

A

用户登录

B

作业调度

C

提供服务

D

应用请求

解析:A、B、c、D

多选题

22.

下列哪些是常用的编译优化技术( )

A

循环展开

B

公共子表达式消除

C

内联函数

D

删除无用代码

解析:A\B\C\D

6.

某无自环有向图有2023条边,则至少有多少个顶点?

A

44

B

45

C

46

D

47

解析:46,1.有向图2.无自环。公式n(n-1).因为n^2约等于2025,因为n^2>2023+n所以取46,之后45、46代入验算即可

23.

下面属于可屏蔽的中断是( )

A

时钟中断

B

内存奇偶校验中断

C

I/O中断

D

总线超时中断

解析:可屏蔽中断时钟中断、I/O中断,不可屏蔽中断:内存几口效验中断、总线超时中断

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值