1:给了一点简短程序(包括链表结构的定义,判断函数的声明),主题是判断一个单向链表中是否存在循环的部分,要求完成判断程序的编写。
2:给了一个二叉树的结构程序。要求完成二叉树的中序遍历,使用递归或者非递归实现,其中非递归(栈)实现可以加分。
二:问答
给了通信编码以及其中出现的概率,要求说出霍夫曼编码的原理和特点。写出实现过程,最后给出编码结果。
自己加一题:
C程序的存储结构:
8:说明采样定律的内容:不知道是否时域采样频域采样两者都要求。
9:说说goto语句存在与否的选择,以及原因。
goto语句用于无条件得从程序的一处跳转到另一处。goto语句中断了程序的正常运行顺序,经常用在程序的末尾,用来指示控制权跳转到输入语句,以便读取更多的数据,但是应避免出现无限循环的情况。另一种使用是。当遇到某些特定条件时,吧控制权从循环(或嵌套循环)中转移出来。良好的编程习惯是避免使用goto语句,因为当使用它时,很多编译器的代码效率更低。国多的使用使得程序的逻辑太复杂,程序可读性更差。
程序指令、全局变量和静态变量存储在永久存储区内,局部变量存储在栈中。位于这两个区之间的内存空间可以用作程序运行时的动态分配。这些内存区称为堆。当程序运行时,堆的大小是不断变化的,因为会发生函数或代码块的局部变量的创建和销毁。因此,在动态分配过程中,有可能会遇到内存的“溢出“。在这种情况下,使用内存分配函数将返回空指针(当它们不能分配到所请求的足够内存时)。