计算机二级.docx
- 文档编号:16049204
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:23
- 大小:28.36KB
计算机二级.docx
《计算机二级.docx》由会员分享,可在线阅读,更多相关《计算机二级.docx(23页珍藏版)》请在冰点文库上搜索。
计算机二级
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
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.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.软件工程只是解决软件开发中的技术问题
答案:
C5.1.1考点1:
数据库
数据库(Database,DB)可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合
。
数据是描述现实世界中各种具体事物和抽象概念的可存储并有明确意义的信息。
数据库可以被直观地理解为存放数据的仓库,只不过这个仓库是在计算机的大容量存储器上,例如,
硬盘就是一种最常见的计算机大容量存储设备。
数据必须按一定的格式存放,因为它不仅需要存放,而且
还要便于查找。
数据库的特点如下
(1)数据按一定的数据模型组织、描述和储存。
(2)冗余度较小。
数据共享大大减少了数据冗余。
(3)数据独立性较高。
数据独立性是数据库领域中一个常用的术语,也是数据库技术的重要特点之
一。
数据独立性是指数据的组织结构和存储方法与应用程序互不依赖、彼此独立。
它包括数据的物理独立
性和数据的逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的
,也就是当数据的物理存储改变了,用户程序也可以不变。
逻辑独立性是指用户的应用程序与数据库的逻
辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。
(4)易扩展。
(5)可为各种用户共享。
不同的用户可以使用同一个数据库,可以取出他们所需要的子集,而且容
许子集任意重叠。
例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.数据库系统中,数据的物理结构必须与逻辑结构一致
答案:
C7.1基本概念
7.1.1考点1:
顺序程序概述
顺序结构是按照语句的排列顺序依次执行。
流程图如《计算机等级考试二级C语言考点分析、题解与
模拟》图7-2所示,程序执行完语句组1后再接着按照顺序执行语句组2。
有一个比较经典的例子来表达顺序结构的思想:
交换两整数的值。
本章节内容来自希赛全国计算机等
级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。
(购书请见:
例如,a=0,b=99,交换a,b的值,达到最后的结果a=99,b=0。
在实现这个算法的时候,定义一个中间
变量c,用它来临时保存a的值,再把b的值赋给a,这个时候a就得到b的值的,我们再把保存a的变量c赋给b
,这时b就得到原a的值,正确的程序为:
voidmain()
{
inta,b;
intc;
a=0;
b=99;
c=a;
a=b;
b=c;
}
执行完这3条语句后a=99,b=0。
如果改变其顺序,写成:
voidmain()
{
inta,b;
intc;
a=0;
b=99;
a=b;
c=a;
b=c;
}
则执行结果就变成a=b=99,不能达到预期目的。
因为程序顺序执行,所以先把b的值赋给a,a变成99
,然后再把a赋给c,c也变成99,这时再把c赋给b,b也变成99,没有达到我们程序的目的。
按照上面的程序,顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲
的程序就是顺序结构。
例如,计算长方形的面积,其程序的语句顺序就是输入长方形的长length和宽wide
,计算“S=length*wide”,输出它的面积S。
而大多数情况下,顺序结构都是作为程序的一部分,与其
他结构一起构成一个复杂的程序,例如,分支结构中的块体、循环结构中的循环体等。
例7.1.1下列描述正确的是()。
A.顺序结构不能单独构成一个完整的程序
B.顺序结构、循环结构、选择结构是三种最基本的结构
C.程序从文件最开始执行,不一定是从main函数开始执行
D.程序按照语句的书写顺序执行
答案:
B
8.1基本概念
8.1.1考点1:
关系运算和逻辑运算
选择结构是按照条件的真假选择执行某段代码。
流程图如《计算机等级考试二级C语言考点分析、题
解与模拟》图8-2所示,如果条件1为真,则执行语句组1;否则执行语句组2。
条件1中的真(T)和假(F)就是C语言中的两种逻辑值,真用非0代表,假用0代表。
关系运算和逻辑
运算的结果只有真(非0)或者假(0)。
关系运算符包括==(等于)、!
=(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等
于)。
优先级的关系是==和!
=比其余的低,相同的优先级运算规则是从左到右。
例如,1==1(真),1!
=1(假),1<2(真),2<=2(真),2>2(假),2>=2(真)。
若a=5,b=3,c=1,则
a>b>c的计算过程是:
先计算a>b,结果为真,值为1;
再计算1>c,结果为假,值为0,所以a>b>c表达式为假。
f=b>c!
=a的计算过程是:
先计算b>c,结果为1;
再计算1!
=a结果为1;
最后将1赋值给f。
逻辑运算符包括!
(逻辑非)、&&(逻辑与)、||(逻辑或),!
的优先级最高,其次是
&&和||。
例如:
若x=10,则!
x的结果为假,值为0;
若a=3,b=0,则a&&b的结果为假,值为0;5&&0||8的值为1。
(1)所有的运算符的优先级的关系是!
>算术运算符>关系运算符>&&>||>赋值运算符,对于有疑问的
,请一律用括号来明确。
(2)在逻辑表达式的求解中,并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算才能
求出表达式解的时候,才去执行下一个运算符。
某些情况会发生短路现象,一般是在&&和||的运算中产生
。
例如:
当a=5,b=3,c=2,d=1,x=1,y=1时,表达式(x=a
首先计算“a
0,则x=0,这个时候可以确定这个表达式的值为假,因此“y=c 。 又如,a++||b++,因为a++已经为真,所以这个时候整个表达式的值已经可以确定为真,不用去计算b++的 值,这个时候b的值没有变化。 (3)数学表达式0 无论x为何值,上面的表达式都为真。 “0 要表达数学表达式中的涵义 ,可以使用如下的方式: x>0&&x<10。 这是数学语言和程序设计语言中表达相同意思的一个区别。 本章节 内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。 (购书请 见: (4)关于实数相等的比较。 在计算机中,通常存放在内存中的实数是有误差的,因此不能精确相等 ,将导致x==y的值总是假。 可以通过abs(x-y)<0.0001这种方式来比较,精度0.0001可以由程序员控制。 例8.1.1如果inta=2,b=3,c=0,下列描述正确的是()。 A.a>b! =c和a>(b! =c)的执行顺序是一样的B.! a! =(b! =c)表达式的值为1 C.a||(b=c)执行后b的值为0D.a&&b>c的结果为假 答案: B 解析: A中>的优先级大于! =,所以执行顺序不一样;C中不用执行b=c,因为a就可以确定这个表达式的 值;D中a和b>c都为真,所以整个表达式为真。 9.1while和do-while循环结构 9.1.1考点1: while语句 一般形式为: while(表达式) { 语句组 } 其中,表达式是循环条件,语句组为循环体,当语句组只有一条语句时,可以省略花括号。 其执行过 程如下。 (1)计算表达式的值,如果为假(或者0),执行3;否则执行2 (2)执行语句组,然后执行1 (3)跳出while循环 例如: while(getchar()! ='\n');//当输入回车的时候退出。 inti=10; while(i) { printf("%d",i); i--; }//输出从10到1的数据,在0的时候退出。 对while语句的几点说明。 (1)在while循环体内也允许空语句,如第一个例子中,并且当循环条件一开始就为假(或为0)的 时候,循环体不执行一次,直接跳出循环。 (2)可以有多层while循环嵌套。 (3)语句组是多条语句的时候,必须用“{“和”}”括起来。 (4)while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0),即可继 续循环,应该避免非人为的死循环。 例9.1.1有以下程序 main() { inty=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是()。 [2006年4月选择第30题] A.y=0B.y=-1 C.y=1D.while构成无限循环 答案: B 解析: 注意这个while语句循环体是空语句,一直执行到y--为0,只有当y=0的时候执行y--才为0, 这个时候退出循环,但是y已经是-1。 此类题目,可以列出每次循环的循环变量的值分析,选择更形象。 本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》。 ( 购书请见: 10.1函数基本概念 10.1.1考点1: 函数的概念 函数是C语言的基本组成部分,用来完成子程序的功能。 一个完整的C程序包括一个main()函数(主函 数)和若干个其他函数,C程序从main()函数开始执行,当main()函数执行完毕时,整个程序就结束了。 在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。 虽然函数之间可以 相互调用,但main()函数不能被调用。 根据用户使用情况,函数可以分为库函数和自定义函数两种。 根据函数的形式,函数可以分为无参函 数和有参函数。 本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题 解与模拟》。 (购书请见: 例10.1.1以下关于函数的叙述中正确的是()。 [2005年9月选择第14题] A.每个函数都可以被其他函数调用(包括main()函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 解析: main()函数不能被调用,A选项错误;C程序的执行必须从main()函数开始,C选项错误;函数 不能嵌套定义,D选项错误。 答案: B 例10.1.2以下叙述中错误的是()。 [2006年4月选择第46题] A.C程序必须由一个或一个以上的函数组成 B.函数调用可以作为一个独立的语句存在 C.若函数有返回值,必须通过return语句返回 D.函数形参的值也可以传回给对应的实参 答案: D 11.1指针基础知识 指针是C语言的精华之一,合理地运用指针可以有效地利用内存,提高程序效率,完成复杂的数据结 构。 本章节内容来自希赛全国计算机等级考试用书《计算机等级考试二级C语言考点分析、题解与模拟》 。 (购书请见: 11.1.1考点1: 地址、指针和指针变量 计算机内存是一个连续编码的单元,每个存储单元都有一个固定的编号,这个编号就是地址。 在C程 序中定义变量,编译系统都会给这个变量分配相应的存储单元,因此C语言中的变量就代表了内存中的一 些存储单元,该单元的固定编号就是变量的地址,也称为指针。 在C语言中存在直接存取和间接存取两种访问内存数据的方法。 前者利用变量名隐式地访问内存: 首 先定义变量,然后由编译系统完成从变量名到内存地址的映射工作,用户通过变量名访
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级