




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
普通高等教育 十二五 规划教材 计算机专业 主讲 杨雅军Email yangyj2003 C语言程序设计 兴趣是最好的老师知识有限创意无限欢迎大家学习C语言程序设计 项目一简单C程序编写 任务1了解C语言的发展 任务2了解简单的C程序 任务3熟悉算法及算法的表示 任务1了解C语言的发展 一 C语言产生的历史背景随着计算机应用的迅速发展 各种功能强大 使用方便的高级语言相继出现 它们使用方便 可移植性好 但高级语言一般难以实现低级语言能够直接操作计算机硬件的功能 如对内存地址的操作 位操作等 在这种情况下 人们希望有一种语言既有高级语言使用方便的长处 又有低级语言能够直接操作计算机硬件的优点 因此 C语言就应运而生了 C语言是1972年由美国的DennisM Ritchie设计发明的 并首次在UNIX操作系统的DECPDP 11计算机上使用 随着微型计算机的日益普及 美国国家标准协会ANSI AmericanNationalStandardInstitute 为C语言制订了一套ANSI标准 成为现行的C语言标准 随着C语言的不断发展 应用和普及 目前 C语言已经能够在多种操作系统 如UNIX DOS等环境下运行 实用的C语言编译系统也种类繁多 如MicrosoftC TurboC VisualC 等 C语言设计精巧 功能齐全 既适合编写应用软件 又适合作为系统描述语言编写系统软件 是近年来最受人们欢迎的系统程序设计语言之一 二 C语言的特点C语言能够成为目前应用广泛的高级程序设计语言之一 完全是由其语言特点决定的 C语言的特点可大致归纳如下 一 基本语言组成部分紧凑简洁ANSIC有32个关键字 44个运算符 9种控制语句 语言组成精炼简洁 使用方便灵活 ANSIC 标准C语言 有32个基本关键字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile 1999年12月 ISO推出了C99标准 新增了5个关键字 inlinerestrict Bool Complex Imaginary2011年12月8日 ISO发布C语言的新标准C11 该标准新增了1个C语言关键字 Generic 二 运算符丰富 表达能力强 三 数据结构丰富 结构化好 四 具有结构化的控制语句 五 提供了某些接近汇编语言的功能 有利于编写系统软件 六 程序所生成的目标代码质量高 七 程序可移植性好 任务2了解简单的C程序 一 C语言程序的结构 一 C语言的一般形式C语言是一种结构化的程序设计语言 而函数是实现结构化的重要机制 C语言程序就是由一个或多个函数构成的 C语言程序的一般形式如下 预编译指令全局变量定义函数声明 main 变量定义执行语句func1 1 voidfunc1 变量定义执行语句func2 上面代码段中的main func1 都是函数 通过上面的代码可以发现 C语言程序是由多个函数构成的 在C语言程序中有一个有特殊名字的函数 即main 函数 也称为 主函数 所有C语言程序都必须包含它 C语言程序是以main 函数作为执行的起点 并在main 函数中结束 二 简单的C程序下面先从简单的C程序实例入手 分析一下C程序的结构和特点 先看下面的C程序例题 例1 1 阅读下面的简单程序 filenamea1 C includemain 主函数 inta b 声明部分 定义两个整型变量 a 1 b a 1 给两个变量赋初值 printf d b 输出b的值 本程序的运行结果为 2 例1 2 将两个整数之和显示出来 filenamea3 C includemain inta b sum 定义a b sum三个整型变量 a 100 b 200 给变量a和b赋值 sum a b 计算a与b的和 存入变量sum中 printf sum d n sum 输出sum的值 本程序的运行结果为 sum 300 从上面的例子可以总结得出 C程序的结构主要有如下特点 1 所有的C程序都是由一个或多个文件组成的 一个文件又可以由一个或多个函数组成 2 函数是组成C语言结构化程序的最小模块 3 一个函数由函数头和函数体组成 函数头一般包括函数类型 函数名 参数类型以及参数说明 函数体由花括号括起来 一般包括声明部分和执行部分 4 一个C程序中有且仅有一个主函数main 5 一个C程序总是从main 函数开始执行的 不管main 函数出现在整个程序的哪个位置 6 C程序使用 作为语句的终止符或分隔符 C程序书写格式自由 即一行中可以有多个语句 一个语句也可以占用多行 语句之间必须用 分隔 7 C程序中用 表示程序的结构层次范围 注意 必须配对使用 8 可以对C程序作注释 主要是对程序功能的必要说明和解释 注释部分的格式是 注释内容 或 注释内容 二 C程序的上机步骤C语言是一种编译型的程序设计语言 一个C程序要经过编辑 编译 连接和执行4个步骤才能得到运行结果 一 编辑在TurboC环境下 将C语言源程序通过键盘输入到计算机中 并以文件形式存盘 源程序都是以 c 为扩展名 二 编译通过编辑程序将源程序输入到计算机后 需要经过C语言编译器将其生成目标程序 编译得到的目标文件都是以 obj 为文件扩展名 若源程序有错误 需要对其进行修改 然后重新编译 三 连接经过编译后生成的目标文件不能直接执行 需要经过连接之后才能生成可执行代码 在DOS系统下 连接后所得到的可执行文件扩展名都是 exe 所谓连接 是将目标文件和库函数或其他目标程序连接成可执行的目标程序 四 执行连接后源程序就可以生成可执行文件了 在DOS系统下 只要键入可执行文件名 按回车键就可以了 上述过程可以用图1 1表示 图1 1C程序实现过程示意图 三 用TurboC运行C程序用TurboC来运行C程序要执行以下步骤 一 运行TurboCTurboC不仅是一个快速 高效的编译软件 同时还带有一个易学 好用的集成环境 使用TurboC时无须独立的编辑 编译和连接程序就能编辑和运行C程序 所有这些功能都组合在TurboC的集成环境内 并且可以通过菜单选择使用这些功能 TurboC2 0系统是DOS环境下的应用软件 下载TurboC到本地计算机 转到TurboC所在的子目录 只要在DOS系统下进入TurboC2 0所在的目录 输入TC 回车后 安装TurboC2 0时的默认设置 即进入TurboC2 0集成环境 按任意键 版本信息消失 屏幕显示如图1 2所示 图1 2TurboC2 0集成开发环境主屏幕 TurboC2 0集成开发环境的主屏幕 由上至下分成四部分 主菜单 编辑窗 信息窗口和默认的快速参考行 其中顶上一行为TurboC2 0主菜单 中间窗口为编辑区 接下来是信息窗口 最下面一行为参考行 这四个窗口构成了TurboC2 0的主屏幕 以后的编程 编译 调试以及运行都将在这个主屏幕中进行 主菜单在TurboC2 0主屏幕顶上一行 显示下列内容 FileEditRunCompileProjectOptionsDebugBreak watch除Edit外 其他各项均有子菜单 只要用Alt加上某项中第一个字母 就可进入该项的子菜单中 进入TurboC2 0后 这时的高亮度光标指向File 用键盘上的 和 键可水平移动屏幕上的光标 光标指向某个命令 按回车键就表示执行该命令 大多数的主菜单都有自己的子菜单 它们以下拉菜单的形式出现在主菜单的下边 有些子菜单也有自己的子菜单 从下一级菜单返回上一级菜单时可按 Esc 键 TurboC2 0的集成开发环境的主菜单一共有8个选择项 其功能简介如下 File装入或保存文件 管理目录 转入DOS和退出TurboCEdit建立和编辑文件Run编译 连接和执行装入环境下的当前程序Compile编译在环境下的当前程序 Project管理多文件工具Options设置编译程序和连接程序的各种选择项Debug设置各种调试选择项Break watch允许用户增加 删除和编辑监视表达式 可设置和清除断点 在主菜单中选择File菜单项 并按回车键 这时会弹出其下拉菜单 如图1 3所示 共有9个子菜单 其中 Load装入一个新文件 此命令的热键是F3Pick在文件列表中选择一个或几个不同的文件装入编辑窗口 热键是Alt F3New选择此项将建立一个新文件 此文件名暂时是 NONAME C Save把编辑窗口中的文件存盘 热键是F2 Writeto将文件写入新的文件名下或覆盖一个已存在的文件 若覆盖 屏幕有提示Directory显示当前目录中的文件列表Changedir显示当前目录 用户可以改变显示的目录Osshell暂时退出TurboC 返回DOS状态 输入EXIT并按回车键返回TurboCQuit退出TurboC 返回DOS状态下 热键是Alt X 图1 3File菜单 用 或 键可将光标在下拉菜单中上下移动 选择Load菜单项并按回车键 屏幕上又将出现一个小窗口 该窗口要求输入要编写的源程序文件名 如键入example 表示文件名为 example c 如果原来不存在此文件名 则TurboC系统将建立一个新文件 如果已有此文件 则TurboC系统将把该文件调入并显示在屏幕上 且自动进入编辑状态 光标处在编辑窗口中 二 编辑程序TurboC的文字编辑操作方法与通常的文本编辑工具Edit WPS等所提供的编辑操作方式相似 用户可根据需要进行键入文字 移动光标 插入 删除 查找 移动块等操作来输入或修改源程序 直到满意为止 三 编译 连接源程序按 F9 键即可进行编译 连接 也可按 F10 键 让光标从编辑窗口退出 回到主菜单下 选择Compile菜单项并按回车键 弹出其下拉菜单 先逐项选择 分步实现编译和连接 此时 屏幕上将出现是否有错误和有几个错误的信息报告 如果有错误 那么屏幕的信息窗口将显示源程序错误出现的行和出错的原因 用户可根据信息提示来修改源程序 按任意健 屏幕显示源程序 高亮度光标留在错误行上 再按 F6 键 用户即可对错误进行修改 待修改完毕后 再进行编译 重复进行上述过程 直至不出现错误 屏幕上显示Success为止 这时即生成一个与文件example同名的可执行文件 example exe 四 执行程序按 F10 键回到主菜单下 由 或 键将光标移至Run菜单项 按回车键 便可执行经过编译且连接好的可执行目标文件 屏幕将切换到原来键入TC的操作系统屏幕下 如果程序不要输入数据 则该屏幕将一闪而过 又回到TC的集成环境下 如果需要输入数据 那么应在此时按程序设计设定的方式输入数据 程序接收数据后将接着执行 直到全部中间结果输出 中间数据输入和最后结果输出为止 如果按快捷键 Alt R 步骤 三 四 可一次完成 另外 在编辑过程中可随时按 F2 键将源程序存到磁盘上 编辑和连接之前最好先按 F2 键将源程序保存 以免运行出错导致死机而将源程序丢失 五 离开TurboC回到操作系统状态用户可以按快捷键 Alt X 从TurboC退出 回到DOS状态 四 程序调试方法编写程序时难免会出现错误 编写好的程序必须经过测试以确定是否可以正确工作 这一测试过程称为调试 程序错误有两种 一种是语法错误 另一种是运行错误 语法错误是由于指令没有按照程序设计语言的语法规则编写所致 一般通过编译和连接就能找到 可根据提示修改错误 直到通过编译和连接为止 这时就说明程序没有语法错误 当程序已顺利执行 但得到的却不是所期望的结果 说明程序存在运行错误 这类错误除由类型错误造成的以外都归为逻辑错误 计算机不能指出运行错误 只能由编程者自己查找出程序的错误所在 运行错误往往是由于编程者所采用的变量类型或 部分或全部 算法有问题 而导致开始或中间结果不正确 这就要求有能快速找出错误的方法 TurboC集成环境提供了方便灵活的手段控制程序的执行 可在任意语句行上暂时或永久停止程序的执行 程序停止执行的语句行称为断点 并可追踪 观察中间 变量 结果 下面介绍几种调试方法 一 设置和使用观察变量找出程序中的运行错误的一种有效方法是能知道程序执行过程中某些变量或表达式值的变化 TurboC集成环境提供了观察变量的途径 选中Break watch菜单项中的Addwatch项或同时按Ctrl和F7键 会出现一个输入框 输入欲观察的变量名或表达式后 它们就会出现在Watch 屏幕底部 窗口中 重复使用Break watch菜单项中的Addwatch项或同时按Ctrl和F7键可以在Watch窗口添加多个变量或表达式 变量或表达式设置完成后 执行程序 Watch窗口中变量或表达式的值随程序的执行可能发生改变 由于程序执行速度非常快 人眼难以看清这种变化 因此 需要有能控制程序执行的方法 以便有足够的时间观察变量或表达式的值 下面介绍的单步执行程序 设置和使用断点提供了观察变量或表达式值的方法 二 单步执行程序选Run菜单中的Stepover命令项或按F8键 亮条就出现在主函数处 说明程序从主函数开始执行 每次选Run菜单中的Stepover命令项或按一次F8键则执行一行程序 遇到函数时不进入函数 定义 即函数作为一条语句或一个表达式处理 Run菜单中的Traceinto命令项或按F7键也是单步执行程序 不同的是遇到函数时进入其内部逐行执行 三 设置和使用断点通过设置断点 可以分段解决问题 把出现问题的范围缩小 调试程序时 可以在程序中设置多个断点 当程序执行到断点时 就会在有断点的那行上暂停程序的执行 显示所需观察变量或表达式的当前值 用户据此判定断点前的程序是否有问题 并将调试控制返回给用户 即用户可以接着连续执行 单步执行 跟踪到光标及断点执行 设置断点的步骤为 1 在编辑窗口将光标移到欲设置断点的那一行上 2 选Break watch菜单项中的Togglebreakpoint命令项或同时按Ctrl和F8键 被设置点的一行呈高亮度显示 3 欲设多个断点 重复步骤 1 2 断点所在的行均呈高亮度显示 4 要删除断点 将光标移到欲删除断点所在行 选Break watch菜单项中的Toggle命令项或同时按Ctrl和F8键 以上方法可结合使用 程序连续执行时 一遇到断点就会暂时停止 并返回编辑状态 断点不会因为被执行而清除 休息一下 巩固所学的知识 任务3熟悉算法及算法的表示 一 算法的概念计算机尽管可以完成许多极其复杂的工作 但实质上这些工作都是按照人们事先编好的程序的规定进行的 所以 人们常把程序称为计算机的灵魂 著名的计算机科学家NiklausWirth在他的惊世之作中提出了一个著名的公式程序 算法 数据结构 这个公式说明 对于面向过程的程序设计语言而言 程序由算法和数据结构两大要素构成 其中 数据结构是指数据的组织和表示形式 C语言的数据结构是以数据类型形式描述的 而算法就是进行操作的方法和操作步骤 这里我们重点讨论算法 所谓算法 就是一个有穷规则的集合 其中的规则确定了一个解决某个特定类型问题的运算序列 简单地说 就是为解决一个具体问题而采用的确定的 有限的操作步骤 这里所说的算法仅指计算机算法 即计算机能够执行的算法 算法含有两大要素 操作和控制结构 每一个算法都是由一系列的操作组成的 同一操作序列 按不同的顺序执行 就会得出不同的结果 执行的效率也会有所不同 控制结构即如何控制组成算法的各操作的执行顺序 结构化程序设计方法要求一个程序只能由3种基本结构组成 这3种基本结构分别是顺序结构 选择结构和循环结构 编写程序的关键就是合理地组织数据和设计算法 如同去一个地方可能会有多条路线一样 解决一个问题也会有多种算法 因此 要想开发出高质 高效的程序 除了要熟练掌握程序设计语言这种工具和必要的程序设计方法以外 更重要的是要多了解 多积累并逐渐学会自己设计一些好的算法 设计一个算法后 一般地 可用如下特性来衡量它的正确性 1 有穷性 2 确定性 3 有效性 4 有零个或多个输入 5 有一个或多个输出 二 算法的描述算法是为解决某个特定问题而采取的确定且有限的步骤 算法的描述方法多种多样 常见的有采用自然语言 图形和计算机语言的描述方法 一 采用自然语言描述采用自然语言对算法进行的描述称为伪代码 所谓伪代码 是指用自然语言和计算机语言结合起来描述算法的一种方式 伪代码描述算法没有统一的规定 写出来只要自己或别人能看懂就行 这种方式的特点是 直接用自然语言描述算法 易于表达 易于理解 比画流程图省时省力 容易转换为程序 但是清晰度和层次性不如流程图 自然语言表述不够严谨 当理解不一致时 容易产生歧义 二 采用图形描述用图形的描述方法通常有两种形式 传统流程图和N S流程图 1 传统流程图用自然语言描述程序执行步骤 如果是顺序结构还比较容易 但是稍微复杂一点的程序流程 如条件判断分支结构或循环结构等 就不是很方便了 因此 美国国家标准协会ANSI AmericanNationalStandardInstitute 规定了一些常用的流程图符号 来表示程序的执行步骤与控制流向 这就是程序流程图 使用程序流程图表示算法 流程清晰 易看易懂 用这些符号描述程序的执行步骤是国际通用的表示方法 在程序设计中普遍使用 传统流程图是描述算法的一种常用工具 是由图1 4所示的几种基本框和方向线组成 图1 4传统流程图基本图素 由这些框和方向线组成的流程图来表示算法 允许任意转向 形象直观 简单方便 但是 这种流程图描述复杂的算法时 所占篇幅较多 勾画费时费力 且描述复杂问题时不易阅读 这样就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年微生物学肠道寄生虫检测技术考核试卷答案及解析
- 2025excel劳动合同期限计算函数
- 2025年上海房屋租赁合同范本示例
- 北京市顺义区2024-2025学年七年级下学期期中考试生物题目及答案
- 2025年公共管理学医院管理机制建设考试卷答案及解析
- 2025年职业技能鉴定线上平台的市场推广与品牌建设研究
- 2025年AI伦理合规专员隐私保护考核题(含答案与解析)
- 2025年AI产品经理品牌推广策略面试题(含答案与解析)
- 采矿生产系统监控操作员成本预算考核试卷及答案
- 2025年职业技能认证跨境培训平台技术发展趋势分析报告
- 新能源发电技术 第2版 教学课件 8波浪能
- 摩托车行驶安全知识
- 多组学数据的整合与分析
- 四合院设计方案
- 档案管理基础知识大全
- 平曲线超高 超高缓和段上超高值的计算
- 国有集团“三重一大”决策制度实施办法(附详细版事项清单及议事规则)模版
- 社会情感学习在中小学教育中的实施与效果研究
- 焊材发放与回收及焊条烘干记录记录表
- 前言 马克思主义中国化时代化的历史进程与理论成果
- 绝缘子更换培训课件
评论
0/150
提交评论