收藏 分享(赏)

C语言经典教程1讲.ppt

上传人:gnk289057 文档编号:7927909 上传时间:2019-05-30 格式:PPT 页数:48 大小:319KB
下载 相关 举报
C语言经典教程1讲.ppt_第1页
第1页 / 共48页
C语言经典教程1讲.ppt_第2页
第2页 / 共48页
C语言经典教程1讲.ppt_第3页
第3页 / 共48页
C语言经典教程1讲.ppt_第4页
第4页 / 共48页
C语言经典教程1讲.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、C程序设计,主讲人:任祖华,2,本课程学习内容,1、学习一门计算机语言c语言 了解和掌握c语言的数据类型、语法结构、编程方法 熟悉函数、指针的使用方法 2、以c语言为工具,编制计算机程序,解决实际问题,3,学习方法,讲授共13章,24学时,1.5学分 上机,第1讲 绪论,第1章:C语言概述 第2章:程序的灵魂算法,5,第1章:C语言概述,C语言的产生、特点简单的C程序例子C程序的结构C程序上机步骤,6,一、C语言的产生与特点,1、计算机语言的分类 1)机器语言 2)汇编语言 3)高级语言,7,1)机器语言:由二进制机器指令组成如 10000000 加 10010000 减 2)汇编语言:在机器

2、语言的基础上引入了助记符如 ADD A, B 优点:直接对计算机硬件操作 缺点:编程人员难于理解和记忆,编程困难 依赖于计算机硬件,程序可读性差、难于移植,8,3)高级语言:用更容易理解的语句描述程序,面向问题,如 FORTRAN、PASCAL、C、BASIC语言等 优点:编程方便,不依赖于硬件,可读性、可移植性好。 缺点:有些难以实现对硬件的直接操作。,9,2、C语言的产生背景: 寻找一种可以用来编写操作系统等系统软件的高级语言, 要求具有: 高级语言的优点-不依赖于计算机硬件,可读性、可移植性好。 汇编语言的优点-可以直接对硬件进行操作。例如,对内存地址的操作,对二进制位的操作 从而, 7

3、0年代初诞生了C语言。,10,最初的C语言只是为描述和实现UNIX操作系统而设计的。1973年,美国贝尔实验室 D.M.Ritchie 和 KenThompson 一起用C语言对UNIX(汇编语言编写)作了改写,大大提高了UNIX操作系统的可移植性和可读性。 由C语言改写的UNIX操作系统获得了巨大的成功。从而语言的强大功能和各方面的优点逐渐为人们认识,日益普及,成为当代最优秀的程序设计语言之一。,11,发展: 1978年,B.W.Kernighan和D.Ritchie(简称K & R)合著的The C Programming Language是各种C语言版本的基础,称之为旧标准C语言。 19

4、83年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的C语言标准,称 ANSI C。 1987年,ANSI又公布了新标准-87 ANSI C。 目前,在微机上广泛使用的语言编译系统有Microsoft C、Turbo C 、Borland C等。,无论是哪种版本的C语言, 它们都具有如下一些共同的特点:,12,1C语言是一种结构化语言 函数是C语言程序的基本结构模块 具有结构化的控制语句(如选择结构的ifelse,循环结构的while、for等),使程序流程具有良好的结构性 2C语言语句简洁、紧凑,使用方便、灵活 C语言一共只有32个关键字(Keyword

5、),9种控制语句,程序书写形式自由,压缩了一切不必要的成份。 3.运算符丰富 有34种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针运算等。,3、C语言的特点,13,4.数据类型丰富 有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等 5.C语言允许直接访问物理地址 能进行位(bit)操作,能实现汇编语言的大部分功能。 6.生成的目标代码质量高,程序的执行效率高用C语言编写的程序,经编译后生成的可执行代码比用汇编语言直接编写的代码运行效率仅低10%20%。这是其他高级语言无法比拟的。 7.可移植性好(与汇编语言比)基本上不做修改就能用于各种型号的计算机和各种操作系统。

6、,14,二、简单的C程序例子,例1.1: main( )printf(“This is a C program.n”);输出: This is a C program. main表示“主函数”,每一个c程序都必须有一个main函数。函数体用 括起来。 主函数内有一个输出语句 printf 函数,双引号内的字符串按原样输出。,15,例1.2: main( ) /* 主函数 */ int a,b,sum; /* 声明部分,定义变量 */a=123; b=456; /* 执行部分,以下3行为C语句 */sum=a+b;printf(“sum=%dn”,sum); 本程序计算两数之和,并输出结果。 /

7、* */表示注释部分,注释只是给编程人员看的,并不被编译和执行,,输出: Sum = 579,函数体一般包括: 声明部分 - - - 变量的定义 执行部分 - - - 由若干语句组成,16,例1.3、输入两个整数,输出其中较大的数main( ) /* 主函数 */ int a , b , c ; /* 声明部分,定义变量 */ scanf (”%d,%d”, /*将z的值返回,通过max带回调用处*/,本程序由两个函数组成,主函数和max 函数。 主函数中调用max函数。 max 函数是一个用户自定义函数 功能是比较两个数,然后把较大的数返回给主函数。,17,三、C 程序的结构,编译预处理 主

8、函数() 函数1() . . 函数n ( ) ,# include main() add(a,b,) . . print ( ) ,C程序由一个或多个函数组成。至少要包含一个main函数。 主函数的位置不一定在最前面,但C程序总是从main函数开始执行。,18,C源程序的书写格式 源程序中可以有预处理命令(include),通常应放在源程序的最前面 函数名后面跟(),函数体用 括起来。 C程序用小写字母书写 每一个语句都必须以分号;结尾。 允许一句多行,一行多句。 用/*/对程序任何部分做注释。,19,main()int i; for(;i“i;+i)-i;“;read(-,i+“hell o

9、, world!n“,/);read(j,i,p)write(j/p+p,i-j,i/i);, 难以阅读,可读性差,良好的编程风格: 一个语句占一行 不同层次的缩进 有足够的注释,20,四、上机步骤,高级语言编写的源程序,计算机无法识别。 为了使计算机能执行高级语言源程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”(机器语言),然后将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序。 C程序上机步骤编辑、编译、连接、运行,21,程序代码的录入,生成源程序文件*.c,语法分析查错,翻译生成目标文件*.obj,与其它目标程序或库链接装配,生成可执

10、行文件*.exe,22,演示开发环境,C程序开发环境:Turbo C (DOS环境)Win-TcVc,23,演示turbo c使用及注意事项 1)安装,路径的设置 2)启动,常用的热键,常用的热键: F10-调用主菜单 F2-存盘 F3-打开 Alt+F9-Compile F9- Compile & Run Ctrl+F9-Run Alt+F5-User Screen,24,第2章:算法,程序与算法 算法的表示 结构化程序设计,25,一、程序与算法,著名计算机科学家沃思(Nikiklaus Wirth)提出: 数据结构 + 算法 = 程序 1数据结构,即对数据的描述。C语言中,数据结构是以数据

11、类型的形式出现的。 2算法,即对数据处理的描述。算法:是为解决一个问题而采取的方法和步骤, 是程序的灵魂。算法有优劣,一般而言,应当选 择简单的、运算步骤少的,既运算快、内存开销 小的算法。,26,简单算法举例,例1 求12345。 算法1: (1)先求12,得到结果2; (2)将步骤1得到的结果再乘以3,得到结果6; (3)将6再乘以4,得到24; (4)将24再乘以5,得到120。 如果求1231000,要写999个步骤,27,算法2:循环 S1:设变量p,被乘数,p=1; S2:设变量i, 乘数,i=2; S3:使pi,乘积放在被乘数变量p中,可表示为: p i = p; S4:使i的值

12、加1,即i+1 =i; S5:如果i不大于5,返回重新执行步骤s3以及其后的s4、s5;否则,算法结束。 最后得到的p就是5!的值。如果求1231000如果求135101,28,算法的特征 (1)有穷性; (2)确定性; (3)有零个或多个输入; (4)有一个或多个输出; (5)有效性;,29,二、算法的表示,在程序设计过程,一般不可能一开始就用程序设计语言编制计算机程序。而是先用某种简单、直观、灵活的描述工具来描述处理问题的流程,即算法。当方案确定以后,再将该流程转换成计算机程序。一般,常用的三种算法表示方式:传统流程图 N-S流程图 伪代码,30,例 1 求12345。,传统流程图 N-S

13、流程图 伪代码,开始 p=1 i=1 当i=5时, 执行以下操作: p = p*ii = i+1 输出p的值 结束,31,例 2 有50个学生,要求将成绩在80分以上 的学生的学号打印出来。 思路:用n i 表示第i 个学生的学号, g i 表示第i个学生成绩,算法表示如下:伪代码 BEGINi=1 while i=80 print ni and gii=i+1 END,32,传统流程图 N-S流程图,33,三种基本结构,面对复杂多样的问题,怎样能设计出良好的算法?1966年,Bohra和Jacopini提出了三种基本结构: 顺序结构 选择结构 循环结构,34,1) 顺序结构传统流程图 N-S

14、流程图,A,B,开始,结束,其中:A、B为操作框,可由一条或多条语句实现。,35,特点:按语句(或指令)的顺序依次执行,每个语句都会被执行到。 例:输入三角形的三边长,求三角形的面积。 公式:,36,2) 选择结构(分支结构)传统流程图 N-S流程图入口出口,A,B,P,T F,T F,其中:P为分支判断条件;A、B必有一个且只有一个被执行;A、B之一可是空操作,用 表示。,37,选择结构的扩充多分支选择结构入口k1 k2 kn出口,其中:K为多分支判断条件;Ai必有一个且只有一个被执行;,K,A1,A2,An,38,特点:根据判别条件有选择地改变执行流程 例:输入两个数a,b,输出a与b的大

15、小关系,输入两个数 a,b,输出 a b,a b,Y,N,输出 a = b,a b,输出 a b,Y,N,39,3) 循环结构 当型循环先判断后循环,有可能一次也不循环。入口 FT,P,A,当P为真A,出口,其中:P为循环判断条件;A为要重复执行的操作,称为循环体;,40,直到型循环先循环后判断,至少循环一次。入口 F T,P,A,A 直到P为真,出口,其中:P为循环判断条件;A为要重复执行的操作,称为循环体;,41,当 型 循 环,直 到 型 循 环,特点:有条件的重复地执行某个程序块 例:计算5! (12345),42,注:三种基本结构可以相互包含 例 判断2000年-2500年中的每一年

16、是否闰年,将结果输出。思路: 闰年的条件 (1)能被4整除,但不能被100整除的年份是闰年;如1996,2004年 (2)能被100整除,又能被400整除的年份是闰年;如1600,2000年 不符合这两个条件的年份不是闰年。,43,T F 打印y “是闰年 ”,T F,year=2000year%4= =0,year%100!=0,year%400=0,T F 打印y 打印y “是闰年 ” “非闰年 ”,打印y “非闰年 ”,year = year+1,直到year 2005,44,总结: 任何复杂的问题都可由三种基本结构的组合描述出来。 一个复杂的问题应分解为具有层次关系的多个相对容易的子问

17、题; 3) 三种基本结构之间可以互相包含;,45,三、结构化程序设计,三种基本结构组成的程序是结构化的程序优点:便于编写、阅读、修改和维护减少了程序出错机会,可靠性提高保证了程序的质量 怎样才能得到一个结构化的程序呢? 基本思路:把复杂问题分解为多个简单的小问题 (1)自顶向下 (2)逐步细化 (3)模块化设计 (4)结构化编码,46,小 结,了解C语言的产生,特点 理解C语言的结构框架,书写格式(由函数组成) 熟练掌握上机步骤 理解算法的表示 了解结构化程序设计方法,47,上机实验1,目的:熟悉 Turbo C 2.0 集成开发环境熟悉 win-Tc 开发环境 内容:教材第1章 习题1.7 1.5 、1.6(试着编写),48,练 习,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报