c语言知识复习资料

上传人:wm****3 文档编号:43109871 上传时间:2018-06-04 格式:DOC 页数:16 大小:22.46KB
返回 下载 相关 举报
c语言知识复习资料_第1页
第1页 / 共16页
c语言知识复习资料_第2页
第2页 / 共16页
c语言知识复习资料_第3页
第3页 / 共16页
c语言知识复习资料_第4页
第4页 / 共16页
c语言知识复习资料_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《c语言知识复习资料》由会员分享,可在线阅读,更多相关《c语言知识复习资料(16页珍藏版)》请在金锄头文库上搜索。

1、C C 语言知识复习资料语言知识复习资料C 语言知识复习资料第一、二章 C 语言基本知识(1)C 程序用 C 语言编写的程序称为 C 语言源程序,源程序文件的后缀名为“.c” 。源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C 语言有三种基本结构:顺序结构、选择结构、循环结构。(2)main 函数又称主函数,是 C 程序的入口。main 后面跟一对小括号和一对花括号,花括号括起来的部分称为 main 函数的函数体。一个 C 程序从main 函数开始执行,到 main 函数体执行完结束,而不论 main 函数在整个程序中的位置如何

2、。每一个程序有且仅有一个 main 函数,其他函数都是为 main 函数服务的。(3)存储形式计算机在电脑中保存数据是采用二进制形式,由 0 或 1 构成的二进制称为位(bit) ,八个位构成一个字节(Byte) ,1 个 Byte=8 个bit。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。数据的存放位置就是它的地址。(4)注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。(5)书写格式每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一

3、个语句可写在多行上。(6)标识符是标识名字的有效字符序列,可以理解为 C 程序中的单词。详见教材 P16标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。(2)标识符的第一个字符必须是字母或下划线,不能为数字。C 语言标识符分如下 3 类(1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch 等。(2)预定义标识符。预先定义并具有特定含义的标识符。如define、include 等。(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。(7)常量与变量常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型

4、常量、字符常量、字符串常量、符号常量 5 种。在程序运行过程中其值可以改变的量称为变量。C 语言中没有字符串变量。存放字符串使用字符数组。详见教材 P30(8)整型数据整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字 0,十六进制常量加前导 0X,八进制常量中不会出现 8,十六进制常量中不会出现 G。整型变量可分为基本整型(int) 、短整型(short) 、长整型(long) 、和无符号整型(unsigned) 。一个基本整型占 4 个字节。其它类型的整型占用字节数和取值范围。详见教材第 29 页。(9)实型数据实型数据有两种表示形式:小数形式和指数形

5、式。掌握判定指数形式合法性。口诀:E 前 E 后必有数,E 后必须为整数。(10)字符常量一个字符常量用一对单引号括起来,字符常量只能包括一个字符, ab是非法的。空格常用来表示。字符常量可用对应的ASCII 码表示,需记住:0的 ASCII 码为 48, A的 ASCII 码为65, a的 ASCII 码为 97。(11)转义字符一对单引号中以一个反斜线后跟一个特定字符或八进制、十六进制数来构成转义字符。比如n表示换行, 101或x41表示ASCII 码为 65 的字符A 。详见教材 P34(12)字符型数据可以和整型数据相互转换如:0-0=48 A+32=a char a=65;print

6、f(“%d%c”,a,a);结果为 65A(13)位运算符C 语言提供 6 种位运算符:按位求反,按位左移,按位与等价于 j=i;i=i+1;而 j=+i;等价于 i=i+1;j=i;。详见教材 P21口诀:加加在前先加后用,加加在后先用后加。(18)运算符、表达式、语句运算对象加运算符构成表达式,表达式加分号构成表达式语句,运算对象可以是表达式、常量、变量。如赋值运算符加运算对象构成赋值表达式,赋值表达式加分号又可构成赋值语句。(19)运算符的优先级和结合顺序运算符按参加运算的对象数目可分为单目运算符、双目运算符和三目运算符。初等运算符(小括号、中括号)的优先级别最高,然后依次是单目运算符、

7、算术运算符、关系运算符、逻辑运算符(除逻辑非!) 、条件运算符、赋值运算符、逗号运算符。位运算符优先级介于算术运算符与逻辑运算符之间。结合顺序大多为自左向右,而自右向左的有三个:单目运算符、条件运算符和赋值运算符。(20)printf 函数格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包含格式说明和原样信息。输出列表包含若干输出项。(21)printf 函数中格式说明%d 对应整型,%f 对应单精度实型,%c 对应字符型,%o 对应八进制无符号整型,%x 对应无符号十六进制整型,%u 对应无符号整型,%e对应指数型,%s 对应字符串型。可在%和格式字符之间加一个数

8、来控制数据所占的宽度和小数位数。详见教材 P44(22)scanf 函数输入项要求带取地址符 x=y; x=t;。(2)关系运算C 语言用非 0 表示逻辑真,用 0 表示逻辑假。关系运算符有 6 个,分别是,=,括起来的后缀为”.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是 C 语言语句,不加分号,不占运行时间。(3)函数的返回值函数通过 return 语句返回一个值,返回的值类型与函数类型一样。return 语句只执行一次,执行完或函数体结束后退出函数。(4)函数的声明函数要“先定义后调用” ,或“先声明再调用后定义” 。函数的声明一定要有函数名、函数返回值类型、函数参数

9、类型,但不一定要有形参的名称。(5)函数的调用程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用函数结束,再顺序往下执行。(6)函数的参数及值传递形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向传递数值。“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就有可能改变实参所对应的量。详见教材 P121(7)函数的递归调用函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件。在做递归题时可把递归的

10、步骤一步步写下来,不要弄颠倒了。详见教材 P123(8)要求掌握的库函数sqrt()算术平方根函数,fabs()绝对值函数,pow()幂函数,sin()正弦函数(9)变量的作用域局部变量是在函数内或复合语句内定义的变量,作用域为定义它的函数内。局部变量有三种类型:自动 auto,寄存器 register 和静态 static。自动变量随着函数的使用与否创建消失;寄存器变量分配在 cpu 中,没有内存地址;静态变量占用固定存储单元,在程序执行过程不释放,直到程序运行结束。全局变量是在函数外定义的变量,作用域从定义它的位置到整个源文件结束为止,生存期为整个程序运行期间。全局变量都是静态变量。详见教

11、材 P127(10)编译预处理、宏定义凡以#开头的这一行,都是编译预处理命令行,编译预处理不加分号,不占运行时间。宏替换仅是简单的文本替换,如#define f(x) (x)*(x)和#define f(x) x*x 替换 f(2+2)时就有区别,前者展开为(2+2)*(2+2),后者为 2+2*2+2。如果源文件 f2.c 中有#include”f1.c”可以理解为把源文件 f1.c原样包含到 f2.c 中,使 f1.c 和 f2.c 融合到一起成为一个 C 程序编译。所以一个 C 程序必有主函数,但一个 C 源文件未必有主函数。详见教材 P143第五章 数组(1)数组的定义数组是一组具有相

12、同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数组名常量表达式。数组的所占字节数为元素个数与基类型所占字节数的乘积。(2)数组名数组名是数组的首地址。数组名不能单独引用,不能通过一个数组名代表全部元素。数组名是地址常量,不能对数组名赋值,所以a+是错误的。但数组名可以作为地址与一个整数相加得到一个新地址。(3)数组的初始化第一维长度可以不写,其它维必须写。int a=1,2;合法,int a3=2,3,4;合法,int a2=2,3,4;非法。数组初始化元素值默认为 0,没有初始化元素值为随机。如在 int a5=0,1,2;中,元素 a4值为 0;而在 int a5;中,元素 a

13、4值为一个不确定的随机数。(4)元素的引用数组元素的下标从 0 开始,到数组长度减 1 结束。所以 int a5;中数组最后一个元素是 a4。要把数组元素看作一个整体,可以把a4当作一个整型变量。(5)二维数组数组 a23=1,2,3,4,5,6;中含 6 个元素,有 2 行 3 列。第一行为 a0行,第 2 行为 a1行,a0、a1叫行首地址,是地址常量。详见教材 P178二维数组经常采用 2 重循环解决问题,这部分内容是得分要点。(6)字符串常量及表示字符串常量是由双引号括起来的一串字符,如”ABC” 。在存储字符串时,系统会自动在其尾部加上一个空值0 ,空值也要占用一个字节,也就是字符串

14、”ABC”需要占四个字节。(7)字符数组C 语言没有字符串变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放0 。(8)字符串赋值可以用下面的形式进行赋值:char str=“Hello!”;或 char *p;p=“Hello!”;,但不能用下面的形式:char str10;str=“Hello”;因为 str 是一个地址常量,不能进行赋值操作。(9)字符串的输入与输出可以用 scanf 和 printf 函数,如 scanf(“%s”,str);,也可用专门处理字符串的两个函数 gets 和 puts 函数,还可以对字符数组逐个元素进行赋值,

15、但一定要在最后赋一个0 。使用 gets 函数可以接收空格,使用 puts 函数在最后输出一个换行。详见教材 P171(10)字符串函数要掌握的四个字符串函数:字符串拷贝函数 strcpy() ,求字符串长度函数 strlen() ,字符串链接函数 strcat() ,字符串比较函数strcmp() 。使用这些函数需在预处理部分包含头文件“string.h” 。字符串长度要小于字符数组的长度,例:char str10=“Hello”;sizeof(str)的值为 10(数组长度) ,strlen(str)的值为 5(字符串长度) 。这些函数是考试常用到的函数,大家一定要熟练应用这几个函数。详见

16、教材 P174第六章 指针(1)指针变量指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。(2)指针变量的定义格式为:类型名 *指针变量名。二维指针 int *p;可以理解为基类型为(int *)类型。(3)指针变量的初始化指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。(4)指针变量的引用类型 2 成员名 2;,以上整个部分是一个数据类型,与整型的 int 是同样地位。可用 typedef把结构体类型替换成一个只有几个字母的简短标识符。(2)结构体变量的定义结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个结构体变量所占字节数为其所有成员所占字节数之和。如 struct stuchar n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号