编程学习网 > 编程语言 > C/C++开发 > c语言基础知识(c语言知识点总结)
2022
12-08

c语言基础知识(c语言知识点总结)

今天编程学习网为大家讲解c语言基础知识,有需要的小伙伴可以参考一下

1. C语言中规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线,而且标识符不能是C语言的关键字。
2.scanf函数的一般格式是:
3.scanf(格式控制,地址表列)
4.逻辑与“&&”,逻辑或“ll ”,逻辑非“!”
逻辑与运算符“&&”,当参与运算的两个量都为真时,结果才是真,否则为假;逻辑或运算符“ll ”,当参与运算的两个量有一个为真时,结果是真,否则为假;逻辑非运算符“!”,当参与运算的量为真时,结果才是假,否则为真。
5. for循环可以用于循环次数不确定的情况: for循环是先判断表达式,后执行循环体语句;在for循环中,可以用break语句跳出循环体,从而接着执行循环体后面的语句。
6.逻辑非运算符“!”的优先级大于不等于运算符“!=”的优先级。
7. do-while语句的一般形式为:do循环体语句 while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
8.调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。
9.共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。
10. C语言中规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线,而且标识符不能是C语言的关键字。
11.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为fgets(字符数组名,n,文件指针):其中的n是一个正整数。 fgets( str,n,fp);的意义是从fp所指的文件中读出n-1个字符送字符数组 str中。
12.程序设计语言是用于来书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。
13.软件工程包括3要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成:过程支持软件开发的各个环节的控制、管理。
14.数据库逻辑设计的主要工作是将E─R图转换成指定RDBMS中的关系模式。首先,从E—R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E一R图中属性也可以转换成关系属性。实体集也可以转换成关系。
15.所谓满二叉树是指这样的一种二叉树;除最后一层外,每一层上的所有结点都是有两个叶子结点。这就是说,在满二叉树中,层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。
16.一些流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。
17.软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。
18.数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。
19.数据库系统数据具有高共享性和低冗余性,但不能完全避免数据冗余﹔数所据的一致性是指在系统中同一数据的不同出现应保持相同的值。
20. switch语句,其一般形式为;
21.     switch《表达式)
22.    {
23.    case常量表达式l:语句l;
24.    case常量表达式2:语句2:
25    ...
26.    case常量表达式n:语句n;
27.    default:语句n+1;
28.    }
其语义是计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default 后的语句。
29.结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元,而共用体变量所占的内存长度等于最长的成员的长度。
30.在一维数组中要注意的是下标表达式的常量表达式的值必须是大于等于零,并且小于自身元素的个数,既数组长度。
31.如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应
该比它将要实际存放的最长字符多一个元素,以存放’l0’。
32.“ll”表示或的意思,“l”是按位或的意思,“&&”是并且的意思,C语言中没
有“or"”.
33,函数 fopen的功能:打开一个文件调用方式FILE*fp;fp=fopen(文件名,使用文件方式);
函数fprintf 的功能:传送格式化输出到一个文件中调用方式: fprintf(文件指针,格式字符串,输出表列);
函数fclose的功能:关闭一个文件调用方式: fclose(文件指针);
函数fscanf 的功能:从磁盘文件执行格式化输入调用方式: fscanf(文件指针,格式字符串,输入表列)。
34.C语言规定,一个函数中调用另一个函数(即被调用函数)需要具备的条件有;
①首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。②如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要到的信息“包含”到本文件中来。
③如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数作声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
35.定义结构体类型的变量有几种的方法如下:
36.①定义结构体类型的同时,定义结构体类型的变量,如下面的定义中在定义结构体类型aa的同时定义了该类型的变量td1。上述选项B中将宏名AA用宏体struct aa替换进去后,与该定义形式一样,因此是正确的。这一定义形式中,结构体类型名 aa是可以省略的,
37.     struct aa
38.    {…
39.     }tdl;
40.②先定义结构体类型,然后再定义结构体类型的变量,形式如下:

41. struct aa
42.{

43.
;
struct aa tdl;

这种定义形式也可演变为,先用类型定义语句 typedef将该结构体类型定义成一个类型名AA,然后直接用该类型名AA去定义一个变量(这时不再需要使用关键字struct了)。
44.函数strcpy的功能是字符串拷贝,用法 char*strcpy(char*str1l,char*str2),作用是将字符串⒉复制到字符串Ⅰ中去。二维数组可以看做是一种特殊的一维数组,它的元素又是一个一维数组。
45.尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。其次是要应注意表达式*(z++)的值是*z。
46.“!”表示逻辑非运算符,“! =”等于运算符,逻辑非运算符比等于运算符的优先级低。
47.①printf 函数的浮点数缺省输出格式:在printf函数的输出中,若无输出宽度限制,每种数据都有一个缺省的输出宽度,一般浮点数的小数位数是6位,不管输出格式是%f或%lf 皆如此。
48.printf函数的浮点数宽度限制输出:小数部分按指定数输出,且对数据傲四舍五入处理。
49.3printf 的整数限宽输出:没有宽度制的整数原数输出。
50.关于C语言,我们应该了解以下必须要掌握的基础知识:
①C程序是由函数构成的。
②一个函数由两部分组成:函数的首部和函数体。
③一个C程序总是从main函数开始执行的,而不论main函数的整个程序中的位置如何(main函数可以放在程序最开始,也可以放在程序最后,或写在一些函数之前,在另一些函数之后)。
④C程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后必须有一个分号。
⑤C程序本身没有输入输出语句。输入和输出的操作是由库函数scanf和 printf等函数来完成。⑥可以用/定……*/对C语言的程序的任何部分作注释。
51.C语言相对其他高级语言来说,放宽了语法检查,因此程序设计自由度大,并不是不检查语法,C语言的程序是由函数构成的。函数不能嵌套定义,但是可以嵌套调用。
52,实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可是无生命的事物,但它必须是客观存在的,而且可以相互区别。
53.在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。
54.通常,将软件产品从提出、实现使用维护到停止使用退役的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护3个阶段。
55.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的可理解性。
56,关系模型较之格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。
57.分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。
58.头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。
59.算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。
60,树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又时一棵树。树有且只有1个根结点。
61.软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据:③作为确认测试和验收的依据。
62.外模式是用户的数据视图,也就是用户所见到的数据模式全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;存储模式为内模式。
63.结构化查询语言(Structured Query Language,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。
64.软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
65.使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。
66.内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引,集簇及hash 等存取方式与存取路径。
67.数据库管理系统(Database Management System,简称DBMS)是数据库的机构,它是一种系统软件,负责数据中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。
68.在C语言中,各语句间可以用分号隔开,一行可以书写多个语句;C语言中进行运算的数据类型必须一致的规定,因此实型变量中不允许存放整型数,存放整型数据其实是把整型转化为实型在存放。
由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效的位以外的数将被舍去,由此可能产生一些误差。
69.“%”是求余运算符或模运算符,“%”两侧均应为整型数据
70.在C语言中,自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:
 ++l i自增1后再参与其他运算--Ii自减1后再参与其他运算i++i参与运算后,i的值再自增1i-- i参与运算后,i的值再自减1在理解和使用上容易出错的是i++和++i。特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细解析。
71,运算符“%”的两侧都应该是整型数。另外,x%=k,等价于x=x%k。
72.用strcpy(函数,该函数的调用方式是:
73.strcpy (字符数组,字符串)其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。使用该函数时注意:
①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,同结束标志'10’一起复制。
②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpyO函数来处理。
另外本题还考查连接字符串的 strcat ()函数,其调用方式是:strcat(字符数组,字符串)功能是把“字符串”连接到“字符和数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:
①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以容纳连接后的目标字符串;否则,会因长度不够而产生问题。
②连接前两个字符串都会有结束标志’\0’,连接后“字符数组”中存储的字符串的结束标志’\0′被舍弃,只在目标串的最后保留一个’io'。
74. scanf函数的输入方法。Scanf()函数是格式输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为: scanf(“<格式化字符串>”,<地址表>);,格式化字符串包括以下三类不同的字符:
② 格式化说明符:格式化说明符与printf ()函数中的格式说明符基本相
②空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。③非空白字符:一个非空白字符会使scanf ()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址,而不是变量本身。这与printf)函数完全不同,要特别注意。各个变量的地址之间同“,”分开,还要注意的是在输入时,输入形式应与格式化字符串对应一致。
75.指针数组的定义、赋初值、数组元素的引用与赋值等操作和一般数组的处理方法基本相同。其格式是:存储类型数据类型*指针数组名1[长度1]{初值 1},…功能是定义指向“数据类型”变量或数组的指针型数组,同时给指针数组元素赋初值。这些指针变量具有指定的“存储类型”。
76.类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法.
77.在树结构中,每个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。
78.面向对象模型中,最基本概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
79.若将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。
80,数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。
81.在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。
82.软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定:调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误位置,并改正错误。
83.程序设计语言是用于书写计算机程序语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。
84.软件需求规格说明书(SRS,Software Requirement Specification〉是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:
①便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
85.数据库逻辑设计的主要工作是将E-R 图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。
86. C语言的转义字符见下表所示。
转义字符﹑转义字符的意义in
回车换行
\ t横向跳到下一制表位置
 \ v竖向跳格
\ b退格
\r回车
\ f换页
l l反斜线符“、”单引号符
\ a鸣铃
. ddd
1~3位八进制数所代表的字符xhh1~2位十六进制数所代表的字符
87.为便于表示各种数据类型,机器中采用了BCD码(表示十进制数)、ASCII码(字符型)、汉字机内码等等各种码。数据采用了补码、原码和反码为表示形式。实型数据表示方法有浮点法和定点法等,考生需熟练掌握各种码的含义,并用之来计算、比较。需要提出的是,在机器内部,所有码都是由二进制编码而成的,它都是以二进制存储在机器之中的。字符“5”和“7”的ASCII的值分别为53和55,其二进制形式分别为00110101和l 00110111。
88.算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量; 算法的空间复杂度一般是指执行这个算法所需要的内存空间。
89.链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放:它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。
90.数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。
91,结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。
92.软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义:接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。
93.确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明定各种需求;集成测试的主要目的是发现与接口有关的错误。
94.数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。
95.数据库中的数据具有"集成"与"共享""的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用。
96.E-R模型即实体-联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种联接关系。数据库逶辑设计阶段包括以下几个过程:从E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和RDBMS,以及关系视图设计。
97.人工管理阶段是在20世纪50年代中期以前出现的,数据不独立,完全依赖于程序;
文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。
98.构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main
函数在整个程序中位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
以上就是“c语言基础知识”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取