还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C程序设计》知识点第1章C语言概述
1.
1.C语言属高级语言,区分字母的大小写,以函数为基本单位采用模块化程序设计,可直接访问内存,进而对硬件进行操作
1.
2.用C语言编写和程序称作C源程序,简称C程序,C程序可由若干个文本文件组成,文件扩展名为C(使用C++编译器时默认扩展名为CPP)C源程序经编译、连接后得到扩展名为EXE的可执行文件目标程序预处理编译、连接执行若干个C程序文件----→C程序------→目标程序文件--→
1.
3.C程序从主函数开始执行,每个C程序有且仅有一个主函数,因此,每个C程序文件中至多有一个主函数
1.
4.C语句以分号结尾,用{}括起来的一组语句称作复合语句,复合语句可省略花括号之后的分号
1.
5.允许一行内写多个C语句,也允许一个C语句占用多行,但保留字和标识符不可拆行
1.
6.在C集成环境VC++
6.0中,新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为Ctrl+N、Ctrl+S、F
7、Ctrl+F5第2章程序设计的灵魂——算法
2.
1.解决问题的方法和步骤称作算法算法和数据结构是程序的两个主要要素
2.
2.算法具有确定性、有穷性、有效性等特点
2.
3.算法可用自然语言、流程图、N-S图、计算机语言、伪代码等描述伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法起止框输入输出框判断框处理框注释框……连接点〇流程线有向线段或折线图
2.1ANSI流程图符号
2.
4.算法的基本结构分为顺序结构、选择结构、循环结构↓↓↓↓←---┐Y┌条件┐N条件┐N│↓↓↓↓Y│↓││条件┘Y↓└---→↓←---┘↓←---┘↓N图
2.2顺序结构图
2.3选择结构图
2.4当循环图
2.5当循环条件条件循环体YN循环体条件图
2.6顺序结构图
2.7选择结构图
2.8当循环图
2.9当循环
2.
5.由三种基本结构组成的程序称作结构化程序,结构化程序中的每个模块只有一个入口和一个出口结构化程序设计通常采用“自顶向下、逐步细化”的设计方法第3章数据类型、运算符与表达式
3.
1.C的数据类型如下所示表
3.1C语言的数据类型数据类型字节数数值范围基本类型整型无符号短整型unsignedshortint20~216-1有符号短整型signedshortint2-215~215-1无符号长整型unsignedlongint40~232-1有符号长整型signedlongint4-231~231-1实型单精度实型float4长37位,6位有效双精度实型double8长307位,15位有效长双精度实型longdouble10长4931位,18位有效字符型char10~28-1空类型void1构造类型枚举类型2指针类型2数组类型结构体类型共用体类型
3.
2.C符号常量名、变量名、函数名等统称标识符,标识符的命名规则为以字母或下划线开头,由字母、数字、下划线组成,超出32个字符部分被忽略最好不超过8个字符
3.
3.以0开头的整数为八进制整数,以0X或0x开头的整数为十六进制无符号整数
3.
4.-32768~32767为int型,0U~65535U为unsigned型,65536U~4294967295U和0UL~4294967295UL为unsignedlong型,-2147483648~-
32769、32768~2147483647和-2147483648L~2147483647L为long型后缀U和L不区分大小写和次序
3.
5.数据的存储字节数可用运算符sizeof查询,括号内可是数据、表达式或类型名
3.
6.有符号整数int和long按补码存储,因此,-65535U~-1U与1U~65535U依次相等,-4294967295UL~-1UL与1UL~4294967295UL依次相等
3.
7.定点数含小数点数和浮点数统称C实型常量,浮点数的一般形式为尾数e除码或尾数E除码其含义为尾数×10除码其中,尾数为定点数或整数,除码为整数标准浮点数的小数点在第1位非0数字之后后缀L或l的实型常量为长双精度,无后缀实型常量为双精度
3.
8.用一对单引号括起来的单个字符称作C字符常量,其值为该字符的ASCII码(1字节无符号整数)
3.
9.转义字符\n、\t、\\、\、\分别表示回车符、制表符、反斜杠、单引号、双引号
3.
10.转义字符\整数、\x整数(或\X整数)中的整数分别为八进制、十六进制,表示以此整数为ASCII码的字符
3.
11.用双引号括起来的一串字符称作C字符串型常量,串中字符数称作串长,可以为0字符串的存储形式为依次存储字符串中字符的ASCII码,并追加一个空字符\0(1字节无符号整数0)
3.
12.字符型、整型、实型数据统称数值型数据,不同类型的数值型数据可以混合运算,低精度数据被自动强制转换为高精度数据后方参与运算另外,字符常量为有符号短整数,两个字符型数据间的运算按有符号短整数处理
3.
13.如果将数值型数据赋给不同类型的数值型变量,则数值型数据将被自动强制转换为变量的数据类型
3.
14.C允许定义变量的同时赋初值
3.
15.C运算符及其优先级、结合性如附录C(教材第365页)所示
3.
16.强制数据类型转换的一般形式为类型名数据
3.
17.自增++、自减--运算只能作用于变量,作用于右侧时,返回变量自增、自减前的值
3.
18.赋值表达式的格式为变量=表达式或变量op=表达式其中,op为运算符+、-、*、/、%、、、、^、|中某一个前者将右边表达式的值赋给左边的变量,后者将左边变量的当前值与右边表达式的值作相应运算后仍赋给左边的变量整个赋值表达式取左边变量所赋的新值
3.
19.用逗号分隔的一组表达式称作逗号表达式,其一般形式为表达式表达式…表达式其功能为从左至右依次计算各表达式的值,并以最后一个表达式的值为整个逗号表达式的值
3.
20.将数学式改为C表达式时应注意1乘号*不可省略;2正确改写脚码、运算符、括号等;3正确书写函数名;4把握好运算优先级,分数线改为/时,分子、分母相应加括号;5正确拆分不等式组;6区分整数除法和实数除法第4章顺序结构程序设计
4.
1.表达式后缀分号称作表达式语句,即,表达式;
4.
2.putchar、getchar、printf、scanf等输入输出函数的原型在头文件stdio.h中
4.
3.函数putchar和getchar的格式和功能如下1putchar格式putchar表达式功能向标准输出设备输出以指定表达式的值为ASCII码的字符,并以该值为函数值自动强制转换为int型2getchar格式getchar功能从标准输入设备输入一个字符,并以该字符为函数值注意getchar可提取空格及回车、Tab等部分控制字符,而且只提取输入中相应位置上的一个字符,因此,输入字符间无须分隔,否则也被视为输入字符
4.
4.printf函数的格式和功能如下格式printf格式控制串输出表列功能1从右至左依次计算输出表列中各表达式的值;2从左至右依次输出格式控制串中的字符,其中,%引导的格式控制符由输出表列中相应表达式的值所取代输出表列是一组用逗号分隔的表达式(又称输出项,可以为0项)格式控制串为字符串型数据(可以是表达式)其中,格式符用于控制输出表列中相应表达式的输出格式格式符及其功能如下表所示表
4.1printf格式字符格式符说明d或i有符号十进制短整数不输出正号u无符号十进制短整数o无符号八进制短整数无前缀0x或X无符号十六进制短整数无前缀0x,数字的大小写与x相同c字符s字符串f定点数默认6位小数e或E浮点数浮点数中e的大小写与格式符e的大小写相同g或G%f和%e中输出宽度较短者e与g的大小写相同附加格式符说明l插在%和d、i、u、o、x、X之间,表示输出相应长整数整数插在%和其它格式符之间,前一个整数的绝对值为输出数据的宽度,后一个整数控制实际输出位数
①输出整数时,指定输出位数,不足左补0,超出保留;
②输出实数时,指定输出小数位数,不足右补0,超出四舍五入;
③输出字符串时,指定输出字符数另外,第一个整数为负时,输出数据左对齐,否则右对齐.整数整数.整数
4.
5.scanf函数的格式和功能如下格式scanf格式控制串地址表列其中,格式控制串为字符串型数据可以是表达式,地址表列是一组用逗号分隔的地址功能1右至左依次计算地址表列中各表达式的值;2从标准输入设备提取数据,并从左至右依次存储到所指定的存储单元3地址表列中的地址可用表达式表示,通常形式为变量其中是地址运算符,它表示取其后变量的存储起始地址说明1scanf函数格式符与printf函数的格式符的功能相似scanf的合法格式符不区分大小写、实型格式符均等效,另外,表
4.2scanf的附加格式符说明附加格式符说明正整数指定输入数据的最大宽度插在%与其它格式符之间*跳过当前一个数据插在%与其它格式符之间*正整数跳过当前指定个字符插在%与其它格式符之间2如果格式控制串中有非格式符,则输入数据中对应位置上必须是该字符,且被跳过,这为指定数据间分隔符提供了方便3printf和scanf格式控制串中的每对%%从左至右结合按一个普通字符%对待第5章选择结构程序设计
5.
1.C逻辑值为短整数int,真、假分别为
1、0另外,字符、数、指针作为逻辑量时,非
0、非空为真即1,
0、空为假即0逻辑运算如下表所示表
5.1逻辑运算真值表左元右元!右元左元右元左元||右元假0假0真1假0假0假0真非0假0假0真1真非0假0真1假0真1真非0真非0假0真1真
15.
2.对于形如□||□||…的逻辑式,从左至右计算□的逻辑值,遇到真则提前终止
5.
3.对于形如□□…的逻辑式,从左至右计算□的逻辑值,遇到假则提前终止
5.
4.算术、关系、逻辑运算的优先级参见附录C(教材第365页)
5.
5.if语句的格式和功能如下1格式一if条件语句功能如果条件成立,方执行语句2格式二if条件语句1else语句2功能如果条件成立,执行语句1,否则执行语句2注意else不可__使用,它与其前最近一个尚未配对的if配对,为避免歧义,通常只在else中嵌套if语句
5.
6.条件表达式的格式和功能如下格式条件表达式1:表达式2功能如果条件成立,取表达式1的值,否则取表达式2的值说明条件表达式可以嵌套,与其前最近一个尚未配对的if配对
5.
7.switch语句的格式和功能如下格式switch表达式{…case常量i:语句组i…default:语句组n+1}功能如果表达式的值等于常量i,则从语句组i开始执行,否则执行语句组n+1说明1“表达式”的值和“常量”为整型包括字符型2switch中的每个语句组称作一个分支,为使各分支__,通常以break、return、exit等语句结尾另外,“default:语句组n+1”可以缺省
5.
8.break语句的格式和功能如下格式break;功能结束本层switch语句或本层循环语句说明break语句只能用于switch语句和循环第6章循环结构程序设计
6.
1.while语句的格式和功能如下格式while表达式循环体功能当表达式的值为真时,重复执行其后循环体说明循环体是循环语句的内嵌语句,可以是空或复合语句下同
6.
2.do-while语句的格式和功能如下格式do循环体while表达式功能重复执行循环体,直到表达式的值为假说明do-while循环至少执行一次循环体
6.
3.for语句的格式和功能如下格式for表达式1;表达式2;表达式3循环体功能1计算表达式1;2当表达式2的值为真时,重复执行循环体和计算表达式3说明表达式
1、表达式
2、表达式3均可缺省,但保留分号
6.
4.continue语句的格式和功能如下格式continue;功能跳过循环体中其后程序段结束本次循环说明continue语句只能用于循环
6.
5.掌握以下算法累加、阶乘、判断素数、分解整数数字、递推数列、打印字符图形第7章数组
7.
1.同一类型数据的序列称作数组,数组中数据用相应下标变量访问,因此,数组亦可视为由下标变量组成的序列
7.
2.定义数组语句的一般格式和功能为格式数据类型名数组名[第1维长度]…[第n维长度]功能为数组分配连续内存单元,用于存储数组中的下标变量低维优先,并将起始地址又称基址赋给数组名说明数组长度只能为整型常量或整型常量表达式
7.
3.数组的要素有数据类型、数组名、维数及各维的长度各维的长度必须是常量,可用常量表达式表示,其值的整数位有效——截断取整
7.
4.下标变量的格式为数组名[第1维下标]…[第n维下标]
7.
5.下标从0开始,可用表达式表示,其值的整数位有效下标最大值比长度小
17.
6.下标变量的使用与普通变量相同
7.
7.定义数组的同时可对数组中的下标变量赋初值格式数据类型名数组名[第1维长度]…[第n维长度]={数据表}功能定义数组的同时将数据表中数据依次赋给数组中下标变量,未赋值下标变量的初值为相应数据类型的0说明数据表中的数据必须是常量,可用表达式表示第1维长度可省略,如果省略,其长度由数据表和其它维长度确定——存储所需的最小长度
7.
8.以字符为数据元素的数组称作字符数组,它由一组字符型下标变量组成除赋值外,字符数组名的使用与字符串变量相似字符数组也可用字符串初始化
7.
9.标准函数库提供许多用于处理字符串的函数表
7.1常用字符串处理函数格式功能头文件puts串依次输出串中字符,遇到\0终止,然后换行stdio.hgets串读入一行字符,依次存入所分配的内存空间,并追加\0strcat串1串2将串2__、连接到串1的第一个\0处string.hstrcpy串1串2将串2__到串1strcmp串1串2比较串1和串2的大小strlen串求字符串的长度strlwr串将串中大写字母均转换为相应小写字母strupr串将串中小写字母均转换为相应大写字母注意输出字符串及处理字符串的函数,均忽略字符串中第一个\0及其后的字符
7.
10.掌握冒泡排序第8章函数
8.
1.自定义函数的格式为函数值类型函数名带类型声明的形参表列{函数体}
8.
2.函数值的默认数据类型为int
8.
3.如果函数有返回值,则用return语句返回,其格式为return表达式;或return表达式;
8.
4.如果函数无返回值,即函数值类型为void,亦可用格式return;结束本函数并返回调用者
8.
5.函数一般调用格式为函数名实参表列其中,实参表列为一组逗号分隔的表达式实参按从右至左的次序计算并传递给相应形参
8.
6.如果函数调用在其定义之前,调用前应作相应声明,声明格式为函数值类型名函数名形参及其类型声明表列;其中,形参可省略
8.
7.函数不可嵌套定义,但允许嵌套调用,亦可直接或间接调用自身称作递归函数
8.
8.递归函数的函数体的一般格式为(B班同学不作要求)if递归条件语句1/*递归时,如何递归*/else语句2/*非递归时,如何处理*/或if!递归条件语句1/*非递归时,如何处理*/else语句2/*递归时,如何递归*/
8.
9.形参及函数__义的变量称作局部变量,它从定义处生效,且只在该函数内有效因此,不同函数中的局部变量可以同名,但同名不同义
8.
10.在所有函数之外定义的变量称作全局变量,它从定义处生效
8.
11.如果局部变量与全局变量同名,则同名全局变量被屏蔽
8.
12.局部变量的存储方式分为自动auto,默认、静态static、寄存器register
8.
13.存储方式和数据类型是变量的两个重要属性,必须在定义变量时一并声明,关键字的排列顺序没有限制变量的默认数据类型为int,默认存储方式为auto,但关键字auto和int不可同时缺省
8.
14.auto型局部变量占用动态数据区,当函数调用结束时释放所占内存register占用CPU中的寄存器,但寄存器不够用时,占用动态数据区
8.
15.全局变量和static型局部变量占用静态数据区,默认初值为相应数据类型的
08.
16.static型局部变量的声明和初始化只执行一次
8.
17.如果全局变量被声明为static型,则其它程序文件不能使用该全局变量否则,其它程序文件也可使用该全局变量,但使用前应作extern声明
8.
18.被声明为static型的函数,只在本程序文件中有效,不能被其它程序文件调用否则,其它程序文件也可调用此函数,但调用前应作extern声明
8.
19.常用数学函数在头文件__th.h中掌握基本初等函数第9章预处理命令
9.
1.预处理命令在程序编译前执行,其主要功能是“文本置换”
9.
2.不带参数宏定义的格式和功能如下格式#define宏名文本功能在预处理时,将程序中宏名用相应的文本置换
9.
3.带参数宏定义的格式和功能如下格式#define宏名形参表列文本功能在预处理时,将程序中带参数的宏用相应的文本置换,且文本中的形参被相应的实参所置换注意形参无须且做类型声明
9.
4.终止宏定义的格式如下格式#undef宏名
9.
5.宏定义可以引用已有的宏,亦可重新定义所代表的文本
9.
6.预处理命令无须以分号结尾,否则分号也参与置换
9.
7.#include命令的格式和功能如下格式一#include文件名格式二#include文件名功能在预处理时,用指定文件置换本命令——加载文件置换后,被包含文件成为本文件的一部分,其函数、全局变量等均可在本文件中直接使用,无须作extern声明前一种格式先在当前目录中找指定文件,如果未找到,方到存放C头文件的目录中查找后一种格式直接到存放C头文件的目录中查找指定文件
9.
8.条件编译命令的格式和功能如下格式一#ifdef宏名程序段1#else程序段2#endif功能在预处理时,如果指定的宏名已定义,则用程序段1置换本命令,否则用程序段2置换本命令当程序段2为空时,#else可省略下同格式二#ifndef宏名程序段1#else程序段2#endif功能在预处理时,如果指定的宏名未定义,则用程序段1置换本命令,否则用程序段2置换本命令格式三#if常量表达式程序段1#else程序段2#endif功能在预处理时,如果指定常量表达式的值为真非0,则用程序段1置换本命令,否则用程序段2置换本命令
9.
9.注释命令在预处理时被删除,不影响源程序和目标程序注释命令的格式如下/*注释内容*/第10章指针
10.
1.内存的基本单位是字节,每个字节都有相应的编号,称作地址或指针借助于指针,C语言可以直接访问内存,从而对硬件进行操作
10.
2.变量所占用内存的大小由其数据类型决定,变量所占用内存的第1个字节的地址称作该变量的地址或指针,表为变量名
10.
3.指针所指向数据的类型称作该指针的基类型,它所指向数据用*指针访问,可作为普通变量使用
10.
4.指针本身也是一种数据类型,占用2字节内存,可作为无符号整数输出和参与关系运算、逻辑运算,但指针的其它运算不同于整数运算
10.
5.指针运算可简单地分为以下五类1单目运算有六个!、、*、++、--、sizeof2双目运算有四种-、关系运算、逻辑运算、赋值运算3指针与整数间的运算有三个+、-、[]4强制类型转换运算5结构体成员运算-其中,+、-、++、--、+=、-=均以基类型数据为基本单位
10.
6.一维数组的数组名可作为指针调用,它指向数组中的第一个元素,以数组中元素的类型为基类型数组名的值不可修改,且sizeof数组名的值为整个数组所占内存的字节数
10.
7.对于一维数组来说,基址+i和基址[i]均指向数组中的第i+1个元素i=0;*基址+i和基址[i]均表示数组中的第i+1个元素i=
010.
8.n维数组可看作是以n-1维数组为元素的一维数组,数组名可看作是指向数组中的第一个n-1维数组的指针
10.
9.下标变量可作为实参,但不可作为形参,实际上,它被误认为指针
10.
10.※C源程序经编译后,系统为源程序中的每个函数均分配一个入口地址,称作函数指针在C源程序中,函数指针用函数名表示,其值不可修改以函数指针为值的变量称作函数指针变量,其定义格式为函数类型名*函数指针变量名;可用下述格式代替函数名*函数指针
10.
11.※
[1]函数返回值可以是指针,定义函数的一般格式为基类型*函数名形参列表{函数体}
10.
12.不允许将非0数直接赋给指针变量,须做强制转换当指针变量的值为0时,称之为空指针
10.
13.※以指针为元素的数组称作指针数组
10.
14.※以指针为基类型的指针称作指向指针的指针,以指向指针的指针为值的变量称作指向指针的指针变量,其定义格式为存储方式关键字基类型名**指向指针的指针变量名
10.
15.※C源程序经编译、连接所得目标程序exe文件可作为DOS外部命令使用,命令行的一般式为路径\目标程序文件名参数1参数2…参数n
10.
16.※C主函数__in可带两个形参,前者为int型,用于接收命令行中字符串个数,后者为字符串指针数组,用于接收命令行中各字符串带参主函数的格式为void__inint形参1char*形参2[]{函数体}其中,形参1=参数个数+1形参2
[0]=路径\目标程序文件名形参2[i]=参数i,i=12…n第11章结构体与共用体
11.
1.声明结构体语句的一般格式为struct标识符{成员表列};其中,成员表列为一组声明变量的语句,这些变量称作该结构体的成员,又称数据项、分量、域、字段等语句结尾处的分号不可缺省,标识符可以省略,如果不省略标识符,则新增一个数据类型名struct标识符
11.
2.定义结构体变量的一般格式为struct标识符变量表列;也可在声明结构体的同时定义变量struct标识符{成员表列}变量表列;
11.
3.结构体变量可在定义时赋初值,类似于数组赋初值
11.
4.结构体变量的整体使用有以下四种1赋值结构体变量=同类型结构体变量2求存储量sizeof结构体变量3取地址结构体变量4初始化——与数组初始化相似
11.
5.结构体中成员可作为普通变量使用,成员的访问格式为结构体变量名.成员名或结构体指针-成员名
11.
6.结构体中的成员名只在该结构体类数据中有效,因此,不同结构体中的成员可以同名,成员名也可与普通变量同名
11.
7.结构体中的成员可以是指针,其基类型可是正在定义或尚未定义的结构体
11.
8.以同一类型结构体为元素的数组称作结构体数组,以结构体为基类型的指针称作结构体指针结构体数组和指针的定义和使用与基本类型数组和指针相似
11.
9.共用体与结构体相似,主要区别有1定义共用体的保留字为union;2同一共用体各成员的基址相同,访问成员时必须与最后所存数据的类型相同,共用体数据所占内存与其成员中所占内存最大者相同;3不可初始化共用体变量
11.
10.读取共用体成员时,应按最后一次所存入成员的数据类型读取
11.
11.共用体和结构体的成员可以是已存在的共用体和结构体,但不可嵌套定义
11.
12.声明枚举类型语句的一般格式和功能为格式enum标识符{枚举元素列表}变量列表;功能1显式或隐式指定所列枚举元素所代表的整数;2如果不省略标识符,则定义一个枚举类型名enum标识符枚举元素表是一组用逗号分隔的标识符或整数常量赋值表达式,第一个枚举元素的默认值为0,其它枚举元素的值为前者加
111.
13.typedef语句的格式和功能为格式typedef数据类型名别名1…别名n;功能给指定数据类型增加一组名称
11.
14.typedef语句也可在声明结构体、共用体、枚举类型的同时给它增加一组名称第13章文件(B班不作要求)
13.
1.文件是存储在外部介质存储器上的数据__,每个文件均有标识符,称作文件名
13.
2.C所使用的数据文件分为文本文件和二进制文件文本文件以字符为基本单位,存储字符所对应的ASCII码,又称___文件或ASCII文件;二进制文件中的数据存储形式与内存中存储形式相同
13.
3.指向文件结构体的指针称作文件类型指针,简称文件指针或FILE指针,其定义格式为FILE*文件指针;
13.
4.读写文件之前须用fopen打开或创建该文件,访问结束后用fclose关闭该文件
13.
5.^1标注※表示此部分为非考试内容。