南开大学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语言部分考试内容一览表。
南开大学841计算机信息检索2016年考研专业课真题试卷
学 院:140商 学院 考试科 目:阴 1计 算机信息检索 专 业:情 报学
臆 青将所有答案写在 影 孵 翻 旺 '绕 眦 斓
一、简述题 (每 题 10分 ,共 100分 )
1.何 为 “信息检索 ”?请 解释其含义 。 2.简 述信息检索系统的组成部分及各部分的功能 。 3.简 述关联数据 的特性 。
上无效:
4.简 述元数据 的类型及其功能。
5.简 述搜索 引擎 的结构与原理 。
6.何 为 “移动搜索 ”?主 要方式有哪些 ? 7.布 尔模型与向量空间模型各有何优 、缺点? 8.何 为 “信息过滤 ”?其 与 “信息检索 ”有何不 同? 9.何 为 “相关反馈 ”?相 关反馈有哪些主要的技术方法 ?
lO。 何为 “相关性 ”?请 列举相关性 的类型并简要解释其含义 。
二、论论述个性化信息检索 的发展及现有 的实现个性化信 息检索 的主要方法和途径 。如何才
^
能使个性化信息裣索更有效?请 阐述你的个人观点。 如信何息将硷索“研用户死万”这荷耍一要重视素融‘J角入户信息”?检请索论研述究中“用。户”在信息检索过程中的角色,并 阐述
南开大学100题c语言
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;xcfb}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
数据结构C语言版部分习题及答案
国家计算机等级考试二级C语言公共基础知识总结第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
2016年南开大学计算机技术考研·参考书目·考研笔记·内部资料·主导教师·专业课复习方法
2016年南开大学计算机技术考研·参考书目·考研笔记·内部资料·主导教师·专业课复习方法程序设计与数据结构《数据结构算法与应用_C++语言描述》Sartej Sahni著机械工业出版社《高级语言C++程序设计》刘璟,周玉龙著高等教育出版社专业课的复习和应考有着与公共课不同的策略和技巧,虽然每个考生的专业不同,但是在总体上都有一个既定的规律可以探寻。
以下就是针对考研专业课的一些十分重要的复习方法和技巧。
一、专业课考试的方法论对于报考本专业的考生来说,由于已经有了本科阶段的专业基础和知识储备,相对会比较容易进入状态。
但是,这类考生最容易产生轻敌的心理,因此也需要对该学科能有一个清楚的认识,做到知己知彼。
跨专业考研或者对考研所考科目较为陌生的同学,则应该快速建立起对这一学科的认知构架,第一轮下来能够把握该学科的宏观层面与整体构成,这对接下来具体而丰富地掌握各个部分、各个层面的知识具有全局和方向性的意义。
做到这一点的好处是节约时间,尽快进入一个陌生领域并找到状态。
很多初入陌生学科的同学会经常把注意力放在细枝末节上,往往是浪费了很多时间还未找到该学科的核心,同时缺乏对该学科的整体认识。
其实考研不一定要天天都埋头苦干或者从早到晚一直看书,关键的是复习效率。
要在持之以恒的基础上有张有弛。
具体复习时间则因人而异。
一般来说,考生应该做到平均一周有一天的放松时间。
四门课中,专业课(数学也属于专业课)占了300分,是考生考入名校的关键,这300分最能拉开层次。
例如,专业课考试中,分值最低的一道名词解释一般也有4分或者更多,而其他专业课大题更是动辄十几分,甚至几十分,所以在时间分配上自然也应该适当地向专业课倾斜。
根据我们的经验,专业课的复习应该以四轮复习为最佳,所以考生在备考的时候有必要结合下面的内容合理地安排自己的时间:第一轮复习:每年的2月—8月底这段时间是整个专业复习的黄金时间,因为在复习过程遇到不懂的难题可以尽早地寻求帮助得到解决。
南开大学816C语言与数据结构专业硕士考研真题
南开大学816C语言与数据结构专业硕士考研真题一、南开大学软件学院815C语言与数据结构专业硕士考研真题二、一、选择题1以下均是合法变量名的是()。
[武汉科技大学2019研]A.#name totalB.node value_maxC._var longD.stu-code a+b【答案】B@@@@【解析】C语言中变量名只能包含数字,字母和下划线,且只能以字母和下划线开始。
A项含非法字符#,错误;C中long为关键字,变量不能以关键字命名;D中含非法字符-和+。
2以下选项中不属于C语言类型的是()。
[武汉科技大学2019研] A.short intB.unsigned long intC.charD.bool【答案】D@@@@【解析】C语言中没有bool型,只有C++才有boolean型,也称bool。
C语言中一般用“0”表示“假”,用“1”表示“真”。
3若有声明语句:int x; char y[20]; double z; 则正确的输入语句是()。
[武汉科技大学2019研]A.scanf("%d%c%le\n",&x,&y,&z);B.scanf("%2d%s%lf",&x,&y,&z);C.scanf("%d%s%lf",&x,y,&z);D.scanf("%x%s%3.2f",&x,y,&z);【答案】C@@@@【解析】y为一维数组名,指向数组首元素的地址,因此不需要再使用取地址运算符&,AB错误;D中%3.2f表示长度为3,小数为2位,但是小数点也占一位,因此D错误,答案选C。
4若a、b和t都为int变量,则下面不能交换变量a和b值的是()。
[武汉科技大学2019研]A.t=a; a=b; b=t;B.a=t; t=b; b=a;C.t=b; b=a; a=t;D.a=a+b; b=a-b; a=a-b;【答案】B@@@@【解析】B中首先把t的值赋值给了a,则a的值已经被取代了,后面执行b=a,则ab的值都等于t的值。
数据结构考研真题及其答案
一、选择题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(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【南京理工大学 2000 一、2 (1.5分)】 (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 )。
天津市考研计算机复习资料数据结构重点习题汇总
天津市考研计算机复习资料数据结构重点习题汇总数据结构是计算机科学与技术专业考研中的一门重要课程,它是计算机科学的基础和核心。
考研复习的过程中,掌握数据结构的相关知识和解题技巧是非常关键的。
本文将为大家提供一些天津市考研计算机复习资料中的数据结构重点习题,希望对大家的备考能够有所帮助。
一、线性表1. 设计一个单链表,实现将两个有序单链表合并为一个有序单链表的算法。
2. 给定一个含有 n 个元素的单链表,编写一个算法,删除倒数第 k个节点。
二、栈和队列3. 设计一个算法,利用两个栈实现一个队列。
4. 给定一个字符串表达式,设计算法计算其值。
例如,输入"3+4*5-2",输出 17。
三、树5. 给定一个有序数组,构造一个平衡二叉搜索树。
6. 设计一个算法,判断一个二叉树是否为满二叉树。
四、图7. 使用深度优先搜索算法对一个无向图进行遍历。
8. 使用广度优先搜索算法对一个有向图进行遍历。
五、排序算法9. 实现冒泡排序算法,并分析其时间复杂度。
10. 实现堆排序算法,并分析其时间复杂度。
六、查找算法11. 实现二分查找算法,并分析其时间复杂度。
12. 实现哈希查找算法,并分析其时间复杂度。
以上习题只是天津市考研计算机复习资料中数据结构部分的一小部分重点,希望大家在复习的过程中能够灵活运用所学知识,多做习题加深理解,提升解题能力。
祝愿大家都能取得优异的考研成绩!这些习题涉及到的具体实现细节和算法分析可以在相关的书籍和资料中找到,建议大家结合多种复习资料进行深入学习和练习。
(以上内容仅供参考,具体复习内容还需根据自身情况进行调整)。
南开大学《c往年试卷》2.docx
所有问答题1、下面程序的输出结果为"student teacher",请将程序填写完整。
#inelude <iostrcam>using namespace std;void swap ( ___ ①___ ){char *temp;temp = strl;—©;str2 = temp;)int main(){char *sl =,/teacher,/, *s2 = z/studont";swap(si, s2);cout<<sl<<zz z,«s2«endl;return 0;}评析:① char * &strl, chdr * &str2 ② strl=str2该题考察了(1)形式参数的类型与实参要匹配;(2)函数调用默认是值传递,如果传递的参数不是引用的话, 函数体内部的操作是对内部局部变危的操作,无法影响到具体传递进來的实参值。
(3) sw卯函数木身实现了交换的功能,引入了一个临时变量完成交换。
等级:1 难度:2知识点:CPP部分/函数/函数的引用调用2、下面程序输出结杲为5,请将程序填写完整。
^include <iostream> using namespace std;int array[] = {1, 2, 3};__ ① index (int i)■{return ____ ②___ ;)int main(){in dex(2) = 5;cout<<array [2] «endl; return 0;)评析:① int & ② direyli]该题考察了函数的返回值为引用,因为执行Tindex(2) = 5的操作,因此,函数的返回值应该为一个引用。
等级:1 难度:2知识点:CPP部分/函数/返回引用的函数3、下面程序输出结果为"Beijing Tianjin Shanghai",请将程序填写完整。