《第一、二章C语言概述及算法.ppt》由会员分享,可在线阅读,更多相关《第一、二章C语言概述及算法.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、江苏工业学院计算机系C程序设计教材以及参考书目n 教材:q C程序设计 谭浩强 清华大学出版社n 参考书目:q C语言解析教程Al Kelley,Ira Pohl,麻志毅翻译,机械工业出版社q C程序设计语言,第二版新版Brain W.Kernighan,机械工业出版社q C语言程序设计实用教程Alice E.Fischer 电子工业出版社 q C程序设计教程周启海 机械工业出版社计算机系软件教研室计算机系软件教研室C语言的重要性n C语言是结构化语言,可以学习结构化的思想n 同属结构化语言的还有FORTRAN和Pascal,Basicn C+,Java属于面向对象语言(Object-Orie
2、nted)n 学好C语言对进一步学习的好处q C,Java语法与C及其类似,熟练C会很快上手q 网站设计的语言,PHP,JSP都是基本采用C的语法计算机系软件教研室如何学好C语言n 掌握算法是关键。n 注意编程风格。n 敢于怀疑,课本上有些是错误的,自己在计算机上动手调试可以证明一切。n 网上的编程网站也比较多。n“纸上谈兵”学不出程序设计本领;只有大量上机、编程、调试,才能掌握。n 学好程序设计语言的唯一途径是上机。n 你的编程能力和你在机器上投入的时间成正比。计算机系软件教研室计算机基础n 计算机硬件(躯体)q 存储器、运算器、控制器、输入设备、外存n 计算机软件(血液)q 系统软件n 操
3、作系统n 计算机语言n 数据库系统q 应用软件n 工具软件n 杀毒软件n 办公软件计算机系软件教研室计算机核心课程n C语言n 数据库系统n Java面向对象程序设计n 计算机网络n 数据结构n 离散数学n 操作系统n 编译原理计算机系软件教研室教学安排1.C语言概述2.数据类型、运算符与表达式3.最简单的C程序设计4.变量的存储类型及编译预处理5.指针与数组6.指针与函数7.结构体与共用体8.位运算9.文件10.程序设计常用算法简介11.专题和习题课(23次)计算机系软件教研室C语言概述 语言出现的历史背景C语言的出现以及相继问世的UNIX操作系统,专家一致认为具有划时代意义。以前的系统软件
4、大多使用汇编语言编写,但是汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差,因此采用高级语言,但高级语言又缺少汇编语言的某些功能(如:无法直接对硬件进行操作),于是就产生了设计一种既具有一般高级语言特性,又具有低级语言特性的语言的设想。计算机系软件教研室C语言概述 语言出现的历史背景C 语言最早是由贝尔实验室的科学家在总结了ALGOL 60、CPL、B等语言经验的基础上设计出来的,是为了描述和实现UNIX操作系统而研制的。C 语言于1972-1973年间问世,后来又做了多次改进与完善,但在最初几年一直未能推向社会,主要还是在贝尔实验室内部使用,在某种意义上说,直到UNIX被社会真正接受
5、后,C 语言才真正引起了人们的注意。到70年代末,80年代初,C 语言可以在大、中、小型计算机及微机上使用,并能独立于UNIX而存在。计算机系软件教研室C语言概述 语言的特点优点 既有高级语言的程序思想与方法,又有低级语 既有高级语言的程序思想与方法,又有低级语言的操作能力;言的操作能力;结构化的体系结构,层次清晰、易维护;结构化的体系结构,层次清晰、易维护;处理能力强,具有丰富的运算符和数据类型,处理能力强,具有丰富的运算符和数据类型,可直接访问内存的物理地址;可直接访问内存的物理地址;具有广泛的可移植性;具有广泛的可移植性;代码效率高。代码效率高。计算机系软件教研室C语言概述 语言的特点缺
6、点 比较灵活,不易掌握,容易出错;比较灵活,不易掌握,容易出错;运算符优先级太多;运算符优先级太多;类型转换限制少,检验较弱,不够安全。类型转换限制少,检验较弱,不够安全。计算机系软件教研室第一个程序/*我们编的第一的程序*/#include int main(void)printf(”hello world”);return 0;计算机系软件教研室C语言概述 程序的灵魂算法算法的概念 程序 程序=数据结构 数据结构+算法 算法 算法是对操作的描述,即操作步骤 算法是对操作的描述,即操作步骤 广义地说,算法是为解决一个问题而采取的方法 广义地说,算法是为解决一个问题而采取的方法和步骤。和步骤。
7、怎样表示一个算法 怎样表示一个算法l l一般表示法 一般表示法 l l传统流程图 传统流程图l l N-S N-S流程图 流程图计算机系软件教研室语言、算法、程序n 语言,走过了4代q 机器语言,汇编语言,高级语言,非过程语言n 算法就是人机系统认可的操作方式和控制方式q 解题思想,思路,规程,处方n 程序q 程序是人们在所设计的、能控制计算机正确给定问题的基础上,进一步用某种选定的计算机语言,把算法翻译成计算机可接受的,读懂和执行的“计算机语言文章”。q 同一个算法可以由用户实际需要和编程爱好而采用不同的计算机语言来编码,并得到关于同一算法具有不同计算机语言表现的形式的程序。q 算法是程序之
8、母计算机系软件教研室例子:求12345n S1:先求12得2n S2:求23得6n S3:求64得24n S3:求245得120n S1:定义变量P和i为整型n S2:使得P=1n S3:使得i=2n S4:使Pi,乘积仍然放在变量P中,表示为PiPn S5:使i的值加1,i+1in S6:如果i不大于5,返回S3继续执行,否则结束计算机系软件教研室例子:求矩形面积的算法n x,y,s:整型n 输出”x=?”n 输入xn 输出”y=?”n 输入yn s xyn 输出”s=“,s计算机系软件教研室课堂练习n 1、写出计算圆锥体积的算法。n 2、已知m3,n5,写出交换m与n的值的算法。计算机系软
9、件教研室流程图计算机系软件教研室例1 求一个班学生的平均成绩。设A等(85分)12人,B等(70分)16人,C等(60分)6人,D等(按50分计算)5人。C语言概述 程序的灵魂算法开始A=12B=16C=6D=5SUM=85A+70B+C60+D50AVER=SUM/(A+B+C+D)输出AVER的值结束AA计算机系软件教研室例2 输出一个数的绝对值。C语言概述 程序的灵魂算法输入 XX=0吗?N Y输出-X输出 X开始输入 XX=0吗?Y N结束输出-X输出 X计算机系软件教研室例3 输入50个学生的成绩,统计出得优秀的人数。C语言概述 程序的灵魂算法N=0,M=0当N90 YM=M+1N=
10、N+1N输出M的值计算机系软件教研室C语言概述 程序的灵魂算法结构化程序设计方法 自顶向下 自顶向下 逐步细化 逐步细化 模块化设计 模块化设计 结构化编码 结构化编码计算机系软件教研室C语言的程序格式及结构特点 实例 main()int x,y,z;x=2;y=3;z=x+y;printf(x+y=%dn,z);n 程序格式q 关键字及编译预处理命令用小写字母书写。q 由语句组成。q 以分号(;)作为语句的结束符,(不是分隔符)。q 没有行的概念,可任意书写。q 用大括号对 表示程序的层次范围,一个完整的程序模块要用一对 包括。q 不能在变量名、函数名、关键字中插入空格和空行。q 程序区分大
11、小写Page 24C语言的程序格式计算机系软件教研室 例 中 的printf()作为输出函数,由于C语言本身没有输 入输出语句,不象以前学过 的Fortran,C的输入输出由 函数来完成.例:main()int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);计算机系软件教研室C语言的程序格式及结构特点n 结构特点q 只有一个名字为main的函数,称主函数。q 除main函数外,其它函数都是在执行main函数时被调用执行的。n 函数的一般形式函数名(参数)参数说明;数据说明部分;执行语句部分;Page 26计算机系软件教研室C语
12、言概述 简单的程序介绍例1.#include main()printf(“This is a c program”);例1.#include main()/*求两个数之和*/int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is%dn”,sum);sum is 579This is a program计算机系软件教研室C 语言概述 简单的程序介绍例1.#include main()int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%dn”,c);int max(x,y)int x,y;int z;i
13、f(xy)z=x;else z=y;return(z);max=1212,8计算机系软件教研室 至于如何实现对函数的调用呢?请看下例(求两数的最大值)main()int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);主 函 数int max(x,y)int x,y;int z;if(xy)z=x;else z=y;return(z);执 行 语 句 部 分 数 据 说 明部 分 函 数 调 用执行main()函数 中的max(a,b)函数时,调用了下面 的 max(x,y)函 数,也就是说,所调用 的函数,必须先作定义.计算机
14、系软件教研室C语言概述 简单的程序介绍#include 是预处理语句,后面不用分号一个。main()是主函数,一个C程序只有一个主函数。/*/是注释行,编译系统不对其进行分析。int a,b,sum;在C中,变量必须先定义,后使用。printf()也是一个函数,它被主函数调用,()中是参数。printf(“sum is%dn”,sum);C语言是有格式输出。C程序书写格式自由;每个语句和数据定义的最后必须有一个分号。C程序由函数构成;输入输出实行“函数化”。计算机系软件教研室C语言概述 程序的上机步骤开始编辑编译 有错?连接执行 正确?结束可执行目标程序f.exe源程序f.c目标程序f.obj
15、库函数和其他目标函数有不正确无正确计算机系软件教研室使用turbo C调试Turbo C 的安装在Turbo C的系统盘上有一个名为install的安装程序,执行该安装程序并根据提示信息进行相应的操作,就可以将软盘上的Turbo C程序安装到硬盘上。安装好后会在盘上建立如下目录:Turbo C 的启动执行命令:C:TCtc在浏览器窗口中双击可执行文件tc.exeC:TCincludelib 屏幕上出现主菜单窗口计算机系软件教研室显示出错信息显示编辑的程序计算机系软件教研室Turbo C 简介Turbo C“命令”行菜单项:File:管理文件和目录,装入或保存程序,调入DOS系统,退出Turbo
16、 C 环境。Edit:进入Turbo C 的编辑程序,输入和修改源程序Run:编译、连接和运行装入执行Turbo C环境的当前程序。Compile:编译和连接装入Turbo C 环境的当前程序Project:管理多文件工程。Options:设置编译程序和连接程序的各种选择项。Debug:设置各种调试选择项。Break/Watch:设置调试用的断点在调试阶段需要监视的变量名。计算机系软件教研室Turbo C 简介编辑一个新程序文件的方法:1.选择主菜单中“File”菜单项;2.选择“File”子菜单中“New”菜单项;3.从键盘上输入程序内容,边输入边修改;4.选择“File”子菜单中“Writ
17、e to”菜单项,在提示信息框内键入文件名可将该文件存盘。编辑一个已有程序文件的方法:1.选择“File”子菜单中“Load”菜单项,在提示信息框内键入文件名或选择文件;2.编辑修改好程序后,再用“File”子菜单中“Save”菜单项将程序按原来的文件名存盘。计算机系软件教研室Turbo C 简介“File”菜单中各菜单项的功能:D 装入一个文件D 显示最后写入磁盘的八个文件D 清除并开始编辑一个新文件D 把正在编辑的文件用原文件名存盘D 把正在编辑的文件用新文件名存盘D 显示当前的工作目录D 改变当前的工作目录D 进入DOS状态,用EXIT返回D 退出 Turbo C 环境计算机系软件教研室
18、Turbo C 简介“Run”菜单中各菜单项的功能:1.2.3.1.运行一个已编辑好的程序或编译、连接当前程序2.让程序执行到光标所在行3.显示运行结果,按任意键返回Turbo C屏幕计算机系软件教研室Turbo C 简介n“Compile”菜单中各菜单项的功能:1.2.3.1.开始编译,形成.OBJ文件,错误显示在Message窗口中2.直接对源程序进行编译和连接,形成.EXE文件 3.把.OBJ文件和库文件连接起来形成可执行文件计算机系软件教研室作业n 熟悉TC环境n 执行以下程序熟悉编译器产生的信息,有些信息是有用的,有些是无用的#include int main(void)int a=1,b=2,c=3;printf(“some output:%d%d%dn”,a,b,c,c);return 0;1、把声名变量第一个逗号改为分号。2、把printf()改为print3、去掉控制串中的第二个引号4、用a,b,c替代a,b,c,c5、去掉printf()语句后后面的分号。6、去掉结束的花括号计算机系软件教研室