




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计C语言程序设计2---教材《全国计算机等级考试二级教程—c语言程序设计(2017年版)》田淑清主编高等教育出版社---参考书《c语言程序设计》谭浩强清华大学出版社---课时安排:总学时:64学时理论授课:32学时上机实验:32学时教材、参考书与课时安排2---教材教材、参考书与课时安排C程序设计的初步知识23选择结构循环结构45顺序结构C语言程序设计(2017版)程序设计基本概念1字符型数据6C程序设计的初步知识23选择结构循环结构45顺序结构C语言程函数78数组字符串910指针C语言程序设计(2017版)C语言中用户标识符的作用域和存储类12对函数的进一步讨论11函数78数组字符串910指针C语言程序设计(2017版)C语13结构体、共用体和用户定义类型位运算1415编译预处理和动态存储分配C语言程序设计(2017版)文件1613结构体、共用体和用户定义类型位运算1415编译预处理和动第1章程序设计基本概念1.1程序和程序设计1.2算法1.3结构化程序设计和模块化结构第1章程序设计基本概念1.1程序和程序设计1.2算法12022/11/241.1.1C程序●定义:可以连续执行的一条条指令的集合。●程序设计语言分类1.1程序和程序设计2022/11/221.1.1C程序1.1程序和程序设计2022/11/241、计算机程序设计语言的发展(1)机器语言电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机语言的基础。计算机发明之初,人们只能降贵屈尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
1.1程序和程序设计2022/11/221、计算机程序设计语言的发展1.1程序2022/11/24(2)汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为编译程序。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。1.1程序和程序设计2022/11/22(2)汇编语言1.1程序和程序设计2022/11/24(3)高级语言
1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现。
60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言—Pascal语言出现,标志着结构化程序设计时期的开始。
1.1程序和程序设计2022/11/22(3)高级语言1.1程序和程序设计2022/11/2480年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(object)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C++、VB、Delphi就是典型代表。1.1程序和程序设计2022/11/2280年代初开始,2022/11/24
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。1.1程序和程序设计2022/11/221.1程序和程序2022/11/242、C语言程序的执行
编辑C语言源程序EX101.C
编译C语言程序
连接EX101.EXE
执行文件
二进制机器指令(目标文件)EX101.obj编译程序连接程序1.1程序和程序设计2022/11/222、C语言程序的执行二进制机器指令(目标2022/11/241.1.2程序设计程序设计是一个工作的过程,包括:在计算机上对指定的任务来确定采用的数据结构和算法,然后选择合适的计算机语言进行编码(编程),在计算机上对程序进行调试,直到得到正确结果。简单的程序设计包括:
●分析问题
●确定数据结构————加工对象数据类型、数据的组织形式●确定算法————灵魂●编码在一定语言环境和工具支持下编写源程序代码●调试源程序语法错误和逻辑错误●整理并写出文档资料给出必要的注释/*……………*/
1.1程序和程序设计2022/11/221.1.2程序设计1.1程序和程序1.2.1算法的概念程序=算法+数据结构
所谓算法,就是一个有穷规则的集合,其中的规则确定了一个解决某个特定类型问题的运算序列。简单说:就是为解决某一特定问题而采取的具体的有限的操作步骤。1.2算法1.2.1算法的概念程序=算法+数据结构所谓算16
1.2.2
算法的特性(5个规则)(1)算法的有穷性算法中执行步骤在执行有穷步后结束,是有限的,每一条指令执行次数都是有限的。(2)算法的有效性(可行性)算法中每一个步骤都应当能有效地执行,并得到确定的结果。(3)输入
一个算法应当有若干个输入量,所谓输入是指在执行算法时需要从外界取得必要的信息。1.2算法161.2.2
算法的特性(5个规则)1.2算法
(4)输出一个算法有一个或多个输出的量,它们是与输入有某种关系的量。(5)算法的确定性算法中的每一个操作的含义必须明确,无二义性。一定条件下执行路径也是唯一的。1.2算法(4)输出(5)算法的确定性1.2算法(1)自然语言表示法
1.2.3算法描述自然语言表示法是用自然语言叙述一个问题的求解过程。自然语言描述的算法明确、详细,是人们常用的描述解决问题的步骤的一般方法。前面的例题在描述其算法结构的时候,用到了自然语言的描述方法。(2)程序流程图
程序流程图是用规定的图形、指向线和文字说明来表示算法的一种图形。1.2算法(1)自然语言表示法1.2.3算法描述自程序流程图的基本符号:1)椭圆形图框:终端框表示算法的开始与结束2)矩型图框:处理框表示算法的各种处理功能3)菱形图框:判断框表示算法的条件转移操作4)平形四边形:表示算法的输入/输出操作5)圆点图框:引入引出连接符表示流程图的延续6)指向线:指向线指引流程图中的方向1.2算法1.2算法20算法的表示--流程图起止框输入/出框判断框处理框流程线连接点1.2算法20算法的表示--流程图起止框输入/出框判断框处理框(3)N-S图
N-S图用层层嵌套的方框图形来描述程序算法,避免了流程图中出现的流程线,有效控制了无条件转移,体现了结构化描述方法。
(4)伪代码表示算法
伪代码表示算法是用介于自然语言和计算机语言之间的文字和符号表示算法。1.2算法(3)N-S图(4)伪代码表示算法1.2算法
1.3.1结构化程序
(1)顺序结构顺序结构中的各个模块是按照它们出现的先后顺序执行的。(2)选择结构选择结构先判断选择条件,根据判断的逻辑值,确定执行其中的某一个模块。(3)循环结构循环结构先判断循环条件,满足条件重复执行循环体包含的执行块,直到循环条件不满足,终止循环。
1.3结构化程序和模块化结构1.3.1结构化程序1.3结构化程序和模块化结构程序流程图的基本结构
A
B顺序结构流程图
ABT
F条件P分支结构流程图1.3结构化程序和模块化结构程序流程图的基本结构AB顺序结构流程图当循环结构流程图
A
条件PTF直到循环结构流程图
ATF条件P1.3结构化程序和模块化结构当循环结构流程图A条件P2022/11/24
当条件P为真
A
当循环结构流程图
A
直到条件P为真直到循环结构流程图
条件P
T
F
A
B选择结构流程图N-S图1.3结构化程序和模块化结构2022/11/22当循环结构流程图直到循环结构1.3.2模块化结构自顶向下、逐级细化2022/11/241.3结构化程序和模块化结构1.3.2模块化结构自顶向下、逐级细化2022/11/22C语言程序设计C语言程序设计28---教材《全国计算机等级考试二级教程—c语言程序设计(2017年版)》田淑清主编高等教育出版社---参考书《c语言程序设计》谭浩强清华大学出版社---课时安排:总学时:64学时理论授课:32学时上机实验:32学时教材、参考书与课时安排2---教材教材、参考书与课时安排C程序设计的初步知识23选择结构循环结构45顺序结构C语言程序设计(2017版)程序设计基本概念1字符型数据6C程序设计的初步知识23选择结构循环结构45顺序结构C语言程函数78数组字符串910指针C语言程序设计(2017版)C语言中用户标识符的作用域和存储类12对函数的进一步讨论11函数78数组字符串910指针C语言程序设计(2017版)C语13结构体、共用体和用户定义类型位运算1415编译预处理和动态存储分配C语言程序设计(2017版)文件1613结构体、共用体和用户定义类型位运算1415编译预处理和动第1章程序设计基本概念1.1程序和程序设计1.2算法1.3结构化程序设计和模块化结构第1章程序设计基本概念1.1程序和程序设计1.2算法12022/11/241.1.1C程序●定义:可以连续执行的一条条指令的集合。●程序设计语言分类1.1程序和程序设计2022/11/221.1.1C程序1.1程序和程序设计2022/11/241、计算机程序设计语言的发展(1)机器语言电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机语言的基础。计算机发明之初,人们只能降贵屈尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
1.1程序和程序设计2022/11/221、计算机程序设计语言的发展1.1程序2022/11/24(2)汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为编译程序。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。1.1程序和程序设计2022/11/22(2)汇编语言1.1程序和程序设计2022/11/24(3)高级语言
1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现。
60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言—Pascal语言出现,标志着结构化程序设计时期的开始。
1.1程序和程序设计2022/11/22(3)高级语言1.1程序和程序设计2022/11/2480年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(object)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C++、VB、Delphi就是典型代表。1.1程序和程序设计2022/11/2280年代初开始,2022/11/24
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。1.1程序和程序设计2022/11/221.1程序和程序2022/11/242、C语言程序的执行
编辑C语言源程序EX101.C
编译C语言程序
连接EX101.EXE
执行文件
二进制机器指令(目标文件)EX101.obj编译程序连接程序1.1程序和程序设计2022/11/222、C语言程序的执行二进制机器指令(目标2022/11/241.1.2程序设计程序设计是一个工作的过程,包括:在计算机上对指定的任务来确定采用的数据结构和算法,然后选择合适的计算机语言进行编码(编程),在计算机上对程序进行调试,直到得到正确结果。简单的程序设计包括:
●分析问题
●确定数据结构————加工对象数据类型、数据的组织形式●确定算法————灵魂●编码在一定语言环境和工具支持下编写源程序代码●调试源程序语法错误和逻辑错误●整理并写出文档资料给出必要的注释/*……………*/
1.1程序和程序设计2022/11/221.1.2程序设计1.1程序和程序1.2.1算法的概念程序=算法+数据结构
所谓算法,就是一个有穷规则的集合,其中的规则确定了一个解决某个特定类型问题的运算序列。简单说:就是为解决某一特定问题而采取的具体的有限的操作步骤。1.2算法1.2.1算法的概念程序=算法+数据结构所谓算42
1.2.2
算法的特性(5个规则)(1)算法的有穷性算法中执行步骤在执行有穷步后结束,是有限的,每一条指令执行次数都是有限的。(2)算法的有效性(可行性)算法中每一个步骤都应当能有效地执行,并得到确定的结果。(3)输入
一个算法应当有若干个输入量,所谓输入是指在执行算法时需要从外界取得必要的信息。1.2算法161.2.2
算法的特性(5个规则)1.2算法
(4)输出一个算法有一个或多个输出的量,它们是与输入有某种关系的量。(5)算法的确定性算法中的每一个操作的含义必须明确,无二义性。一定条件下执行路径也是唯一的。1.2算法(4)输出(5)算法的确定性1.2算法(1)自然语言表示法
1.2.3算法描述自然语言表示法是用自然语言叙述一个问题的求解过程。自然语言描述的算法明确、详细,是人们常用的描述解决问题的步骤的一般方法。前面的例题在描述其算法结构的时候,用到了自然语言的描述方法。(2)程序流程图
程序流程图是用规定的图形、指向线和文字说明来表示算法的一种图形。1.2算法(1)自然语言表示法1.2.3算法描述自程序流程图的基本符号:1)椭圆形图框:终端框表示算法的开始与结束2)矩型图框:处理框表示算法的各种处理功能3)菱形图框:判断框表示算法的条件转移操作4)平形四边形:表示算法的输入/输出操作5)圆点图框:引入引出连接符表示流程图的延续6)指向线:指向线指引流程图中的方向1.2算法1.2算法46算法的表示--流程图起止框输入/出框判断框处理框流程线连接点1.2算法20算法的表示--流程图起止框输入/出框判断框处理框(3)N-S图
N-S图用层层嵌套的方框图形来描述程序算法,避免了流程图中出现的流程线,有效控制了无条件转移,体现了结构化描述方法。
(4)伪代码表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度中国石化春季招聘统一初选考试笔试参考题库附带答案详解
- 2024-2025工厂安全培训考试试题及参考答案(达标题)
- 2025企业主要负责人安全培训考试试题答案4A
- 2025公司、项目部、各个班组三级安全培训考试试题往年题考
- 2025美容院员工劳动合同模板
- 2025房屋抵押合同模板
- 2025年上海公司股权转让合同模板
- 2025国际民间贸易合作合同模板
- 2025电子产品买卖合同模板
- 2025年工程材料供应购销合同范本
- 高一下学期期中家长会课件(28张PPT)
- 【大学语文-精】管晏列传课件
- DB4413-T 19-2020《惠州市建筑二次供水工程设计、施工及验收规范》-(高清现行)
- 不间断电源装置(UPS)试验及运行质量检查表
- 医院第一季度全成本核算分析报告
- Rational-Rose-用例图、顺序图、活动图、类图、状态机图-实例
- 《马说》-教学设计【教学参考】
- 2022年1月浙江高考英语应用文与读后续写范文汇总(素材)
- 华为智慧园区解决方案
- 世界银行集团简介课件(PPT 48页)
- 中国毛笔字书法教育培训动态PPT模板
评论
0/150
提交评论