C语言知识点分章总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序与设计知识点
2011年12月07日
第5章数据类型与输入输出
1.标识符:(1)只能由字母、数字和下划线构成;(2)第一个字符必须是字母或者下划线;
(3)长度只有31个字符有效;(4)不能包含空格;(5)不能使用关键字。
2.变量三个要素为:类型、名字和值;同一语句中不能混合定义不同类型的变量。
3.常量:直接常量和符号常量
4.十进制常量:[ + | - ] Digits [ l | L ]
5.八进制常量:OctalDigits [ L | l ]
6.十六进制常量:( 0x | 0X ) HexDigits [ L | l ]
7.补码:负整型数在内存中的存放形式;将该数的绝对值的二进制形式,按位取反再加1。
8.浮点数:-2.34, 3.1416f, 29.00, .23, 0.23L, 1.23E10, 0.23E-4, 45.e+23, -23.68E12
9.输出操作:调用库函数printf时用“%f”格式输出
10.错误:float f1, f2, f3; printf("f1 = %d, f2 = %d, f3 = %d\n", f1, f2,f3);
11.浮点数,默认输出小数点后6位数字
12.输入操作:调用库函数scanf时用“%f”和“%lf”分别对foat型和double型数据进行
输入。
13.输出操作:调用库函数printf时用“%f”对foat型和double型数据进行输出; % lf为long
double类型输出;%e或E—按科学计数法的形式输出。
14.应避免将一个很大的数和一个很小的数直接相加减,否则就会丢失小的数
15.字符常量:用单引号括起,只能是单个字符,还包括转义字符,一种特殊的字符常量,
以反斜线"\"开头,后跟一个或几个字符。
16.字符型数据和整型数据之间可以通用,表示方式和操作与整数相同,但要注意范围。
17.整数的格式化输出:%[对齐方式][输出最小宽度]整数类型
18.整数类型的输出:%d 、%o、%x/%X或%ld
19.实数的格式化输出:%[输出最小宽度] [.精度]实数类型;一般默认数据右对齐,若输出
宽度前加负号,则设置为左对齐。
20.scanf格式输入函数,注意三种输入函数的输入方式区别:scanf ( "%d %c %f ",&i,
&c , &f );scanf (“%d,%c ,%f ”,&i,&c , &f );scanf( ”i=%d b=%c c=%f”, &i,&c,&f);
21.scanf中要求给出变量地址,若在格式控制字符串后直接给出变量名,则会在运行时出
错。
22.float类型的数据可以用%f进行输入或输入操作。对于double型的实数,必须用%lf的
格式输入数据。
23.编译器在遇到分隔符或非法数据时即认为输入操作结束。
24.格式字符可以用空格分隔,但最好不用回车作为分隔符,除非后面还有数据要输入。
25.注意在循环函数中使用scanf()中,用%c输入字符型数据时的特殊性。
第6章运算符与表达式
1.表达式是由运算符和运算数组成的式子
2.表达式根据某些约定、求值次序、结合、优先级规则来进行计算.
3.求值次序:表达式中各操作数的求值次序视编译器不同不同。
4.“/”操作符对与不同的数据类型进行不同的操作
5.%只能对整型数进行操作,不允许对浮点数操作
6.字符类型的数据象整型数据一样,可以进行相关运算。
7.变量赋值与初始化的计算机操作不同。
8.左值:常量和算术表达式不能为左值.
9.右值:左值表达式可以作为右值表达式。
10.牢记运算符的“优先级”和“结合性”
11.隐式转换:(1)“就高不就低”的原则;(2)当赋值运算的左值表达值与右值表达式类
型不同时,将右值转换成左值的类型;(3)数据可能丢失精度。
12.显式类型转换:–强制转换运算符(类型名)(表达式),(类型名)变量
13.自增i++:先使用变量,然后对变量增值;自左向右将运算符结合,如a+++b 等同(a++)+b。
14.自增++i:先对变量增值,再使用变量;从右至左结合,如+++b等同+(++b)。
15.i++和++i在单独使用等效。
16.自增操作不能为常量或算术表达式
17.int i=1, b; b=(i++) + (i++) + (i++), 问b=?;printf(“%d”, (i++) + (i++) + (i++));输出是什么?
18.(++i)+ (++i)+ (++i) 编译器不同,结果不同。
19.注意关系表达式a <= x < b产生的误解;正确的是a <= x && x < b
20.在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻
辑运算符才能求出表达式的解时,才执行该运算符。(1) a && b && c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。(2) a||b||c 只要a为真(非0),就不必判断b和c;只有a为假,才判别b;a和b都为假才判别c。
21.逻辑运算符的优先级:! 高于&& 高于||
22.逗号运算符:将各表达式从左到右的顺序依次求值,最右端的表达式的结果作为整个表
达式的值。int a=1, b=2, c=3; int sum =( a+b, b+c , c+a ); //sum=4; sum = a+b, b+c, c+a ;
//sum=3,表达式值为4
第7章选择结构
1.判断的表达式通常为关系或逻辑表达式,也可以是具有逻辑值的其他类型表达式。
2.赋值表达式也可以作为判断表达式;不能混淆赋“=”和“==”。
3.判断的表达式:其值等于0为假,非0为真。
4.if语句难点:设计判断条件。在实现选择结构时,经常由于判断条件构造不合理造成逻
辑错误.
5.if与else的配对关系:else总是与它上面最近的、且未配对的if 配对。
6.switch语句:判断表达式括号应具有整型值,一般为整型、字符型或枚举类型的变量或
者表达式。
7.case 后面的标号为常量表达式,其值必须是整型、字符型或枚举常量。
8.switch语句中每个分支须保证唯一性,即case后的标号值必须互异。
9.switch语句如果希望在执行完相应分支的语句后跳出swich结构,必须使用在各个分支
中使用break语句。
10.注意在循环语句中使用switch语句时,分支的语句后跳出switch结构,各个分支中使
用break和continue有区别。
第8章循环结构