《东北大学-842-2003-真题》由会员分享,可在线阅读,更多相关《东北大学-842-2003-真题(3页珍藏版)》请在金锄头文库上搜索。
1、东北大学 2003 年攻读硕士学位研究生试题 考试科目:C 语言程序设计与数据结构 数据结构部分 东北大学 2003 年攻读硕士学位研究生试题 考试科目:C 语言程序设计与数据结构 数据结构部分 一、 (20 分)简要回答下列问题 1 (7 分)对于有 n 个顶点的无向图和有向图,采用邻接矩阵表示,如何判断以下问题:图中有多少条边?任意两个顶点 i 和 j 之间是否有边相连?任意一个顶点的度是多少? 2 (8 分)判别下列序列是否为堆(小根堆或大根堆) ,若不是,则将其调整为堆: (1) (100,86,48,73,35,39,42,57,66,21) (2) (12,70,33,65,24,
2、56,48,92,86,33) (3) (05,23,20,35,28,38,29,61,56,76,40,100) 3(5 分) 设 A 和 B 均为下三角矩阵, 每一个都有 n 行 n 列。 因此在下三角区域中各有 n(n+1)/2个无素。另设有一个二维数组 C,它有 n 行 n +1 列。试设计一个方案,将两个矩阵 A 和 B中的下三角区域元素存放于同一个 C 中。要求将 A 的下三角区域中的元素存放于 C 的下三角区域中,B 的下三角区域中的元素转置后存放于 C 的上三角区域中。并给出计算 A 的矩阵元素 aij和 B 的矩阵元素 bij在 C 中的存放位置下标的公式。二、 (15 分
3、)已知 f 为单链表的表头指针,链表中存储的都是整型数据,试设计算法将此链表的结点按照递增次序进行就地排序。 三、 (20)给出中序线索二叉树的结点结构,试编写在不使用栈和递归的情况下先序遍历中序线索二叉树的算法。 四、 (20)设关键字是一个由 26 个小写字母组成的字符串,哈希表的长度为 26。试编写算法,建立哈希表,并以第一个字符的字典顺序输出哈希表中的所有关键字。设哈希函数为 hash(x)=x 中的第一个字符在字典顺序中的序号,采用线性探测再散列法来解决冲突。 (假设函数 f(x)能够计算出 x 中的第一个字符在字典顺序中的序号。 ) C 语言程序设计部分 C 语言程序设计部分 一、
4、回答下列问题(10 分,每小题 5 分,答案写在答卷纸上) 1下面定义是否正确,为什么? void(*f(int no)(); 写出指向函数 LRESULT MyProc();函数指针的定义,并利用该指针调用函数 MyProc。 2.简述 C 语言中,参数处理的方式。二、写出下列程序的运行结果(20 分,每小题 5 分,答案写在答卷纸上)1int main()char strlist35=0; 各个学校计算机/软件专业考研真题 免费分享 h t t p s :/g i t h u b .co m /cs s e k y /cs k a o y a n获取 考研经验/复试资料/考研资讯 关注微信
5、公众号 计算机与软件考研 微信公众号 计算机与软件考研strcpy(strlist1,”write-”); strcpy(strlist2,”here”); printf(“%s/%s/%s”,strlist0, strlist1,strlist2); 2. int main() int k; char c; for(k=1,c=A;cF;k+ switch(+c) caseA: k+;break; caseB: k*=2;break; caseC: k-; caseD: k%=3;continue; default: k+=2; caseE: k/=2; caseF: k+; k+; pri
6、ntf(“%d”,k); 3. void f(int *p, int *a) *p=10;p=a;*p=100; int main() int x=0,*p,a3=1,2,3; p=&x; f(p,a); printf(“%d-%d-%d-%d”,x , *p, a0, a1); 4. int main() float score4= 60,47,80,26,65,59,67,90,43,78,90,56 ; float *search(float(*pointer)4,int *pn); float *p; int i, k=0,flag=1; for(i=0;i3;i+,k=0,flag=
7、1 while(p=search(score+i, &k)=*(score+i) if(flag)printf(“nNo.%d scores:”,i);flag=0; printf(“%7d %5.1f”,k+1, *(p+k); 各个学校计算机/软件专业考研真题 免费分享 h t t p s :/g i t h u b .co m /cs s e k y /cs k a o y a n获取 考研经验/复试资料/考研资讯 关注微信公众号 计算机与软件考研 微信公众号 计算机与软件考研k+ float *search(float(*pointer)4,int *pn) int i; float
8、*pt; pt=*(pointer+1); for(i=*pn;i4;i+ if(*(*pointer+i)60 *pn=i; return *pointer; return pt; 三、 (10 分)已知 2000 年 1 月 1 日为星期六,编程求任意给定年元月 1 日的星期。 四、 (17)今有一英汉词典文件 EC.txt (文件大小超过 1MB),每一词条格式如下: #词条%i 词性%z 汉译! 例如 book 词条如下: #book%i n%z 书!%z 支票!%z 帐簿!%i,vt%z 预定!%z 登记姓名! 编程完成 (1) 对词典建立索引文件, 每间隔 10kb, 抽取一词条,
9、 当不是完整词条时, 抽取不超过 10kb的最大间隔的词条。索引文件格式为词条 词条在文件中的位置 其中,词条为 50bytes, 位置长整数占 8bytes。该功能用函数 CreateIndex 完成。 (2)根据索引大小,将建立的索引内容装入一连续缓冲区。该功能用函数 LoadIndex 完成。 五、 (18 分)用回溯算法,编写函数 fill(int num,int n),用 0 到 num-1 的数填充 nn 的矩阵,要求填充的数不能重复,各行元素之和相同,各列元素之和也相同,输出所有可能的填充结果。 各个学校计算机/软件专业考研真题 免费分享 h t t p s :/g i t h u b .co m /cs s e k y /cs k a o y a n获取 考研经验/复试资料/考研资讯 关注微信公众号 计算机与软件考研 微信公众号 计算机与软件考研