《C语言程序设计》课程学习参考资料
【章节知识点概括】 第一章 C语言程序设计概述
c程序基本结构特点
函数与主函数
1. 程序由一个或多个函数组成,函数由函数头和函数体构成。程序的基本组成模块是函数。 2. 必须有且只能有一个主函数main()
3. 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 4. main函数在程序中的位置任意,可以在程序的开头、中间或者尾部。
程序语句
1. C程序由语句组成,用“;”作为语句终止符
2. /* */或 / /后的内容 作为注释,不能嵌套,不产生编译代码
编译预处理不是C语言的一部分
C程序的运行步骤
运行一个C程序,从输入源程序开始,要经过编辑源程序文件(?C)、编译生成目标文件(?obj)、连接生成可执行文件(?exe)和执行四个步骤
第三章 数据类型、运算符和表达式
标识符命名原则:
1. 合法的要求是由字母,数字,下划线组成,并且第一个必须为字母或则是下划线。关键字不可以作
为用户标识符号。
2. main define scanf printf 及其他库函数的函数名都不是关键字可以用作标识符。 3. If与if不同,If是可以做为用户标识符,因为C区分大小写。
基本数据类型:
1. 基本数据类型有哪些?所占空间大小及说明符。
2. 整型、实型、字符型常量的合法表示形式,字符串的表示形式。
a)实型数据的合法形式:小数形式和指数形式-----尤其要注意指数形式的格式e前必有数,e后必为整数。2.333e-1 是合法的,1e.111是非法的。
b) 字符数据的合法形式:以单引号括起来的一个字符,注意转义字符P48表3-3。
如‘\\x6d’是合法的字符,ASCII码为十六进制的6d,‘\\141’也合法,ASCII码为八进制141,‘\\108’不合法。
c) 字符常量和字符串的区别:'a' 是字符占一个字节,
\是字符串占两个字节(含有一个结束符号)。
常量和变量
1. 符号常量的定义格式:eg #define PI 3.14159 (注意宏定义后无分号结尾) 2. 变量的定义格式:
3. 变量赋初值的方式。 int a=b=c=3;不合法
数据混合计算时数据类型的转换:P54图3-10。 a) 强制类型转换:一定是(int)a 不是 int(a),注意类型上一定有括号的。 b) 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。
运算符
1. 运算符的优先级别和结合方向:
1
《C语言程序设计》课程学习参考资料
a) 单目运算>双目运算
b) 算术> 关系运算>逻辑运算>条件运算>赋值运算>逗号运算 2. 算术运算符:
a) %要求左右两边都是整型数,运算结果为余数。 b) /运算若左右两边都是整型数,结果为整数。
c) 自增自减运算符,前置先自增减,再运算;后置先运算,再自增减。自增自减运算符只能作用
于变量,不能作用于常量和表达式。
如:#define A 3
A++;是错误写法。 3. 关系运算符:
a)注意赋值=与关系= =的区别。
b) c语言中没有逻辑类型,逻辑“真”用非0表示,逻辑“假”用0表示, c) x在[a,b]间的关系表达式为x>=a && x<=b,不能写为a>=x>=b。但该表达式语法成立,有运算结果。
如3>=1>=5运算时从左向右依次运算,即3>=1为真,值为1,此时,表达式为1>=5,运算结果为假,值为0。所以整个1>=3>=5的值为0.
4. 逻辑运算符:
a) !为单目运算符优先级别比较高 。 b) &&和||运算时注意短路原则。
5. 赋值运算符:自右向左的结合方向
a)复合赋值运算符的使用。如a=12,则a+=a-=a*=a;运算后a的值
6. 条件运算符:(表达式1?表达式2:表达式3) a)结合方向从右向左。
7. 逗号运算符:优先级别最低;也叫顺序执行运算符,表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4
表达式
1. 能将数学表达式写成c表达式
2. 计算表达式的值,注意优先级别和结合方向。
第四章 顺序程序设计
输入输出函数
1. printf函数的格式考查:
a)格式:printf(“格式控制串”,输出表)
b)输出表:要输出的数据(可以没有,多个时以“,”分隔)
格式控制串:包含两种信息
? 格式说明: %[修饰符]格式字符 ,用于指定输出格式 ? 普通字符或转义序列:原样输出 c)修饰符m、n、l的功能: 修饰符 m 功能 输出数据域宽,数据长度 《C语言程序设计》课程学习参考资料 .n L 对实数,指定小数点后位数(四舍五入) 对字符串,指定实际输出位数 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 2. scanf a)格式:scanf(“格式控制串”,地址表) b)格式控制字符串中包含的非格式控制字符要原样输入;如:scanf(“sum=%d”,&a); 输入 时”sum=”也要输入。 scanf函数中没有精度控制,如:scanf(“%5.2f”,&a) ;是非法的。 3.getchar( )获取一个字符。 a)格式:char c; c=getchar(); 4. putchar()输出一个字符,括号中的参数是一个字符变量或常量 a)格式:putchar(‘a’); 第五章 选择结构程序设计 三种程序结构:顺序结构、选择结构、循环结构 if语句(条件选择语句) a)if语句的三种形式: b)if后面的表达式类型任意的;若执行语句是多条,必须为复合语句,即 写在一对花括号内。 c)if结构可以嵌套,注意缺省{ }时,else总是和它上面离它最近的未配对的if配对 switch语句 a)格式中,E1,E2,…En是常量表达式,且值必须互不相同 b)注意执行时语句中有break和无break时,执行流程的区别。 c)default可以不写。 第六章 循环结构 三种循环结构: 1.while 语句 a)当型结构,条件成立执行循环体。 b)先判断表达式,后执行循环体。循环体有可能一次都不执行 2. do ~ while 语句 a)先执行后判断,至少执行一次循环体 b)do~while语句表达式后面必须加分号 3. for 语句 a)for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省 循环嵌套: 1. 执行时先内存循环,后外层循环。 2. 外层循环可包含两个以上内循环,但不能相互交叉 3 《C语言程序设计》课程学习参考资料 break和continue (注意程序中两者的区别) 1. break语句在循环语句和switch语句中,终止并跳出循环体或开关体 2. break只能终止并跳出最近一层的结构 3. continue语句,结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循 环体的判断 4. continue仅用于循环语句中 第七章 数组 一维数组: 1. 一维数组的定义:数据类型 数组名[常量表达式]; (a)常量表达式表示数组元素个数,从0开始计算。 (b)不能用变量来表示元素的个数,可以是符号常量或常量表达式。 (c)数组名为地址常量 2. 一维数组元素的引用:数组名[下标] (a)只能逐个引用数组元素,不能一次引用整个数组 3. 一维数组初始化:类型说明符 数组名[常量表达式]={值1,值2,…… ,}; (a)只给部分数组元素赋初值,当{}中值的个数少于元素个数时,只给前面部分元素赋值,其余 自动赋零。 (b)当全部数组元素赋初值时,可不指定数组长度 二维数组: 1. 二维数组的定义:数据类型 数组名[常量表达式] [常量表达式]; (a)数组元素的存放顺序:按行序优先 2. 二维数组元素的引用:数组名[行下标] [列下标] (a)只能逐个引用数组元素,不能一次引用整个数组 3. 二维数组初始化: (a)可以按行赋值,也可逐元素赋值。 (b)当全部数组元素赋初值时,可不指定数组长度 字符数组: 1. 字符数组的定义:char 数组名[常量表达式]; (a)数组元素的存放顺序:按行序优先 2.字符数组的输入输出: (a)按字符输入输出 (getchar、putchar、printf+%c控制字符、scanf+%c) (b)字符串输入输出 (gets、puts、printf+%s控制字符、scanf+%s)(此方法的4个函数格式要 重点掌握) 3.字符串处理函数 (a)头文件 #include (b) 常用函数:strlen strcat strcmp strcpy 第八章 函数 函数定义的一般形式 1. 类型说明符 函数名(参数类型说明 形式参数[ ,参数类型说明 形式参数] ) { 类型说明 4