




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C语言程序教程 重庆工学院 2 课程要求 课程目标 正确理解和使用C语言的基本数据结构和语法运用结构化程序的思想去阅读和设计程序完成结构化程序的编写 调试的基本训练课程基本要求 学会使用C语言编译系统 学会上机调试C程序C语言概念和方法要清楚 书上的例子要明白掌握程序设计的一般方法和思想 常用算法认真完成作业 3 课程特点C是基础 接触各种数据类型及表达式 基本语句语法 常用函数C程序设计 基本算法和案例程序的融合后续课程C 程序设计 面向对象程序设计 数据结构与算法分析 操作系统 UNIX 学什么 语言及程序设计概述数据类型 运算符与表达式简单程序设计 顺序 选择 循环结构程序设计 数组函数指针结构体与共用体文件 4 教学方法 如何教理论课 重点讲授主要算法和程序案例实验课 验证式实验教学 实现算法程序习题课 分析复杂程序案例学习方法 如何学课前预习 书中主要语句 函数 例题课后复习 教案中重点例题认真独立完成作业上机前必须完成基本程序多读 多看 多写程序 5 第一章C语言的发展及其特点和应用 本章要求 了解C语言的特点 与其它高级语言间异同 了解C程序在PC机上的建立 编译和运行过程 了解C语言程序设计思想 重点 C语言的主要特点 C语言在PC机上的运行过程及上机操作过程 常用算法的应用 6 0 回顾下计算机相关知识 计算机定义 计算机是一种在事先存入程序的控制下 能够接收数据 存储数据 处理数据并提供处理结果的数字化电子设备 2 计算机工作流程图 7 3 计算机内所有的信息 多媒体信息 采用二进制代码表示 称为机器数 机器数有三种不同的编码形式 原码 反码和补码 4 采用二进制的原因 1 二进制只含有两个数字0和1 因此可用大量存在两种不同稳定状态的元件来表示 2 二进制数的运算规则简单 使得计算机中的运算部件的结构变得比较简单 5 计算机中信息的表示数值直接转换为二进制字符采用ASCII编码 7位 美国标准信息交换码 其它信息 汉字 图形 图象 声音 表格 也有相应的编码标准和规则 8 6 计算机系统的组成 9 程序设计语言发展 10 程序执行 11 1 1 1C语言的发展 C语言是在研制UNIX操作系统过程中诞生 伴随着UNIX操作系统的发展而流行ALGOL60 B语言 C语言 UNIX ANSIC 1983 目前最流行的 语言有以下几种 MicrosoftC或称MSCBorlandTurboC或称TurboC 本教材选用 AT TCTurboC2 01989年TurboC 3 0 1991年 12 1 1 2C语言主要特点 1 C语言简洁 紧凑 使用方便 灵活 ANSIC一共只有32个关键字 9种控制语句 主要用小写字母表示 2 运算符丰富 共有34种 C把括号 赋值 逗号等都作为运算符处理 3 数据结构类型丰富 4 C语言是一种结构化 模块化的程序设计语言 其程序由函数组成 便于模块化的程序设计 程序结构完全由顺序结构 选择结构和循环结构组成 5 语法限制不太严格 程序设计自由度大 一行可以写多个语句 变量类型使用灵活 6 C语言既具有高级语言的功能 又具有汇编语言的许多功能 7 生成目标代码质量高 程序执行效率高 与汇编语言相比 用C语言写的程序可移植性好 13 1 2C语言程序的基本结构 1 简单的C程序例1 1输出指定字符串 程序运行结果 Hello thisisacprogramminglanguage 14 程序分析 1 C程序一般用小写字母书写 2 每个C源程序有且只能一个main 函数 称主函数 main前的void表示此函数是 空类型 3 程序体必须在一对 之间 4 每个语句的结尾 必须要有 作为终止符 5 表示注释部分 注释内容可用汉字或英文字符表示 6 函数调用语句 printf函数的功能是把要输出的内容送到显示器去显示 7 printf函数是一个由系统定义的标准函数库中的输出函数 可在程序中直接调用 printf语句中双撇号中的字符串按原样输出 n 是换行符即回车换行 8 include 为预编译命令也称为文件包含命令 常在 main 主函数之前 用于将有关的 头文件 包括到用户源文件中 被包含的文件通常是由系统提供的 其扩展名为 h stdio h 为标准输入输出库文件 其内定义了printf函数的原型 15 例1 2计算指定函数关系式 程序运行结果 inputnumber 9 2 sqrt 9 000000 1 7 000000 16 程序的功能是输入一个实数x 求2倍开方x加1关系式的值 然后输出结果1 凡是在程序中调用一个库函数时 都必须用预处理命令调用该函数原型所在的头文件 在本例中 使用了三个库函数 输入函数scanf 开平方函数sqrt 输出函数printf sqrt函数是数学函数 其头文件为math h文件 scanf和printf是标准输入输出函数 其头文件为stdio h 2 注释语句可出现在一行中的最右侧 也可独成为一行 注释也可以用 符号标识注释内容 这种注释只在一行有效 在执行语句的前面和中间不能使用这种注释 3 本例中主函数体分为两部分 一部分为说明部分 另一部为执行部分 说明是指变量的类型说明 语言规定 源程序中所有用到的变量都必须先定义 后使用 否则将会出错 本例中使用了两个变量x y 用来表示输入的自变量和sqrt函数值 说明部分后的四行为执行部分或称为执行语句部分 用以完成程序的功能 执行部分的第一行是输出语句 第二行为输入语句 第三行是调用sqrt函数并把函数值送到变量y中 第四行是用printf函数输出变量y的值 4 运行本程序时 首先在显示器屏幕上给出提示串inputnumber 这是由执行部分的第一行完成的 用户在提示下从键盘上键入某一数 如9 按回车键 enter 接着在屏幕上给出计算结果 程序分析 17 格式输入格式输出函数简介 scanf和printf一般形式为 printf或scanf 格式控制 参数表 格式控制是一个字符串 必须用双引号括起来 它表示了输入输出量的数据类型 各种类型的格式表示法可参阅后续章节 在printf函数中还可以在格式控制内出现非格式控制字符 这时在显示屏幕上将按原样输出 参数表中给出了输入或输出的量 当有多个量时 用逗号间隔 例如 printf 2 sqrt f 1 f n x y 其中 f为格式字符 表示按实数处理 它在格式串中两次现 分别对应了x和y两个变量 其余字符为非格式字符则按原样输出在屏幕上 18 程序运行结果 inputtwonumbers a b5 9 max 9 例1 3求两个数的最大值 19 程序分析 程序的功能是由用户输入两个整数 程序执行后输出其中较大的数 本程序由两个函数组成 主函数和max函数 函数之间是并列关系 可从主函数中调用其它函数 max函数的功能是比较两个数的大小 然后把较大的数返回给主函数 max函数是一个用户自定义函数 其返回值类型是整型 因此在主函数中要给出说明 在程序的说明部分中 不仅可以有变量说明 还可以有函数说明 在程序的每行后用 和 括起来的内容为注释部分 程序不执行注释部分 上例中程序的执行过程是 首先在屏幕上显示提示字符串 请用户输入两个数 回车后由scanf函数语句接收这两个数 并送入变量a b中 然后调用max函数 把a b的值传送给max函数的参数x y 在max函数中比较x y的大小 把大者通过中间变量m返回 returnm 给主函数的变量c 最后在屏幕上输出c的值 20 2 C程序结构特点 通过上述例子 可以对 源程序的结构特点归纳如下1 一个 语言源程序可以由一个或多个源文件组成 2 每个源文件可由一个或多个函数组成 main主函数 系统提供printf scanf函数 用户定义max函数 3 一个源程序不论由多少个文件组成 都有一个且只能有一个main函数 即主函数 程序总是从main 处开始执行 而不管main 在源文件中的位置 4 源程序中可以有预处理命令 include命令仅为其中的一种 预处理命令通常应放在源文件或源程序的最前面 5 每一个说明 每一个语句都必须以分号结尾 但预处理命令 函数头和花括号 之后不能加分号 6 C语言用函数进行输入输出 如printf scanf 7 C语言用 或 作注释 注释部分便于阅读程序的人理解程序员的设计意图 这是一个良好的习惯 8 C程序书写格式自由 一个语句可以占多行 一行也可以有多个语句 21 3 书写C程序时应遵循的规则 从书写清晰 便于阅读 理解 维护的角度出发 在书写程序时应遵循以下的规则 1 一个说明或一个语句单独占一行 2 用 括起来的部分 通常表示了程序的某一层次结构 一般与该结构语句的第一个字母对齐 并单独占一行 3 低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写 以便看起来层次清晰 结构明了 增加程序的可读性 22 4 语言的字符集 字符是组成语言的最基本的元素 语言字符集由字母 数字 空格 标点和特殊字符组成 在字符常量 字符串常量和注释中还可以使用汉字或其它可表示的图形符号 1 字母小写字母a z共26个 大写字母A Z共26个 2 数字0 9共10个3 空白符空格符 制表符 换行符等统称为空白符 空白符只在字符常量和字符串常量中起作用 在其它地方出现时 只起间隔作用 编译程序对它们忽略不计 因此在程序中使用空白符与否 对程序的编译不发生影响 但在程序中适当的地方使用空白符将增加程序的清晰性和可读性 4 标点和特殊字符 23 1 3算法表示方法 1 基本概念介绍做任何事情都有一定的步骤 为解决一个问题而采取的方法和步骤 就称为算法 在详细展开算法内容前 先介绍几个基本概念 程序 数据结构 算法 数据结构是程序中用到的数据的构造形式及其类型 对于面向对象程序设计 强调的是数据结构 而面向过程的程序设计语言如C语言 主要关注的是算法 算法是程序的核心 也是面向对象程序设计的基础 24 结构化设计是指任何复杂的程序皆可由顺序 分支 循环三种基本结构组成 程序设计的一般步骤是 设计算法 描述算法 编写程序 检查程序 编译调试和运行程序 由此 对于程序的概念 我们可以这样理解 程序 算法 数据结构 程序设计方法 语言工具和环境程序设计的关键是解题的方法与步骤 算法 算法可分为两大类 数值运算算法和非数值运算算法 数值运算算法 即求数值解 通过运算得出一个具体值 数值运算一般有现成的模型 算法较成熟 非数值运算算法 用于事务管理 如图书检索 人事管理等 具体对语言而言 其语法就是工具 是算法的一个具体实现和描述 25 先看两个常用的简单算法 例1 4累加 求 1 2 3 4 5 100 第一步 1 2 S 结果 第二步 S 3 S 结果 第三步 S 4 S 结果 第九十九步 S 100 S 结果 这样的算法虽然正确 但太繁琐 改进的算法 第一步 令x 1 第二步 令i 2 第三步 使x i 和仍放在x中 可表示为x i x 第四步 使i的值 1 即i 1 i 第五步 若i 100 返回重新执行步骤第三步以及其后的第四步和第五步 否则 算法结束 26 例1 5有10个工人 要求查找其中工资高于1500元的人员 并输出 算法分析 如用n表示工人序号 ni表示第i个工人的序号 g表示工人的工资 gi表示第i个工人的工资 算法表示 第一步 1 i 第二步 如果gi 1500 则打印ni和gi 否则不打印 第三步 i 1 i 第四步 若i 10 返回第二步 否则结束 一个优秀的算法应该具备以下特性 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性 27 2 常用算法的表示方法 算法的表示方法有很多种 常用的有 自然语言描述 伪代码 流程图 N S图等 在这里重点介绍流程图和N S图 用流程图表示算法一个流程图包括 表示相应操作的框 带箭头的流程线 框内外必要的文字说明 几何图形框的含义如下图所示 28 例1 6用流程图表示例1 4和1 5 29 一个流程图 包括以下几部分 表示相应操作的框 带箭头的流程线 框内外必要的文字说明 注意 画流程线时 不要忘记画箭头 因为它是反应流程的执行先后次序的 如不画出箭头就很难判断各框的执行次序了 30 根据结构化程序设计的思想 任何一个程序都由顺序 循环 选择三种基本结构组成 其流程图结构如下所示 顺序结构 循环结构 选择结构 31 用N S流程图表示算法 顺序结构 选择结构 循环结构 32 用计算机语言表示算法 例1 7用C语言改写示例1 4 例1 8用C语言改写示例1 5 33 1 4运行C语言程序的基本步骤 程序开发过程 34 写好一个程序后 要经过这样几个步骤 上机输入与编辑源程序 对源程序进行编译 与库函数连接 运行目标程序 如下图所示 其中实线表示操作流程 虚线表示文件的输入输出 35 TurboC 3 0集成开发环境 36 小结 C语言程序是由一系列函数组成的模块结构 C语言程序的书写格式自由 有较大的灵活性 但一般应采用一定的格式书写 养成良好的编程风格 C语言是一种编译型的高级程序设计语言 其开发过程包括 编辑 编译 连接 运行四个步骤 具体操作应参阅操作系统支撑环境的有关资料 37 作业 复习1 2 1 3熟悉和理解1 3 掌握1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国航空机场行业市场发展分析及前景趋势与投资研究报告
- 小红的勇敢之旅童话故事9篇
- 中学生信息技术能力提升项目方案
- 奇幻森林里的朋友们童话作文(13篇)
- 差速器铸件质量责任采购合同范本
- 风电站场地租赁合同:承租方风力发电场地租赁协议
- 旅游景区餐饮场地转租及美食文化推广合同
- 城市综合体地下车库使用权交易违约金规范合同
- 专业展会参展商资质审核及服务协议范本
- 沉井施工风险控制与责任分担承包合同
- 2023年山东省青岛市中考数学真题【含答案、解析】
- 2025-2030中国尼龙纱行业市场发展趋势与前景展望战略研究报告
- 烘焙设备智能化升级行业深度调研及发展战略咨询报告
- 基于新课标的初中英语单元整体教学设计与实践
- 2025春季学期国家开放大学专科《幼儿园课程基础》一平台在线形考形成性考核作业(二)试题及答案
- 《我的削笔刀》教学设计 -2023-2024学年科学一年级上册青岛版
- 细胞培养技术考核试题及答案
- 2025分布式光伏工程验收标准规范
- 2025-2030全球及中国高压侧开关行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025年北师大版数学六年级下册期末复习计划
- 职工食堂管理标准化手册:制度、要求与操作指南
评论
0/150
提交评论