




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 程序设计基础,第1章 C语言程序设计基础,1.1 人的思维形式,1.2 程序设计基础,1.3 C语言的发展与特点,1.4 C程序开发及运行环境,本章内容,1.1 人的思维形式,思维是人脑的功能,思维的进行必须借助语言。思维的结果也必须通过语言表现才能为人们所感受。通常所说的语言为人类自然语言,广义的语言还包括人工语言,人工语言就是人工定义的一套符号系统。 人们为了能使计算机接受人类的思想,制定了各种符号和语法规则,这种语言称为计算机语言。 当人们想通过计算机完成人的某些功能时,必须事先把人完成该功能的思维过程用计算机语言表达出来,输入计算机,当人们向计算机发出完成该功能的指令时,计算机就会快速、高效的完成。 本学期学习的C语言就是计算机语言中的一种,它同样具有计算机语言的特征,有自己的基本符号、数据类型、运算符和基本结构。,1.2 程序设计基础,1.2.2 面向过程与面向对象,1.2.3 数据结构概述,1.2.4 算法,本节内容,1.2.1 程序设计的基本概念,1.2.1 程序设计的基本概念,1.2.1.1 程序 程序 (Program)就是一系列操作步骤 计算机程序(Computer program)就是人们事先规定的计算机完成某项工作的若干操作步骤的集合。每一个步骤都是计算机能够理解的指令来描述。 指令(Instruction)是计算机能够理解的操作命令。指令告诉计算机“做什么”和“怎么做”。,1.2.1 程序设计的基本概念,1.2.1.2 程序设计 程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分 1. 分析阶段 2. 设计阶段 3. 编码阶段 4. 测试阶段 5. 调试和运行阶段,1.2.1 程序设计的基本概念,1.2.1.3程序设计语言 程序设计语言(Programming Language)是一组用来定义计算机程序的语法规则,1.2.1 程序设计的基本概念,0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 1 1 0,机器语言程序,MOV AX, 300H ADD BX, AX MOV 2100H, BX HLT,汇编语言源程序,main( ) int a=300, b=18, c; c=a+b; printf(“a+b=%dn“, c); ,高级语言 C语言源程序,源程序需要翻译,1.2.2 面向过程与面向对象,“面向过程”是一种以事件为中心的编程思想; 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用这些函数。 “面向对象”(Object Oriented,简称OOP)是一种以事物为中心的编程思想。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。,1.2.2 面向过程与面向对象,在进行面向过程的程序开发时,需要程序的编写者要十分清楚这个程序有那些功能,或者说有哪些函数,函数之间是怎样进行调用的,每一步的函数返回值是什么,需要程序开发者严格控制每一个步骤,对每个步骤做到心中有数。 而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。,1.2.3 数据结构概述,程序包含两方面的内容: 对数据的描述-数据结构 在程序中指定数据的类型和组织形式(略) 对操作的描述-算法 程序是在数据的特定的组织方式的基础上,对抽象算法的具体描述,1.2.4 算法,算法是为解决某一特定问题而采取的具体的有限的方法和操作步骤 计算机算法分为两类: 数值运算算法 非数值运算算法,1.2.4 算法,1.2.4.1 算法的特征 有穷性:在有限的操作步骤内完成 确定性:每个步骤确定,步骤的结果确定 输 入:算法有零个或多个输入 输 出:算法执行完毕,必须有一个或若干个输出结果 可行性:算法的每一步都是能够实现的,即是可操作的,1.2.4 算法,1.4.1.2 算法的组成要素: 算法中对数据的运算和操作 算法都是按照要求从环境能够运行的所有操作中选择合适的操作所组成的一组指令序列 算法的控制结构 算法中各操作之间的执行顺序 包括顺序、选择、循环三种结构,1.2.4 算法,1.2.4.3 算法的描述方法 顺序结构 先执行A,再执行B,两者是顺序执行关系,1.2.4 算法,选择结构 当P条件为真时,执行A,否则执行B,1.2.4 算法,当型循环结构 当P条件成立时,反复执行A,直到P为假,(a),(b),A,当P为真,1.2.4 算法,直到型循环结构 先执行A,再判断P,若P为真,再执行A,直到P为假为止,(a),(b),1.2.4 算法,已经证明,任何复杂的问题都可以三种基本算法结构来描述:顺序、选择、循环。因此用计算机语句描述的程序也包含三种基本结构 程序的三种基本结构 顺序结构程序:按照书写顺序依次执行语句 选择结构程序:按照条件判断选择执行语句 循环结构程序:通过条件控制循环执行语句,1.3 C语言的发展与特点,1.1 人的思维形式,1.3.2 C语言的特点,1.3.3 简单程序示例,1.3.4 C程序的书写格式,本节内容,1.3.1 C语言的发展状况,1.3.5 main函数,1.3.1 C语言的发展状况,语言是1971年由美国贝尔实验室的D.M.Ritchie用了一年的时间设计发明的,1972年投入使用。 1973年K.Thompson和D.M.Ritchie用语言重写UNIX操作系统获得巨大成功。 1983年美国国家标准化协会(ANSI)为语言制定了一套ANSI标准,1987年ANSI公布了87 ANSI标准成为现行的语言标准。 语言已成为程序员使用最多的编程语言之一。无论是面向硬件编程,还是面向大型数据库编程;无论编写应用软件,还是编写操作系统;语言都是首选编程语言。,1.3.1 C语言的发展状况,1.3.1 C语言的发展状况,图形处理 影音编辑,操作系统 办公软件,网络软件 游戏软件,科学计算 自动控制,1.3.2 C语言的特点,1. 语言简洁紧凑,使用灵活 2. 运算功能丰富 3. 数据类型丰富,具有现代语言的各种数据结构 4. 具有结构化的控制语句,以函数作为程序模块 5. 允许直接访问物理地址及位操作 6. 语法限制不太严格、程序设计自由度大 7. 生成目标代码质量高,执行效率高 8. 程序的可移植性好,1.3.3 简单程序示例,输出 This is a c program ! 输完后换行,#include void main() printf(“This is a c program! n”); ,1.3.3 简单程序示例,该程序只有一个名为main的主函数,函数体(花括号内的内容)只有一个语句:printf输出语句 C程序的特点 C程序由函数组成,每个程序都必须有一个名为main的主函数,且主函数只能有一个,1.3.3 简单程序示例,求两个整数之和,#include void main() int a,b,sum; /* 这是定义变量 */ a=123; b=456; sum = a+b; printf(“Sum is %d n”, sum); ,1.3.3 简单程序示例,例1.3:从键盘输入两个整数,将最大值显示出来,#include int max(int x, int y) /*求最大值函数*/ int z; if(xy) z = x; else z = y; return(z); ,1.3.3 简单程序示例,例1.3:从键盘输入两个整数,将最大值显示出来,main( ) int a,b,c; /*声明部分,定义变量*/ printf(“Please input two integers:n”); scanf(“%d, %d”, ,1.3.3 简单程序示例,C程序特点 函数由函数首部和函数体构成,函数体由变量声明部分和执行部分组成,执行部分必须在声明部分后面。 函数定义的一般格式为:,函数类型 函数名(形参类型1 形参1, 形参类型2 形参2) 声明部分 执行部分 ,1.3.4 C程序的书写格式,C程序的书写格式有以下特点: (1)源程序是由函数构成的,其中必须有一个且只能有一个主函数(main函数),还可以有到多个其它函数。程序由main函数的首句开始执行,由main函数的最后一句结束,函数中可调用其它函数。 (2)语言中用户可以自己定义函数,也可以使用系统提供的库函数(如:printf函数和scanf函数)。Turbo C提供了300多个库函数,要调用的库函数,必须在源程序首部加上相应的库文件包含(例子中的:#include )。,1.3.4 C程序的书写格式,(3)语言函数内部不能定义函数。主函数main可以放在某一用户函数之前,也可以放在某一用户函数之后,但被调用的函数应在主调函数之前定义或说明。 (4)程序一般用小写字母书写,大、小写字母是有区别的,如area与Area代表不同的变量。 (5)程序书写格式自由,一行内可写多条语句,若一条语句较长,可分写在多行上。语句用分号“;”结尾。 可以在 内写若干条语句,构成复合语句。,1.3.4 C程序的书写格式,(6)语言的变量在使用之前必须先定义其数据类型,未经定义的变量不能使用。 (7)语言的函数由函数头与函数体两部分组成第一部分为函数头(函数说明部分),包括函数返回值类型、函数名、函数参数及参数的数据类型。第二部分为函数体部分,它是函数功能的实现部分,包括变量定义与执行语句。 (8)在程序中可以加一些注释语句,以便提高源程序的可读性。程序的注释部分包含在“/*”和“*/”之间。,1.3.5 main函数,main()是C程序中唯一可以直接运行的函数,其他函数都直接或间接由main()调用执行。C程序的执行开始于main()函数,一个结构良好的C程序也应结束于main()函数。 对于一些较小的程序,用一个main()函数就够了,全部的处理语句都放在main()函数中。 对于一些复杂问题,需要进行模块化设计,要将一个复杂问题分解成若干个相对简单的一些子问题,每个子问题由一个或多个函数来处理,main()函数负责总控,并调用相应的函数。,1.3.5 main函数,main()是一个特殊的函数,与其他函数一样,该函数也可以有返回值和参数表。本书第5章将对main()函数作更进一步说明。下面给出main()函数的最简单形式。 main() /主函数名 /函数体起始符 局部变量声明 执行语句序列 /函数体终止符,1.4 C程序开发及运行环境,1.4.2 VC+6.0集成开发环境,1.4.3 使用VC+6.0开发C程序,本节内容,1.4.1 开发C程序的步骤,1.4.1 开发C程序的步骤,1.4.1.1 几个基本概念 (1)源文件 源文件又叫源程序,是用来保存特定编程语言的代码的文件,源文件中的代码又叫源代码。源文件可以通过开发环境所提供的编辑器创建,也可以通过其他文件编辑器创建。例如,可以利用Turboc 2.0集成环境或Windows操作系统中的“记事本”可以创建和编辑C源程序。源程序通常以特定扩展名的文本文件形式保存在磁盘上。例如,C语言源程序文件的扩展名为“.c”。,1.4.1 开发C程序的步骤,(2)目标文件 目标文件又叫目标程序,目标程序是语言系统的编译程序将源程序翻译后生成的二进制代码文件。计算机的硬件能够识别,但还不具备运行条件。目标程序也是以文件形式保存在磁盘上。例如,C语言目标程序文件的扩展名为“.obj”。 (3)可执行文件 可执行文件又叫可执行程序,可执行程序是计算机能直接识别和执行的程序,它是将目标文件与所需要的库文件等信息连接后生成的程序。可执行程序是由语言系统的连接程序对目标程序进行连接后生成,保存在磁盘上,可供用户多次执行。C语言可执行文件的扩展名为“.exe”。,1.4.1 开发C程序的步骤,(4)编译程序 编译程序是高级语言系统提供的一种翻译程序,其作用是将高级语言编写的源程序翻译成二进制代码程序。例如,C语言和FORTRAN语言为编译型语言,用它们编写的程序必须经过创建、编辑、编译、连接和运行等几个步骤才能完成。在对源程序编译过程中发现的错误称为编译错误,而程序在运行时出现的错误称为运行错误。 (5)连接程序 连接程序是一种装配程序,其作用是将一个或若干个目标程序(.obj)和指定的库文件(.lib)连接起来,生成一个可执行程序(.exe)。,1.4.1 开发C程序的步骤,源文件 *.c、*.cpp,C编译程序 VC+ 6.0,目标文件 *.obj,没有错误,目标文件 *.obj,目标文件 *.obj,有错误,反馈错误信息,修正,Linker 连接,可执行文件 *.exe,1.4.2 VC+6.0集成开发环境,Visual C+ 6.0环境开发C程序的过程如下: 1. 建立工程项目 2. 向工程项目中添加新文件 3. 编辑源代码 4. 编译和链接 5. 运行程序,1.4.2 VC+6.0集成开发环境,1.4.3 使用VC+6.0开发C程序,在编译C源文件之前,需要创建一个工程项目 选择“文件”菜单项,出现下拉菜单,选择“新建”选项,则出现“新建”对话框,1.4.3 使用VC+6.0开发C程序,选择“工程”标签,在左边的列表框中单击“Win32 Console Application”选项, 在右边的“工程”下方的编辑框中输入一个名字如first作为项目的名称 单击“位置”下方的按钮,来选择项目存放的位置 然后单击“确定”按钮,出现一个对话框 在对话框中,单击“An empty project”选项,然后单击“完成”按钮,一个空项目就创建好了,1.4.3 使用VC+6.0开发C程序,1.4.3 使用VC+6.0开发C程序,系统创建了一个名称为“first”的文件夹,文件夹中创建了3个文件,一个子目录,1.4.3 使用VC+6.0开发C程序,后缀名为“.dsp”的是项目文件,保存项
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能与医学的融合创新
- 手术室恢复室护理
- 禹城公务员试题及答案
- 用药法律法规试题及答案
- 银行运管条线面试题目及答案
- 银行岗位笔试题库及答案
- 医院安全消防试题及答案
- 2025年苏教版数学六年级下册期末测试题及答案(典型题)(六)
- 烟台历年公务员面试题及答案
- 学校消防测试题及答案
- 初中数学90学时培训总结三篇
- 2024年南京市鼓楼区小升初英语考试题库及答案解析
- 2018年年历表(农历节日A4打印版)
- 2024年度管理评审会
- 2024ABB ConVac真空接触器安装说明书
- 卫星通信与移动通信技术融合与应用
- 医院死亡证明培训课件
- 第一套太极功夫扇扇谱
- 毒蛇咬伤完整版本
- 展位评估报告
- 家庭分家协议书15篇
评论
0/150
提交评论