程序设计概论期末考试范围答案(共18页).doc
精选优质文档-倾情为你奉上第一章 程序设计基础知识1、 基础题1. 以下关于算法的描述中,错误的是(D)A. 算法中描述的操作都是用已经实现的基本运算组成的B.算法必须由计算机程序实现C.算法应该易于理解、易于实现和易于调试D.算法不应该处理输入的非法数据2. 以下哪项不属于数据的逻辑结构(A)A. 单链表B. 输C. 图D. 集合5. (B)程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。A. 面向对象B. 结构化C. 函数式D. 事件驱动6. 强调以现实世界中的客观事物为中心来建立问题域模型,这种程序设计方法成为(C)A. 事件驱动程序设计B. 结构化程序设计C. 面向对象程序设计D. 函数式程序设计7. 以下程序段是用(B)程序设计语言编写的。MOV AX,ASUB AX,BMOV C,AXHLTA. 机器B. 汇编C. C#D. Java10. 下列关于解决方案的叙述中,不正确的是(B)。A. 一个解决方案可以包含多个项目B. 解决方案可以包含的项目只能是类库C. 利用解决方案资源管理器可以管理解决方案D. 解决方案可以将多个项目组织在一起形成一个工作单元2、 应用题1. 简述程序设计的步骤。答:(1) 分析问题:明确要解决什么问题 (2) 设计算法:数据结构和算法 (3) 编写程序:将算法用程序设计语言描述出来 (4) 调试运行:语法错误、语义错误、异常 4.简述C#语言的特点。答:(1)完全面向对象:具有面向对象语言的一切特性(2)简单易学:熟悉C、C+或Java即可掌握C#语言(3)安全:避免使用指针;自动内存管理和垃圾回收;使用委托取代函数指针。(4)跨平台:可以运行在不同操作系统上。(5)跨语言:与任何支持.NET的语言互相交换信息(6)强大的Web编程能力:ASP.NET Web应用程序第3章 数据与变量一、基础题1.以下不属于C#语言中基本数据类型的是(D)A.整数类型B.浮点类型C.字符类型D.枚举类型2. 使用变量a存放数据-389,则将变量a定义为(B)类型最为合适。A.byteB.shortC.intD.long6. 若 int a=20,b=5,c=10,d=3; bool s,e=false;则表达式“(s=a<c)&&(e=b-d>0)”运算后,e的值是(D)A.0B.1C.trueD.false2、 应用题1. 数据的定义。答:科学实验、检验、统计等所获得的和用于科学研究、技术设计、查证、决策等的数值。2. 高举语 言数据类型分类。答:数据类型分类:基本数据类型:构成类型的数据不可分解,有整形、浮点型、字符型、布尔型等;构造数据类型:构成类型的数据是由其它类型数据按照一定方式组合而成,有数组、结构、枚举、字符串等。第4章 算法1、 基础题1. (算法)是解决问题所需的操作步骤的集合。3. 已知算法IF x >= 60, THEN Print "Passed"ELSE Print "Failed"ENDIF则该算法是采用(B)方法描述的。A.自然语言B.伪代码C.程序流程图D. N/S盒图5. 在PAD图中,(B)符号表示处理框。A.B.C.D.7. 下列程序所计算的数学式是(A) int a=1, i=2; while(i<100) a+=i;i+=2; Console.WriteLine ("a=0",a); A. a=1+2+4+.+98B.a=1+2+4+.+100C.a=2+4+6+.+98D.a=2+4+6+.+1009. 将大的问题分解为一系列与原问题相同或相似的小问题,这些小问题相对简单、易解决,最后将它们组合在一起就得到问题的解,这种方法称为(C)A. 枚举法B. 递推法C. 分治法D. 贪心法10. 一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,则到第n个月时,该饲养场共有兔子数量的递推公式为(A)A. f(n)=f(n-1)*2(n2) B. f(n)=f(n-2)*2(n2) C. f(n)=f(n-1)/2(n2) D. f(n-1)=f(n)*2(n2) 2、 应用题1. 什么是算法?算法的基本特征是什么?答:算法就是解决问题所需的操作步骤的集合。它以一组值作为输入,并能够在有限时间内获得所要求的输出(1)可行性:算法的操作由已实现的基本运算组成。(2)有穷性:必须在有限步或时间内完成。 (3)确定性:每一个步骤必须有确切的含义,相同的输入会产生相同的输出。(4)输入:算法应该有零或多个输入量。(5)输出:算法应该有一个或多个输出量。4.编写一个算法,求n个考试成绩的总分和平均分,要求用程序流程图描述算法。开始N个学生成绩数组AnSum=0,i=1Sum+=ai;i<n?i+=1j=sum/nsum结束否是5. 例举五中算法定义,算法的衡量标准?贪心法:贪心法是一个多步求解的方法,在求解的每一部中都选取一个局部最优策略,得到部分解,最后合并产生完整解。由于在选取局部最优策略时只考虑当前情况,不管全局状况,因此得名贪心。分治法:分治法就是指将大的问题分解为一系列与原问题形成相同货相似的小问题,这些小问题相对简单、易解决,最后将他们组合在一起就得到问题的解。 迭代法:迭代法与递推法类似,也是用上一步求出的结果推导出下一步的结果,只不过迭代法得到的中间结果只是近似解,而不像递推法得到的是完整解。迭代法通常从一个初始值出发,通过寻找一系列近似解解决问题。穷举法的定义:穷举法就是针对所有可能情况进行一一列举,并从中找出符合要求的候选解作为问题的解。递推法的定义:递推是指从一些已知条件出发,按照某种关系式进行推导,在推导过程中得到一些中间结果,再由这些中间结果进一步推导最终得到问题的解。算法的衡量标准:(1)正确性:算法应该达到预期的结果,满足问题的需求。 (2)可读性:算法应该易于理解、易于实现和易于调试,以免造成歧义。(3)健壮性:算法对输入的非法数据也能够做出反应,不致产生不可预料的后果。(4)高效性:算法执行的时间要短(即时间效率),占用的存储空间要少(即空间效率)。8.算法的表示方式。答:表示算法的方式多种多样,可以用自然语言、伪代码、程序流程图、N/S盒图、PAD图,甚至是程序设计语言来表示算法,不同的表示方法有不同的特点。9. 画流程图和N/S盒图。eg4.6-eg4.8第5章 结构化程序设计1、 基础题1. 结构化程序设计方法主要使用顺序、(选择)、循环三种基本结构构造程序。2. 结构化程序设计强调模块的划分,在进行模块划分时,希望模块间的耦合性越低越好,一下耦合最低的是(D)A.内容耦合 B。公共耦合 C.控制耦合 D.数据耦合3. 内聚性用来衡量一个模块内部各个元素之间结合的紧密程度。进行模块划分时,希望内聚性越强越好,以下内聚性最强的是(D)A. 逻辑内聚B. 过程内聚C. 通信内聚D. 功能内聚7. 已知函数: int Func(params int item)则以下函数调用不正确的是(C)A. Func(10);B. Func(10,20;C. Func(out 10);D. Func();10. 已知函数:int Square (int x) return x*x;double Square (double x) return x*x;则函数调用Square(10)返回的结果为(C)A.10B.10.0C.100D.100.02、 应用题1. 简述结构化程序设计的基本思想。答:主要观点: 采用自顶向下、逐步求精的程序设计方法;强调使用顺序、选择、循环三种基本结构构造程序,利用三种基本结构的组合嵌套形成更复杂的“结构化程序”,严格控制GOTO语句的使用2. 简述功能分解与功能复合。答:功能分解是指在程序设计过程中,不断对功能进行分解,分解成若干个子功能。每个子功能又可以分解为若干个子功能,直至最终分解出来的子功能足够简单,可以很容易解决为止。功能复合是指将已实现的底层子功能经过适当组装形成上层更大的功能,从而实现自底向上的设计思想。第6章 构造类型1、 基础题2. 以下数组声明语句中,正确的是(D)A. int a2;B. int 3a;C. inta=new int;D. inta=1,2,3;4. 以下程序段的循环次数为(C)int a =new int 1,2,3,4,5;Foreach(int t in a) Console,WriteLine(t);A.0B.4C.5D.65. 已知enum CourseMath,English,Computer,History,Chemistry,Philology,PhilosophyCourse cc;则下列语句错误的是(C)A. int a=(int)Course.English;B. cc=Course.English+2;C. cc=5;D. bool b=Course.Math=Course.Chemistry7. 已知int a;string b="123"bool c;则有错误的表达式为(B)A. a=10&&cB. C>120C. 2*a+1D. B+"456"9. 若x="Hello, World",y="Visual C#.NET",则以下表达式中,结果为“Helllo C#”的是(A)A.x.Substring (0,5)+y.Substring(7,2)B.x.Substring (1,5)+y.Substring(8,2)C.x.Substring (0,4)+y.Substring(7,8)D.x.Substring (1,5)+y.Substring(8,9)2、 应用题1. eg6.10统计字符串中包含多少个字母。第7章 面向对象程序设计1、 基础题1. 下面有关和对象的说法中,不正确的是(A)A.类是一种系统提供的数据类型B.对象是类的实例C.类和对象是抽象和具体的关系D.任何一个对象只能属于一个具体的类3. 在类的外部可以被访问的成员是(A)A. public成员B. private成员C. protected成员D. protected internal成员5. 基类中的_D_成员只能被本类和派生类访问。A.public成员B.private成员C.protected成员D.protected internal成员6. 有了(B)可以隐藏类对象内部实现的复杂细节,有效的保护内部所有数据不受外部破坏。A. 多态性B. 封装性C. 继承性D. 开放性9. 一个对象通过发送(C)来请求另一个对象为其服务。A. 命令B. 口令C. 消息D. 调用语句10. 类是一组具有相同属性和相同操作的集合,类中的每个对象都是这个类的一个(B)A. 用例B. 实例C. 例外D. 例证2、 应用题1. 面向对象程序设计的定义。答案:面向对象程序设计可以描述为:2面向对象 = 对象 + 类 + 继承 + 消息 类的定义:类是对一组具有相同特征和行为的对象的抽象。它抽象地描述了属于该类的全部对象的属性和操作。2. 类和对象的关系。答案:类与对象之间的关系是抽象与具体的关系。类是一组对象的抽象,对象是类的实例。3. 消息的定义。答案:消息是指一个对象向另一个对象所发出的请求。在两个对象中,发送消息的对象称为消息发送者,接收消息的对象称为消息接收者。4. 继承所表示的类之间关系。答案:继承表示类之间存在一种一般与特殊的关系,这种关系使得某类对象可以继承另外一类对象的特征。第8章 Windows应用程序开发1、 基础题1. 把窗体的visible属性设为true,等价于调用窗体的(show)方法。3. 通过设置单选按钮的(A)属性为true,可以使用户选中一组单选按钮中的一个,则自动清除同组其他单选按钮的选中状态。A. CheckedB. CheckAlignC. AutoCheckD. TextAlign5. 通过设置命令按钮的(D)属性为false,可以使命令按钮不可用(变灰)。A. VisibleB. TextC. ForeColorD. Enabled9. Copy菜单项的快捷键可以通过(C)来设置。A. _CopyB. $CopyC. &CopyD. !Copy2、 应用题1. 控件定义。答案:控件是一个封装界面元素,并且能够完成相关功能的对象。2. 事件驱动。答案:所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。从事件角度说,事件的基本结构是由一个事件收集器、一个事件发送器和一个事件处理器组成。第9章 Web应用程序开发1、 基础题1. HTML由(A)解释执行。A. Web浏览器B. Web服务器C. HTML编译器D. HTML解析器6. HTML代码<img src="name">表示(B)。A. 添加一幅图像B. 排列对齐一幅图像C. 设置围绕一幅图像的边框的大小D. 加入一个表格7. HTML代码<input type=text name="user"size=10>表示(B)。A. 创建一个单选按钮B. 创建一个单行文本框C. 创建一个提交按钮D. 创建一个复位按钮9. 在JavaScript中,定义函数时可以使用(A)个参数。A. 任意B. 2C. 1D. 02、 应用题1. 文本的标题。答案:使用<Hn>标记设置一篇文章或一段文本的标题,标题文字以粗体显示。格式为: <Hn align="left">标题 </Hn>n表示标题的级别。n=1,表示一级标题,此时标题文字的字体最大;n=6,表示六级标题,此时标题文字的字体最小。align表示标题文本的对齐方式,取值left、right和center。2. 表格使用。答案:<TABLE> <TR> <TD>表项1</TD>.<TD>表项n</TD> </TR> <TR> <TD>表项1</TD>.<TD>表项n</TD> </TR>.</TABLE>3. 例题9.9.答案:第10章 数据处理与存储1、 基础题3. 逻辑数据模型主要包括:(层次)、(网状)、和关系模型。4. 在关系模型中,用(二维表格)表示关系。表中的一行称为一个(元组),表中的列称为(属性)。5. SQL语言是操作(C)型数据库系统的标准语言。A. 网状B. 层次C. 关系D. 实体-联系7. E-R模型的基本元素包括:(实体)、(属性)和(联系)。2、 应用题1. 数据库定义。答案:数据库(Database)是按照来组织、和管理数据的仓库,集中管理数据,数据独立于程序,数据共享。2. 数据的逻辑结构定义。答案:逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如或或)。由于目前使用的数据库基本上都是关系数据库,因此首先需要将转换为关系模型,然后根据具体的特点和限制转换为特定的支持下的数据模型,最后进行优化。3. 实体-联系图答案:此题不在老师画中范围,值得参考此题不在老师画中范围,值得参考图书(isbn号,图书名,图书编号)作者(作者姓名,电话,作者编号)出版社(出版社名,地址,出版社编号)出版(isbn号,作者姓名,出版社姓名)第十一章老师还没画范围,可能是以下范围,仅供参考!第11章 软件开发一、基础题2. 瀑布模型的突出特点是不适应(C)的变动。A. 分析B. 算法C. 用户需求D. 人员7. 软件测试分为黑盒测试和白盒测试,其中(A)方法属于黑盒测试。A. 等价类划分和边界值划分B. 循环覆盖以及基本路径测试C. 错误推测和逻辑覆盖D. 因果图和路径覆盖8. 在采用单元测试时,常用的方法是(A)。A. 采用白盒测试,辅以黑盒测试B. 只使用白盒测试C. 采用黑盒测试,辅以白盒测试D. 只使用黑盒测试9. 程序中的局部数据结构测试通常在(B)阶段进行,而全局数据结构测试通常在集成测试阶段进行。A. 确认测试B. 单元测试C. 系统测试D. 集成测试10. 状态图描述一个对象在不同(D)的驱动下发生的状态转移。A. 消息B. 活动C. 用例D. 事件2、 应用题1. 软件开发包括哪些阶段?每个阶段的主要任务是什么?答案:软件开发过程一般分为需求分析、设计、实现、测试、运行与维护。需求分析的主要任务是确定待开发系统的功能、性能需求和运行环境约束,编写软件需求规格说明书,即需求分析是要明确系统是“做什么”的。设计的主要任务:将需求需求转换为计算机中可实现的系统,完成系统的体系结构设计,以及系统内部结构设计,最终产生软件设计说明书。即解决怎么做的问题测试的主要任务:在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。维护的主要任务:是指软件系统交付使用后,为了纠正软件运行中的错误或者满足用户对软件提出的新要求而修改软件的过程。2. 简要介绍常见的几种软件开发模型。答案:1瀑布模型将软件开发过程模仿成阶梯瀑布。软件生存周期由立项、需求分析、策划、概要设计、详细设计、编程、测试、发布、维护、退役等阶段所组成,把每个阶段当作瀑布中的一个台阶。开发人员按照阶段开发,管理人员按照阶段管理。2原型模型以某个软件原型为参照模型的开发方法,叫原型法。在初步需求分析之后,马上向客户展示一个软件产品原型,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环,直到客户确认为止。3增量模型增量模型将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。要开发一个大的软件系统,先开发其中的一个核心模块,后再开发其他模块,这样一个个模块地增加上去,直至整个系统开发完毕为止。4螺旋模型瀑布模型和增量模型结合,并增加风险分析螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动:制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:评价所选的方案,识别风险,消除风险工程实施:实施软件开发,验证工作产品客户评估:评价开发工作,提出修正建议3. 四种模型的特征。1瀑布模型特点:(1)将软件开发过程模仿成阶梯瀑布。(2)开发人员按照阶段开发,管理人员按照阶段管理。2原型模型特点:原型驱动。因此,开发者必须先有一个原型,至少要有一个原型的核心。3增量模型特点:(1)将软件划分成多个小模块,可以降低开发风险,以及开发难度;(2)可以分阶段提交产品。4螺旋模型特点:螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动:制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:评价所选的方案,识别风险,消除风险工程实施:实施软件开发,验证工作产品客户评估:评价开发工作,提出修正建议专心-专注-专业