全国计算机二级C语言知识点Word文件下载.docx
- 文档编号:20232209
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:18
- 大小:99.73KB
全国计算机二级C语言知识点Word文件下载.docx
《全国计算机二级C语言知识点Word文件下载.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言知识点Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
软件实践阶段:
用户手册,操作手册等面向用户的文档和单元测试计划。
软件测试阶段:
测试分析报告。
11、概要设计说明书是总体设计阶段产生的文档。
集成测试计划是在概要设计阶段编写的文档。
需求规格说明书是后续工作如设计、编码等需要的重要参考文档
12、需求分析阶段的工作可以分为4个方面:
需求获取、需求分析、编写需求规格说明书和需求评审,包括确定软件系统的功能
13、
(1)在测试之前制定测试计划,并严格执行,测试用例的选择不可随意,应选择有代表性的,尽可能发现迄今为止尚未发现的错误。
(2)测试根本目的是尽可能多地发现并排除软件中隐藏的错误(3)软件测试是保证软件质量、可靠性的关键步骤。
14、在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表
15、数据流图中带箭头的线段表示的是数据流
16、数据字典(DD)所定义的对象都包含于数据流图(DFD图)
17、软件需求规格说明书有以下几个方面的作用。
①便于用户、开发人员进行理解和交流;
②反映出用户问题的结构,可以作为软件开发工作的基础和依据;
③作为确认测试和验收的依据
18、软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当
19、从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
20、降低耦合性提高内聚性有利于提高模块的独立性(高内聚低耦合)
21、扇入指的是调用一个给定模块的模块个数
22、扇出指的是由一个模块直接调用的其他模块数
23、结构化程序的三种基本控制结构:
顺序、选择和循环(重复)
24、在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示控制流。
25、软件测试的目的是为了发现错误而执行程序的过程。
程序调试的基本步骤有:
错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。
程序调试通常称为Debug,即排错。
软件测试的基本准则有:
所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。
26、白盒测试又称为结构测试或逻辑驱动测试,对程序所有的逻辑路径进行测试
27、黑盒测试只是根据程序的功能说明来设计测试用例。
在使用黑盒测试法时,手头只需要有程序功能说明就可以了。
黑盒测试法:
等价类划分法、边界值分析法和错误推测法
四、数据库设计基础
1、数据库管理系统是数据库的机构,是一种在操作系统之上的系统软件。
2、数据管理技术的发展经历了3个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
特点
人工管理阶段
文件系统阶段
数据库系统阶段
管理者
人
文件系统
数据库管理系统
面向对象
某个应用程序
现实世界
共享程度
无共享,冗余度大
共享性差,冗余度大
共享性大,冗余度小
独立性
不独立,完全依赖于程序
独立性差
具有高度的物理独立性和一定的逻辑独立性
结构化
无结构
记录内有结构,整体无结构
整体结构化,用数据模型描述
控制能力
由应用程序控制
由DBMS提供数据安全性、完整性、并发控制和恢复
3、数据库应用系统中的核心问题是数据库的设计。
4、数据库中反映用户对数据要求的模式为外模式
5、数据模型通常由数据结构、数据操作及数据约束3部分组成
6、数据模型按照不同的应用层次分为3种类型:
概念数据模型、逻辑数据模型、物理数据模型
7、数据模型成熟并大量使用的数据模型有层次模型、网状模型、关系模型和面向对象模型等
8、关系模型实体间的联系采用二维表来表示,简称表:
网状结构为网状模型实体间的联系;
树状结构为层次模型实体间的联系;
属性刻画了实体。
9、在E-R图中实体集用矩形,属性用椭圆,联系用菱形
10、二维表中的一行称为元组。
候选键(码)是二维表中能唯一标识元组的最小属性集。
若一个二维表有多个候选码,则选定其中一个作为主键(码)供用户使用。
表M中的某属性集是表N的候选键或者主键,则称该属性集为表M的外键(码)。
11、1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法
12、关系模型中可以有3类完整性约束:
实体完整性约束、参照完整性约束和用户定义的完整性约束。
实体完整性约束是指,若属性M是关系的主键,则属性M中的属性值不能为空值。
参照完整性约束是指,若属性(或属性组)A是关系M的外键,它与关系M的主码相对应,则对于关系M中的每个元组在A上的值必须为:
要么取空值;
要么等于关系M中某个元组的主码值。
13、用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡尔积。
常用的扩充运算有交、除、连接及自然连接等。
并:
RS是将S中的记录追加到R后面。
交:
RS结果是既属于R又属于S的记录组成的集合。
上述两种操作中,关系R与S要求有相同的结构,故A、D选项错误。
自然连接:
去掉重复属性的等值连接。
自然连接要求两个关系中进行,比较的是相同的属性,并且进行等值连接。
除运算可以近似地看作笛卡尔积的逆运算。
当S×
T=R时,则必有R÷
S=T,T称为R除以S的商。
设关系R有属性M1,M2,…,Mn,关系S有属性Mn-s+1,Mn-s+2,…,Mn,此时有:
R÷
S=πM1,M2,…,Mn-s(R)-πM1,M2,…,Mn-s((πM1,M2,…,Mn-s(R)×
S))。
由S中有属性A和A1,T中属性为B和B1,在R元组中找到对应于S中两个元组的T中元组为f3与n2。
R中最后一个元组与S中无对应关系,所以在T中也不会出现。
投影,从关系模式中指定若干个属性组成新的关系。
二级C语言
一、C语言概述
1、结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码
2、函数体必须由{开始。
一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的
3、算法不一定要包含所有三种基本结构,也可以只包含一种或两种
4、算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量
5、C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe
6、一个算法应该具有以下五个重要的特征:
有穷性,确定性,输入,输出以及可行性
7、只有同时包含三种基本结构时,程序才是结构化程序。
一个结构化程序可以包含顺序、分支、循环结构中的一种或多种
8、stdio.h文件中包含标准输入输出函数的函数说明,预处理指令#include<
stdio.h>
是使程序可以去该文件中找到printf,scanf等函数以便使用
9、计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe
10、算法的特征:
①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。②确定性。算法中的每一步都有确切的含义。③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。④输入:
一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。⑤输出:
一个算法有一个或者多个输出,以反映出数据加工的结果
11、算法的描述有伪代码、流程图、N-S结构图等。E-R是实体联系模型
12、C语言中的非执行语句不会被编译,不会生成二进制的机器指令。
C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件。
用C语言编写的程序称为,它以ASCII代码形式存放在一个文本文件中。
C语言源程序经编译后生成后缀为.obj的目标程序。
13、C语言的数值常量中不能夹带空格。
在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,
14、C语言程序是由函数组成的。
可以单独进行编译。
每个C程序中必须包含一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件
15、一个普通的C函数可以单独作为一个C的程序文件存在被包含到其他程序中
16、在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面
17、C语言中的某些语句可以不用分号,例如if语句
18、关键字不可用做用户标识符
19、C语言的标识符分为3类:
关键字、预定义标识符和用户标识符。常量不属于标识符
20、一条C语句对应转换成一条机器指令
二、运算符与表达式
1、sizeof是C语言中的一个操作符(operator)。
其作用就是返回一个对象或者类型所占的内存字节数
2、条件表达式:
x=表达式1?
表达式2:
表达式3的含义是:
先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。
若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x
3、C语言中没有<
>
运算符a%=b表示a=a%(b)c语言中"
^"
的意思是按位异或
4、c语言中"
的意思是按位异或,运算符号按位或"
|"
,把两个数化为二进制,异为1,同为0,
如10的二进制为00001010
3的二进制为0000001110^3=9
9的二进制为00001001
"
&
按位与运算,同为1,异为0
5、在VC6.0平台中,整型int占有4个字节,double型数据占有8个字节。
6、算术运算符+的优先级高于-=
7、十进制---->
二进制:
十进制除以2,记录余数直到除尽到0,其二进制为这些余数倒着排列。
10/2=5余0,5/2=2余1,2/2=1余0,1/2=0余1,则10的二进制为1010,因为二进制有8个字节,则10的二进制为00001010。
8、二进制---->
十进制:
例:
000010011*2^(4-1)+0*2^(3-1)+0*2^(2-1)+1*2^(1-1)=9
000011111*2^(4-1)+1*2^(3-1)+1*2^(2-1)+1*2^(1-1)=15
9、exp1&
exp2,规则为:
对exp1求值,若为0,则表达式为0,且不计算exp2;
若exp1非0,则求exp2值,作为表达式值
10、"
右移运算符,按位右移运算规则是将一个操作数先转换成二进制数,然后将二进制数各位右移若干位,移出的低位舍弃;
并在高位补位,若为无符号数,右移时左边高位移入0。
a=8=01000,执行a>
2后,a=00010=2
11、在C语言中,乘除法优先级要高于加减法,其次,除法运算符"
/"
两边参加运算对象都是整数,运算结果要取整
12、逗号表达式的值为其中最后一个表达式的值
13、i++,先使用后自增自增和自减运算符的两种用法:
前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算:
后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1例:
sum=pad=5;
pAd=sum++,pAd++,++pAd;
得:
当(*str)='
\0'
时,结束循环,返回字符'
的ASCII码0sum=5,pad=5;
pAd=5,sum=6,pAd=6,pAd=7
14、计算5/2,结果取整数值2。"
%"
运算符的两个操作值必须为整型数据
15、在C语言中,逻辑真值对应非0。
,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值
16、rand()产生随机整数
三、基本语句
1、复合语句可以包含多条语句,在其中可以定义局部变量
2、花括号对{}不仅用来表示函数的开头和结尾,也可以用于表示复合语句
3、C语言中的语句必须以分号"
;
结束,所以空语句表示为"
不是空行
4、定义语句应该出现在执行语句的前面,在printf和scanf函数中都可以指定数据的宽度,scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配,。复合语句可以由任意多条语句构成,可以使一条也可以没有
5、当(*str)='
的ASCII码0
6、while循环语句一般形式为:
while(表达式){循环体},执行过程为,首先判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环
7、gets函数,getchar是用于从终端读入字符。
fputs函数用于把字符串输出到文件。
fwrite函数用于以二进制形式输出数据到文件
8、scanf()语句中用"
空格"
间隔不同的字符串。
getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。
在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。
gets()函数的调用形式为:
gets(str_adr),其中str_adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。
gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。
getc()函数的调用形式为:
ch=getc(pf)其中pf是文件指针,函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回
9、scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上。
scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配就可以。
。Printf函数可以输出常量也可以输出变量,Prinf函数可以用"
\%"
来输出百分号%
10、数组第一个数为0。
由printf输出的数据都隐含右对齐。
Printf输出数据所占的宽度由系统决定
11、条件运算符组成条件表达式的一般形式为:
表达式1?
表达式2:
表达式3
其求值规则为:
如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值
四、选择结构
1、在C语言中,逻辑真值对应非0。
2、逻辑"
非"
(即运算符!
)的运算级别是最高的;
算术运算符优先级较高,关系和逻辑运算符优先级较低。
3、for语句的一般形式为:
for(表达式1;
表达式2;
表达式3)语句
其循环中的"
表达式1(循环变量赋初值)"
、"
表达式2(循环条件)"
和"
表达式3(循环变量增量)"
都是选择项,即可以缺省,但"
;
不能缺省。
该题目中省略了"
。
4、&
只有运算对象均非零结果才为真。
逻辑与只有在"
符号两边操作均为真时,逻辑与为真。
||只要有一个对象非零结果就是真。
逻辑或当且只当"
||"
符号两边操作至少有一个为真时,逻辑或结果为真
5、a!
=b表示a不等于b时,运算结果为1,或者为0
6、逻辑与运算符遵循"
短路求值"
策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数
若有定义:
inta=0,b=0,c=0,d=0;
,有C语言表达式(a++&
b++)?
c++:
d++,以下关于其执行顺序的叙述正确是
先执行a++,表达式a++的值为0,由此即可确定(a++&
b++)的值为0,因此执行d++
7、if语句中表达式为1直接执行。
为0执行else
五、循环结构
1、条件表达式的执行次数总是比循环体的执行次数多一次
2、设有以下代码
do{
while(条件表达式1)
循环体A;
}while(条件表达式2);
while(条件表达式1)
{
do{
}while(条件表达式2);
}
假设表达式1与表达式2成立次数为n1与n2。
若n1>
n2,则循环体A执行次数为n2+1,B执行次数n2+1;
若n1<
n2,则循环体A执行次数为n1,B执行次数n1
3、while循环语句一般形式为:
while(表达式){循环体},执行过程为:
首先判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环。
do…while循环语句一般形式为:
do{循环体}while(表达式),执行过程为:
首先执行循环体,之后判断表达式,成立(非0)则再一次执行循环体,不成立(0)则退出循环。
4、在条件相同的情况下,do…while循环比while…do多执行一次函数体两种循环都是在表达式为0时结束循环。
do-while循环由表达式真假判断是否退出循环,也可以用break语句退出循环
5、,while语句的语义是:
计算表达式的值,当值为真(非0)时,执行循环体语句.intk=0;
while(k=1)k++;
while(k=1)=while
(1),是死循环,执行无限次。
6、只要适当地修改代码,就可以将do-while与while相互转换。
for语句使用最为灵活,它完全可以取代while语句;
7、s[k]-'
0'
为是s[]数组的k所对应的字符串长度。
8、在C语言中等于号用"
=="
表示,一个"
="
表示赋值
六、数组
1、*与&
放在一起作用抵消,*(pt+i)表示引用指针pt所指元素后的第i个元素
2、#include<
main()
{intc[6]={10,20,30,40,50,60},*p,*s;
p=c;
s=&
c[5];
printf("
%d\n"
s-p);
}
语句p=c;
指将c[0]元素的地址赋给指针变量p;
语句s=&
指将c[5]元素的地址赋给指针变量s
3、#include<
{inta[5]={2,4,6,8,10},*p,**k;
p=a;
k=&
p;
%d"
*(p++));
**k);
首先通过p=a使p指向数组的第1个元素,所以输出2;
在输出2以后,由于p++,即p就指向数组的第2个元素,**k就是取出p所指向元素的值,而p指向的是数组的第2个元素,即输出4
4、通过一条语句可以定义多个数组;
数组说明符的一对方括号中可以是整型常量,可以是整型常量表达式;
在引用数组元素时,下标表达式必须是整型的。
5、chara[2]={"
A"
"
B"
};
不合法,应为chara[2]={'
A'
'
B'
用字符串方式赋值比用字符逐个赋值要多占1个字节
6、数组下标的下限是0。
7、数组名后面括号的值必须是整形常量,不可以是变量
8、static内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着
9、voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
fun(c+4,6);
即指排序从第5个元素开始进行从大到小排序。
10、数组说明的一般形式为:
类型说明符 数组名[常量表达式]。
11、指针的赋值首先基类型必须一致,s二维数组名,是二维数组的首地址,其基类型是一个具有10个元素的字符数组。
p是一个字符指针变量,其基类型是一个字符,k是一个行指针,其基类型是具有3个元素的字符型数组。
七、函数
1、C程序中主函数不能被其他函数调用。main函数可以放在程序开始,也可以放在中间,也可以放在最后,位置不固定,但程序执行时必须从main函数开始。在C程序的函数中不能定义另一个函数,可以声明或调用另一个函数。每个C程序中必须包含一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件
2、数学库中定义了函数的名称、参数个数与类型、返回值类型与具体的函数体。
编译预处理时,预处理程序将查找指定的被包含文件,并将其复制到#include命令出现的位置上,不引用math.h文件,文件编译时,编译器无法识别没有被定义的sin函数。
若要使用C数学库中的sin函数,需要在源程序的头部加上
#include<
math.h>
通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型
3、函数调用时,函数名称是需要区分大小写的;
函数名不允许以数字开头;
在函数中允许有多个return语句,但每次调用只能有一个return语句被执行
4、用户自己定义的函数能调用库函数也可以调用自定义函数;
对于不同函数的形式参数可以使用相同名称的标识符;
关于函数的定义不可以嵌套,但函数的调用可以嵌套。
5、不能将一个整数直接赋给指针变量作为地址。
函数的返回值可以是地址,即指针。
函数调用中形参值的变化不会传递给实参。
6、C语言规定,实参变量对形参变量的数据传递是"
值传递"
,即单向传递,只由实参传给形参,而不能由形参传回来给实参。
在内存中,实参单元与形参单元是不同的单元。
7、C程序必须由一个或一个以上的函数组成;
函数调用可以作为一个独立的语句存在;
若函数有返回值,必须通过return语句返回
8、语句f(&
a[2],5,0)的作用是对从a[2]开始的5个元素进行从大到小排序。
9、voidf(int*s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 语言 知识点