2022-复习
迪丽瓦拉
2025-05-31 12:56:32
0

2022复试复习题

  • ⼀、选择题
  • ⼆. 填空题
  • 三. 概念论述题
  • 四. 简答题
  • 五.综合应⽤题

⼀、选择题

1.线性表的顺序存储结构是⼀种(A )。
A.随机存取的存储结构 B. 顺序存取的存储结构
C.索引存取的存储结构 D. 散列存取的存储结构

2.栈和队列具有相同的( B)。
A.抽象数据类型 B. 逻辑结构 C.存储结构 D.运算

3.具有10个叶⼦结点的⼆叉树中有(B)个度为2的结点。
A. 8
B. 9
C.10
D.11

设节点总数为n,n0,n1,n2n_0,n_1,n_2n0​,n1​,n2​分别为叶子结点,只有一个孩子的节点,有两个孩子的节点。那么就有n=n0+n1+n2=n1+2∗n2+1n = n_0+n_1 + n_2 = n_1+2*n_2+1n=n0​+n1​+n2​=n1​+2∗n2​+1化简可得n0=n2+1n_0 = n_2+1n0​=n2​+1又因为n0=10n_0 = 10n0​=10所以n2=9n_2 = 9n2​=9

4.下列选项中,不属于OSI体系机构中物理层功能的是(D)。
A. ⽐特0和1使⽤何种电⼦信号表⽰
B. 1个⽐特持续多⻓时间
C. 传输能否在两个⽅向上同时进⾏
D. 避免快速发送⽅“淹没”慢速接受⽅

D是流量控制,属于数据链路层、网络层、传输层的功能。物理层并没有这一功能。

5.下列选项中,必须在核⼼态下执⾏的指令是(D)。
A.从内存中取数 B. 将运算结果装⼊内存 C. 算术运算 D. 输⼊/输出.

输入输出涉及到硬件操作,必须转为相对更为安全的核心态才能进行。
相关操作:
1.屏蔽所有中断指令,在核心态下执行。
2.读时钟日期指令,在用户态下执行。
3.设置时钟日期指令,在核心态下执行。
4.改变存储映像图指令,在核心态下执行。
5存取某地址单元的内容指令,在用户态下执行;(*)
6.停机指令,在核心态下执行。

⼆. 填空题

1.⼀个进程的基本状态可以从其他两种基本状态转变过去,这个基本的状态⼀定是(就绪态)

创建完成运行结束获得CPU时间片时间片用完等待资源获得资源创建态运行态销毁态就绪态阻塞态

2.⼀个计算机系统中,进程的最⼤数⽬主要受到(内存)限制。
进程创建需要占用系统内存来存放PCB的数据结构,所以,一个系统能够创建的进程总数是有限的,进程的最大数目取决于系统内存的大小,由系统安装时已经确定(若后期内存增加了,系统能够创建的进程总数也应增加,但是一般需要重新启动)。

3.⼀次分配所有资源的⽅法可以预防死锁的发⽣,它破坏死锁4个必要条件中
的(申请并保持)。

在这里插入图片描述
4.某系统中共有11台磁带机,X个进程共享此磁带机设备,每个进程最多请求使⽤3台,则系统必然不会死锁的最⼤X值是(5 )。
2∗X=11−12 * X = 11 - 12∗X=11−1

5.在段⻚式分配中,CPU每次从内存中取⼀次数据需要(3 ) 次访问内存
在不考虑快表的情况下,n级页表访问n+1次内存。段页式分配和二级页表分配都访问3次内存。

三. 概念论述题

1.协议与服务有何区别?
协议是水平的,服务是垂直的。
协议是“水平的”,即协议是控制两个对等实体进行通信的规则。但服务是“垂直的”,即服务是由下层通过层间接口向上层提供的。

协议与服务的关系
协议的实现是向上一层提供服务的基础,而上层只能看到下层提供的服务,却看不到下层实现的协议。

2.数据链路(即逻辑链路)与链路( 即物理链路)有何区别?
链路只是指一个节点到与之相邻的另一个节点的物理线路,其中间没有其他的交换节点。链路只是一条路径的组成部分。
数据链路是指链路再加上一些必要的通信协议来控制数据的传输。

3.⽗进程创建⼦进程和主程序调⽤⼦程序有何不同?
父进程创建子进程,父进程会与子进程并行执行。而主程序调用子程序,会先执行子程序,在子程序执行完毕之后再返回主程序调用点处继续执行。
在这里插入图片描述
4.何为管程?
管程是一种数据结构,分散在各处的pv语句不好管理,为了便于管理提出了管程这一概念
管程包括(数据结构定义、操作、初始化)
1.局部于管程的共享数据结构说明;
2.对该数据结构进行操作的一组过程;
3.对局部于管程的共享数据设置初始值的语句;

四. 简答题

1.死锁发⽣的条件?
四个条件:互斥、请求并保持、不剥夺、环路等待。
造成死锁的原因:资源竞争、进程推进顺序非法。

2.处理死锁有哪三种策略?

在这里插入图片描述
3.分布式系统中的通信延迟依赖于哪⼏个因素?
总时延=发送时延+传输时延+排队时延+处理时延总时延 = 发送时延 + 传输时延 + 排队时延 + 处理时延总时延=发送时延+传输时延+排队时延+处理时延

发送时延=数据长度信道宽度,传输时延=信道长度信道传播速度发送时延 = \frac{数据长度}{信道宽度},传输时延 = \frac{信道长度}{信道传播速度}发送时延=信道宽度数据长度​,传输时延=信道传播速度信道长度​
排队时间和处理时延和所选择的处理调度算法相关。

4.系统冗余有哪四种类型?
(1)硬件冗余:应用附加硬件来实现故障检测及容错:典型的列子如双机比较系统,三模表决系统等。
(2)软件冗余:应用附加软件来实现故障检测及容错。典型例子如故障诊断程序、软件实现的比较器、表决器等。
(3)信息冗余:应用附加信息来实现检错或纠错。典型的例子有检错码及纠错码。
(4)时间冗余:应用附加的时间以执行系统的功能,实现检错或容错,典型的例子有指令复制,程序卷回等。

五.综合应⽤题

1. Q是⼀个队列,S是⼀个空栈,实现将队列中的元素逆置的算法。

#include 
// Q是⼀个队列,S是⼀个空栈,实现将队列中的元素逆置的算法
int Q[100],S[100];
// 暂时以数组代表队列和栈
int top = -1;
// 栈顶指针,入栈S[++top] = value  出栈value = S[top--]
int front = -1,rear = -1;
// 队头和队尾指针 入队Q[++rear] = value 出队 value = Q[++front]void printQueue(){// 输出队列元素for(int i=front+1;i<=rear;i++)printf("%d ",Q[i]);printf("\n");
}void reverseQueue(){// 利用栈将队列元素逆置while (front < rear) {// 当队列非空S[++top] = Q[++front];// 队列元素依次入栈}while (top>=0) {// 当栈非空Q[++rear] = S[top--];// 栈元素依次入队}
}
int main(void) {for(int i=1;i<=5;i++)Q[++rear] = i;// 初始化队列元素为1,2,3,4,5printQueue();reverseQueue();printf("逆置后\n");printQueue();return 0;
}

2. 某银⾏计算机系统要实现-⼀个电⼦转账系统,基本业务流程是:⾸先对转出⽅和转⼊⽅的账户进⾏加锁,然后进⾏转账业务,最后转出⽅和转⼊⽅对账户进⾏解锁。若不采取任何措施,系统会不会发⽣死锁?为什么?
会发生死锁,因为对转出⽅和转⼊⽅的账户进⾏加锁并不是同时进行的。举例,如果A要给B转账由进程1负责,但刚好B也要给A转账由进程2负责。那么有可能进程1先对A账户进行加锁同时申请对B账户加锁,进程2先对B账户进行加锁同时申请对账户A进行加锁。那么二者就形成了环路等待,产生了死锁。

3. 已知: 1个项⽬中的1名⼯程师只会有1名经理; 1个项⽬中的1名经理会
带领多名⼯程师做该项⽬; 1名经理和他⼿下的1名⼯程师可能参与多个项
⽬。创建关系型数据库表格,体现出三者之间的关系。

在这里插入图片描述
4. 采⽤任意代码(框架)实现-⼀个简单的分布式应⽤,要求客户端向服务端发出⼀个字符串,服务端收到此字符串之后,向客户端发出回复“hello"。

Server

import socket# 指定IP为本机IP 端口号任意指定为6666
ip_port = ('127.0.0.1', 6666)
# 最多可以连接back_log个客户端
back_log = 1
# 创建一个TCP套接字
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定端口号
serverSocket.bind(ip_port)  # 绑定哪个ip就要运行在哪台机器上
# 设置半连接池
serverSocket.listen(back_log)  # 让服务器聆听来自客户的TCP请求connectionSocket, addr = serverSocket.accept()  # 当客户敲门,创建了一个新的套接字,为这个客户服务msg = connectionSocket.recv(1024).decode('utf-8')  # # 每次最多接收1k字节,并将报文转码# print(msg)connectionSocket.send("Hello".encode('utf-8'))
serverSocket.close()

Client

import socket
# 创建客户端套接字
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 发起和服务器的TCP连接
clientSocket.connect(('127.0.0.1', 6666))
clientSocket.sendall("12345".encode('utf-8'))
msg = clientSocket.recv(1024).decode('utf-8')  # # 每次最多接收1k字节,并将报文转码
print(msg)
clientSocket.close()

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...