版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计1学习这门课程的目标高层次的追求低层次的追求课程过关科研和工程中的计算思维能力工具的开发者与软件人员良好交流的能力第1章 C程序设计概述4按对机器依赖性、 接近自然语言的程度、 语言的发展过程 机器语言 汇编语言 高级语言 1.1.1 程序设计语言计算机工作原理-存储程序和程序控制。用于描述计算机程序的符号系统称为计算机程序设计语言。51.1.1 程序设计语言高级语言的翻译方式解释方式(Interpreter 解释程序)逐句扫描,逐句翻译,逐句执行,直接获得结果。不产生等价的机器语言程序高级语言解释程序高级语言源程序 结果61.1.1 程序设计语言高级语言库文件编译程序连接程序执
2、行源程序目标程序可执行程序数据结果编译:Compiling 将高级语言源程序翻译成为功能等价的低级(机器)语言目标程序的过程。编译程序:Compiler 完成编译工作的专门程序。对不同的程序设计语言需要配备不同的编译程序。对使用不同机器语言的机器需要配备不同的编译程序。71.1.1程序设计语言程序设计语言的基本语言成分 数据成分刻画程序所处理的数据对象的值、存储 运算成分 算术、逻辑、集合等运算 控制成分 控制程序的执行流程 传输成分数据的输入输出81.1.2 程序程序概念日常生活中程序概念 “程序”是完成事情的先后次序计算机中的程序概念 按特定的算法,用某种计算机语言描述的完成指定任务的处理
3、过程 程序算法数据结构91.1.3 程序设计设计、编制、测试程序的方法和过程程序设计的内容与内涵设计程序编制程序调试程序测试程序验证程序设计风格 101.1.3 程序设计结构化程序设计方法 一种传统的程序设计方法本质是功能设计设计基本原则 :自顶向下,逐步细化,由抽象到具体的功能分解过程结构化程序设计过程例 求二次方程ax2+bx+c=0的根 S1:输入系数a,b,cS2:求根计算S3:输出根111.1.3 程序设计S21:计算判别式 b2-4ac discS22:计算 (-b)/(2a) uS23:计算 vS11:输入系数a,b,cS12:判别输入的a是否为0,若为0 ,转S11步重新输入系
4、数a,b,c。S31:如果disc,计算并输出两个相同的根x1x2uS32:如果disc,计算并输出两个实根x1uv ,x2uv S33:如果disc,计算并输出一对共扼复根x1uvi ,x2uvi121.1.3 程序设计程序设计风格指的是编码风格(coding style) 即程序设计者表达程序的习惯方式良好的程序设计风格基本指导原则: 规范化的源程序书写格式 注释程序 选用顾名思义的标识符 用简明的方法表达算法 提供友善的输入输出界面 131.2 C语言概述C语言是在BCPL和B语言的基础上发展起来的与著名的UNIX操作系统的产生相辅相成的最初C语言以B.W. Kernighan和D. M
5、. Ritchie所著的The C Programming Language为标准,谓之K&R C美国国家标准化协会(American National Standard Institute,ANSI)于1983年开始为C语言制定统一标准,该标准颁布于1987年,称之为87 ANSI C。1989年,ISO为C语言制定了国际标准C89。最新的C语言国际标准是1999年颁布的C99。本书按C99标准叙述。141.2.3 C语言源程序的结构与执行1. C语言源程序的结构一个C语言源程序由一系列的外部声明组成。外部声明函数定义性声明外部数据定义性声明函数引用性声明外部数据引用性声明151.2.3 C
6、语言源程序的结构与执行函数定义性声明指的是宣布(announce)函数的存在。函数的一般定义形式为:存储类别 数据类型 函数名(形式参数表)局部数据声明语句序列1. C语言源程序的结构函数体函数头161.2.3 C语言源程序的结构与执行例:int max(int a, int b, int c) int m; m=ab?a:b; return (mc?m:c); 1. C语言源程序的结构171.2.3 C语言源程序的结构与执行一个C语言程序必须有且仅有一个名为main的函数一个C语言源程序通常存放在一个源程序文件中(单文件程序),也可以分别存放在多个源程序文件中(多文件程序)程序中所有函数(包
7、括main函数)在源程序文件中安排的位置和顺序是任意的一个函数必须完整地包含在一个文件中,不允许跨文件存放不同的C编译系统对源程序文件的扩展名要求不同,例如TC2.0的源程序文件必须以“.C”作为后缀。一个C源程序文件是C源程序的一个程序模块,C编译程序总是以源程序文件为单位编译。1. C语言源程序的结构181.2.3 C语言源程序的结构与执行外部数据定义性声明,顾名思义即在函数外部定义数据对象。函数及外部数据引用性声明即声明要引用本程序中已经定义的函数或外部数据对象。在函数外定义的数据对象可被程序中的诸函数公用,因此这类数据对象也称为“全局”数据对象。区别的“定义性声明”与“引用性声明” :
8、“定义性声明”建立函数与外部数据,需要对定义的外部数据分配存储空间;“引用性声明”则指出要引用程序中其他地方定义的函数或外部数据,并不为欲引用的外部数据分配存储空间。1. C语言源程序的结构191.2.3 C语言源程序的结构与执行C语言程序总是从main函数的第一条语句开始执行 C语言程序中所有其他函数都可以相互调用一个函数也允许自己调用自己可以调用由C编译系统定义的库函数及用户自己定义的库函数。整个程序的执行结束在正常情况下,main函数执行完毕执行过程中发生各种错误,提前结束程序运行2. C语言源程序的执行201.2.4 C语言程序例例1.1 输入3个正整数,求它们的最小值(设该最小值为n
9、),并计算1+2+n之和。该程序由两个函数组成。程序代码存储在myprog2.c源程序文件中,文件内容如下:/* This is an example */#include int min(int a, int b, int c); /* 调用自定义函数min 的引用性声明 */int main ( void) unsigned n1 , n2 , n3 , n,i,sum=0; /* 声明程序中使用的存放正整数的6个变量 */ printf(“Input 3 positive integer:”); scanf(“%u%u%u”, &n1, &n2, &n3); /*输入3个正整数,分别存入
10、n1 , n2 , n3*/ 211.2.4 C语言程序例 n=min(n1, n2, n3); /* 调用自定义函数min,求3个正整数的最小值 */ for(i=1;i=n;i+) sum=sum+i; printf(“Minimum=%un1+2+.+%u=%un”, n,n, sum); int min(int a, int b, int c) /* 求3个整数的最小值的函数定义 */ if(a=b&a= c) return a; else if(b=a&b=c) return b; else return c;221.2.4 C语言程序例C语言程序中注释的一般表示形式是: /* 注释
11、内容 */ 注释内容可以占用若干书写行,只要以“/*”开头、用“*/”结束。C89或C99都规定C语言的注释不能嵌套。如: /* void func (void) printf(“This is a functionn”); /* nested comment ,这种嵌套的注释是错误的!*/ */这样的注释是错误的。C99中还允许使用以连续两个斜杠字符(/)开头的注释形式。即“/ 注释内容”。但是这种注释被限制在一行内。 231.2.5 C语言源程序的书写 C语言源程序一般也都按小写字母书写。 用#define定义的宏名通常用大写字母表示(当然也可以用小写字母表示)。 每个语句占用一书写行。
12、用缩进对齐的写法反映程序的不同的结构层次。 编译预处理命令行、外部数据定义、函数定义之间、函数体内的“数据声明” 部分和“语句序列”部分空一行书写。241.2.5 C语言源程序的书写 括住函数体的大括号,其左大括号应位于函数头部第一个字符的下方,对应的右大括号亦单独占用一行,且与左大括号位置对齐。 对于for、if、while等语句中用于复合语句的大括号,按传统习惯左大括号应写在对应关键字书写行的后部,而右大括号应单独占用一行,与对应关键字的第一个字符对齐。 在书写程序时除标识符、常量、运算符等具有独立含义的对象中不能插入空格外,在对象之间插入适量的空格,它们对程序没有影响。251.2.5 C语言源程序的书写 另外,若一条语句太长在一行内写不下,可以将其拆分成多行来书写。不能在关键字、自定义标识符、常数、运算符等语言元素的中间拆分。编译预处理命令行、在一行上写不下的字符串常量要跨行书写,可用特别的续行符号“ ”来处理。但续行书写的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球及中国推进器控制系统行业头部企业市场占有率及排名调研报告
- 2025-2030全球IO-Link信号灯行业调研及趋势分析报告
- 2025建筑施工劳务劳动合同内、外墙保温
- 临时急需资金借款合同
- 提高数据可视化技能的技能培训
- 技术服务合同经典
- 提高团队领导力的培训方法
- 委托国际贸易佣金合同书
- 零配件采购合同
- 石材大板购销合同
- (正式版)CB∕T 4552-2024 船舶行业企业安全生产文件编制和管理规定
- 病案管理质量控制指标检查要点
- 2024年西藏中考物理模拟试题及参考答案
- 九型人格与领导力讲义
- 药品经营和使用质量监督管理办法培训试题及答案2023年9月27日国家市场监督管理总局令第84号公布
- 人教版五年级上册数学脱式计算练习200题及答案
- 卵巢黄体囊肿破裂教学查房
- 医院定岗定编
- 计算机网络毕业论文3000字
- 2023年大学物理化学实验报告化学电池温度系数的测定
- 脑出血的护理课件脑出血护理查房PPT
评论
0/150
提交评论