《C语言程序设计》学习资料2017-2018-1 下载本文

《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