- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1-3习题答案
回顾 第一章知识要点: 基本概论:数据、数据元素、数据项、数据对象 数据结构(D,S) 逻辑结构:线性结构、树形结构、图形结构、集合结构 存储结构:顺序存储、链式存储、索引存储、散列存储 运算:初始化、查找、插入、删除、遍历等 抽象数据类型(D,S,P) 回顾 第二章知识要点: 算法定义及特性 算法效率分析 时间复杂度:用语句频度总和的数量级描述 空间复杂度:用占有存储空间的数量级描述 回顾 第三章知识要点: C语言重点内容: 参数传递、结构类型、指针 递归 直接递归、间接递归 存储分配方式 静态分配(全局静态变量区)、动态分配(堆区)、自动分配(栈区) 总结 重点:了解数据、数据元素、数据对象、数据结构、数据结构的逻辑结构、数据的存储结构及抽象数据类型概念,熟悉C语言中指针、结构体,学会分析时间复杂度。 1-3章习题 1.1-1.3 见教材 1.4试述数据的逻辑结构与存储结构之间的区别与联系。 答:数据结构包括数据逻辑结构和数据物理结构两个层次,两者是密切相关、相辅相成的。 数据的逻辑结构是对数据元素之间存在的逻辑关系的一种抽象描述;数据的物理结构则为其逻辑结构在计算机中的存储表示或实现。 一种逻辑结构可映射成不同的存储结构,不同的存储实现方法其算法不同,实现的效率也不同。 1.6 什么是抽象数据类型?它有什么作用? 答:抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。抽象数据类型是用户定义的数据类型,使得其使用和实现分类,提高软件的复用率。 2.1 试述算法和程序的区别。 答:算法是指解决问题的一种方法或一个过程,即由若干条指令组成的有穷序列。程序是算法用某种程序设计语言的具体实现。算法中指令的执行必须是有穷性的,而程序可以不满足此要求。 2.4 判断下述计算过程是否是一个算法: Step1: 开始 Step2: n=0; Step3: n=n+1; Step4: 重复步骤3; Step5: 结束; 答:该计算过程不是一个算法,因为其不满足算法的有穷性。 2.6 分析下列程序段的时间复杂度: (1) void main() { int i=1,j=0,n; scanf(“%d”,n); while(i+j=n) { if(ij) i=i+1; else j=j+1; } } T(n)=O(n) (2) Int rec(int n) { if(n=1) return 1; else return rec(n-1)*rec(n-1); } T(n)=O(2n) 2.8 在下面两列中,左侧是算法(关于问题规模)的执行时间,右侧是一些时间复杂度。请用连线的方式表示每个算法的时间复杂度。 100n3 6n2-12n+1 1024 n+2log2n n(n+1)(n+2)/6 2n+1+100n T(n)=O(n3 ) T(n)=O(n2) T(n)=O(1) T(n)=O(n) T(n)=O(n3) T(n)=O(2n) 3.1 试述你所理解的函数参数的“值传递”和“地址传递”。 答:“值传递”即在函数参数传递时将实参赋给形参,而在函数体中对形参修改后不影响实参原来值;“地址传递”即在函数参数传递时传递的是实参的地址,在函数体中可通过地址直接对实参进行操作。 3.3 什么是指针?什么是指针的指针?它们之间有本质上的区别吗? 答:一个变量的地址称为该变量的指针。指针的指针即指向指针的指针,它们的区别是:指针存放的是某一数据的存放地址,而指针的指针存放的是指针的存放地址,用的是一种“二级间址”方法。 3.4 试述你所理解的“递归”。 答:递归即一种在函数/过程/子程序在运行过程序中直接或间接调用自身的编程方式。 3.5 简述动态存储分配和静态存储分配之间的区别。 答:静态存储分配是指在程序运行前由编译器在编译时分配固定的存储空间,直到整个程序运行结束才释放存储空间,如全局变量存储空间分配;而动态存储分配则是在程序运行过程中根据需要进行动态的分配和释放存储空间。 3.2 试编写程序完成:有15个学生,每个学生的信息包括学号、姓名、性别、年龄、班级和3门课程成绩,从键盘输入15个学生的信息,要求打印出3门课程的总平均成绩,以及最高分的学生的信息(包括学号、姓名、性别、年龄、班级、3门课程成绩、平均分)。 算法分析 1)建立student结构类型及变量st[15]; student{no,name[8],sex[2],age,cls[14],math,english,chinese
文档评论(0)