2013 年江西师范大学 C 语言程序设计与数据结构考研真题 A
卷
一、简答题(共 8 小题,其中第 5 小题 8 分,其余每小题 6 分,共 50 分)
1、简述 C 语言中有哪些算术运算符。
2、简述 C 语言中,输出操作有哪些常用函数?
3、简述以下 switch 语句的执行过程。
switch (表达式)
{
}
case 常量 1: 语句 1;
case 常量 2: 语句 2;
case 常量 3: 语句 3;
.......
case 常量 n: 语句 n;
default : 语句 n+1;
4、简述 C 语言中 while 循环和 do-while 循环的异同。
5、什么叫串(字符串)?空串和空格串是否相同,为什么?
6、抽象数据类型堆栈的常用操作有哪些(至少写出三个)?
7、在顺序队列中,什么叫假溢出?
8、简述二叉树和一般树的主要区别。
二、填空题(5 个空,每空 2 分,共 10 分)
1、在 C 语言中,正确的标识符是由字母、________、下划线组成的,其中第一个字符应为
字母或下划线。
2、若已定义 int x=6,y=3,则计算表达式 x-=y 后的 x 值是_________。
3、若有 10
, , , , , },请画出无向图 G,并写出该无向图 G 的
邻接矩阵。
x%11,给定的关键字序列为 1,13,12,34,
=
五、程序设计题(5 小题,每小题 10 分,共 50 分)
1、从键盘上输入 10 个评委的分数,去掉其中一个最高分和一个最低分,求出其余 8 个人的
平均分,最后输出最高分,最低分和平均分。试编写一个 C 语言程序实现以上功能。
2、试编写一个 C 语言程序,求一分数序列 的前 15 项之和。
3、试编写一个 C 函数 void inverted(int s[],int n),实现将数组 s 中的 n 个值按逆序重
新存放。例如,原来存放的顺序为 1,3,8,6,11,逆序存放后为 11,6,8,3,1。
4、试编写一个算法 node *dele(node *head, datatype x),实现在带头结点的 head 单链
表中删除值为 x 的结点。假定程序中已有如下说明:
tpedef int datatype;
typedef struct link_node
{ datatype data;
struct link_node next;
} node;
5、试编写一个算法 int binsearch(seqlist L,datatype key),实现用非递归的二分查找
法在顺序表 L 中查找是否存在关键字为 key 的数据元素,若查找成功则返回所在位置,否则
返回-1。假定程序中已有说明如下:
#define maxsize 100
typedef
typedef struct {
/*预定义最大的数据域空间*/
/*假设数据类型为整型*/
int datatype;
datatype data[maxsize];
int len;
} seqlist;
/*线性表长度*/
/*预定义的顺序表类型*/
/*此处假设数据元素只包含一个整型的关键字域*/