1.写出循环队列的定义,以及创建队列,删除一个节点,增加一个节点以及计算队列长度的算法
2.在c语言中,内存分配时栈和堆的区别,各自的优缺点
malloc函数是堆分配函数,是从堆中分配到空间
3.某带头结点的.单链表的结点结构如下:
typedef struct nodel{
int data
struct nodel*next;
}node;
试设计一个算法,void copy(node *head1, node *head2),用c语言设计,将以head1
为头指针的单链表复制到一个不带头结点且以head2为头指针的单链表中。
4.写出函数指针的定义
int (*p)()
ic变量和全局变量的区别
静态变量只能在它的访问范围内访问
全局变量全局可访问
全局或静态变量,就在全局数据段中分配空间,也就是静态分配
6.有一个12个元素的有序表,关键字是数据元素的值,
{4,7,10,12,15,17,20,24,26,29,30,32}
试写出用二分法查找k=12的查找过程,共用几次比较完成?
7.给了一个数组,让你从小到大排序,记得几种排序算法写上,再问你你写的这几种算法那种效率最高,
8.a和b通信,a需要知道b的身份,通常的办法是a要获得b的用户代码和固定的
口令进行比较,但是为提高系统的安全性,希望用户b的口令不固定,每次验证都不相同,给定下列条件,请设计一个认证过程进行描述。
条件:a和b已经协商好双方通信的加密算法和密钥。
9.c语言定义双向链表结构,并编程实现2个结点的交换(不是内容交换,是结点的交换)