川大2016年874答案
数据结构
一、单项选择题
1、A j
2、A 如果一个有序表的元素全小于另一个有序表,比较次数就是N
3、A 哈夫曼树相关,要求任何一个编码不能是其他编码前缀
4、B 每次遍历都需要O(n)
5、B 用尾节点指针可以直接标识。王道上面是顺序存储的数组表示的。
6、A 下三角和主对角,A[5][8]就是A[8][5],1+…+7+5=32
7、D 其他三个都跟初始排列有关
8、D 基础定义
9、B (n+1)/2
10、C 概念题
11、A 第二个不可构成环、最小生成树可能有多颗
12、A Djikstra是基于每一步,所以是贪心,Floyd每次基于全局选择
13、D 基础题
14、C 有环就没有拓扑排序
15、C
16、63+42=105 错题答案105
17、B 基本有序,直接插入更快,定义
18、C 最多时,栈里存156
二、大题
1、2009年408考试真题,且为王道原题
2、迪杰斯特拉堆优化
#include
#include
#include
#include
using namespace std;
int nex[400001];
int to[400001];
int val[400001];
int head[200001];
int f[200001];
int idx,x,y,z;
int inf=2147483647;
bool vis[200001];
struct Point
{
int number,dis;
inline bool operator < (const Point &a) const
return dis>a.dis;
}
};
priority_queue
void addedge(int a,int b,int c)
{
nex[++idx]=head[a];
head[a]=idx;
to[idx]=b;
val[idx]=c;
}
int n,m,s;
int main()
{
Point tmp;
scanf("%d%d%d",&n,&m,&s);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
addedge(x,y,z);
}
for(int i=1;i<=n;i++)
f[i]=inf;
tmp.number=s,tmp.dis=0;
f[tmp.number]=0;
q.push(tmp);
while(!q.empty())
{
int here=q.top().number;
q.pop();
if(vis[here])
continue;
vis[here]=1;
for(int j=head[here];j;j=nex[j])
if(f[to[j]]>val[j]+f[here]&&(!vis[to[j]]))
{
f[to[j]]=f[here]+val[j];
tmp.number=to[j];
tmp.dis=f[to[j]];
q.push(tmp);
}
for(int i=1;i<=n;i++)
printf("%d ",f[i]);
}
操作系统:
一、选择题
1、C 概念题
2、A 概念题
3、B 用户使用系统调用管理文件
4、C
5、B FCFS适合计算型长作业一直执行计算,基础概念题
6、D 短的作业一直执行,长的作业饥饿
7、C 概念题
8、C 概念题
9、A 概念题,记录型信号量知识点
10、A 临界区基本概念
11、A 单道连续分配通过覆盖解决不足问题
12、D 概念题
13、B 2^(24-14)=2^10
14、B 概念题(注意区分长度递增减,地址递增)
15、C 概念题
16、D 概念题
17、B 概念题
18、B 概念题
二、大题
1、是否安全用银行家算法,是否死锁使用死锁定理(资源分配图)。
不安全状态不一定会死锁,死锁一定是不安全状态。
分配资源时,避免死锁,使用银行家算法:检测是否已经发生死锁,死锁检测与解除,用死锁定理。
2、TLB(快表)加速地址变换过程,实现页号到物理块号的映射。
添加四个字段:
---- 状态位P:用于指示该页是否已调入内存,供程序访问时参考。
---- 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,供选择换出页面时参考。
---- 修改位M:表示该页在调入内存后是否被修改过。供置换页面时参考。
由于内存中的每一页都在外存上有一份副本,因此,若未被修改,在置换该页时就不需要将该页写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。
---- 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。
3、简单的生产者消费者问题,将其中的生产和消费换为上传和下载
定义四个信号量:
empty——表示缓冲区是否为空,初值为n。(题目中为1)
full——表示缓冲区中是否为满,初值为0。
mutex1——生产者之间的互斥信号量,初值为1。
mutex2——消费者之间的互斥信号量,初值为1。
生产者进程
while(TRUE){
下载一个;
P(empty);
P(mutex1);
产品送往buffer(in);
V(mutex1);
V(full);
}
消费者进程
while(TRUE){
P(full);
P(mutex2);
从buffer(out)中取出产品;
V(mutex2)
V(empty);
}
计算机网络
一、选择题
1、B 概念题
2、D 最小帧长=总线传播时延*数据传输率*2
3、A 概念题
4、D 概念题(记忆)
5、C 三次握手概念题第一个seq无所谓
6、D 概念题
7、A TTL+1,校验和每次都会算,IP肯定不变,
8、C 第二个字段分别为:00001100、00001101 ,C可以,但不是最好的,最好为255,254,0,0
二、大题
1、距离矢量路由协议(1)仅跟相邻路由器交换信息(2)交换内容是路由器知道的全部信息(3)按固定时间间隔交换路由信息
链路状态路由协议(1)向自治系统中所有路由器发送信息(2)交换的内容是与该路由器相邻的所有路由器的链路状态(3)当链路状态发生变化时交换信息
距离矢量路由协议只跟相邻路由器交换信息,当网络出现故障时收敛较慢,“坏消息传的慢”,产生无穷计数问题
RIP---距离矢量
OSPF---链路状态
2、
(1)基带同轴电缆单模光纤双绞线
传输介质1传输距离100-200米,基带同轴电缆可传输200米左右;传输介质2传输距离2km,单模光纤可进行长距离传输;传输介质3传输距离小于100米,双绞线即可。
(2)BADC
Switch4万兆接入,所以C,switch2是switch3的上一级,所以switch2为A,switch3为D,剩余B
SFP封装---热插拔小封装模块,目前最高速可达4G,多采用LC接口
SFP+封装---标准封装,工作速率是10G,可以满足以太网10G的应用。
注意:本题知识点偏门,了解即可,不要深究
(3)答案不唯一;
202.112.33.1-202.112.33.110 255.255.255.128
202.112.33.129-2.112.33.179 255.255.255.192
202.112.33.193-202.112.33.213 255.255.255.224
202.112.33.225-202.112.33.253 255.255.255.224