




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C编程,2010年2月,目录,第1章C语言概述,第2章灵魂算法,第3章数据类型,运算符和表达式,第5章选择结构编程,第4章最简单C编程序列编程,第6章循环控制,第7章数组,第8章函数,第9章指针,第10章预处理命令,第11章结构和社区。第12章位运算,第13章文件、教材、参考书和课时安排,谭浩强清华大学出版社C程序设计教材,谭浩强清华大学出版社C程序设计答案与计算机指导参考书,C程序设计教程谭浩强高等教育出版社C高级实用程序设计王士元清华大学出版社C高级实用程序设计课时安排教学:计算机上34小时:34小时,学习要求和成绩构成,学习要求, 请在课前做好准备,课后好好复习,保持课堂安静、头脑清醒、
2、积极、认真、独立,按时完成并提交作业,重视计算机练习,有效利用宝贵的计算机时间,这构成了平时出勤:10%平时作业:10%平时计算机:10%期末考试:计算机考试10%笔会考试60%,第1章C语言概述。 1.1程序设计语言的发展和特点,中央处理器指令系统,指令代码由0和1序列组成,如:10,000,000加10,010,000减,指令系统用助记符号描述,如ADD A,B,面向机器的语言,程序设计是数据处理的过程,客观世界是可以分类的,一个对象是一个类的实例,它是被封装的数据对象和方法之间通过发送和接收消息的连接。编程的关键是定义一个类,并从该类中派生出对象。prolog、cobol、fortran
3、 77、fortran、pl/1、simula67、smalltalk 80、basic、ansi-basic、qbisic、VB、fortran 90、1.2 c语言的发展,其特点和应用,以及C语言发展的历史,ALGOL 60语言、CPL语言、组合编程语言、剑桥大学、BCPL语言、1963、剑桥大学的Matin Richards简化CPL语言、B语言、C语言、1970、贝尔实验室的Ken Thompson修改了BCPL和煮沸的CPL在1973年,B语言也被煮沸。贝尔实验室的D . M.RITCHIE最终设计了一种基于B语言的新语言。BCPL的第二个字母是这种语言的名称。这是C语言,C语言发展
4、的历史。生成背景生成过程时间: 19721973地点:贝尔实验室用途: UNIX操作系统设计者:肯。汤普森和丹尼斯。里奇C标准C: K,运行结果:是一个C程序!在C程序中,注释以“/*”开始,以“*/”结束,可以实现多行注释。在C程序中,“/”也可以用于单行注释。例如:/注释信息,C语言的预处理命令都以“#”开头。Stdio.h是一个头文件,允许在C程序中插入几个空行,这并不影响程序的功能,就像注释一样。为了程序的可读性,在编写C程序时,可以根据需要插入一定的空行。main是主函数的名字,一个C语言程序只有一个主函数。c程序是从主函数执行的,具体是从到 。printf是C语言的内部函数名,因为
5、它后面跟的是(),它的函数是放“这是一个C程序!”“n”显示在计算机屏幕上(不显示双引号和n)。C语言规定语句以分号结束,C语言程序的基本结构例2计算输入的两个整数之和。/*这是第二个C程序*/#包含无效主()int x,y,z;Scanf (%d%d),假设输入:10 20。运行结果:两个整数之和为30,这是1.3 C语言程序的基本结构。C语言程序的功能由两部分组成:一部分定义变量(变量代表数据),称为声明部分;另一部分表示操作,由C语句组成,称为执行部分。在C程序中,要求函数的声明部分在前面,执行部分在后面,它们的顺序不能颠倒或交叉。然而,在C程序中,声明部分和执行部分可以相互交叉,并且没
6、有严格的边界。当然,在执行部分使用的变量只需要在它之前定义。/C语言程序无效主()整型;a=10int b;b=a20;/C语言程序无效主()整型;a=10int b;b=a20;/C或C语言程序无效main()int a;a=10b=a20;int b;同样,在C语言程序中,变量必须先定义后使用,并且顺序不能颠倒!1.3 C语言程序的基本结构,示例3计算输入的两个整数的最大值。/*这是第三个C程序*/#包含int max (int a,int b);void main () int x,y,z;scanf (%d%d,int max (int a,int b)int c;如果(a b)c=a
7、;否则c=b。返回(c);用户自定义函数max,假设输入:10 20,运行结果:max=20,1.3c语言程序的基本结构,c语言的标识符,c语言的变量和函数都有自己的名字,它们必须是合法的标识符。标识符是一个名字。c语言规定标识符只能由字母、数字和下划线组成,第一个字符必须是字母或下划线。c是区分大小写的语言,所以hello和Hello是不同的标识符。C语言中有一些特殊的标识符,它们的用法已经被预先指定了,所以程序员不能把它们用于其他目的。这些特殊标识符被称为关键字(也称为保留字)。到目前为止,我们已经看到的关键字是空,国际,主要,如果,否则和返回。随着研究的深入,我们在未来会遇到越来越多的关
8、键词(C关键词请参考附录B)。1.3语言程序的基本结构。综上所述,C程序是由多个函数组成的。每个c程序只有一个主要功能。主要功能是程序的进入和退出。没有行号,没有程序行的概念。程序中可以使用空行和空格。c程序格式常用的锯齿形书写格式。你可以在c程序中添加任意数量的注释。为了引用C语言的标准库函数,头文件通常包含在文件包含预处理命令中。用户定义的函数必须在使用前定义。使用前必须定义变量。变量名和函数名必须是合法的标识符,标识符使用小写字母,区分大小写。变量和函数不能用关键字命名。该功能由两部分组成:声明部分和执行部分。在C程序中,首先是声明部分,然后是执行部分。这两个部分的顺序不能颠倒或交叉。c
9、语言语句都以分号结尾。1.4编译C语言程序的基本步骤,编辑,程序代码输入,生成源程序*。c或*。cpp,编辑和翻译,翻译和生成目标程序*。与其他目标程序或库链接、链接和组合,生成可执行程序*。编译C程序的步骤,练习:P12P12P算法:总之,它是解决问题的方法和步骤。算法是编程的灵魂,是问题解决过程中的精确描述。一个算法由有限数量的指令组成,这些指令可以完全机械地执行并有一定的结果。编程语言:它是一个程序开发工具,也就是说,一个将算法转换成程序的开发工具。程序:算法的具体实现。学习C语言,不仅要掌握其自身的特点和语法规则,还要掌握分析和解决问题的方法,即锻炼分析、分解以及最终总结和整理算法的能
10、力。2.1算法的概念,算法应具有以下五个特征:1)有限性:算法中每一步的次数和时间都是有限的。2)确定性:算法中的每一步都有明确的含义,没有歧义。3)可行性:算法中描述的操作可以通过有限数量的基本操作来实现。4)输入:一个算法应该有零个或多个输入。5)输出:一个算法应该有一个或多个输出。2。2算法特性,2.3算法示例,示例1输入三个数字,然后输出最大的数字。总的想法:首先,必须有一个地方安装这三个号码。我们定义了三个变量a、b和c,并依次输入到b和c中。此外,我们准备了一个最大安装数量。由于计算机一次只能比较两个数字,我们首先将大于A和B的数字放入最大值,然后将最大值与C进行比较,然后将较大的
11、数字放入最大值。最后,输出最大值,用三个数字中最大的数字填充最大值。具体步骤:(1)输入A、B和c。(2)将A和B中较大的一个放入最大值。(3)将c和MAX中较大的一个放入MAX中。(4)输出最大值,这是最大值。这两个步骤(2)和(3)仍然不清楚,不能直接转换成程序语句,所以我们可以继续完善它们:(2)把A和B中较大的一个放入MAX,如果A B,那么MAX A;否则最大值B。(3)将C和最大值中的一个放入最大值,如果C最大,则最大值C。该算法可写成:(1)输入A、B、C。(2)如果A B,则最大值A;否则为MAXB。(3)如果最大输出是最大值,最大输出是最大值。例2猴子吃桃子:有一堆数量未知的
12、桃子。猴子在第一天吃了一半,发现不够,所以他又吃了一个。第二天,他吃了一半剩下的桃子,又加了一个。每天,在第十天的早上,猴子发现只剩下一个桃子了。他问这堆桃子有多少。总的想法:假设第一天开始有1个桃子,第二天有2个桃子,第9天有9个桃子,第10天有10个桃子。在a1、a2、a10中,只有a10=1是已知的。现在a1是必需的,但是我们可以看到a1,a2,a10之间有一个简单的关系:a9=2 * (a10 1) a8=2 * (a9 1) a1=2 * (a2 1),即ai=2 * (ai11) I=9,8,7,6,1,这是这个问题的数学模型。那么,上述从a9、a8到a1的计算过程实际上是一个递归
13、过程,这在计算机问题解决中经常使用。另一方面,这九个步骤在形式上完全相同,但唯一的区别是ai的下标。因此,我们引入了循环处理方法,统一用a0代表前一天的桃数,a1代表第二天的桃数。最后,算法可以写成:(1) a1=1第10天的桃数,a1的初始值i=9,计数器的初始值为9 (2) a0=2 * (a1 1),计算当天的桃数(3) a1=a0,并把当天的桃数作为下一次计算的初始值(4) i=i-1 (5),如果i=1,1)自然语言示例:1 2 3 100进行编程。该算法如下:S1:设置一个累计和变量和及一个计数变量n;让它们的初始值为0;S2:法官nsum,n 1=nS4:转向S2;S5:输出总和
14、。2.4算法表示,2)流程图,3)N-S图1973年,美国学者纳西和施耐德曼提出了一种新的流程图,并以此命名为结构化流程图。在该流程图中,带有箭头的流程线被完全删除。所有的算法都写在一个矩形框中,这个矩形框也可以包含其他的附属框。用N-S图来表示算法就像堆积树一样,非常适合结构化编程,所以非常流行。与流程图方法相比,N-S图的主要特点是消除了流程线,从而避免了随机转弯算法的设计,使学习者更容易养成使用结构化方法构造算法的习惯。4)伪码使用传统的流程图和图形来表达算法,直观易懂,但是绘制起来很花时间。因为不可能一次设计一个算法,所以经常需要反复修改,修改流程图也很麻烦。因此,为了简单地表达算法,
15、通常使用伪码。伪代码用字符(可以是中文)和自然语言与计算机语言之间的符号来描述算法。2.5流程图和算法的结构化描述,2.4流程图和算法的结构化描述,流程图和结构化编程方法是学习编程的基础。1)结构化编程是一种避免使用goto语句的编程;2)结构化编程是自顶向下的编程;3)结构化程序设计是一种组织和编译程序的方法,它所编译的程序易于理解和修改;4)程序结构化的主要功能之一是使其易于证明正确性;5)结构化编程允许在设计过程的每一步验证其正确性,即自动导致自我解释和自我防御的程序风格;6)结构化编程讨论了如何将任何大规模和复杂的流程图转换成标准形式,以便它们可以通过重复和嵌套由几个标准控制结构(通常是顺序、分支和循环)来表示。结构化程序设计方法一般来说,只要“三个基本结构(序列、分支和循环)”都能在程序中正确地用来表示问题解决的步骤(算法);使用“模块”封装功能,然后设计程序的思想可以定义为结构化程序设计。自上而下;逐渐提炼;模块化设计;结构化编码。2.6结构化编程方法,练习:P36 1,2,3,4,第3章数据类型,运算符和表达式,程序是解决某个问题的一组有序指令。著名的计算机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人买卖转让合同标准文本
- 中交一公局采购合同样本
- 修改供用电合同样本
- 土石方工程安全责任书
- 代建房屋租赁合同标准文本
- 2025二手车买卖合同
- 北师大版数学三年级上册《蚂蚁做操》教学设计
- 部编三下数学-第2课时《常用的面积单位》教案
- 企业自如合作合同样本
- 北师大版小学数学六年级上册《比的应用》教案教学设计
- 2023年中国劳动关系学院招聘笔试备考题库及答案解析
- 创造性思维与创新方法Triz版知到章节答案智慧树2023年大连理工大学
- 英语四级仔细阅读练习与答案解析
- 《产业基础创新发展目录(2021年版)》(8.5发布)
- 排水沟土方开挖施工方案
- CAD教程CAD基础教程自学入门教程课件
- 技术合同认定登记培训课件
- 停水停电时的应急预案及处理流程
- 电商部运营助理月度绩效考核表
- DB61∕T 1230-2019 人民防空工程防护设备安装技术规程 第1部分:人防门
- 第12课送你一个书签
评论
0/150
提交评论