《C语言程序设计》教案清华谭浩强教案Word文件下载.docx
《《C语言程序设计》教案清华谭浩强教案Word文件下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教案清华谭浩强教案Word文件下载.docx(152页珍藏版)》请在冰点文库上搜索。
![《C语言程序设计》教案清华谭浩强教案Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/9e2e481d-61c5-4e1c-9e92-f2781c60a4e8/9e2e481d-61c5-4e1c-9e92-f2781c60a4e81.gif)
inta,b,sum;
a=123;
b=456;
/*定义变量*/
sum=a+b;
printf(
“
n”,sum);
/*输出变量*/
}
1)程序一般用小写字母书写;
2)每个程序必须要有一个main()(只能一个),称主函数;
注:
C程序是由函数构成的,函数是C程序的基本单位。
函数:
系统提供的库函数;
用户设计的函数。
3)程序体必须在{}之间;
4)每个语句的结尾,必须要有“;
”作为终止符。
5)用/*..*/作注释
四、C程序的上机过程
1.演示书:
P5程序
2.上机步骤书:
P7
C语言是一种编译语言,编译语言的特点:
编译
连接
源程序
目标程序
执行程序
*.C
*.OBJ
*.EXE
C编译程序
Link程序
3.DOS下C语言的运行
目前DOS下运行C语言软件为:
TurboC2.0
(1)TurboC2.0的特点:
是一个把①编辑②编译③连接④运行等全部操作集中在一个界
面上。
(2)TurboC2.0的操作及运行书:
P8
五、算法的概念
1.算法的概念书:
P13
算法:
程序的操作步骤。
在程序设计中:
程序中的数据
操作步骤
有:
程序
=数据结构
+算法
沃思
NikiklausWirth
程序=算法+数据结构+程序设计方法+语言工具和环境
2.计算机算法分为两大类:
①数值运算算法②非数值运算算法
(1)数值运算算法:
求数值解;
通过运算得出一个具体值,如求方程的根等
数值运算一般有现成的模型,算法较成熟。
(2)非数值运算算法:
用于事务管理,如图书检索、人事管理等。
3、常用简单算法
(1)累乘即:
1×
2×
3×
4×
5×
100
1×
2→S(结果)
S×
3→S(结果)
4→S(结果)
┇
100→S(结果)
(2)累加即:
1+2+3+4+5+100
1+2→S(结果)
S+3→S(结果)
S+4→S(结果)
S+100→S(结果)
(3)找最大值5,2,4,12,9
5
→
max
(max
放最大值,后面的数都和它比较
)
2>
max
4>
12>
9>
不成立不成立成立:
12不成立
该算法可扩展为在一批数据中,找某一个数
(4)其它算法
P15例2.2例2.3例2.4例2.5课余自学(必须)
4、算法的表示
常用的有:
①自然语言②传统流程图③结构化流程图④伪代码⑤PAD
图
(1)传统流程图
起止框输入输出框判断框处理框流程线连接点
表示方法:
P19例
传统流程图对流程线的使用没有严格限制,难以实现结构化程序设计为了限制流程线的滥用,提出三种基本结构:
①顺序结构②选择结构③循环结构
顺序结构
选择结构
f
t
.
语句
表达式
语句
语句1
2
循环结构
表达式语句
语句表达式
a)“当型”结构b)“直到型”结构
(2)N-S流程图
特点:
去掉了带箭头的流程线,全部算法写在一个矩形框内。
称N-S结构化流程图
P
A成立不成立当P1成立A
B
ABA
立
直到P1成
顺序结构选择结构循环结构
作业:
p372.4
上机:
熟悉TurboC2.0的操作及运行
第三章数据类型、运算符与表达式
本章是C语言的基本概念开篇,所介绍的概念是学习C语言的基础;
要求熟练掌握数据类型、运算符与表达式。
①C语言数据类型定义的方法和分类。
②C语言运算符、表达式的使用以及它们的主要特点。
自增、自减运算符、赋值运算符、逗号运算符及它们的混合使用
一.数据类型
概念:
算法处理的对象——是数据,而数据是以某种特定的形式出现。
在C语言中,数据有:
常量、变量;
一般它们都有一定的数据类型。
(C语言的数据结构是以数据类型形式出现的)
1.数据类型分类:
数据类型
基本类型
构造类型
整型int
字符型
实型(浮点型)
枚举类型
数组类型
结构体类型struct
共用体(联合)类型
单精度型
双精度型
union
float
double
指针类型*
空类型void
在程序中对用到的所有数据都必须指定其数据类型。
2.C语言中的常量和变量
常量:
——在程序运行过程中,其值不能被改变的量。
变量:
——在程序运行过程中,其值可以改变的量。
1)常量和变量,都要有一个名字表示它;
习惯上,符号常量(别名)名用大写,变量用小写。
符号常量的定义为:
#defineP30
其它常量:
直接用数据表示例:
2345.5‘e’3e+22)在C语言中,对变量要先定义,后使用。
3)如果一个变量被指定为一确定类型后,在C语言编译时,就能为其分配相应的存储单元。
存储地址)
2000
a
3
变量名
变量值
存储单元
地址的概念
3.常用的基本数据类型
(1)整型
1)整型常量:
十进制整数123,-11,0非0开头
八进制整型0123,-0110开头
十六进制整型0x110x200x0D
0XFF
0x4e
0x/0X
开头
在一个整常量后面加一个字母:
l或L,是长整型常量。
22L0733L
0xae4l
2)整型变量:
定义
存储字节
数的范围
基本型
int
x
(2字节)
-32768~32767
短整型
short
长整型
long
intx
(4字节)
-2,147,483,648~2,147,483,647
无符号型unsignedint
x(2字节)
0~65535
unsignedshort
x(2字节)
unsignedlong
x(4字节)
0~4,294,967,295
数据在内存中是以:
二进制形式存放
如:
9为00001001
x=13;
x=015;
x=0xD
存储结构见P44图3.5
数据超过数据范围,会发生数据溢出
例3.2、3.3
(2)实型(浮点数)
1)实型常量:
十进制整数
1.23
.0123
指数形式
1.23e3,1.00e-3
2)实型变量:
数的表示范围P46
表3.2
3.4x10-38~3.4x1038
单精度
(4
字节)
TC默认
双精度
doublex
(8
字节)
1.7x10-308~1.7x10308
实型常量不分float和double,只有十进制表达方式
有的C编译系统64位存储方式,如尾加f或F可表示32位:
324.567f
x=1.23;
x=123e3P47例3.4(存储精度)
(3)字符型
1)字符常量:
a)用单引号括起来的一个字符‘a’‘A’
b)
转义字符(由“专用字母”
书P48表
3.3例
3.5
\0字符串结束符
\ddd八进制数
2)字符变量:
\n换行\t水平制表
\xdd十六进制数
charc(1字节)
一个字符变量,只能放一个字符常量。
实际是把该常量的
值,送入字符变量中。
‘B’(66)c(字符变量)
书P374ASCII表p50例3.6-7
ASCII
c=‘B’
c的内容为
66
故:
字符数据可以进行算术运算;
c=‘B’+2
为
68
字符数据在内存中的存储方式
书
P50
unsignedchar0-255char-128-127有符号数在TC中是用
补码表示的
127(0x7f)
01111111
128(0x80)
10000000
复习:
补码的规定:
正数:
其原码、反码、补码相同
负数:
最高位为1,其余各位为原码的反码(原码的相应位取反),然后对整个数加1。
140(0x8c)10001100→11110011+1(取反加1)→11110100→-0x74-0x7410001011+1(取反加1)→10001100→0x8c
(0x80
为负数-74
高位为
1)
3)字符串常量
用双引号括起来的字符
“a”,“ABFD”“a”=“
0”
<
>
‘A’
C规定,在每一个字符串的结尾应加一个“字符串结束标志”
(\0),
以便系统判断字符串是否结束。
4.各类数值间的混合运算
1)整型、字符型、单精度型、双精度型数据——可以混合运算
2)字符型、整型——可以通用
规则:
高
unsigned
例如
低intchar,short
10+’a’+1-8765..1234*’b’-858873.593200
(TC
默认
6
位小数)
10+97+1.5-8765.1234*98
二.运算符和表达式
C表达式:
由变量、常量、函数等运算对象和运算符组成的式子
C运算符作用:
1)能把一些基本运算模块用单一的运算符处理
2)使用丰富的运算符,构成多种表达式
C运算符有优先级,优先级高的先执行,同级的由结合规则决定其处
理规则
C运算符有两种结合规则:
1)从左到右的结合运算顺序;
a=5+x-10;
运算对象与左
边运算符结合
2)从右到左的结合运算顺序;
x=y=7;
运算对象与右边运
算符结合
C运算符分类
书P55
1.基本运算符(算术运算符)
C语言有7个基本运算符
1)单目运算符:
(表示符号)正号“+”负号“-”
2)双目运算符:
+、-、*、/、%(模运算,求余运算,两侧为整数)
a)运算顺序的结合方向从左到右
b)求余(取模)运算符是对两个整数相除的余数,计算结果的符号与第一个数的符号相同。
-5%3值为-2、-5%-3值为-2、5%-3值为2
2.自增、自减运算符(优先级高于算术,右结合)
作用:
——使变量的值增1或减1
++i(--i)——在使用i之前,先使
i的值加
1(减
1),然后再
使用
i。
i++(i--)——先使用
i的值,然后再使
i加
1)。
i=4;
j=++i;
i值为
5,值为
5;
j=i++;
5,j
值为
4
1)自增、自减运算符++(--),只能用于变量,不能用于常量或表达式
5++、(a+b)++——不合法
2)运算顺序的结合方向从右到左
例例:
main(){
inti=3z,x,y;
z=(i++)+(i++)+(i++)
x=y=3;
//结果:
z值为
9
z=x+++y;
//变量
x右结合运算符
++
(不是
3+4+5=12)
printf("
z=%d,x=%d,y=%d"
z,x,y);
输出结果:
z=6
x=4
y=3
如果:
z=
最后x++
-x+++y;
z=0
x先为-4,然后+y,
3.赋值运算符和赋值表达式(优先级低于算术,右结合)
(1)“=”——赋值运算符
将一个数据赋给一个变量即:
x=21
注意:
如果赋值运算符两侧的类型不一致,在赋值时,要进行类型转换。
P61例3.9
floatf;
f=23f值为23.0000符号位扩展
(2)复合的赋值运算符
“+=、-=、*=、/=、%=”——在赋值符“=”之前加上其它运算符
称复合运算符(也称为自反运算符)
a+=3
等价于
a=a+3
x*=y+8
x=x*(y+8)
y/=4
y=y/4
m%=3
m=m%3
C语言采用这种复合运算符:
为了简化程序,使程序精练;
提高编译效率。
(3)赋值表达式
格式:
变量=表达式
表达式:
可以是1)常量、变量、算术表达式;
2)赋值表达式
a=(b=5)或a=b=5(运算顺序的结合方向从右到
左)
a=b=c=6;
a=5+(c=6)(结果a=11c=6)
a=3;
求:
a+=a-=a*a;
[有:
1]a*a;
92)a=a-(a*a);
-63)a+=-6]-6+-6
a为:
-12结果值为:
-12
4.逗号运算符和逗号表达式(优先级最低,左结合)
用“,”将两个表达式连接起来。
表达式1,表达式2即:
3+5,6*9;
值为54
(先求解表达式1,再求解表达式2,最后逗号表达式的值为表达式
值)
2的
a=2*5,a*3;
a值为
10
结果值为:
30
(先求:
a=2*5,后求:
a*3)
x=(a=2*5,a*3),a+4
x值为
14
使用逗号表达式的目的,只是为了得到各个表达式的值(常用于循环语句)
解表达式1的结果可能影响解表达式2的值
5.强制类型转换运算符(优先级高于算术,右结合)
在要转换的数据前,用小括号括上要转换的数据类型即:
(int)x;
(int)(a+b)(int)x+y
(类型名)表达式
C一般会自动进行数据类型转换P56例3.8,用于不能自动转换的地
方x%3(floatf)
6.关系运算符和关系表达式(书P87)(优先级低于算术,左结合,高于赋值)
(1)6种关系运算符
=
(优先级高)
==
!
=
(优先
级低)
(2)关系表达式
表达式关系运算符
a>
ba+b>
=b+c(a=4)<
(b=8)‘x’==‘y’
关系表达式值:
是一个逻辑值,即:
“真”或“假”
1——代表“真”0——代表“假”
7.逻辑运算符和逻辑表达式(书P88)(优先级低于关系,左结合)
(1)3种逻辑运算符p89表5.1
&
(与)||(或)!
(非)
(2)逻辑表达式
表达式逻辑运算符
p89
(a>
b)||(a+b>
=b+c)
‘x’&
‘值y’为1
1
(a=4)&
(b=8)
1||
∞
(1)
逻辑表达式值:
“真”或“假”p90
优先次序(由高到低):
(非)算术运算符关系运算符&
和||
求值短路:
5>
3&
2||8<
4-!
01||∞(结果1)
0&
∞(结果0)如:
a&
b&
ca<
0才判断a&
b
赋值运算符
8.条件运算符(书P97)
表达式1?
表达式2:
表达式3
执行:
先求解表达式1,为真(非零),求表达式2为假(为0),求表达式3
y=(a>
b)?
a:
b;
a)条件运算符要求有三个操作对象(称三目元运算符)
b)条件运算符优先于赋值运算符
y=(a>
先求
(a>
b
后赋值
c)条件运算符的结合方向为“自右至左”
b可写为:
b?
a>
b+5相当于:
a:
(b+5)
c>
d?
c:
d相当于:
(c>
d)
*9.位运算符(书P298)(一般掌握)
位运算:
——是对字节或字中的实际位进行检测、设置、屏蔽、移位。
位运算符:
——位逻辑与|——位逻辑或
~——位逻辑反>
——右移
^——位逻辑异或
——左移
三、运算符小结
1.左结合方向的运算符
主要有:
算术运算符、关系运算符、逻辑运算符、逗号运算符
2.右结合方向的运算符
自增、自减运算符、赋值运算符(复合的赋值运算符)、条件运算符
1)i=3;
printf("
%d,%d"
,i,i++);
2)a=1;
b=1;
c=2;
a=b+=c*=5;
输出:
4,
a为11
b为
11
c
为10
3)a>
c?
a:
c:
b>
c?
b:
c相当于:
(a>
c):
(b>
b:
c)
(求最大值,如a=2,b=8,c=5结果为:
8)
3.运算符的优先次序(书P375附录Ⅲ)
()、!
++/--/-转移、算术、关系(<
=>
=)、关系(==!
=)、&
、||、条件(?
)、
赋值、逗号
1)-a++相当于-(a++)
2)x=4,y=7求:
y+=++x-3x的值5y的值9
3)x=4,