数据结构和算法 联系客服

发布时间 : 星期一 文章数据结构和算法更新完毕开始阅读

: 编程

1:给了一点简短程序(包括链表结构的定义,判断函数的声明),主题是判断一个单向链表中是否存在循环的部分,要求完成判断程序的编写。

2:给了一个二叉树的结构程序。要求完成二叉树的中序遍历,使用递归或者非递归实现,其中非递归(栈)实现可以加分。 二:问答

给了通信编码以及其中出现的概率,要求说出霍夫曼编码的原理和特点。写出实现过程,最后给出编码结果。

自己加一题: C程序的存储结构: 局部变量 空闲内存 全局变量 C程序指令 堆 栈 永久 存储区 1:假设一个8位的带符号数a的真值为1,用二进制表示其反码和补码是什么?

2:32位的存储空间(原题是用程序定义、移位的),符号数-1>>1;无符号数0xffffffff>>1;之后两者用十六进制表示分别是什么?0xffffffff,0x7ffffffff

3:考查位域的问题。一共1024个,最低存储空间是2个字节,则以下两种分别占用的空间是多大?

Typedef struct {

Char a; Short b;

Unsigned char c; }

Typedef struct { Char a;

Unsigned char c; Short b; }

4:一段程序,判断程序的意思。涉及到C语言的移位运算。 v=(v^(v-1))>>1 for(c=1;v;c++); { v>>=1; }

5:概率统计题,P(A)的全概率公式,贝叶斯公式分别是什么? 6:请列举出5中嵌入式系统的设备名称:

7:假设一个32位系统,有1KBytescache和SDRAM,cache是一行16Bytes的全相联结构。内存中有一个a[256][256]的数组。比较:两者运行速度的比较以及理由。

for(i=1;i<256;i++)

{

for(j=1;j<256;j++) {

Sum+ = a[j][i]; }

for(i=1;i<256;i++) {

for(j=1;j<256;j++) {

Sum+ = a[i][j]; }

8:说明采样定律的内容:不知道是否时域采样频域采样两者都要求。 9:说说goto语句存在与否的选择,以及原因。

goto语句用于无条件得从程序的一处跳转到另一处。goto语句中断了程序的正常运行顺序,经常用在程序的末尾,用来指示控制权跳转到输入语句,以便读取更多的数据,但是应避免出现无限循环的情况。另一种使用是。当遇到某些特定条件时,吧控制权从循环(或嵌套循环)中转移出来。良好的编程习惯是避免使用goto语句,因为当使用它时,很多编译器的代码效率更低。国多的使用使得程序的逻辑太复杂,程序可读性更差。

程序指令、全局变量和静态变量存储在永久存储区内,局部变量存储在栈中。位于这两个区之间的内存空间可以用作程序运行时的动态分配。这些内存区称为堆。当程序运行时,堆的大小是不断变化的,因为会发生函数或代码块的局部变量的创建和销毁。因此,在动态分配过程中,有可能会遇到内存的“溢出“。在这种情况下,使用内存分配函数将返回空指针(当它们不能分配到所请求的足够内存时)。