c语言程序的设计教(学)案清华谭浩强37496.doc
《c语言程序的设计教(学)案清华谭浩强37496.doc》由会员分享,可在线阅读,更多相关《c语言程序的设计教(学)案清华谭浩强37496.doc(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.页脚.第一章第一章语言及程序设计概述本章要求:了解 C 语言的特点、C 语言与其它高级语言相比有什么异同;了解 C 程序在 PC 机上的建立、编译和运行过程;了解 C 语言程序设计思想的基本篇;重点:重点:C 语言的主要特点;C 语言在 PC 机上的运行过程及上机操作过程;常用算法的应用难点:难点:无一、一、C C 语言概述语言概述C C 语言语言是目前国际上在各种计算机运行较为广泛流行的一种高级语言。主要表现为:C 语言:适合于作为系统描述语言可用来写系统软件。具有高级语言的特点,又有低级语言(汇编语言)的特点。C 语言:是 AT&T 贝尔实验室的 Dennis Ritchie 在 197
2、2 年发明的。C 语言:是在 B 语言的基础上发展起来的。(ALGOL 60)C 语言:最早开始是用于 UNIX 操作系统。(C 语言和 UNIX 是相辅相成的)DBASE、Microsoft Exel、Microsoft Word、PC-DOS 等,则是用 C 语言加上若干汇编子程序编写的。1983 年:制定的新标准,称为(美国国家标准化协会)ANSIC1987 年:TurboC1.0(Borland)1988 年:TC 1.5(图形和文本窗口)1989 年:TurboC2.0(DOS 操作系统、查错、Tiny 模式生成 com 文件)1991 年:TurboC+(3.0)支持 window
3、s 3.X说明:TurboC 语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。二二C C 语言的特点语言的特点1 1语言简洁、紧凑、使用方便、灵活C 语言:共有 32 个关键字,9 种控制语句;程序书写自由,主要用小写字母表示;2 2运算符丰富.页脚.C 语言的运算符包含的范围很广泛,共有 34 种运算符;即:把括号、赋值、强制类型转换都作为运算符处理3 3有丰富的数据类型整型、实型、字符型、数据类型、指针类型、结构体类型、共用体(联合)类型等。实现复杂的数据结构(链表、树、栈、图)的运算。4 4具有结构化的功能,用函数作为程序模块,实现程序的模块化5 5语法限制不
4、太严格,程序设计自由度大。(放宽了语法检查)例:1)对数组下标越界不作检查,由程序编写者自己保证程序的正确;2)整型数据、字符型数据、逻辑型数据可以通用。6 6能直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。7 7生成目标代码质量高,程序执行效率高。8 8用 C 语言编写的程序,移植性较好。说明:C 语言比其它高级语言难掌握,对编程人员要求较高程序员使用 C 语言编写程序会感到限制少、灵活性大,功能强,可以编写出任何类型的程序。三三C C 程序的构成程序的构成例:main()/*主函数*/int a,b,sum;/*定义变量*/a=123;b=4
5、56;sum=a+b;printf(“sum is%dn”,sum);/*输出变量*/说明:1)程序一般用小写字母书写;2)每个程序必须要有一个 main()(只能一个),称主函数;注:C 程序是由函数构成的,函数是 C 程序的基本单位。函数:系统提供的库函数;用户设计的函数。3)程序体必须在之间;4)每个语句的结尾,必须要有“;”作为终止符。5)用/*.*/作注释.页脚.四、四、C C 程序的上机过程程序的上机过程1 1演示书:P5 程序2上机步骤书:P7注:C 语言是一种编译语言,编译语言的特点:C 编译程序Link 程序3windows 下 C 语言的运行目前 DOS 下运行 C 语言软
6、件为:visual C+6.0的特点:是一个把 编辑 编译 连接 运行 等全部操作集中在一个界面上。(2)visualC+6.0 的操作及运行书:P8五、算法的概念五、算法的概念1算法的概念书:P13算法:程序的操作步骤。程序中的数据在程序设计中:操作步骤有:程序=数据结构+算法沃思 Nikiklaus Wirth程序=算法+数据结构+程序设计方法+语言工具和环境2 计算机算法分为两大类:计算机算法分为两大类:数值运算算法数值运算算法非数值运算算法非数值运算算法(1)数值运算算法:求数值解;通过运算得出一个具体值,如求方程的根等注:数值运算一般有现成的模型,算法较成熟。(2)非数值运算算法:用
7、于事务管理,如图书检索、人事管理等。3、常用简单算法(1)累乘即:1234510012 S(结果)S3 S(结果)S4 S(结果)S100 S(结果)(2)累加即:1+2+3+4+5+100源程序*.C目标程序*.OBJ执行程序*.EXE编译连接.页脚.1+2 S(结果)S+3 S(结果)S+4 S(结果)S+100 S(结果)(3)找最大值5,2,4,12,95 max(max 放最大值,后面的数都和它比较)2 max不成立4 max不成立12 max成立:12 max9 max不成立注:该算法可扩展为在一批数据中,找某一个数(4)其它算法P15 例 2.2例 2.3例 2.4例 2.5课余
8、自学(必须)4、算法的表示常用的有:自然语言传统流程图结构化流程图伪代码PAD图(1)传统流程图起止框输入输出框判断框处理框流程线连接点表示方法:P19 例注注:传统流程图对流程线的使用没有严格限制,难以实现结构化程序设计为了限制流程线的滥用,提出三种基本结构:顺序结构选择结构循环结构顺序结构顺序结构选择结构选择结构ft.f语句表达式表达式t语句语句语 句 1语 句 2.页脚.循环结构循环结构表达式语句语句表达式a)“当型当型”结构b)“直到型直到型”结构(2)N-S 流程图特点:去掉了带箭头的流程线,全部算法写在一个矩形框内。称 N-S 结构化流程图PA成立不成立当 P1 成立ABABA直到
9、 P1 成立顺序结构选择结构循环结构作业:作业:p37p372.42.4上机:熟悉上机:熟悉visual C+6.0 的操作及运行.页脚.第三章第三章 数据类型、运算符与表达式数据类型、运算符与表达式本章要求:本章是 C 语言的基本概念开篇,所介绍的概念是学习 C 语言的基础;要求熟练掌握数据类型、运算符与表达式。重点:重点:C 语言数据类型定义的方法和分类。C 语言运算符、表达式的使用以及它们的主要特点。难点:难点:自增、自减运算符、赋值运算符、逗号运算符及它们的混合使用一数据类型一数据类型概念:算法处理的对象是数据,而数据是以某种特定的形式出现。在 C 语言中,数据有:常量、变量;一般它们
10、都有一定的数据类型。(C 语言的数据结构是以数据类型形式出现的)1数据类型分类:整型 int基本类型基本类型字符型单精度型 float实型(浮点型)枚举类型双精度型 double数据类型数据类型数组类型构造类型构造类型结构体类型 struct共用体(联合)类型 union指针类型指针类型*空类型空类型voidvoid说明:在程序中对用到的所有数据都必须指定其数据类型。说明:在程序中对用到的所有数据都必须指定其数据类型。2C 语言中的常量和变量常量常量:在程序运行过程中,其值不能被改变的量。变量变量:在程序运行过程中,其值可以改变的量。说明:1)常量和变量,都要有一个名字表示它;习惯上,符号常量
11、(别名)名用大写,变量用小写。符号常量的定义为:#defineP30其它常量:直接用数据表示例:2345.5e3e+22)在 C 语言中,对变量要先定义,后使用。.页脚.3)如果一个变量被指定为一确定类型后,在 C 语言编译时,就能为其分配相应的存储单元。a变量名存储地址)20003变量值存储单元地址的概念3常用的基本数据类型(1)整型1)整型常量:十进制整数123,-11,0非 0 开头八进制整型0123,-0110 开头十六进制整型 0 x110 x200 x0D0XFF0 x4e0 x/0X 开头说明:在一个整常量后面加一个字母:l 或 L,是长整型常量。22L0733L0 xae4l2
12、)整型变量:定义存储字节数的范围基本型intx(2 字节)-3276832767短整型shortintx(2 字节)-3276832767长 整 型longintx(4 字 节)-2,147,483,6482,147,483,647无符号型 unsigned intx(2 字节)065535unsigned shortx(2 字节)065535unsigned longx(4 字节)04,294,967,295注:注:数据在内存中是以:二进制形式存放如:9为00001001例:x=13;x=015;x=0 xD存储结构 见 P44 图 3.5注:数据超过数据范围,会发生数据溢出注:数据超过数据
13、范围,会发生数据溢出例例 3.23.2、3.33.3(2)实型(浮点数)1)实型常量:十进制整数1.23.0123指数形式1.23e3,1.00e-32)实型变量:数的表示范围 P46表 3.2单 精 度floatx(4 字 节)3.4x10-383.4x1038TC 默 认双 精 度doublex(8 字 节)1.7x10-3081.7x10308说明:实型常量实型常量不分 float 和 double,只有十进制表达方式有的 C 编译系统 64 位存储方式,如尾加 f 或 F 可表示 32 位:.页脚.324.567f例:x=1.23;x=123e3P47 例 3.4(存储精度)(3)字符
14、型1)字符常量:a)用单引号括起来的一个字符a Ab)转义字符(由“专用字母”)书 P48 表3.3 例 3.50 字符串结束符n 换行t 水平制表ddd 八进制数xdd 十六进制数2)字符变量:charc(1 字节)说明:一个字符变量,只能放一个字符常量。实际是把该常量的 ASCII值,送入字符变量中。即:B(66)c(字符变量)书 P374ASCII 表 p50 例 3.6-7c=Bc 的内容为 66故:字符数据可以进行算术运算;即:c=B+2为 68字符数据在内存中的存储方式书 P50unsigned char0-255char-128-127 有符号数在 TC 中是用补码表示的127(
15、0 x7f)0111 1111128(0 x80)1000 0000复习:补码的规定:复习:补码的规定:正数:其原码、反码、补码相同负数:最高位为 1,其余各位为原码的反码(原码的相应位取反),然后对整个数加 1。140(0 x8c)1000 11001111 0011+1(取反加 1)1111 0100-0 x74-0 x741000 1011+1(取反加 1)1000 1100 0 x8c(0 x80 为负数-74 高位为 1)3)字符串常量用双引号括起来的字符“a”,“ABFD”“a”=“a0”A说明:说明:C 规定,在每一个字符串的结尾应加一个“字符串结束标志”(0),以便系统判断字符
16、串是否结束。4各类数值间的混合运算1)整型、字符型、单精度型、双精度型数据可以混合运算2)字符型、整型可以通用规则:高doublefloatlong.页脚.unsigned低intchar,short例如 10+a+1.5-8765.1234*b-858873.593200(TC默认 6 位小数)10+97+1.5-8765.1234*9810+97+1.5-8765.1234*98二运算符和表达式二运算符和表达式C 表达式:由变量、常量、函数等运算对象和运算符组成的式子C 运算符作用:1)能把一些基本运算模块用单一的运算符处理2)使用丰富的运算符,构成多种表达式C 运算符有优先级,优先级高的
17、先执行,同级的由结合规则决定其处理规则C 运算符有两种结合规则:1)从左到右的结合运算顺序;即:a=5+x10;运算对象与左边运算符结合2)从右到左的结合运算顺序;即:x=y=7;运算对象与右边运算符结合C 运算符分类书 P551基本运算符(算术运算符)C 语言有 7 个基本运算符1)单目运算符:(表示符号)正号“+”负号“-”2)双目运算符:+、-、*、/、%(模运算,求余运算,两侧为整数)说明:a)运算顺序的结合方向从左到右b)求余(取模)运算符是对两个整数相除的余数,计算结果的符号与第一个数的符号相同。即:-5%3值为-2、-5%-3值为-2、5%-3值为 22自增、自减运算符(优先级高
18、于算术,右结合)作用:作用:使变量的值增 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 z 值为值为 9 9i i 值为值为 6 6z=x+y;/变量 x 右结合运算符+(不是
19、3+4+5=12)printf(z=%d,x=%d,y=%d,z,x,y);输出结果:z=6x=4y=3如果:z=-x+y;输出结果:z=0 x=4y=3x 先为-4,然后+y,最后 x+3赋值运算符和赋值表达式(优先级低于算术,右结合)(1)“=”赋值运算符作用:将一个数据赋给一个变量 即:x=21注意注意:如果赋值运算符两侧的类型不一致,在赋值时,要进行类型转要进行类型转换换。P61 例 3.9即:float f;f=23f 值为 23.0000符号位扩展(2)复合的赋值运算符“+=、-=、*=、/=、%=”在赋值符“=”之前加上其它运算符称复合运算符(也称为自反运算符)例:a+=3等价于
20、a=a+3x*=y+8等价于x=x*(y+8)y/=4等价于y=y/4m%=3等价于m=m%3说明:C 语言采用这种复合运算符:为了简化程序,使程序精练;提高编译效率。(3)赋值表达式格式:变量=表达式表达式:可以是1)常量、变量、算术表达式;2)赋值表达式即:a=(b=5)或a=b=5(运算顺序的结合方向从右到左)例:.页脚.a=b=c=6;a=5+(c=6)(结果 a=11 c=6)如果:a=3;求:a+=a-=a*a;有:1 a*a;92)a=a-(a*a);-63)a+=-6-6+-6a 为:-12结果值为:-124逗号运算符和逗号表达式(优先级最低,左结合)用“,”将两个表达式连接起
21、来。格式格式:表达式 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 值为 10 x 值为 30结果值为:14说明:使用逗号表达式的目的,只是为了得到各个表达式的值(常用于循环语句)解表达式 1 的结果可能影响解表达式 2 的值5强制类型转换运算符(优先级高于算术,右结合)在要转换的数据前在要转换的数据前,用小括号括上要转换的数据类型即:(int)x;(int)(a+b)(int)x+
22、y格式:(类型名)表达式C 一般会自动进行数据类型转换 P56 例 3.8,用于不能自动转换的地方 x%3(float f)6关系运算符和关系表达式(书 P87)(优先级低于算术,左结合,高于赋值)(1)6 种关系运算符=(优先级高)=!=(优先级低)(2)关系表达式表达式 关系运算符 表达式即:aba+b=b+c(a=4)b)|(a+b=b+c)(a=4)&(b=8)1|(1)x&y值为 11说明:说明:逻辑表达式值:逻辑表达式值:是一个逻辑值,即:“真”或“假”p90优先次序(由高到低):!(非)算术运算符关系运算符&和|赋值运算符求值短路:53&2|84-!01|(结果 1)0&(结果
23、0)如:a&b&ca0 才判断 a&b8条件运算符(书 P97)格式:表达式 1?表达式 2:表达式 3执行:先求解表达式 1,为真(非零),求表达式 2为假(为 0),求表达式 3例:y=(ab)?a:b;说明:a)条件运算符要求有三个操作对象(称三目元运算符)b)条件运算符优先于赋值运算符y=(ab)?a:b;先求(ab)?a:b后赋值c)条件运算符的结合方向为“自右至左”(ab)?a:b可写为:ab?a:bab?a:b+5相当于:ab?a:(b+5)ab?a:c d?c:d相当于:ab?a:(cd?c:d)*9位运算符(书 P298)(一般掌握)位运算:是对字节或字中的实际位进行检测、设
24、置、屏蔽、移位。位运算符:&位逻辑与|位逻辑或 位逻辑异或 位逻辑反 右移b?a c?a:c:bc?b:c相当于:ab?(a c?a:c):(bc?b:c)(求最大值,如求最大值,如 a=2,a=2,b=8,b=8,c=5c=5结果为:结果为:8)8)3运算符的优先次序(书 P375附录)()、!+/-/-转移、算术、关系(=)、关系(=!=)、&、|、条件(?)、赋值、逗号例:1)-a+相当于-(a+)2)x=4,y=7求:y+=+x-3x 的值 5y 的值 93)x=4,y=7求:y=y+x-3x 的值 4y 的值 94)a=7,x=2.5,y=4.7求:s=x+a%3*(int)(x+y
25、)%*2/4s 的值2.500000a%3*(int)(x+y)%*2=1(整型)/4(整型)=0.25=0(整型)5)a%3&a%5|a+b如:a=7,b=5a 的值 8b 的值 6结果值 11|1如:a=15,b=15a 的值 16b 的值 16结果值 01|0如:a=15,b=14a 的值 16b 的值 15结果值 00|0如:a=15,b=13a 的值 16b 的值 14结果值 10|1四、该章的主要例题四、该章的主要例题数:P39 例 3.1P44 例 3.2P44 例 3.3字符:P49 例 3.5P50 例 3.6P51 例 3.7五、该章的主要习题五、该章的主要习题P653.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 设计 清华 谭浩强 37496
限制150内