
【解析】 函数 S ( int n )是一个递归函数 : ①当实际参数小于等于零时则返回 0 , 并终止递归 ; ②当实际参数大于零时则递归调用 S ( n-l ) , 并将 S ( n-1 )的结果加上 n 作为返回值。程序从main()函数开始,首先调用main()函数;在main()函数中调用S(1)函数时,将函数的上下文保存到栈中,并进入函数S(1);由于函数S(1)的实际参数大于零,需要调用S(0),故将S(1)函数的上下文保存到栈中,进入S(0);在S(0)中,实际参数小于等于零,递归终止

直接利用卡特兰数,h(n)=C(2n,n)/(n+1)。求得是14

解析:
在哈夫曼树中,左右孩子权值之和为父结点权值。仅以分析选项A为例:若两个10分别属于两棵不同的子树,根的权值不等于其孩子的权值和,不符;若两个10属同棵子树,其权值不等于其两个孩子(叶结点)的权值和,不符。B、C选项的排除方法一样。


解析:
只有两个结点的平衡二叉树的根结点的度为1,A错误。中序遍历后可以得到一个降序序列,树中最大元素一定无左子树(可能有右子树),因此不一定是叶结点,B错误。最后插入的结点可能会导致平衡调整,而不一定是叶结点,C错误。




解析:
画出查找路径图,因为折半查找的判定树是一棵二叉排序树,看其是否满足二叉排序树的要求。

很显然,选项A的查找路径不满足
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;


解析:
基数排序的元素移动次数与关键字的初始排列次序无关,而其他三种排序都是与关键字的初始排列明显相关的

解析:
将堆画成完全二叉树的形式,堆删除堆顶元素后,是将二叉树最后的叶子节点12放到堆顶,然后将12与其子节点15和10相比较,当15>12时,堆顶12不动,将12与10判断,12>10,不符合小根堆,所以将10和12对调,然后还要将12与其子节点16比较。 所以总共比较3次。
解析:A
硬件能直接执行的只能是机器语言(二进制编码),汇编语言是为增强机器语言的可读性和记忆性的语言,经过汇编后才能被执行

解析:数的表示暂时先不看

解析:数的表示暂时先不看



解析: (页式虚拟存储混淆项)
上述指令的执行过程可划分为取数、运算和写回过程,取数时读取xaddr可能不需要访问主存而直接访问Cache,而写直通方式需要把数据同时写入Cache和主存,因此至少访问1次。

解析:DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。SDRAM表示同步动态随机存储器。
18.某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是 。
-
8004和8008 -
8002和8007 -
8001和8008 -
8000和8004
解析:每个访存地址对应的存储模块序号(0、1、2、3)如下所示:
| 访存地址 |
8005 |
8006 |
8007 |
8008 |
8001 |
8002 |
8003 |
8004 |
8000 |
| 模块序号 |
1 |
2 |
3 |
0 |
1 |
2 |
3 |
0 |
0 |
其中,模块序号=访存地址%存储器交叉模块数。
判断可能发生访存冲突的规则是:给定的访存地址在相邻的四次访问中出现在同一个存储模块内。据此,根据上表可知8004和8000对应的模块号都为0,即表明这两次的访问出现在同一模块内且在相邻的访问请求中,满足发生冲突的条件。
19.下列有关总线定时的叙述中,错误的是 ()。
-
异步通信方式中,全互锁协议最慢 -
异步通信方式中,非互锁协议的可靠性最差 -
同步通信方式中,同步时钟信号可由各设备提供 -
</半同步通信方式中,握手信号的采样由同步时钟控制
本文深入探讨了编程中的递归函数实现、哈夫曼树分析、数据结构、数据库管理和操作系统概念。通过实例分析了算法如卡特兰数计算、二分查找、堆排序、内存管理和虚拟存储器的工作原理。此外,还涉及了网络协议如TCP/IP、HTTP和DNS的交互,以及网络编程中的错误处理和资源管理。最后,文章讨论了并发控制、死锁处理和操作系统中的同步机制,如信号量和PV操作。
最低0.47元/天 解锁文章

1053

被折叠的 条评论
为什么被折叠?



