Dotcpp  >  试卷列表  >  2023年考研408计算机统考真题在线评测(附答案)

2023年考研408计算机统考真题在线评测(附答案)


第1题

下列对顺序存储的有序表(长度为 n)实现给定操作的算法中平均时间复杂度为O(1)的是()。

共 2 分 

第2题

现有非空双向链表 L,其结点结构为

jrerDataNext

“s- > next=p-> next;p- > next=s”,后,还要执行()。prer是指向直接前驱结点的指针,next是指向直接后继结点的指针。若要在L中指针p所指向的结点(非尾结点)之后插入指针s指向的新结点,则在执行了语句序列:

共 2 分 

第3题

若采用三元组表存储结构存储稀疏矩阵M。则除三元组外,下列数据中还需要保存的是(  ) 。

 I、M 的行数           II、M中包含非零元素的行数

III、M 的列数            IV、M 中包含非零元素的列数

共 2 分 

第4题

在有6 个字符组成的字符集 S 中,各个字符出现的频次分别为 3,4,5,6,8,10,为 S 构造的哈夫曼树的加权平均长度为(       )。

共 2 分 

第5题

已知一棵二叉树的树形如图,若其后序遍历为 f,d,b,e,c,a,则其先序列为(      )。


二叉树

共 2 分 

第6题

已知无向连通图G中各边的权值均为1.下列算法中定能够求出图G中从某顶点到其余各个顶点最短路径的是(     )。

I. 普利姆算法

II. 克鲁斯卡尔算法

III.图的广度优先搜索

共 2 分 

第7题

下列关于非空B树的叙述中,正确的是(     )。

I  插入操作可能增加树的高度

II 删除操作一定会导致叶结点的变化

III 查找某关键字一定是要查找到叶结点

IV 插入的新关键字最终位于叶结点中

共 2 分 

第8题

对含有600个元素的有序顺序表进行折半查找,关键字之间的比较次数最多是(    )。

共 2 分 

第9题

现有长度为5,初始为空的散列表HT,散列表函数H(K)=(k+4)%5用线性探查再散列法解决冲突。若将关键字序列2022,12,25依次插入HT中,然后删除关键字25,则HT中查找失败的平均查找长度(     )。

共 2 分 

第10题

下列排序算法中,不稳定的是(   )

I 希尔排宁         II 归并排序      III 快速排序      IV 堆排序        V 基数排序

共 2 分 

第11题

使用快速排序算法对数据进行升序排序,若经过一次划分后得到的数据序列是 68,11,70,23,80,77,48,81,93,88,则该次划分的轴枢(       )

共 2 分 

第12题

若机器M的主频为1.5Ghz,在M上执行程序p的指令条数为5*105,p的平均CPI为1.2,则p在M 上的指令执行速度和用户CPU时间分别为(       )。

共 2 分 

第13题

若short型变量x=-8190,则x的机器数为(     )。

共 2 分 

第14题

已知float型变量用IEEE754单精度浮点数格式表示。若float型变量x的机器数为8020  0001H,则 x 的值(       )。

共 1 分 

第15题

某计算机的CPU有30根地址线,按字节编址,CPU和主存芯片连接时,要求主存芯 片占满所有可能存储地址空间并且RAM区和ROM区所分配的容量大小比为3:1。若RAM 在连续低地址区,ROM在连续高地址区,则ROM的地址范围(       )。

共 2 分 

第16题

己知 x、y为 int 类型,当 =100,y=200 时,执行 x-y 指令的到的溢出标志OF 和借位标志 CF 分别为 0,1,那么当 x=10,y=-20 时,执行该指令得到的 OF 和CF 分别是(   )。

共 2 分 

第17题

某运算类型指令中有一个地址码为通用寄存器编号,对应通用寄存器中存放的是操作数或操作数地址,CPU 区分两者的依据是( )。

共 2 分 

第18题

数据通路由逻辑元件和时序元件组成,以下是组合逻辑元件的是()。

I算术逻辑部件ALU

II程序计数器PC

III通用寄存器

IV多路选择器MUX

共 2 分 

第19题

采用取指、解码,执行,存储,写入 5 段流水线,RIS3C 处理器,SO,S1,S2,S3,t2为寄存器编号,

 I1: add S2 S1 SO        //[R[S2]]               R[S1]+R[S0]

 I2: add load(S3)0(S2)   //[R[S2]]                R[S1]+R[SO][1] 

 I3: beq t2 S3 L1          //if R[t2]==R[S3]     jump to Ll

 I4: add t2 t3 I0            //[R[t2]]                    R[t2]+I0

如采用旁路技术处理数据相关,即采用专用数据通路技术处理器,则在 I1~I4执行过程中,发生流水线阻塞的有(  )。

共 2 分 

第20题

若有存储总线宽度为 64 位,总线时钟频率为 1GHZ,在总线上传输一个数据支地址需要一个的时钟周期,不支持突发传送,若该总线连接 CPU 和主存,主存每次准备一个 64 位数据需要 6ns,主存块大小为 32B,则读取一个主存块时间为()。

共 2 分 

第21题

下列关于硬件和异常/中断关系的叙述中,错误的是(    )。

共 2 分 

第22题

下列关于 1/0 控制方式的叙述中错误的是(      )。

共 2 分 

第23题

与宏内核操作系统相比,下列特征中微内核操作系统具有的是(      )。

I 较好的性能

II 较高的可靠性      

III 较高的安全性

IV 较强的可扩展性

共 2 分 

第24题

在操作系统内核中,中断向量表适合采用的数据结构是(      )。

共 2 分 

第25题

某系统采用页式存储管理,用位图管理空闲页框。若页大小为 4kB,物理内存人小为 16GB,则位图所占空间的人小是(        )。

共 2 分 

第26题

下列操作完成时,导致 CPU 从内核态转为用户态的是(        )。

共 2 分 

第27题

下列由当前线程引起的事件或执行的操作中,可能导致该线程由执行形态变为就绪态的是(       )。

共 2 分 

第28题

对于采用虚拟内存管理方式的系统,下列关于进程虚拟地址空间的叙述中,错误的是(   )。

共 2 分 

第29题

进程 P1、P2 和 P3 进入就绪队列的的时刻,优先值(越大优先权越高) 以及CPU 的执行时间如下表所示,

进程名进入就绪队列的时刻优先数CPU的执行时间
p10ms160ms
p220ms1042ms
p330ms10015ms

系统采用基于优先权的抢占式 CPU 调度算法,从 Oms 时刻开始进行调度,则P1,P2,P3 的平均周转时间为(    )。

共 2 分 

第30题

进程R和S 共享数据 data,若 date 在R和S 中所在页的页号分别为pl和p2,两个页所对应的页框号分别为 f1 和 f2,则下列叙述中正确的是(      )。

共 2 分 

第31题

文件下仅有一个进程打开,当该进程关闭F时,必须的操作是()。

共 2 分 

第32题

32、设备分配需要关注的是?()

1.设备类型       2.设备使用状态      3.逻辑设备和物理设备的映射      4.进程对设备的访问权限

共 2 分 

第33题

如图,2段链路的数据传输速率为100Mbps,时延带宽积(即单向传播时延带宽) 均为1000bit。若 HI 向 H2发送1个大小为1MB的文件,分组长度为1000B则从H1开始发送时刻起到H2收到文件全部数据时刻止,所需的时间至少是(注:M=10^5) (     )。

网络拓扑

共 2 分 

第34题

某无噪声理想信道带宽为4MHz,采用OAM调制,若该信道的最大数据传输率是48Mbps,则该信道采用的QAM 调制方案是( )。

共 2 分 

第35题

假设通过同一信道,数据链路层分别采用停-等协议、GBN协议和SR协议(发送窗口和接收窗口相等) 传输数据,三个协议数据帧长相同,忽略确认帧长度,帧序号位数为3比特。若对应三个协议的发送方最大信道利用率分别是U1、U2和U3,则U1、U2和U3满足的关系是()。

共 2 分 

第36题

已知10BaseT 以太网的争用时间片为51.2us。若网卡在发送某帧时发生了连续4次冲突,则基于二进制指数退避算法确定的再次尝试重发该帧前等待的最长时间是()。

共 2 分 

第37题

若甲向乙发送数据时采用CRC 校验,生成多项式为G (x) =x^4+x+1 (即G=10011),则乙接收到下列比特串时,可以断定其在传输过程中未发生错误的是()。

共 2 分 

第38题

某网络拓扑如下图所示,其中路出器R2实现NAT功能。若主机H向Inernet发送·个 IP分组,则经过R2转发后,该IP分组的源 IP地址是(  )。

网络拓扑

共 2 分 

第39题

主机168.16.84.24/20 所在子网的最小可分配地址和最大可分配地址分别是(   )。

共 2 分 

第40题

下列关于ipv6和ipv4 的叙述中,正确的是(   )。

I   ipv6 地址空间是 ipv4地址空间的96倍

II  ipv4和 ipv6 的基本首部的长度均可变

III ipv4 向 ipv6 过渡可以采用双协议栈和隧道技术

IV ipv6 首部的Hop-Limit 等价于 ipv4 首部的TTL 字段

共 2 分 

第41题

(13分)对于有向图,如果一个顶点的出度大于入度,则这个顶点称为K页点,有向图用邻接矩阵存储,数据结构定义如下:

1
2
3
4
5
typedef struct{
int numVertex, numEdge;//顶点数,边数
char VertexList[MAXV];//顶点表
int Edge[MAXV][MAXV];//邻接矩阵
}MGraph;

要求实现函数int printVertices(MGraph G),输出有向图中所有K页点,并返回K顶点的总数

(1)说明算法思想(占5-6分)

(2)用C/C++实现算法(占7-8分)


[参考答案]

(1)算法思想:遍历有向图中所有顶点,并统计各顶点的出度和入度,输出出度大于入度的KJ页点,并使用变量 count 累计顶点的总数。

计算顶点i的出度: 遍历邻接矩阵的i行元素,即 Edge[i][0]~Edge[i][numVertex-1],统计非零元素个数,即为顶点i的出度

计算顶点i的入度:遍历邻接矩阵的i列元素,即Edge[0][i]~ Edge[numVertex-1][i],统计非零元素个数,即为顶点i的入度

(2)算法实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int printVertices (MGraph G){
    int count =0;//K顶点的总数
    for (int i=0; i<G.numVertex; i++){
        int outDegree = 0;//顶点i的出度
        int inDegree = 0;//顶点i的入度
        for (int j=0;j<G.numVertex; j++)
            if (G.Edge[i][j]>0)  outDegreet+;
        }
        for (int j=0;j<G.numVertex; j++)
            if (G.Edge[j][i]>0)  outDegreet+;//循环两次方便理解
        }
        if (outDegree > inDegree) [//顶点i的出度大于入度
            printf ("c\n",G.VertexList[i]);//输出顶点i
            count++;//累加K顶点总数
        }
     }
     return count;//返回x顶点总数
}
共 0 分 

第42题

(10分)在进行外部排序时,可使用置换-选择排序生成初始归并段。内存工作区可存储n个记录,某文件含 n 个记录。

(1)若n=19,m=4。文件记录关键字为:51,94,37,92,14,63,15,99.48,56,23,60,31,17,43,8,90,166,100。使用置换-选择排序,可生成几个初始归并段?每个归并段各是什么?

(2)对于任意 m(n>>m>0),使用置换-选择排序生成第一个初始归并段的最大可能长度、最小可能长度分别是?


[参考答案]

(1) 可生成3个初始归并段 (2分)

①37,51,63,92,94,99 (2分)

②14,15,23,31,48,56,60,90,166 (2分)

③8,17,43,100 (2分)

(2)最大可能长度为n,最小可能长度为m。(各1分)

共 0 分 

第43题

(14分)某机器字长为32位的计算机M,采用请求调页存储管理。虚拟地址32位,页面大小4KB。Cache采用4路组相联映射,内存块大小为32B,Cache数据区大小为8KB。二维数组int a[24][64]按行优先存储,数组的起始虚拟地址为0042 2000H。数组a的数据初始时未调入内存,按如下方式访问数组a:

1
2
3
for (int i=0;i<24; i++)
for (int j=0;j<64; j++)
a[i][j]=10;

(1)数组a分为几个页面存储?访问数组a 缺页几次?页故障地址各是什么?

(2)不考虑对变量i,j的访问,访问数组 a 的过程是否具有时间局部性?为什么?

(3)在计算机M的32位地址中,块内地址是哪几位? Cache组号是哪几位?数组元素a[1][0]的虚拟地址是什么?对应的Cache组号是什么?

(4)数组a总共占多少块?访问a的Cache 命中率是多少?若采用如下方式访问数组a,则命中率又是多少?

1
2
3
for (int j=0;j<64;j++)
for (int i=0; i<24; i++)
a[i][j]=10;

[参考答案]

(1)数组a分为2个页面存储。(1分)

访问数组 a 缺页2次 (1分)

页故障地址分别是0042 2000H、0042 3000H。 (1+1分)

(2)没有时间局部性。(1分)

时间局部性是指,程序在一段时间内,访问同一个数据多次。对于数组a,每个元素仅被访问一次,因此不具有时间局部性。 (2分)

(3)32位地址结构如下: tag标记21bit + 组号6bt +块内地址5bit。若用A31-A0 表示32位地址,则

块内地址是A4~A0(1分)

Cache组号是A10~A5 (1分)

可[1][0]的虚拟地址是0042 2100H (1分)

对应的Cache组号是8(1分)

(4)数组 a 总共占192块 (1分)

访同a的Cache命中率是 7/8=87.5% (1分)若按列访问数组 a,Cache命中率同样是 87.5% (1分)

共 0 分 

第44题

(9分)43题的C语言代码,对应的机器级代码如下,请回答问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
for(int i=0;i<24;i++)
1   00401070     C7...     mov[ebp-8],0
2   00401079     EB 09   jmp 00401084h
3   0040107B     8B 55 F8   mov eax,[ebp-8]
...  ...                    ...              ...
7   00401088     7D32    jpe 004010bch
for(int j=0;j<64;j++)
8   0040108A     C7 45...      mov[ebp-4],0
...   ...                   ...               ...
a[i][j]=10;
...   ...                   ...               ...
19  004010AE     C7 84 82 00 20 42 00 0A 00 00 00 mov[ecx+edx*4+00422000h],0Ah
20  ...                   ...

(1)第20条指令的虚拟地址是什么?

(2)第2条指令jmp的操作码是 EBH,它的转移目标地址是00401084h。第7条指令jge的操作码是7DH,它的转移目标地址是 004010bch。这两条指令分别采用什么寻址方式?请给出jmp 指今的转移目标地址计算过程

(3)第19条指令,实现了adll-10该指今的源操作数采用什么寻址方式?已知edx 存放的值,ecx存放的是什么?该系统采用大端还是小端存储?

(4)第一次取第19条指令时,是否发生缺页?为什么?


[参考答案]

(1)第20条指令的虚拟地址是 004010B9h (1分)

(2)jmp 指今采用相对寻址《(1分)

ige 指今采用相对寻址《1分)

执行jmp指令时,程序计数器PC指向jmp指令的后一条指令,即0040107Bh。jmp 指令的转移目标地址计算过程为 0040107Bh+09h = 00401084h (1分)

(3)源操作数采用立即寻址(1分)

ecx存放的值 =i64*4 =256 (1分)

系统采用小端存储 (1分)

(4)没有发生缺页(1分)

第19条指令的页号是00401h,第1条指令的页号也是00401h。刚开始访问第1条指令时,就会把页面00401h 调入内存。之后当第一次访问到第19条指令时,页面已经在内存中,因此不会发生缺页。 (2分)

注:第2小问,jmp、jge指令的寻址方式,如果答“偏移导址”,可能也会给分

偏移寻址

共 0 分 

第45题

(7分)采用swap 指今实现进程互斥。lock为TRUE时,不可进入临界区; lock 为FALSE 时,可以进入临界区。某学生写的代码如下:

1
2
3
4
5
6
7
8
9
10
11
bool lock = FAlSE;//共享变量
......
// 进入区
bool key = TRUE;
if (key == TRUE)
     swap (key,lock);
// 临界区
......
// 退出区
lock=TRUE;
......
1
2
3
4
5
newSwap (boola, bool *b){
       bool temp =*a;
       *a=*b;
       *b=temp;
}

(1)请修改代码,正确实现互斥(不增加语句条数)

(2)是否可以用函数newSwap(&a&b)代替swap 指令?为什么?


[参考答案]

(1)修改进入区代码: if (key == TRUE) 改为 while (key == TRUE)(2分)

修改退出区代码:lock=TRUE;   改为 lock=FALSE;(2分)

(2)不可以代替swap指令。(1分)

因为 newSwap函数的执行不具备原子性,执行newSwap 的过程中,可能会切换为其他线程,从而导致无法正确实现线程互斥。(2分)

共 0 分 

第46题

(8分)进程P通过系统调用请求从键盘读入一个字符。题目乱序给出6个处理步骤:1.将进程P插入就绪队列,2.将进程插入阻塞队列,3.将字符从键盘控制器读入系统缓冲区,4.启动中断处理程序,5.系统调用返回,6.用户通过键盘输入字符。

(1)1.的前、后分别是哪个步骤? 6.的后面是什么步聚?

(2)哪个步骤一定会使CPU从P进程切换到其他进程?哪个步骤之后调度器可以调度进程p?(3)哪个步骤是由键键盘驱动程序完成的?

(4)中断处理时,进程P是什么状态? CPU处于内核态还是用户态?


[参考管案]

(1)1的前面是3(1分)

1的后面是5(1分)

6的后面是4(1分)

(2)2使得CPU从进程P切换为其他进程 (1分)

1之后调度器可以调廉进程P (1分)

(3)3由键盘驱动程序完成(1分)

(4)中断处理时,进程P处于阻塞态(1分)

CPU处于内核态(1分)

[解析]6个步骤的处理序是: 2 6 4 3 1 5

共 0 分 

第47题

计算机网络:

(9分)主机H登录FTP服务器后自服务器上估一个大小为18000B的文件F,假设H传输F建立数据连接时,选择的初始序号为100,MTU=1000B,拥塞控制初始闻值为4MSS,RTT=10ms,忽略TCP的传输时延,在F的传榆过程中,H以MSS段向服务器发送散据,且未发生差错、丢包和乱序。

(1)FTP的控制连接是持久的还是非持久的?FTP的数据连接是持久的还是非持久的?H登录FTP服务器时,建立的TCP连接是控制连持还是数据连接?

(2)H通过数据连接发送F时,F的第一个字节序号是多少?在断开数据连接的过程中,FTP发达的第二次挥手的ACK序号是?

(3)F发送过程中,当H收到确认序号为2101的确认段时,H的拥塞窗口调整为多少?收到确认序号为7101的确认段时,H的拥塞窗口调整为多少?

(4)H从请求建立数据连接开始,到确认F已被服务器全部接收为止,至少需要多长时间期间应用层数据平均发送速率是多少?


[参考答案]

(1)控制连接是持久的;数据连接是非持久的;控制连接。

(2)101;18102

(3)3MSS;5MSS

(4)6个RTT=60ms;18000B/60ms = 2.4Mbps

共 0 分