期末复习 C语言知识点归纳.docx
《期末复习 C语言知识点归纳.docx》由会员分享,可在线阅读,更多相关《期末复习 C语言知识点归纳.docx(27页珍藏版)》请在三一办公上搜索。
1、期末复习 C语言知识点归纳期末复习C语言知识点归纳 一、概述 1.一个C语言源程序可以由一个或多个函数组成,有且只有1个main函数,可以放在程序中的任何位置. 2.一个C程序不论有几个函数,都是从main函数开始执行. 3. 标识符 按照C语言所定义的规则来命名的符号。 规则: 由字母、数字、下划线组成,但第一个字符必须 是字母或下划线。 例如: area、a234、_1234为合法标识符 456P、a-b、a+b为非法标识符 注意: 标识符区分大小写。 例如: PAGE和page是两个不同的标识符。 4.c语言有32个关键字,关键字不能用作用户标识符。 5. C源程序文件的扩展名.c 。
2、6.VC+6.0下c 语言程序的完整实现过程包括4个基本步骤: l 编辑源程序 l 编译源程序 l 构建形成可执行文件 l 运行可执行文件. 二、数据类型、表达式 1.c语言中,整型、字符型、实型是最基本的数据类型. 2. 常量 指在程序运行中,其值不能被改变。 分为整型常量、实型常量、字符常量、字符串常量。 l 整型常量 C语言中主要有十进制、八进制、十六进制等。 十进制 例如 12、-3、32767等。 八进制 用数字0开头,由0-7这8个数字组成。 例如 010、016为合法八进制数 127、018为非法八进制数 十六进制 用数字0和字母x或X开头,用0-9表示前10 个数字,字母A-F
3、(可小写)表示后6个数字。 例如 0xAF、0x10、0x34为合法十六进制数 100、ABC、0xAFH为非法十六进制数 注意: C语言中只有十进制数可以为负数。 l 实型常量 表示方式有两种: 小数形式和指数形式。 小数形式 例如: 0.123、.123、123. 都是合法形式。 指数形式 例如: 2.3026可用以下任何一种指数表示 0.23026E1、2.3026e0、23.026E-1 但下面的指数形式为非法 E3、.5e3.6、2.3e -2(e和-2间有空格) l 符号常量 用符号名来表示一个常量。 格式: #define 符号名 常量值 例: 已知圆的半径为5.0,计算圆的面积
4、(圆周率取3.14)。 #include #define PI 3.14 main double r, s; r=5.0; s=PI*r*r; printf(“s=%fn”,s); C语言中整型常量的3种表示: 8进制以0引导,16进制以0x或0X引导,十进制不能以0开头. l 实型常量在程序中只能用十进制数,不能用其他进制表示。2种表示形式,普通的和指数形式,如3e5或者3E5, 三者不可省略任何一部分. l 一个字符常量占一个字节存储空间.用单引号限定 ,如: A 0x41 (为转义字符,表示以十六进制数41为ASCII码值的字符,即A的转义字符形式). 0 11.字符串常量用英文双引号括
5、起来. 如:”hellon” l 字符串中的字符个数称为字符串的长度.空字符串长度为0. l 字符串存储中每个字符占一个字节,字符串结尾自动加一个结束标志符0,所以字符串存储的时候,占用的空间长度要比串的实际长度多1. 如: char ch =“Hello”; 实际串的长度为5,但数组空间长度为6。 l 变量 指在程序运行过程中其值可以改变的量。 变量的命名必须符合标识符的命名规则,且不能和C语言 中关键字同名。(例如: main是关键字) 例如: a、b、ab为合法变量 define、printf为非法变量 注意: ab是一个整体,含义不同于a乘以b。 l 有符号整型变量用英文singned
6、表示,存储时最高一位是符号位,无符号整型变量用英文unsigned表示. l 字符型变量的数据类型标识符是符号char,每个字符型变量只能存储一个字符. 例如: A、c、5都是合法的字符常量。 ”A”、abc都是非法的字符常量。 l 常见的转义字符: n 回车换行 反斜杠 单引号 ”双引号 ddd 三位八进制 xhh 二位十六进制 0 空值 例1: n表示回车换行 表示一个单引号 例2: 101表示字符A x41表示字符A l 字符变量 用关键字char定义,可以同时赋初值。 例1 定义两个字符变量ch1和ch2。 char ch1,ch2; 例2 定义两个字符变量a和b,初值分别为1和2。
7、char a=1, b=2; l getchar函数和putchar函数 分别用来输入字符和输出字符。 l 字符的输入和输出 使用scanf和printf时,格式符均为%c。 例1 从键盘上输入一个字符保存在ch中。 char ch; ch=getchar; 例2 char c1=A, c2; c2=c1+1; putchar(c2); 输出结果是B。 例3 输出一个回车换行符。 putchar(n); 例: 从键盘上输入一串字符,最后以!为结束标志。分别 统计大写字母,小写字母、数字出现的次数。 #include main char ch; int n1=0,n2=0,n3=0; print
8、f(“请输入一串字符以!结束:n”); ch=getchar; while(ch!=!) if(ch=A & ch=a & ch=0 & ch,=,=的优先级相同且高于=,!=的优先级. 关系运算符的优先级低于算术运算符高于赋值运算符. 关系运算符是左结合性. l 关系表达式的值为真则是1,假为0. l 逻辑运算符!高于&,和|,高于算术运算符.&和|是左结合的,!是右结合的. l 注意&及|运算的短路现象。 & 的短路运算: & ,若的值为0,则表达式2将不被计算,整个&的结果为0。 | 的短路运算: | ,若的值为1,则表达式2将不被计算,整个|的结果为1。 l 数学关系式0x10在C语言
9、中的表达: & 或 0x & x10 l 赋值表达式 格式: 变量名=表达式 例如: a=10 a=a+1 a=b=7+1为合法表达式 a+b=8 a=7+1=b为非法表达式 整个表达式的值等于最左边变量的值。 例如: a=b=c=8*8 整个表达式最后的值为64 l 复合赋值表达式 复合运算符: +=、-=、*=、/=、%= 例如: n=n+1表达式可写成n+=1 n=n%3表达式可写成n%=3 n*=m+3表达式可写成n=n*(m+3) 例1 假设变量a初值为9,计算下列表达式。 a+=a-=a+a 解答: 1) 计算a+a,结果为18,a值未变。 2) 计算a-=18,即a=a-18,结
10、果为-9,a值变为-9。 3) 计算a+=-9,即a=a+(-9),结果为-18,a值变为-18。 整个表达式最后结果为-18,a最后值为-18。 注意: a=a+1为赋值表达式,而a=a+1; 为赋值语句。 l 自加和自减运算符 自加和自减只适用于整型变量. 例如: a+和+a等价于a=a+1 b-和-b等价于b=b-1 a+和+a的区别: 假设a的初值为5 表达式a+值为5,最后a值为6。 表达式+a值为6,最后a值为6。 l 逗号表达式 格式: 表达式1,表达式2,.,表达式n 从左至右依次计算每个表达式,最后一个表达式的值即为 整个逗号表达式的值。 例如: 表达式i=3,+i,i+5最
11、后结果为9,i最后值为4。 l 条件运算由?和:构成,它是根据条件从两个表达式中选择一个进行计算取值的操作,优先级高于赋值运算符,低于算术运算和关系运算. 三、输入输出函数 l 数据输出 printf 格式: printf(格式符,输出项1,输出项2,.) 格式符 功能 %c 输出一个字符 %d 输出十进制整数 %f 输出小数形式浮点数 %e 输出指数形式浮点数 %s 输出一个字符串 数据宽度说明: 1)在%和格式字符之间插入一个整数来指定输出宽度。 例如: %4d、%5c 2)对于float和double类型的实数,可以用n1.n2形式 n1指定输出数据的宽度(包括小数点),n2指定小数 点
12、后小数的位数。 例如: %12.3f、%12.0f 例1 输出整型变量a和b的值,数据宽度均为4。 printf(“%4d%4d”,a,b); 例2 输出单精度变量k的值,保留2位小数。 printf(“%.2f”,k); l 数据输入 scanf 格式: scanf(格式符,输入项1,输入项2,) 格式符 功能 %c 输入一个字符 %d 输入十进制整数 %f 输入单精度数 %lf 输入双精度数 %s 输入一个字符串 例1 从键盘上输入两个整数,保存在变量a和b中。 scanf(“%d%d”,&a,&b); 例2 从键盘上输入一个双精度数,保存在变量data中。 scanf(“%lf”,&da
13、ta); 此处两例中&是C语言运算符,表示取变量地址。 l 复合语句 格式: 语句1 语句2 . 语句n 例1 用复合语句将变量a,b,c依次赋值为最小素数。 a=2; b=3; c=5; 例2 用复合语句实现变量a和b的值的交换。 k=a; a=b; b=k; l 不带参数的宏 #define PI 3.14159 意思是用符号常量PI(宏名)代替3.14159(宏体),注意:宏定义不是c语句,后面不加分号. l 带参数的宏. #define m(x) x*x*x*x 意思是m(x)代替x的4次方,x 不用定义,可以在使用中换成需要的字母. 带参数的宏的展开,如: #define m(x)
14、x*x*x*x printf(%d, m(1+1); m(1+1)的宏展开式为: 1+1*1+1*1+1*1+1 计算结果为5 再如: #define m(x) * printf(%d, m(1+1); m(1+1)的宏展开式为: * 计算结果为16 l include命令是编译预处理的文件包含命令,形式为了#include 或者 #include文件名,调用标准函数中的输入输出函数,#include stdio.h ,如果调用数学函数,则应加上#include math.h 或者#include 四、分支结构 l 关系运算符 、=、=6 aA 5 结果均为真,值为1 例2 6!=6 D=d
15、9F 结果均为假,值为0 l 逻辑运算符 &(与) |(或) !(非) 优先级: 操作数 真 假 操作数1 真 真 假 假 操作数1 真 非运算与运算或运算 非运算规则 结果 假 真 与运算规则 操作数2 结果 真 真 假 假 真 假 假 假 或运算规则 操作数2 结果 真 真 真 假 真 假 真 真 假 假 假 例1 若变量a值为10,变量b值为16,计算表达式。 ab | asqrt(b) & b=16 最后结果为真,表达式的值为1 l if语句的一般形式: 单分支结构: if(表达式) 语句 若表达式为真,则执行语句;否则if语句结束。 二选一结构: if(表达式) 语句组1 else
16、语句组2 表达式的值非0才执行语句组1,否则执行语句组2. 例1 从键盘上输入两个整数,输出较大的数。 #include main int x,y; printf(“请输入两个整数:n”); scanf(“%d%d”,&x,&y); if (xy) printf(“%d”,x); else printf(“%d”,y); l 条件运算符 格式: 表达式1? 表达式2: 表达式3 若表达式1为真,结果为表达式2;否则为表达式3。 例如: x的初值为5,执行以下语句 y=+x6?100:200; 最后y的值为200 l if语句可嵌套,在花括号里继续使用. 多选一结构: if(表达式1) 语句组1
17、 else if(表达式2) 语句组2 else if(表达式3) 语句组3 else 语句组n 例1 根据输入的学生成绩,大于或等于90分为A,分以下等级为E,其余每10分一个等级。 #include main int g; printf(“请输入一个整数:n”); 60 scanf(“%d”,&g); if (g=90) printf(“An”); else if(g=80) printf(“Bn”); else if(g=70) printf(“Cn”); else if(g=60) printf(“Dn”); else printf(“En”); l switch(表达式) / swi
18、tch表达式通常为整型或字符型值 case常量1:语句组1 /case后面必须是常量 case常量2:语句组2 . default:语句组 /也可省略该语句 可以使用中break 来中止后面语句的执行. l switch表达式通常为整型或字符型值,case中的常量类型与之对应,case后面的表达式可以是常量或常量表达式,不能为变量表达式. switch语句 格式: switch(表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n-1: 语句n-1 default: 语句n 若表达式的值与表达式1相等,则执行语句1;若与表达 式2相等,则执行语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末复习 C语言知识点归纳 期末 复习 语言 知识点 归纳

链接地址:https://www.31ppt.com/p-3583603.html