logo资料库

2013年江西师范大学C语言程序设计与数据结构考研真题B卷.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
2013 年江西师范大学 C 语言程序设计与数据结构考研真题 B 卷 一、简答题(共 8 小题,其中第 8 小题 8 分,其余每小题 6 分,共 50 分) 1、简述 C 语言中有哪些关系运算符。 2、C 语言中,输入操作有哪些常用函数? 3、简述以下 if 语句的执行过程。 if(表达式 1) 语句 1; else if(表达式 2) 语句 2; else 语句 3; 4、简述在 C 语言的循环语言中 break 语句与 continue 语句的区别。 5、抽象数据类型队列的常用操作有哪些(至少写出三个)? 6、二叉树的常见遍历方法有哪些? 7、什么叫函数的递归调用?
8、试分别列举出一个满二叉树和一个完全二叉树的例子。 a[50]; 则数组 a 的元素个数为_________。 二、填空题(5 个空,每空 2 分,共 10 分) 1、C 语言程序的三种基本结构是顺序结构、选择结构和_________结构。 2、若已定义 int x=4,y=2,z=3,则表达式 x-y || z 的值为_________。 3、设有语句 int 4、若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++;则 b 和 y 的值分别是________、 ________。 三、判断题,对打“√”,错打“X”(5 小题,每小题 2 分,共 10 分) 1、线性表中除了第一个节点和最后一个节点外,其余的结点有且仅有一个前驱结点和一个 后继结点。 2、两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈 底分别设在这片内存空间的两端。 3、队列是一种特殊的线性表,其特殊性在于插入和删除操作都在表的同一端执行。 4、二叉树中任一个结点的度均为 2。 5、哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根节点较近。 四、应用题(3 小题,每小题 10 分,共 30 分) 1、试分别画出具有 3 个结点的二叉树的五种不同形态。 2、假设通讯电文中只用到了 A,B,C,D,E,F 6 个字母,他们在电文中出现的相对频率分别为 4,18,13,8, 20 和 9,请根据字符出现频率构造对应的 Huffman 树,并为它们设计 Huffman 编码。 3、已知无向图 G=(V, E),其中 V 表示顶点集合,E 表示边集合,且 V={a, b, c, d, e}, E={, , , , , },请画出无向图 G,并写出该无向图从顶 点 a 开始的深度优先(DFS)遍历结果。 五、程序设计题(5 小题,每小题 10 分,共 50 分) 1、从键盘输入一个字符串(字符中不包含空格),当输入回车时认为输入结束,假设输入的 字符串存放在一个字符数组中,试编写一个 C 语言程序统计输入字符串中小写英文字母、大 写英文字母、数字字符、其他字符的个数。 2、有一对兔子,从出生后第 3 个月起每月生一对兔子,小兔子长到第三个月后每月又生一 对兔子,假如兔子都不死,试编写一个 C 语言程序求一年中可以繁殖成多少对兔子?提示: 兔子的规律为数列 1,1,2,3,5,8,13,...。 3、试编写一个 C 函数 int isprime (int x),判断整数 x 是否是素数,如果是素数,函数 返回 1,否则,返回 0。所谓素数,是指除了 1 和本身之外,不能被其他任何整数整除的数。 4、试编写一个算法 node *lkinsert(node* head, datatype x,datatype a),实现在带头 结点的 head 单链表中值为 a 的结点之后插入新元素 x。假定程序中已有说明如下: tpedef int dataType; typedef struct link_node { dataType data; struct link_node next; } node; 5、试编写一算法 void sort (table *L),实现将顺序表 L 中的记录按排序码从小到大进行
排序(排序算法不限)。假定程序中已有说明如下: #define MAXSIZE 100 /*顺序表中记录个数的最大值*/ typedef int keytype; typedef struct{ /*定义排序码类型为整数类型*/ keytype key; int other; }recordtype; typedef struct{ /*记录中除排序码外的其他域*/ /*记录类型的定义*/ recordtype r[MAXSIZE+1]; int length; }table; /*待排序顺序表中记录的个数*/ /*待排序顺序表类型*/
分享到:
收藏