第1章 C语言学习基础.ppt
《第1章 C语言学习基础.ppt》由会员分享,可在线阅读,更多相关《第1章 C语言学习基础.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章章 开篇开篇 C语言学习基础语言学习基础C语言程序设计语言程序设计 Programming in C 目标既不是精确的,目标既不是精确的,也不是预先设定的,目标应也不是预先设定的,目标应是一般性的、生成性的,从是一般性的、生成性的,从而鼓励创造性的、互动的转而鼓励创造性的、互动的转变。变。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础Welcome to learn C programming*建议:v不仅只阅读程序,更要通过上机实践来学习程序不仅只阅读程序,更要通过上机实践来学习程序设计;设计;v一开始要打好基础,不要急于求成,并养成良好一开始要打好基础,不要急于
2、求成,并养成良好的编程风格;的编程风格;v对于上课和书本中的例子,为更好的理解,要在对于上课和书本中的例子,为更好的理解,要在机器上练习这些程序;机器上练习这些程序;v试着积极的解答书本后的习题和练习;试着积极的解答书本后的习题和练习;v如果你肯积极地上机实践如果你肯积极地上机实践,你一定会更快你一定会更快,更深更深地掌握地掌握 C C 语言,并为学习语言,并为学习C+C+等面向对象语言打等面向对象语言打向扎实的基础。向扎实的基础。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础本课程学习要求本课程学习要求 v认真、刻苦。认真、刻苦。v理解理解C C语言概念,阅读程序。语言概
3、念,阅读程序。v积极上机调试程序,独立编程。积极上机调试程序,独立编程。v按时交作业按时交作业v可以申请创新项目可以申请创新项目C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础vC语言程序设计课程是全校非计算机专业的理工科学生的公共必修课。v总学时数75,(含实验教学);v考试方法及要求 u考试课程,考试课程,3 3个学分。个学分。u期末笔试考试期末笔试考试+平时成绩平时成绩+上机考试。上机考试。u平时成绩由上课、组织纪律、作业、上机平时成绩由上课、组织纪律、作业、上机情况组成。情况组成。本课程总目标和要求本课程总目标和要求 C语言程序设计语言程序设计-第第1章章 C语言学习
4、基础语言学习基础1 1、了解、了解C C语言的基本知识。语言的基本知识。2 2、认识计算机辅助问题求解过程。、认识计算机辅助问题求解过程。3 3、理解算法概念。、理解算法概念。4 4、认识程序的三种基本结构。、认识程序的三种基本结构。5 5、应用、应用C C语言基本词汇描述简单问题。语言基本词汇描述简单问题。6 6、了解数据及代码在内存中的存储与运行。、了解数据及代码在内存中的存储与运行。7 7、模仿例题编制自己的第一个程序。、模仿例题编制自己的第一个程序。8 8、初步学习使用、初步学习使用VC+VC+编译环境编译环境 本章教学目标本章教学目标 C语言程序设计语言程序设计-第第1章章 C语言学
5、习基础语言学习基础本章项目任务本章项目任务1 1、熟悉、熟悉VC+VC+编程环境。编程环境。2 2、“学生信息管理系统学生信息管理系统”软软件界面的初始设计思想。件界面的初始设计思想。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.1*预备知识:计算机系统的硬件与软件(自学)预备知识:计算机系统的硬件与软件(自学)运算器(算术运算器(算术/逻辑运算单元)逻辑运算单元)输入设备输入设备键盘、鼠标、扫描仪、数码相机键盘、鼠标、扫描仪、数码相机控制器控制器中中央央处处理理单单元元随机存储器随机存储器RAM只读存储器只读存储器ROM内存储器内存储器外存储器外存储器软盘、硬盘、光盘
6、软盘、硬盘、光盘输输出出设设备备显显示示器器、打打印印机机、绘绘图图仪仪主机主机外部设备外部设备监控程序、操作系统监控程序、操作系统编译系统编译系统诊断系统诊断系统数据库管理系统数据库管理系统机器语言机器语言汇编语言汇编语言高级语言高级语言语言处理系统语言处理系统系统软件系统软件专业应用软件专业应用软件通用应用软件通用应用软件应用软件应用软件硬件系统硬件系统软件系统软件系统计计算算机机系系统统C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础内存及内存空间编址内存及内存空间编址01231031041051061070123103107f=30变变量量f占占的的四四个个字字节节,
7、变变量量的的地地址址为为首地址首地址103C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.2 C语言简介语言简介 C C语言是一种计算机程序设计语言。它既语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。有高级语言的特点,又具有汇编语言的特点。常用的常用的C C语言集成开发环境(语言集成开发环境(Integrated Integrated Development EnvironmentDevelopment Environment,IDEIDE)有)有Microsoft Visual C+Microsoft Visual C+、Borland C+
8、Borland C+、Microsoft CMicrosoft C、Turbo CTurbo C等等C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.2.1 C1.2.1 C语言的发展历史语言的发展历史 19631963年,年,剑桥大学剑桥大学将将ALGOL 60ALGOL 60语言发展成为语言发展成为CPL(CombinedCPL(Combined Programming Language)Programming Language)语言。语言。19671967年,剑桥大学的马丁年,剑桥大学的马丁理查德理查德(MatinMatin Richards)Richards)对对C
9、PLCPL语言进行了简化,于是产生了语言进行了简化,于是产生了BCPLBCPL语言。语言。19701970年,年,UNIXUNIX的研制者丹尼斯的研制者丹尼斯里奇里奇(Dennis RitchieDennis Ritchie)和肯)和肯汤普森汤普森(Ken(Ken Thompson)Thompson)在在B B语言的基础上发展和完善了语言的基础上发展和完善了C C语言。语言。C C语言广泛应用于语言广泛应用于UNIXUNIX、MS-DOSMS-DOS、Microsoft Microsoft WindowsWindows及及LinuxLinux等不同的操作系统。在等不同的操作系统。在C C语言基
10、语言基础上发展起来的有支持多种程序设计风格的础上发展起来的有支持多种程序设计风格的C+C+语言、语言、JavaJava、JavaScriptJavaScript,微软的,微软的C#C#等。等。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.2.2 C1.2.2 C语言的特点语言的特点1 1、简洁紧凑、灵活方便、简洁紧凑、灵活方便 C C语言有语言有3232个个关键字关键字,9 9种种控制语句控制语句,程序书写自由,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。与低级语言的实用性结合
11、起来。C C语言可以象汇编语言语言可以象汇编语言一样对一样对位位、字节字节和和地址地址进行操作,而这三者是计算机最进行操作,而这三者是计算机最基本的工作单元。基本的工作单元。2 2、运算符、运算符丰富丰富3 3、数据结构、数据结构丰富丰富4 4、C C是结构化程序设计语言是结构化程序设计语言5 5、C C语法限制不太严格,程序设计自由度大语法限制不太严格,程序设计自由度大6 6、C C语言允许直接访问物理地址,可以直接对硬件进行操作语言允许直接访问物理地址,可以直接对硬件进行操作7 7、C C语言程序生成代码质量高,程序执行效率高语言程序生成代码质量高,程序执行效率高8 8、C C语言适用范围
12、大,可移植性好语言适用范围大,可移植性好C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.3 工程问题求解方法论工程问题求解方法论*1.3.1 1.3.1 学习动力:学习动力:2121世纪面临的工程与科学探索世纪面临的工程与科学探索1.3.2 1.3.2 计算机辅助问题求解过程计算机辅助问题求解过程u问题求解是工程与科学课程中的一个关问题求解是工程与科学课程中的一个关键部分。我们所给出的计算机辅助问题键部分。我们所给出的计算机辅助问题求解过程不仅适用于工程问题,也适用求解过程不仅适用于工程问题,也适用其它领域。其它领域。u一般情况下计算机求解问题有六步法。一般情况下计算机求
13、解问题有六步法。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v计算机求解问题的方法论计算机求解问题的方法论u清晰陈述问题:清晰陈述问题:当一个问题提出需要用软件当一个问题提出需要用软件实现时,明晰且精确的问题陈述可以避免产实现时,明晰且精确的问题陈述可以避免产生任何误解。生任何误解。“陈述问题陈述问题”是为了清楚是为了清楚“需需求分析求分析”。u准确需求分析:准确需求分析:需求分析主要是确定软件程需求分析主要是确定软件程序需要实现的目标,确定软件处理的数据或序需要实现的目标,确定软件处理的数据或信息,建立问题域数据结构,进行程序设计信息,建立问题域数据结构,进行程序设计可
14、行性分析。可行性分析。u数学建模或处理流程示例:数学建模或处理流程示例:为了准确理解并为了准确理解并处理问题,有必要利用问题域的一个简单数处理问题,有必要利用问题域的一个简单数据集手动模拟解答问题,从中找出问题解答据集手动模拟解答问题,从中找出问题解答的细节或过程。的细节或过程。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础u确定算法:确定算法:进一步写出解决问题的详细可行进一步写出解决问题的详细可行算法步骤。算法步骤。u编码:编码:编码是根据算法设计(或系统设计)编码是根据算法设计(或系统设计)的结果,用程序设计语言编程实现所定义的的结果,用程序设计语言编程实现所定义的处
15、理过程,最终实现软件系统的功能。处理过程,最终实现软件系统的功能。u测试:测试:问题求解的最后一步是测试结果是否问题求解的最后一步是测试结果是否正确。应该利用问题域数据集多次测试,确正确。应该利用问题域数据集多次测试,确保答案也适用于其它有效数据集。保答案也适用于其它有效数据集。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础【例例1-11-1】计算平面上两点间的距离。计算平面上两点间的距离。1 1、陈述问题:、陈述问题:计算平面上两点间的距离。计算平面上两点间的距离。2 2、需求分析:、需求分析:仔细描述为解决问题而提供的信仔细描述为解决问题而提供的信息,指出最后所需的结果
16、或结论。分别代表息,指出最后所需的结果或结论。分别代表问题的输入与输出问题的输入与输出(I/O)(I/O)信息,如下图所示。信息,如下图所示。问题被问题被“抽象抽象”为一个黑盒子,并未定义决为一个黑盒子,并未定义决定输出信息的定输出信息的“处理步骤处理步骤”。输输入入输输出出点点2点点1两点间距离两点间距离C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础3 3、数学建模或处理流程示例:、数学建模或处理流程示例:一步设点一步设点p1p1、p2p2的坐标为:的坐标为:p1=(1p1=(1,5)5);p2=(4p2=(4,7)7),则计算两点间距离就是一个直角三角,则计算两点间距离
17、就是一个直角三角形的斜边长。使用毕达哥拉斯定理计算距离:形的斜边长。使用毕达哥拉斯定理计算距离:distance=distance=从而该问题的数学模型为:从而该问题的数学模型为:p1=(ap1=(a,b)b);p2=(cp2=(c,d)d);distance=distance=C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础4 4、确定算法:、确定算法:本例算法用自然语言描述如下:本例算法用自然语言描述如下:(1 1)给定两个点坐标,即给两个平面点坐标赋)给定两个点坐标,即给两个平面点坐标赋以具体值;以具体值;(2 2)计算由此两点构成的直角三角形的两直角)计算由此两点构成
18、的直角三角形的两直角边长度;边长度;(3 3)根据两直角边长求斜边长;)根据两直角边长求斜边长;(4 4)输出斜边长,即两点间的距离。)输出斜边长,即两点间的距离。也可把也可把3 3、4 4步骤称为步骤称为“系统设计系统设计”。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础5 5、编码:、编码:用用C C语言编写的程序代码如下:语言编写的程序代码如下:/*program ch1-1.c*/*program ch1-1.c*/*/*注释注释*/#include#include /*/*头文件包含头文件包含*/#include#include /*/*头文件包含头文件包含*/v
19、oid void main(voidmain(void)/*/*主函数,函数首部主函数,函数首部*/double x1=1,y1=5,x2=4,y2=7,side1,side2,distance;double x1=1,y1=5,x2=4,y2=7,side1,side2,distance;/*/*定义两点和边定义两点和边*/side1=x2-x1;side1=x2-x1;side2=y2-y1;side2=y2-y1;/*/*计算两直角边长计算两直角边长*/distance=sqrt(side1*side1+side2*side2);distance=sqrt(side1*side1+sid
20、e2*side2);/*/*计算两点间距离计算两点间距离*/printf(Theprintf(The distance between the two pointers distance between the two pointers is%5.2f,distance);/*is%5.2f,distance);/*输出结果输出结果*/6 6、测试、测试C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.4 算法及其描述方法算法及其描述方法1.4.1 1.4.1 算法的概念算法的概念v算法(算法(AlgorithmAlgorithm)是解决问题的确定方法和有限步骤)是解决问题
21、的确定方法和有限步骤的描述。的描述。n算法是程序的灵魂算法是程序的灵魂v程序程序 (Program)(Program)设计设计n对算法的具体实现对算法的具体实现n程序的效率不可能超过算法的限制程序的效率不可能超过算法的限制v程序程序 数据结构数据结构 算法算法NikiklausNikiklaus Wirth(Wirth(尼克劳斯尼克劳斯沃尔斯沃尔斯 )名言名言C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础某种程度上说,程序设计就是算法的设计。某种程度上说,程序设计就是算法的设计。算法是解决问题的算法是解决问题的方法和方法和策略,这种策略最终策略,这种策略最终将成为你所编写的
22、程序的核心。将成为你所编写的程序的核心。算法是程序的算法是程序的灵魂。灵魂。在计算机科学中,算法是指为解决具体的问题在计算机科学中,算法是指为解决具体的问题而采取的确定的方法和步骤。而采取的确定的方法和步骤。计算机算法分为两大类:数值运算算法和非数计算机算法分为两大类:数值运算算法和非数值运算算法。值运算算法。对于一个具体的任务,每次在解决问题、实现对于一个具体的任务,每次在解决问题、实现程序编码之前,都要对问题进行调查、分析并程序编码之前,都要对问题进行调查、分析并拟定解决问题的算法,其中包括选定一些重要拟定解决问题的算法,其中包括选定一些重要的计算公式,或者对某些步骤细化,这就是算的计算公
23、式,或者对某些步骤细化,这就是算法设计。法设计。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础算法必须满足的三个基本要求算法必须满足的三个基本要求(1 1)清楚、明确的定义。)清楚、明确的定义。(2 2)有效,即每一个步骤都切实可行。)有效,即每一个步骤都切实可行。(3 3)有限,即可在有限的步骤后得到结果。)有限,即可在有限的步骤后得到结果。算法在复杂性上差别很大。有些问题非常算法在复杂性上差别很大。有些问题非常简单,很快就可以想到相应的算法,并写出简单,很快就可以想到相应的算法,并写出解决问题的程序。而当问题变得很复杂时,解决问题的程序。而当问题变得很复杂时,就需要精心
24、思考才能设计出解决它的算法。就需要精心思考才能设计出解决它的算法。大多数情况下,解决一个问题可以使用几个大多数情况下,解决一个问题可以使用几个不同的算法,在编写程序之前需要考虑许多不同的算法,在编写程序之前需要考虑许多潜在的解决方案。潜在的解决方案。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础一个算法包括:一个算法包括:u若干操作步骤;若干操作步骤;u遵循一定的控制结构次序执行。遵循一定的控制结构次序执行。u构成结构化程序算法的控制结构有构成结构化程序算法的控制结构有3 3种:种:顺序、选择和循环顺序、选择和循环。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言
25、学习基础1.4.2 算法的描述方法(参看教材)算法的描述方法(参看教材)v自然语言自然语言(Natural Language)(Natural Language)分析:分析:(1 1)陈述问题和需求分析:先输入两个整数,要求)陈述问题和需求分析:先输入两个整数,要求输出两数之和。输出两数之和。(2 2)确定算法:自然语言描述的算法表示如下:)确定算法:自然语言描述的算法表示如下:定义三个整型变量:定义三个整型变量:num1num1和和num2num2存放两个整数,存放两个整数,sumsum存放两数之和。存放两数之和。分别输入两个整数给变量分别输入两个整数给变量num1num1和和num2num
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 C语言学习基础 语言 学习 基础
限制150内