南开大学816C语言与数据结构2016年考研专业课真题试卷
南开大学《数据结构》期末考试备战考题全集

《数据结构》课程期末复习资料第一章:绪论一、基础知识概念和术语(黑体字部分)。
另外,注意:1、数据元素是数据的基本单位。
2、数据项是数据不可分割的最小单位。
3、数据结构及其形式定义。
四种基本结构:①集合②线性结构③树形结构④图(网)状结构4、数据结构的逻辑结构(抽象的,与实现无关)物理结构(存储结构)顺序映像(顺序存储结构)位置“相邻”非顺序映像(链式存储结构)指针表示关系5、数据类型抽象数据类型(ADT)ADT=(数据对象,数据关系,基本操作)ADT细分为原子类型,固定聚合,可变聚合类型。
6、算法的概念7、算法的五个特征①有穷性②确定性③可行性④输入(0个或多个)⑤输出(1个或多个)8、算法设计的要求:①正确性②可读性③健壮性④效率与低存储量其中正确性的四个层次(通常要求达到C层)。
9、算法的时间复杂度常见有: O(1),O(n),O(n2),O(log2n)1,O(n log2n),O(2n)语句频度,用归纳法计算。
10、算法的空间复杂度二、算法起泡排序。
另一种形式void BubbleSort ( DataType a[], int n ){for ( i=0; i<n-1; i++ )for ( j=0; j<n-i-1; j++ )if ( a[j]>a[j+1] )a[j]<—>a[j+1];}或void BubbleSort ( DataType a[], int n ){for ( i=1; i<n; i++ )for ( j=0; j<n-i; j++ )if( a[j]>a[j+1] )a[j]<—>a[j+1];}或void BubbleSort ( DataType a[], int n )1分析算法的时间复杂度时,log2n常简单记作log n。
(完整版),数据结构c语言版试题大全(含答案),推荐文档

B
16C
18、逻辑结构|顺序存储结构|链式存储结构|以上都对
B
17B
19、每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域|结点的最后一个数据域是 18B
指针类型|每个结点有多少个后继,就设多少个指针域
A
19A
20、效率与采用何种存储结构有关|是根据存储结构来定义的|有算术运算和关系运算两大类|必须用 20A
31、一个有限序列,可以为空|一个有限序列,不可以为空|一个无限序列,可以为空|一个无限序列, 37A
不可以为空
A
38B
32、必须是连续的|一定是不连续的|部分地址必须是连续的|连续与否均可以
D
39B
33、可随机访问任一结点|插入删除不需要移动元素|不必事先估计存储空间|所需空间与其长度成正 40D
-3-
35、设线性表有 n 个元素,以下操作中,_______在顺序表上实现比在链表上实现效率更高。 输出第 i(1<=i<=n)个元素值|交换第 1 个元素与第 2 个元素的值|顺序输出这 n 个元素的值|输出与给定值 x 相等的元素在线性表中的序号 36、对于一个线性表,既要求能够较快地进行插入和删除,又要求存储结构能够反映数据元素之间的逻辑 关系,则应采用_______存储结构。 顺序|链式|散列|索引 37、设线性表中有 2n 个元素,以下操作中,______在单链表上实现要比在顺序表上实现效率更高。 删除指定的元素|在最后一个元素的后面插入一个新元素|顺序输出前 k 个元素|交换第 i 个元素和第 2n-i-1 个元素的值(i=0,1,…,n-1) 38、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是______。 单链表|静态链表|线性链表|顺序存储结构 39、如果最常用其所长的操作是取第 i 个结点及其前驱,则采用______结构方式最节省时间。 单链表|双链表|单循环链表|顺序表 40、与单链表相比,双链表的优点之一是______。 插入、删除操作更简单|可以进行随机访问|可以省略表头指针或表尾指针|访问前后相邻结点更灵活 41、数据结构在计算机内存中的表示是指______. 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系 42、下面程序段的时间复杂度为_________. O(m)| O(n)|O(m*n)|O(m+n)
2016年南开大学计算机技术考研·参考书目·考研笔记·内部资料·主导教师·专业课复习方法 - 副本

2016年南开大学计算机技术考研·参考书目·考研笔记·内部资料·主导教师·专业课复习方法程序设计与数据结构《数据结构算法与应用_C++语言描述》Sartej Sahni著机械工业出版社《高级语言C++程序设计》刘璟,周玉龙著高等教育出版社专业课的复习和应考有着与公共课不同的策略和技巧,虽然每个考生的专业不同,但是在总体上都有一个既定的规律可以探寻。
以下就是针对考研专业课的一些十分重要的复习方法和技巧。
一、专业课考试的方法论对于报考本专业的考生来说,由于已经有了本科阶段的专业基础和知识储备,相对会比较容易进入状态。
但是,这类考生最容易产生轻敌的心理,因此也需要对该学科能有一个清楚的认识,做到知己知彼。
跨专业考研或者对考研所考科目较为陌生的同学,则应该快速建立起对这一学科的认知构架,第一轮下来能够把握该学科的宏观层面与整体构成,这对接下来具体而丰富地掌握各个部分、各个层面的知识具有全局和方向性的意义。
做到这一点的好处是节约时间,尽快进入一个陌生领域并找到状态。
很多初入陌生学科的同学会经常把注意力放在细枝末节上,往往是浪费了很多时间还未找到该学科的核心,同时缺乏对该学科的整体认识。
其实考研不一定要天天都埋头苦干或者从早到晚一直看书,关键的是复习效率。
要在持之以恒的基础上有张有弛。
具体复习时间则因人而异。
一般来说,考生应该做到平均一周有一天的放松时间。
四门课中,专业课(数学也属于专业课)占了300分,是考生考入名校的关键,这300分最能拉开层次。
例如,专业课考试中,分值最低的一道名词解释一般也有4分或者更多,而其他专业课大题更是动辄十几分,甚至几十分,所以在时间分配上自然也应该适当地向专业课倾斜。
根据我们的经验,专业课的复习应该以四轮复习为最佳,所以考生在备考的时候有必要结合下面的内容合理地安排自己的时间:第一轮复习:每年的2月—8月底这段时间是整个专业复习的黄金时间,因为在复习过程遇到不懂的难题可以尽早地寻求帮助得到解决。
南开大学C语言与数据结构考研大纲及考题真题资料-历年真题集

南开大学C语言与数据结构考研大纲及考题真题资料南开大学C语言与数据结构考研复习都是有依据可循的,考研学子关注事项流程为:考研大纲-参考书-真题资料-复习经验-辅导-复试-导师,缺一不可。
咱们今日分享南开大学C语言与数据结构考研大纲及考题真题资料,帮助大家找到报考学校的命题规律、题型考点、分值分布、难易程度、重点章节、重要知识点等,从而使我们的复习备考更具有针对性和侧重点,提高复习备考效率。
下面是南开大学C语言与数据结构考研考试大纲815C语言与数据结构《C语言与数据结构》之C语言部分考试大纲一、考试目的本考试是全日制软件工程硕士专业学位研究生的入学资格考试之专业基础课,各语种考生统一用汉语答题。
招生院校根据考生参加本考试的成绩和其他三门考试的成绩总分来选择参加第二轮,即复试的考生。
二、考试的范围以下是本科目的考试范围。
1.数据类型,不同类型数据之间的转换和混合运算,类型定义,运算符的运算规则和优先级,表达式;2.程序结构,包括循环,嵌套,和递归;3.函数的定义,调用,和传参数;4.标准函数库中定义的常用函数,包括输入输出函数,数学计算函数,内存操作函数,字符串操作函数等;5.数组和字符串的定义和操作;6.指针的各种用法,包括对字符串指针,数组指针,函数指针等的定义和操作,将指针用作函数参数,以及使用指针进行动态内存管理;7.宏定义和头文件;8.结构体的定义和操作;9.文件操作;10.程序调试技术。
三、考试基本要求1.掌握C语言的基本语法知识。
2.熟练运用C语言进行程序设计的能力。
四、考试形式本考试包括5道编程题考试要求该部分包含5道编程题,要求考生综合运用C语言知识解决面向应用的问题。
编程题不涉及复杂的数据结构、算法,代码行数在100行以内,编程中会用到C标准库中定义的常用函数。
答题和计分要求考生用钢笔或圆珠笔做在答题卷上。
《C语言与数据结构》之数据结构部分考试大纲一、考试目的本考试是全日制软件工程硕士专业学位研究生的入学资格考试之专业基础课,各语种考生统一用汉语答题。
数据结构考研真题及其答案

一、选择题1. 算法的计算量的大小称为计算的〔 B 〕。
【北京邮电大学2000 二、3 〔20/8分〕】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于〔C 〕【中科院计算所 1998 二、1 〔2分〕】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是〔C〕,它必须具备〔B〕这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩大性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、平安性【南京理工大学 1999 一、1〔2分〕【武汉交通科技大学 1996 一、1〔 4分〕】4.一个算法应该是〔 B 〕。
【中山大学 1998 二、1〔2分〕】A.程序 B.问题求解步骤的描述 C.要满足五个根本特性D.A和C.5. 下面关于算法说法错误的选项是〔 D 〕【南京理工大学 2000 一、1〔分〕】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是一样的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的选项是〔 C 〕【南京理工大学 2000 一、2 〔分〕】 (1〕算法原地工作的含义是指不需要任何额外的辅助空间〔2〕在一样的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法〔3〕所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界〔4〕同一个算法,实现语言的级别越高,执行效率就越低4A.(1) B.(1),(2) C.(1),(4) D.(3)【武汉交通科技大学 1996 7.从逻辑上可以把数据构造分为〔 C 〕两大类。
一、4〔2分〕】A.动态构造、静态构造 B.顺序构造、链式构造C.线性构造、非线性构造 D.初等构造、构造型构造8.以下与数据的存储构造无关的术语是〔 D 〕。
2016年全国硕士研究生入学统一考试《计算机学科专业基础综合》真题及标准答案

2016年全国硕士研究生入学统一考试《计算机学科专业基础综合》真题(总分:150.00,做题时间:180分钟)一、单项选择题(总题数:40,分数:80.00)1.已知表头元素为c的单链表在内存中的存储状态如下表所示现将f存放于1014H处并插入到单链表中,若f在逻辑上位于a和e之间,则a,e,f的“链接地址”依次是()。
(分数:2.00)A.1010H,1014H,1004HB.1010H,1004H,1014HC.1014H,1010H,1004HD.1014H,1004H,1010H√prev data next结点,正确的语句序列是()。
(分数:2.00)A.p->next->prev=p->prev;p->prev->next=p->prev;free(p);B.p->next->prev=p->next;p->prey->next=p->next;free(p);C.p->next->prev=p->next;p->prev->next=p->prev;free(p);D.p->next->prey=p->prey;p->prev->next=p->next;fr ee(p);√3.设有如下图所示的火车车轨,入口到出口之间有n条轨道,列车的行进方向均为从左至右,列车可驶入任意一条轨道。
现有编号为1~9的9列列车,驶入的次序依次是8,4,2,5,3,9,1,6,7。
若期望驶出的次序依次为1~9,则n至少是()。
2.00)A.2B.3C.4√D.54.有一个100阶的三对角矩阵M,其元素mi,j(1≤i≤100,1≤j≤100)按行优先次序压缩存入下标从0开始的一维数组Ⅳ中。
元素m30,30在N中的下标是()。
(分数:2.00)A.86B.87√C.88D.895.若森林F有15条边、25个结点,则F包含树的个数是()。
计算机等级C语言考试真题及答案

计算机等级C语言考试真题及答案2016年计算机等级C语言考试真题及答案一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图 B)N-S图 C)结构图 D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性 B)关系 C)键 D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并 B)自然连接 C)笛卡尔积 D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=0?0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ inti,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ cha r str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;charch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#includemain(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′,′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include#includevoid fun(char ?*s[],int n){ char ?*t; int i,j;for(i=0;i<n-1;i++)< bdsfid="259" p=""> </n-1;i++)<> for(j=i+1;j<n;j++)< bdsfid="261" p=""> </n;j++)<> if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char ?*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#includeint f(int x){ int y;if(x==0||x==1) return(3);y=x?*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));下载文档。
2016年南开大学软件院研究生考研《C语言与数据结构》之C语言部分考试大纲(上)

2016年南开大学软件院研究生考研《C语言与数据结构》之
C语言部分考试大纲(上)
一、考试目的
本考试是全日制软件工程硕士专业学位研究生的入学资格考试之专业基础课,各语种考生统一用汉语答题。
招生院校根据考生参加本考试的成绩和其他三门考试的成绩总分来选择参加第二轮,即复试的考生。
二、考试的范围
以下是本科目的考试范围。
1.数据类型,不同类型数据之间的转换和混合运算,类型定义,运算符的运算规则和优先级,表达式;
2. 程序结构,包括循环,嵌套,和递归;
3. 函数的定义,调用,和传参数;
4. 标准函数库中定义的常用函数,包括输入输出函数,数学计算函数,内存操作函数,字符串操作函数等;
5. 数组和字符串的定义和操作;
6. 指针的各种用法,包括对字符串指针,数组指针,函数指针等的定义和操作,将指针用作函数参数,以及使用指针进行动态内存管理;
7. 宏定义和头文件;
8. 结构体的定义和操作;
9. 文件操作;
10. 程序调试技术。
三、考试基本要求
1. 掌握C语言的基本语法知识。
2. 熟练运用C语言进行程序设计的能力。
四、考试形式
本考试包括5道编程题,总分75分。
1.考试要求
该部分包含5道编程题,要求考生综合运用C语言知识解决面向应用的问题。
编程题不涉及复杂的数据结构、算法,代码行数在100行以内,编程中会用到C标准库中定义的常用函数。
2. 题型
算法设计题共5个,每个15分,共75分。
答题和计分
要求考生用钢笔或圆珠笔做在答题卷上。
《C语言与数据结构》——C语言部分考试内容一览表。