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

上传人:b****7 文档编号:8705508 上传时间:2023-02-01 格式:DOCX 页数:109 大小:363.13KB
下载 相关 举报
《C语言程序设计》教案清华谭浩强.docx_第1页
第1页 / 共109页
《C语言程序设计》教案清华谭浩强.docx_第2页
第2页 / 共109页
《C语言程序设计》教案清华谭浩强.docx_第3页
第3页 / 共109页
《C语言程序设计》教案清华谭浩强.docx_第4页
第4页 / 共109页
《C语言程序设计》教案清华谭浩强.docx_第5页
第5页 / 共109页
点击查看更多>>
下载资源
资源描述

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

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

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

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

第一章C语言及程序设计概述本章要求:

了解C语言的特点、C语言与其它高级语言相比有什么异同;

了解C程序在PC机上的建立、编译和运行过程;

了解C语言程序设计思想的基本篇;

重点:

①C语言的主要特点;

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

3常用算法的应用

难点:

一、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年:

——TurboC2.0(DOS操作系统、查错、Tiny模式生

成com文件)

1991年:

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

说明:

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

2.C语言的特点

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

C语言:

一一共有32个关键字,9种控制语句;只供学习与交流

程序书写自由,主要用小写字母表示;

2•运算符丰富

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

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

3•有丰富的数据类型

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

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

4•具有结构化的功能,用函数作为程序模块,实现程序的模块化5•语法限制不太严格,程序设计自由度大。

(放宽了语法检查)

例:

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

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

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

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

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

说明:

C语言比其它高级语言难掌握,对编程人员要求较高程序员使用C语言编写程序会感到限制少、灵活性大,功能强,可以编写出任何类型的程序。

3.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编译程序Link程序

3.DOS下C语言的运行

目前DOS下运行C语言软件为:

TurboC2.0

(1)TurboC2.0的特点:

是一个把①编辑②编译③连接④运行等全部操作集中在一个界面上。

(2)TurboC2.0的操作及运行书:

P8

五、算法的概念

1.算法的概念书:

P13

算法:

程序的操作步骤。

/程序中的数据

在程序设计中:

[操作步骤

有:

程序=数据结构+算法沃思NikiklausWirth

程序=算法+数据结构+程序设计方法+语言工具和环境

2.计算机算法分为两大类:

①数值运算算法②非数值运算算法

(1)数值运算算法:

求数值解;通过运算得出一个具体值,如求方程的根等

注:

数值运算一般有现成的模型,算法较成熟。

(2)非数值运算算法:

用于事务管理,如图书检索、人事管理等。

3、常用简单算法

(1)累乘即:

1X2X3X4X5……X100

1X2-S(结果)

SX3-S(结果)

SX4-S(结果)

I

I

I

SX100—S(结果)

只供学习与交流

(2)累力卩即:

1+2+3+4+5……+100

1+2-S(结果)

S+3-S(结果)

S+4-S(结果)

I

I

I

S+100—S(结果)

(3)找最大值5,2,4,12,9

5—max(max放最大值,后面的数都和它比较)

2>max不成立

4>max不成立

12>max成立:

12—max

9>max不成立

注:

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

(4)其它算法

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

4、算法的表示

常用的有:

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

(1)传统流程图

CD口O二一。

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

表示方法:

P19例

注:

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

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

顺序结构选择结构

t

语句

<表达式丿

1

!

语句

丨语句

语句1|语句2

V

b)

(2)N-S流程图

特点:

去掉了带箭头的流程线,全部算法写在一个矩形框内。

称N-S结构化流程图

\立

顺序结构

选择结构

循环结构

作业:

p372.4

上机:

熟悉TurboC2.0的操作及运行

第三章数据类型、运算符与表达式

本章要求:

本章是C语言的基本概念开篇,所介绍的概念是学习C语言的基础;要求熟练掌握数据类型、运算符与表达式。

重点:

①C语言数据类型定义的方法和分类。

②C语言运算符、表达式的使用以及它们的主要特点。

难点:

自增、自减运算符、赋值运算符、逗号运算符及它们的混合使用

a变量名

存储地址)2000

地址的概念

变量值

存储单元

3•常用的基本数据类型

(1)整型

1)整型常量:

十进制整数123,-11,0非0开头

八进制整型0123,-0110开头

十进制整数指数形式

1.23

1.23e3,

.0123

1.00e-3

数的表示范围P46

十六进制整型0x110x200x0D0XFF0x4e

定义

存储字节

数的范围

基本型

intx

(2字节)

-32768~32767

短整型

shortintx

(2字节)

-32768~32767

长整型

long

intx

(4字节)

2,147,483,6492,147,483,647

无符号型

unsignedint

x(2字节)

0~65535

unsignedshortx(2字节)

0~65535

unsignedlong

x(4字节)

0~4,294,967,295

注:

数据在内存中是以:

一进制形式存放

如:

9为

00001001

例:

x=13;

x=015;

x=0xD存储结构见P44图3.5

0x/0X开头

说明:

在一个整常量后面加一个字母:

I或L,是长整型常量。

22L0733L

0xae4l

2)整型变量:

例3.2、3.3

注:

数据超过数据范围,会发生数据溢出

(2)实型(浮点数)

1)实型常量:

2)实型变量:

表3.2

单精度

float

(4字节)

3.4x10-38~3.4x1038

TC默认

-308308

1.7x10~1.7x10

双精度

double

(8字节)

说明:

实型常量不分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字符串结束符

\n换行\t水平制表

\ddd八进制数

\xdd十六进制数

2)

字符变量:

charc

(1字节)

说明:

一个字符变量,只能放一个字符常量。

实际是把该常量的ASCII值,送入字符变量中。

即:

‘B'(66)c(字符变量)

书P374ASCII表p50例3.6-7

c=‘B'c的内容为66

故:

字符数据可以进行算术运算;即:

c=‘B'+2为68字符数据在内存中的存储方式书P50

unsignedchar0-255char-128-127有符号数在TC中是用

补码表示的

127(0x7f)01111111128(0x80)10000000

复习:

补码的规定:

正数:

其原码、反码、补码相同

负数:

最高位为1,其余各位为原码的反码(原码的相应位取反),然后对整个数加1。

140(0x8c)10001100^11110011+1取反加1)—1111010CH-0x74-0x7410001011+1取反加1)—10001100—0x8c

(0x80为负数-74高位为1)

3)字符串常量

用双引号括起来的字符“a”,“ABFD”“a”=“0”<>‘A'

说明:

C规定,在每一个字符串的结尾应加一个“字符串结束标志”

(\0),

以便系统判断字符串是否结束。

4.各类数值间的混合运算

1)整型、字符型、单精度型、双精度型数据一一可以混合运算

2)字符型、整型一一可以通用

规贝U:

高doublefloat

long

unsigned

低intchar,short

例如10+'a'+8765.1234*'b'-858873.593200(TC默认6

只供学习与交流

位小数)

10+97+1.5-8765.1234*98

2.运算符和表达式

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值为9i值为6

z=x+++y;

//变量x右结合运算符++(不是3+4+5=12)

printf("z=%d,x=%d,y=%d",z,x,y);

}

输出结果:

z=6x=4y=3

如果:

z=}x+++y;输出结果:

z=0x=4y=3x先为-4,然后+y,

最后x++

3•赋值运算符和赋值表达式(优先级低于算术,右结合)

(1)“=”一一赋值运算符

作用:

将一个数据赋给一个变量即:

x=21

注意:

如果赋值运算符两侧的类型不一致,在赋值时,要进行类型转

换。

P61例3.9

即:

floatf;

f=23

f值为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+4a值为10x值为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――代表“真”o――代表“假”

7•逻辑运算符和逻辑表达式(书P88)(优先级低于关系,左结合)

(1)3种逻辑运算符p89表5.1

&&(与)||(或)!

(非)

(2)逻辑表达式

表达式逻辑运算符表达式p89

即:

(a>b)||(a+b>=b+c)(a=4)&&(b=8)1||

(1)

‘x'&&‘值为11

说明:

逻辑表达式值:

是一个逻辑值,即:

“真”或“假”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)(一般掌握)

位运算:

一一是对字节或字中的实际位进行检测、设置、屏蔽、移位位运算符:

&――位逻辑与|――位逻辑或A――位逻辑异或

位逻辑反>>――右移<<――左移

三、运算符小结

1•左结合方向的运算符

主要有:

算术运算符、关系运算符、逻辑运算符、逗号运算符

2•右结合方向的运算符

主要有:

自增、自减运算符、赋值运算符(复合的赋值运算符)、条件运

算符

例:

1)i=3;printf("%d,%d",i,i++);输出:

4,3

2)a=1;b=1;c=2;求:

a=b+=c*=5;输出:

a为11b为11c为10

3)a>b?

a>c?

ac:

b>c?

b:

c相当于:

a>b?

(a>c?

ac):

(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,y=7求:

y=y+++x-3x的值4y的值9

4)a=7,x=2.5,y=4.7求:

条件(?

)、

的值

=》0(整

s=x+a%3*(int)(x+y)%*2/4s

1(整型)/4(整型)=》0.25

a%3*(int)(x+y)%*2

型)

5)a%3&&a%5||a++>++b

如:

a=7,b=5a

的值8

如:

a=15,b=15

a

的值

如:

a=15,b=14

a

的值

如:

a=15,b=13

a

的值

四、该章的主要例题

b的值6结果值11||1

16b的值16结果值01||0

16b的值15结果值00||0

16b的值14结果值10||1

数:

P39例3.1

P44例3.2P44例3.3

字符:

P49例3.5

P50例3.6P51例3.7

五、该章的主要习题

P653.53.63.8

3.93.10

3.12

2.500000

六、该章的主要上机内容

P39例3.1P44例3.2P44例3.3P51例3.7

P653.63.83.10

第四章简单的C程序设计(顺序程序设计)

知识点:

1、赋值语句;2、字符数据的输入/输出;

3、格式输入/输出语句printf和scanf及其格式控制符;%c、%f、%d(输

出宽度、对齐方式、其它格式控制符只作了解)

4、程序的结构框架。

重点:

1赋值语句;

2.基本输入/输出语句printf和scanf及其格式控制符%c、%f、%d等的

意义。

难点:

一、C程序结构

C程序

源程序文件1源程序文件2源程序文件n

\

预编译命令

函数1

函数n

说明部分F

执行部分(语句)

语句的分类P67P68

1、控制语句

1条件:

ifelse

2循环:

for()

3循环:

while()

4循环:

dowhile()

5循环结束:

continue

6终止循环或switch:

break

7多分支:

switch

8转向:

goto

9函数返回:

return

2、函数调用语句

printf(“a=%(”,a)

3、表达式语句

函数调用也可以认

i=i+1表达式i=l+1;表达式语句

为是表达式语句

4、空语句:

一个“;”

5、复合语句(用仃:

分程序)

{x=3;x=x+1;

print(“x=%x,x)

}

二•赋值语句

变量名=表达式

注:

是组成顺序结构的主要语句。

a=b;if(max<=x)max=x;

三.基本输入/输出语句

C语言本身不提供输入输出语句,输入输出操作是由函数来实现。

即:

printfputcharseanfgetchar

注:

(1)这些函数构成一个标准的I/O函数库(放在“stdio.h”中)

(2)如果要使用C语言库函数,要用预编译命令“#inelude”将有关“头文件”包括到用户源文件中。

#include#inelude“stdio.h”

当前目录当前定义的目录中寻找

1.printf函数格式输出函数

格式:

printf(格式控制,输出表列)格式控制:

一一用双引号括起来的字符串,也称为“转换控制字符串”printf的格式字符书P77表4.1

输出表列:

一一需要输出的数据、表达式

即:

printf(

“x=%5.1f,y=%d,z=%c”,x,y,z)

d,i

带符号十进制形式

u

无符号十进制形式

例3-3

c

字符形式

s

字符串形式

f

实数(小数)形式

默认6位小数

说明

:

1)

printf(“y4%”,y)

输出数据左对齐(默认为右对齐)

2)

数据输出长度的修正;

l――输出长整型或双精度数据即:

printf(“%ld,”,i,y)

h输出短型数据即:

printf(“%hu”,a)

-m.nm最小宽度n小数(实数)-

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

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1