计算机等级考试二级C语言重点难点分析与题解.docx
- 文档编号:1870921
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:33
- 大小:935.79KB
计算机等级考试二级C语言重点难点分析与题解.docx
《计算机等级考试二级C语言重点难点分析与题解.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言重点难点分析与题解.docx(33页珍藏版)》请在冰点文库上搜索。
计算机等级考试二级C语言重点难点分析与题解
第2章数据结构与算法
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章节主要考查算法的基本概念、基本的数据结构及其基本操作、查找和排序算法。
本章的内容在历次试题中所占的比例约为11.2%,都是以选择题和填空题的形式出现的。
本章历次试题分数分布如表2-1所示。
从《计算机等级考试二级C语言考点分析、题解与模拟》表2-1中我们可以看出,算法的基本概念、数据结构的定义、栈和树几乎是每次必考的知识点;查找和排序基本上每次有一道试题;线性表、队列和线性链表很少单独出题,但经常与其它知识点结合出题。
本章涉及知识点分值在历次试题中比重如图2-1所示。
2.1 算法的基本概念
从《计算机等级考试二级C语言考点分析、题解与模拟》图2-1可以看出,该节知识点所占试题比重为18%,属于重点考查对象,基本上每次必考,主要考查算法的定义和对算法复杂度的理解。
历次试题分值在0-4分之间波动,其变化趋势如图2-2所示。
2.1.1 考点1:
算法的定义
算法是对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。
一般来说,一个算法具有以下5个主要的特征。
(1)有穷性:
一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。
(2)确定性:
算法中的每一步都有确切的含义。
(3)可行性:
算法中的操作能够用已经实现的基本运算执行有限次来实现。
(4)输入:
一个算法有零个或者多个输入,零个输入就是算法本身缺定了初始条件。
(5)输出:
一个算法有一个或者多个输出,以反映出数据加工的结果。
本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见 :
例2.1.1 问题处理方案的正确而完整的描述称为______。
[2005年4月填空第5题]
答案:
算法
例2.1.2 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )。
A.有零个或多个输入 B.有零个或多个输出
C.有穷性 D.可行性
答案:
B
例2.1.3 算法具有5个特性,以下选项中不属于算法特性的是( )。
A.有穷性 B.简洁性 C.可行性 D.确定性
答案:
B
第3章程序设计基础
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章主要考查程序设计的一些基本知识,比如程序设计的方法与风格、结构化程序设计与面向对象程序设计的基本思想。
从历次的试题来看,本章试题分值约占2.4%,属于非重点考查对象。
尽管分值所占的比例较少,但基本上每次至少有一道试题。
试题以选择和填空的形式出现。
本章历次试题分数分布如表3-1所示。
从《计算机等级考试二级C语言考点分析、题解与模拟》表3-1中我们可以看出,本章知识点试题的分值在0-4分之间波动,结构化程序设计和面向对象程序设计是重点。
本章涉及的知识点分值在历次试题中比重如图3-1所示。
3.1 程序设计
从《计算机等级考试二级C语言考点分析、题解与模拟》图3-1可以看出,该节知识点所占试题比重为17%,属于非重点考查对象。
到目前为止,该知识点只出过一道选择题。
从考试大纲来看,主要考查程序设计的方法、程序设计风格。
历次试题分值分布如图3-2所示。
3.1.1 考点1:
程序设计的方法
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见:
在程序设计早期,由于受到计算机硬件的限制,运行速度慢,存储空间少,使得程序员不得不提高程序的效率,在这种情况下,编程成了一种技巧和艺术,程序的可理解性和可扩充性没有得到重视。
在这个时期出现的高级语言有Fortran、COBOL、ALGOL、Basic等语言,在这个时期不注重程序的结构,可以说这是没有固定程序设计方法的时期。
计算机硬件得到了很大的发展,在编程的时候,运行速度和存储空间不再困扰程序员,计算机技术应用范围的扩大使得程序必须要有良好的结构,在这种需求下,提出了结构化程序设计方法。
这时出现的高级语言有PASCAL、C等。
20世纪60年代后期,提出了类和对象的概念,程序设计已经不是问题的中心,如何更好地描述问题已经成为了主题,因此在这种情况下,面向对象的程序设计方法发展起来了,并得到广泛地应用。
进入20世纪80年代后,出现了一系列的面向对象程序设计语言,如C++等。
下面我们会详细讨论结构化程序设计和面向对象程序设计。
3.1.2 考点2:
程序设计的风格
我们在编写程序时要养成良好的程序设计习惯,对程序的要求不仅能够在计算机上正确运行,而且要便于阅读和被别人理解,便于程序的调试和维护。
好的程序设计风格有助于提高程序的正确性、可读性、可维护性和可用性。
要使程序具有良好的风格,概括起来可以分成4部分:
源程序文档化、数据说明、语句结构、输入/输出方法。
1.源程序文档化
源程序文档化主要包括:
标识符的命名、程序中添加注释以及程序的编辑风格。
(1)标识符的命名
标识符即符号名,包括变量名、模块名、常量名、标号名、函数名、数据区名和缓冲区名等。
一个程序中必然有很多的标识符,特别是在一个复杂大型的程序中,标识符可能成千上万,对标识符作用的正确理解是读懂程序的前提,如果程序员随意命名标识符,程序的可读性会很差。
因此,标识符的命名应该要规范化,具体要根据下面几个原则来命名。
①选取有实际意义的标识符名称。
为了方便理解标识符的作用,标识符的名字要能够反映其作用,如用于存储数量的变量的名称可以是count等。
②为了便于程序的输入,标识符的名字不宜太长。
必要时可以用一些缩写,但是要注意缩写规则要一致,并且要给每一个变量加上注释。
③为了便于区分,不同的标识符不要取过于相似的名字。
④由于程序中通常需要大量不同类型的标识符,为了使说明部分阅读起来更加清晰,在对其进行类型说明时应注意以下几点:
按照某种顺序对各种类型的变量进行集中说明,如先说简单类型,再说明记录类型;在使用一个说明语句对同一类型的多个变量进行说明时,按照变量名中的字母顺序进行排列。
(2)程序中加注释
注释是程序员与日后的程序读者之间通信的重要工具,用自然语言或伪码描述。
它说明了程序的功能,特别在维护阶段,对理解程序提供了明确指导。
一些正规的程序文本中,注释行的数量占到整个源程序的1/3~1/2,甚至更多。
注释分序言性注释和功能性注释。
①序言性注释:
一般置于每个程序模块的开头部分,它应当给出程序的整体说明,用来引导读者理解程序。
主要描述内容可以包括:
程序标题、程序功能说明、主要算法、接口说明、有关数据描述、程序位置、开发简历、程序设计者、复审者、复审日期和修改日期等。
②功能性注释:
一般置于程序体中,用来描述其后的语句或程序段是用来做什么的,或者是执行了其下面的语句或程序段会产生什么样的效果,而不要解释下面该怎么做。
(3)程序的编辑风格
为了使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰,便于程序的理解。
可以按照以下几个原则来编辑程序。
①恰当地利用括号,可以突出运算的优先性,避免发生运算错误。
②程序段之间可用空行隔开。
③对于选择语句和循环语句,应该做适当的缩进,使得程序的逻辑结构更加清晰。
2.数据说明
在程序设计时,应该注意数据说明的风格。
为了使数据定义更易于理解和维护,有以下指导原则。
(1)数据说明顺序应规范化,使数据的属性更易于查找,从而有利于测试、纠错与维护。
原则上,数据说明的次序与语法无关,其次序是任意的,但是便于阅读和理解,最好使其规范化,使说明次序按照某种规则固定。
例如,按以下顺序:
常量说明、类型说明、全程量说明及局部量说明。
(2)语句中变量的说明应有序化,多个变量在同一个说明语句中说明时,各变量名按字典序排列。
(3)使用注释来说明复杂的数据结构时,要说明在程序实现这个数据结构时的特点。
3.语句结构
单个语句结构是编码阶段的任务,语句结构追求简单直接,不能为了追求效率而使代码复杂化。
我们可以根据下面的原则来构造语句。
①为了便于阅读和理解,不要一行多个语句。
③要避免复杂的判定条件,避免多重的循环嵌套。
④表达式中使用括号以提高运算次序的清晰度。
⑤程序编写首先应当考虑程序结构的清晰性,不要刻意追求技巧性,使得程序复杂。
⑥除非对效率有特殊要求,否则先要考虑程序的清晰性,不要追求高效率而丧失程序的清晰度。
⑦程序编写要简单,要直截了当地表达出程序员的用意。
⑧首先要保证程序正确,然后才要求提高速度。
⑨避免使用临时变量而使程序可读性下降。
⑩尽可能使用库函数。
4.输入和输出
输入和输出是程序的一个重要的组成部分,是用户和计算机交互直接相关的。
输入和输出的方式应当尽量方便用户的使用。
一定要避免输入输出的不当而导致用户使用软件麻烦。
因此,在软件需求分析阶段和设计阶段,就应基本确定输入和输出的风格。
软件能否被用户接受,有时就取决于输入和输出的风格。
一个良好的输入输出风格能够使用户很方便地使用系统,我们在编码阶段可以根据下面的原则来设计一个好的输入输出。
①对所有输入的数据都要进行有效性检查,要能够识别出错误的输入,对错误的输入做出异常处理,使得每个输入数据都具有有效性。
②检查输入数据项的各种重要组合的合理性,必要时报告输入状态信息。
③在输入时,输入的步骤和方式应该尽量简单。
④输入数据时,应允许使用自由格式输入。
⑤允许默认值
⑥输入一批数据时,最好使用输入结束标志,而不要用户指定输入数据数目。
⑦在交互输入时,要给用户提示信息,如可使用选择项的种类和取值范围,在输入结束时,给出状态信息。
⑧当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句的要求的一致性。
⑨给所有的输出加注解,并设计输出报表格式。
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见:
例3.1.1 以下叙述中错误的是( )。
[2005年9月选择第11题]
A.用户所定义的标识符允许使用关键字
B.用户所定义的标识符应尽量做到“见名知意”
C.用户所定义的标识符必须以字母或下划线开头
D.用户定义的标识符中,大、小写字母代表不同标识
答案:
A
第4章软件工程基础
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章主要掌握以下几个方面内容。
(1)软件工程的基本概念、软件生命周期概念、软件工具和软件开发环境;
(2)结构化分析方法、数据流图、数据字典和软件需求规格说明书;
(3)结构化设计方法、总体设计和详细设计
(4)软件测试的方法、白盒测试与黑盒测试、测试用例设计、软件测试的实施、单元测试、集成测试和系统测试;
(5)程序调试、静态调试与动态调试;
(6)软件维护。
通过对历次试卷内容的分析,软件工程考核内容占卷面分数6.8%。
历次试题分数分布如表4-1所示。
从《计算机等级考试二级C语言考点分析、题解与模拟》表4-1可以看出,软件工程历次试题分数均在6-10分之间。
其中,结构化设计方法和软件测试几乎每次必考,这两节应重点掌握。
程序调试和软件维护试题均在0-2分之间波动,也应该引起注意。
到目前为止,还没有出过与结构化分析方法相关的题目,但切不可掉以轻心。
本章涉及知识点分值在历次试题中比重如《计算机等级考试二级C语言考点分析、题解与模拟》图4-1所示。
4.1 软件工程的基本概念
软件工程的基本概念所涉及的试题分值在本章中所占比重为16%,试题分值变化趋势如《计算机等级考试二级C语言考点分析、题解与模拟》图4-2所示。
4.1.1 考点1:
软件与软件工程概述
1.软件的定义
软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。
软件包括系统软件和应用软件。
系统软件是计算机管理自身资源,提高计算机使用效率而编写的软件。
系统软件依赖于机器的指令系统、中断系统,以及运算、控制、存储部件和外部设备。
系统软件包括操作系统(如Windows、UNIX、Linux、Macintosh等)、各种语言编译的编译程序、数据库管理系统、文件编辑系统、系统检查与诊断软件等。
应用软件是专门为了某种使用目的而编写的程序系统,常用的有文字处理软件(如WPS和Word)、专用的财务软件、人事管理软件、计算机辅助软件(如AutoCAD)和绘图软件(如3DS)等。
与硬件相比,软件的特点包括:
(1)软件是一种逻辑实体;
(2)软件的生产与硬件不同,它没有明显的制作过程;
(3)软件在运行、使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件存在移植的问题;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多的社会因素。
2.软件工程的定义
随着计算机的应用范围日益广泛,传统的软件开发成本难以控制,进度不可预计;软件系统的质量和可靠性很差;软件文档相当缺乏,软件系统不可维护;软件开发生产率很低,软件产品供不应求;软件产品成本十分昂贵等特点日益显现,成为计算机应用的一个“瓶颈”,出现了所谓的“软件危机”。
1968年,北大西洋公约组织(NATO)召开计算机科学会议,首次提出了软件工程的概念,试图用工程化的方法开发软件,从而解决或缓解软件危机。
软件工程是采用工程化的方法开发和维护软件的工程学科。
把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术和方法结合起来,以便经济地开发出高质量的软件并有效地维护它。
软件工程包括3个要素,分别是方法、工具和过程。
软件工程的基本思想是在软件开发过程中需要应用工程化原则进行软件开发,并将这个思想贯穿到软件开发的整个过程中。
软件工程的目标是在给定成本、进度的前提下,利用工程化原则,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适用性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见 :
3.例题
例4.1.1 下列描述中正确的是( )。
[2005年4月选择第8题]
A.程序就是软件 B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体 D.是程序、数据与相关文档的集合
答案:
D
例4.1.2 下列描述中正确的是( )。
[2005年9月选择第5题]
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发中的技术问题
答案:
C
本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见 :
第5章数据库设计基础
本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章主要掌握以下几个方面内容。
(1)数据库的基本概念、数据库、数据库管理系统和数据库系统;
(2)数据模型、实体联系模型、E-R图和从E-R图导出关系数据模型;
(3)关系代数运算(包括集合运算及选择、投影、连接运算)和数据库规范化理论;
(4)数据库设计方法和步骤、需求分析、概念设计、逻辑设计和物理设计的相关策略。
通过对历次试卷内容的分析,本章考核内容占卷面分数8.8%。
历次试题分数分布如表5-1所示。
从《计算机等级考试二级C语言考点分析、题解与模拟》表5-1可以看出,数据库基础知识和数据模型每次必考,且分值比重较大,应该重点掌握。
关系运算与数据库设计试题所占比例虽不算太大,但对这两节的相关知识也应该充分理解。
从最近一次考试看,各章试题分数有趋同的倾向。
数据库设计基础涉及知识点分值在历年试题中的比重如《计算机等级考试二级C语言考点分析、题解与模拟》图5-1所示。
5.1 数据库基础知识
信息在现代社会中起着越来越重要的作用,信息资源的开发和利用水平已成为衡量一个国家综合国力的重要标志。
在计算机应用领域中,数据处理是其主要方面。
数据库技术就是作为数据处理中的一门技术而发展起来的。
本节介绍数据库系统的基本概念和发展历史,初步了解数据库系统的概貌。
数据库基础知识所涉及的试题分值在本章中所占比重为41%,试题分值变化趋势如《计算机等级考试二级C语言考点分析、题解与模拟》图5-2所示。
5.1.1 考点1:
数据库
数据库(Database,DB)可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。
数据是描述现实世界中各种具体事物和抽象概念的可存储并有明确意义的信息。
数据库可以被直观地理解为存放数据的仓库,只不过这个仓库是在计算机的大容量存储器上,例如,硬盘就是一种最常见的计算机大容量存储设备。
数据必须按一定的格式存放,因为它不仅需要存放,而且还要便于查找。
数据库的特点如下
(1)数据按一定的数据模型组织、描述和储存。
(2)冗余度较小。
数据共享大大减少了数据冗余。
(3)数据独立性较高。
数据独立性是数据库领域中一个常用的术语,也是数据库技术的重要特点之一。
数据独立性是指数据的组织结构和存储方法与应用程序互不依赖、彼此独立。
它包括数据的物理独立性和数据的逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,也就是当数据的物理存储改变了,用户程序也可以不变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。
(4)易扩展。
(5)可为各种用户共享。
不同的用户可以使用同一个数据库,可以取出他们所需要的子集,而且容许子集任意重叠。
本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见 :
例5.1.1 数据独立性是数据库技术的重要特点之一。
所谓数据独立性,是指( )。
[2005年4月选择第9题]
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
答案:
D
例5.1.2 数据库设计的根本目标是要解决( )。
[2005年9月选择第8题]
A.数据共享问题 B.数据安全问题
C.大量数据存储问题 D.简化数据维护
答案:
A
例5.1.3 下列叙述中正确的是( )。
[2004年9月选择第9题]
A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库设计是指设计数据库管理系统
C.数据库技术的根本目标是要解决数据共享的问题
D.数据库系统中,数据的物理结构必须与逻辑结构一致
答案:
C
第6章C程序设计的初步知识
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章主要考查C程序构成与格式、常用数据类型、运算符和表达式。
通过对历年试卷内容的分析,本章考核内容约占12%,属于重点考查内容。
由命题走势《计算机等级考试二级C语言考点分析、题解与模拟》图6-1可知,本章部分所涉及考题分值有下降的趋势。
6.1 C程序简介
6.1.1 考点1:
C源程序编译与执行
由高级语言编写的程序称为“源程序”,机器可以接受和处理的二进制代码称为“目标程序”,把“源程序”翻译成“目标程序”的软件称为“编译程序”。
每一种高级语言都有与它对应的编译程序,C语言也不例外,其编译程序的功能如《计算机等级考试二级C语言考点分析、题解与模拟》图6-2所示。
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
在DOS状态下,输入此文件名字(不必输入后缀.EXE),该文件就可以执行。
例6.1.1 以下叙述中错误的是( )。
[2006年4月选择第44题]
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
答案:
D
第7章 顺序结构程序设计
本章节内容来自全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
本章主要考查输入输出和顺序结构设计方法。
顺序结构程序设计属于最基本的程序设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 语言 重点难点 分析 题解