logo资料库

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

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
2014 年江西师范大学 C 语言程序设计与数据结构考研真题 B 卷 一、简答题(共 8 小题,其中第 7 小题 8 分,其余每小题 6 分,共 50 分) 1.在 C 语言中,结构化程序设计有哪三种基本控制结构? 2.简述以下 if 语句的执行过程。 if(表达式 1) 语句 1; else if(表达式 2) 语句 2; 3.简述 C 语言中 break 语句的作用。 4.请给出指针变量定义的一般形式,并举例说明。 5.常用的数据存储结构分为哪几种? 6.对于一个队列,若输入序列为{a,b,d,e,f},试写出其对应的输出序列。 7.假设双链表结构的 C 语言描述如下: typedef int datatype; typedef struct dlink_node{ datatype info; struct dlink_node llink,rlink; }dnode; 根据图 1 回答以下问题: (1)如何访问 q 指针所指结点的数据域? (2)如何访问 q 指针所指结点的直接后继结点的数据域? head ∧ ∧ q 图 1 8、什么叫二叉树? 二、填空题(5 个空,每空 2 分,共 10 分) 1.在 C 语言中,实型变量的类型说明符有:__________、double。 2.若已定义 int a=1,b=2,c=3,则表达式 a||b&&c 的值为_________。 3.若有 5<=x<=10,则其正确的 C 语言表达式是_________。 4.执行下面程序段后,a 的值为_________。 int a=4,b=6;
a=a+b; 5.下面程序运行后,输出的结果是___________。 #include void main() { int x=10,y=3; printf(“%d\n”,y=x%y); } 三、判断题,对打“√”,错打“X”(5 小题,每小题 2 分,共 10 分) 1、栈的存储方式既可以是顺序存储,也可以是链式存储。 2、队列是一种特殊的线性表,具有先进先出的性质。 3、如果一个串中的所有字符均在另一个串中出现,则前者是后者的子串。 4、使用二分法检索时要求线性表有序并且采用顺序存储结构。 5、线性表若采用链式存储结构时,要求内存中可用存储单元的地址必须是连续的。 四、应用题(3 小题,每小题 10 分,共 30 分) 1、对于图 2 所示的二叉树,请回答以下问题: B C A D 图 2 E F G (1) 二叉树的高度(深度)为多少? (2) 该二叉树是否是满二叉树?是否是完全二叉树? (3) 写出这棵二叉树的前序遍历序列。 2、假设用于通信的电文由 6 个字母 A,B,C,D,E 和 F 组成,各字母在电文中出现的相对频率 分别为 0.3,0.07,0.1,0.18,0.2 和 0.06,请根据字符出现频率构造对应的 Huffman 树, 并为它们设计 Huffman 编码。 3、对于图 3 所示的无向图 G,试给出:
A C E 图 3 D B (1) 该无向图从顶点 A 开始的深度优先(DFS)遍历结果。 (2) 该无向图从顶点 A 开始的广度优先(BFS)遍历结果。 五、程序设计题(5 小题,每小题 10 分,共 50 分) 1、有一函数:y= x 2 x 3 x      3 x  x  x  3  10 10 试编写一个 C 语言程序,从键盘上输入 x 的值,根据上面的函数,求出 y 的值,并输出。 2、假如某数列第 1,2 项分别为 0 和 1,以后每个奇数编号的项是前两项之和,偶数编号的 项是前两项之积,生成并打印该数列的前 15 项,生成的 15 个数存放在一维数组 x 中,并按 每行 5 项的形式输出。 3、试编写一个 C 语言程序,先从键盘为一个整型二维数组 a[10][10] 赋值,然后计算并输 出 a 数组中各元素的最大值。 4、试编写一个算法 int count_x(sequence_list sl, int x),计算并返回顺序表中值为 x 的结点的个数。 假定程序中已有用 C 语言描述的顺序表结构如下: #define MAXSIZE 100 /*预定义最大的数据域空间*/ typedef int datatype; /*假设数据类型为整型*/ typedef struct{ datatype a[MAXSIZE]; /*此处假设数据元素只包含一个整型的关键字域*/ int size; /*线性表长度*/ }sequence_list; /*预定义的顺序表类型*/ 5、试编写一个算法 node *insert(node *headA, node *headB),实现把带头结点的 headB 单链表中值为偶数的所有结点依次插入到带头结点的 headA 单链表尾部。假定程序中已有如 下说明:
typedef int datatype; typedef struct link_node{ datatype info; struct link_node *next; }node;
分享到:
收藏