《C语言程序设计》教案清华谭浩强教案.docx

上传人:b****6 文档编号:7505216 上传时间:2023-05-11 格式:DOCX 页数:152 大小:77.76KB
下载 相关 举报
《C语言程序设计》教案清华谭浩强教案.docx_第1页
第1页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第2页
第2页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第3页
第3页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第4页
第4页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第5页
第5页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第6页
第6页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第7页
第7页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第8页
第8页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第9页
第9页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第10页
第10页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第11页
第11页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第12页
第12页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第13页
第13页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第14页
第14页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第15页
第15页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第16页
第16页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第17页
第17页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第18页
第18页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第19页
第19页 / 共152页
《C语言程序设计》教案清华谭浩强教案.docx_第20页
第20页 / 共152页
亲,该文档总共152页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计》教案清华谭浩强教案.docx

《《C语言程序设计》教案清华谭浩强教案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》教案清华谭浩强教案.docx(152页珍藏版)》请在冰点文库上搜索。

《C语言程序设计》教案清华谭浩强教案.docx

《C语言程序设计》教案清华谭浩强教案

 

第一章C语言及程序设计概述

本章要求:

了解C语言的特点、C语言与其它高级语言相比有什么异同;了解C程序在PC机上的建立、编译和运行过程;了解C语言程序设计思想的基本篇;

 

重点:

①C语言的主要特点;

②C语言在PC机上的运行过程及上机操作过程;

③常用算法的应用

难点:

 

一、C语言概述

C语言是目前国际上在各种计算机运行较为广泛流行的一种高级语

言。

主要表现为:

C语言:

适合于作为系统描述语言——可用来写系统软件。

具有高级语言的特点,又有低级语言(汇编语言)的特点。

C语言:

是AT&T贝尔实验室的DennisRitchie在1972年发明的。

C语言:

是在B语言的基础上发展起来的。

(ALGOL60)

C语言:

最早开始是用于UNIX操作系统。

(C语言和UNIX是相辅相成的)

DBASE、MicrosoftExel、MicrosoftWord、PC-DOS等,则是用C语言加上若干汇编子程序编写的。

1983年:

——制定的新标准,称为(美国国家标准化协会)ANSIC

1987年:

——TurboC1.0(Borland)1988年:

TC1.5(图形和文

本窗口)

1989年:

——Turbo

C2.0

(DOS操作系统、查错、

Tiny

模式生

成com文件)

1991年:

——TurboC++(3.0)支持windows3.X

说明:

TurboC语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。

 

二.C语言的特点

1.语言简洁、紧凑、使用方便、灵活

C语言:

——共有32个关键字,9种控制语句;程序书写自由,主要用小写字母表示;

2.运算符丰富

 

C语言的运算符包含的范围很广泛,共有34种运算符;

即:

把括号、赋值、强制类型转换都作为运算符处理

3.有丰富的数据类型

整型、实型、字符型、数据类型、指针类型、结构体类型、共用体(联合)类型等。

实现复杂的数据结构(链表、树、栈、图)的运算。

4.具有结构化的功能,用函数作为程序模块,实现程序的模块化

5.语法限制不太严格,程序设计自由度大。

(放宽了语法检查)

例:

1)对数组下标越界不作检查,由程序编写者自己保证程序的正确;

2)整型数据、字符型数据、逻辑型数据可以通用。

6.能直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

7.生成目标代码质量高,程序执行效率高。

8.用C语言编写的程序,移植性较好。

说明:

C语言比其它高级语言难掌握,对编程人员要求较高

程序员使用C语言编写程序会感到限制少、灵活性大,功能强,可以编写出任何类型的程序。

三.C程序的构成

例:

main()

/*主函数*/

{

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(结果)

S×4→S(结果)

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>max

12>max

9>max

不成立不成立成立:

12不成立

 

 

max

注:

该算法可扩展为在一批数据中,找某一个数

(4)其它算法

P15例2.2例2.3例2.4例2.5课余自学(必须)

 

4、算法的表示

常用的有:

①自然语言②传统流程图③结构化流程图④伪代码⑤PAD

(1)传统流程图

 

起止框输入输出框判断框处理框流程线连接点

表示方法:

P19例

注:

传统流程图对流程线的使用没有严格限制,难以实现结构化程序设计为了限制流程线的滥用,提出三种基本结构:

①顺序结构②选择结构③循环结构

顺序结构

选择结构

f

t

.

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

int

x

(2字节)

-32768~32767

长整型

long

intx

(4字节)

-2,147,483,648~2,147,483,647

无符号型unsignedint

x(2字节)

0~65535

unsignedshort

x(2字节)

0~65535

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

单精度

float

x

(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)字符型、整型——可以通用

规则:

double

float

long

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(减

1)。

例:

i=4;

j=++i;

i值为

5,值为

5;

j=i++;

i值为

5,j

值为

4

 

说明:

1)自增、自减运算符++(--),只能用于变量,不能用于常量或表达式

即:

5++、(a+b)++——不合法

2)运算顺序的结合方向从右到左

例例:

main(){

inti=3z,x,y;

 

z=(i++)+(i++)+(i++)

x=y=3;

//结果:

z值为

9

i值为

6

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

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;

例:

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

a值为

10

x值为

30

结果值为:

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’

说明:

关系表达式值:

是一个逻辑值,即:

“真”或“假”

C语言:

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>b)?

a:

b;

先求

(a>b)?

a:

b

后赋值

c)条件运算符的结合方向为“自右至左”

(a>b)?

a:

b可写为:

a>b?

a:

b

a>b?

a:

b+5相当于:

a>b?

a:

(b+5)

a>b?

a:

c>d?

c:

d相当于:

a>b?

a:

(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

3

 

b为

 

11

 

c

为10

3)a>b?

a>c?

a:

c:

b>c?

b:

c相当于:

a>b?

(a>c?

a:

c):

(b>c?

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,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2