您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《C语言程序设计》教案(清华谭浩强)
1第一章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年:——制定的新标准,称为(美国国家标准化协会)ANSIC1987年:——TurboC1.0(Borland)1988年:TC1.5(图形和文本窗口)1989年:——TurboC2.0(DOS操作系统、查错、Tiny模式生成com文件)1991年:——TurboC++(3.0)支持windows3.X说明:TurboC语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。二.C语言的特点1.语言简洁、紧凑、使用方便、灵活C语言:——共有32个关键字,9种控制语句;程序书写自由,主要用小写字母表示;2.运算符丰富2C语言的运算符包含的范围很广泛,共有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(“sumis%d\n”,sum);/*输出变量*/}说明:1)程序一般用小写字母书写;2)每个程序必须要有一个main()(只能一个),称主函数;注:C程序是由函数构成的,函数是C程序的基本单位。函数:系统提供的库函数;用户设计的函数。3)程序体必须在{}之间;4)每个语句的结尾,必须要有“;”作为终止符。5)用/*………..*/作注释3四、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)累乘即:1×2×3×4×5……×1001×2→S(结果)S×3→S(结果)S×4→S(结果)┇S×100→S(结果)源程序*.C目标程序*.OBJ执行程序*.EXE编译连接4(2)累加即:1+2+3+4+5……+1001+2→S(结果)S+3→S(结果)S+4→S(结果)┇S+100→S(结果)(3)找最大值5,2,4,12,95→max(max放最大值,后面的数都和它比较)2max不成立4max不成立12max成立:12→max9max不成立注:该算法可扩展为在一批数据中,找某一个数(4)其它算法P15例2.2例2.3例2.4例2.5课余自学(必须)4、算法的表示常用的有:①自然语言②传统流程图③结构化流程图④伪代码⑤PAD图(1)传统流程图起止框输入输出框判断框处理框流程线连接点表示方法:P19例注:传统流程图对流程线的使用没有严格限制,难以实现结构化程序设计为了限制流程线的滥用,提出三种基本结构:①顺序结构②选择结构③循环结构顺序结构选择结构ft.f语句表达式表达式t语句语句语句1语句25循环结构表达式语句语句表达式a)“当型”结构b)“直到型”结构(2)N-S流程图特点:去掉了带箭头的流程线,全部算法写在一个矩形框内。称N-S结构化流程图PA成立不成立当P1成立ABABA直到P1成立顺序结构选择结构循环结构作业:p372.4上机:熟悉TurboC2.0的操作及运行6第三章数据类型、运算符与表达式本章要求:本章是C语言的基本概念开篇,所介绍的概念是学习C语言的基础;要求熟练掌握数据类型、运算符与表达式。重点:①C语言数据类型定义的方法和分类。②C语言运算符、表达式的使用以及它们的主要特点。难点:自增、自减运算符、赋值运算符、逗号运算符及它们的混合使用一.数据类型概念:算法处理的对象——是数据,而数据是以某种特定的形式出现。在C语言中,数据有:常量、变量;一般它们都有一定的数据类型。(C语言的数据结构是以数据类型形式出现的)1.数据类型分类:整型int基本类型字符型单精度型float实型(浮点型)枚举类型双精度型double数据类型数组类型构造类型结构体类型struct共用体(联合)类型union指针类型*空类型void说明:在程序中对用到的所有数据都必须指定其数据类型。2.C语言中的常量和变量常量:——在程序运行过程中,其值不能被改变的量。变量:——在程序运行过程中,其值可以改变的量。说明:1)常量和变量,都要有一个名字表示它;习惯上,符号常量(别名)名用大写,变量用小写。符号常量的定义为:#defineP30其它常量:直接用数据表示例:2345.5‘e’3e+22)在C语言中,对变量要先定义,后使用。3)如果一个变量被指定为一确定类型后,在C语言编译时,就能为其分配相应的存储单元。7a变量名存储地址)20003变量值存储单元地址的概念3.常用的基本数据类型(1)整型1)整型常量:十进制整数123,-11,0非0开头八进制整型0123,-0110开头十六进制整型0x110x200x0D0XFF0x4e0x/0X开头说明:在一个整常量后面加一个字母:l或L,是长整型常量。22L0733L0xae4l2)整型变量:定义存储字节数的范围基本型intx(2字节)-32768~32767短整型shortintx(2字节)-32768~32767长整型longintx(4字节)-2,147,483,648~2,147,483,647无符号型unsignedintx(2字节)0~65535unsignedshortx(2字节)0~65535unsignedlongx(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-32)实型变量:数的表示范围P46表3.2单精度floatx(4字节)3.4x10-38~3.4x1038TC默认双精度doublex(8字节)1.7x10-308~1.7x10308说明:实型常量不分float和double,只有十进制表达方式有的C编译系统64位存储方式,如尾加f或F可表示32位:324.567f例:x=1.23;x=123e3P47例3.4(存储精度)8(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-7c=‘B’c的内容为66故:字符数据可以进行算术运算;即:c=‘B’+2为68字符数据在内存中的存储方式书P50unsignedchar0-255char-128-127有符号数在TC中是用补码表示的127(0x7f)01111111128(0x80)10000000复习:补码的规定:正数:其原码、反码、补码相同负数:最高位为1,其余各位为原码的反码(原码的相应位取反),然后对整个数加1。140(0x8c)10001100→11110011+1(取反加1)→11110100→-0x74-0x7410001011+1(取反加1)→10001100→0x8c(0x80为负数-74高位为1)3)字符串常量用双引号括起来的字符“a”,“ABFD”“a”=“a\0”‘A’说明:C规定,在每一个字符串的结尾应加一个“字符串结束标志”(\0),以便系统判断字符串是否结束。4.各类数值间的混合运算1)整型、字符型、单精度型、双精度型数据——可以混合运算2)字符型、整型——可以通用规则:高doublefloatlongunsigned低intchar,short例如10+’a’+1.5-8765.1234*’b’-858873.593200(TC默认69位小数)10+97+1.5-8765.1234*98二.运算符和表达式C表达式:由变量、常量、函数等运算对象和运算符组成的式子C运算符作用:1)能把一些基本运算模块用单一的运算符处理2)使用丰富的运算符,构成多种表达式C运算符有优先级,优先级高的先执行,同级的由结合规则决定其处理规则C运算符有两种结合规则:1)从左到右的结合运算顺序;即:a=5+x-10;运算对象与左边运算符结合2)从右到左的结合运算顺序;即:x=y=7;运算对象与右边运算符结合C运算符分类书P551.基本运算符(算术运算符)C语言有7个基本运算符1)单目运算符:(表示符号)正号“+”负号“-”2)双目运算符:+、-、*、/、%(模运算,求余运算,两侧为整数)说明:a)运算顺序的结合方向从左到右b)求余(取模)运算符是对两个整数相除的余数,计算结果的符号与第一个数的符号相同。即:-5%3值为-2、-5%-3值为-2、5%-3值为22.自增、自减运算符(优先级高于算术,右结合)作用:——使变量的值增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;10z=(i++)+(i++)+(i++)x=y=3;//结果:z值为9i值为6z=x+++y;//变量x右结合运算符++(不是3+4+5=12)printf(z=%d,x=%d,y=%d,z,x,y);}输出结果:z=6x
本文标题:《C语言程序设计》教案(清华谭浩强)
链接地址:https://www.777doc.com/doc-4156680 .html