《第1章 C语言学习基础.ppt》由会员分享,可在线阅读,更多相关《第1章 C语言学习基础.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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
26、2。计算计算num1num1和和num2num2的和,并将计算结果存入变量的和,并将计算结果存入变量sumsum。把和把和sumsum的结果输出到屏幕。的结果输出到屏幕。【例例1-21-2】求任意两个整数的和。求任意两个整数的和。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v这是一个这是一个顺序结构顺序结构算法,即按照算法步骤算法,即按照算法步骤顺序执行。顺序执行。v自然语言表示算法清楚易懂,但易冗长,自然语言表示算法清楚易懂,但易冗长,有时会产生二义性。有时会产生二义性。v所谓二义性,是一种语言语法的不完善说所谓二义性,是一种语言语法的不完善说明,应避免出现。所以除了简
27、单问题外,明,应避免出现。所以除了简单问题外,一般不采用自然语言表示算法。一般不采用自然语言表示算法。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础ABab顺序结构顺序结构使得语句使得语句按先后顺按先后顺序依次执序依次执行,并是行,并是最基本的最基本的程序结构;程序结构;C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v伪代码(伪代码(Pseudo-Pseudo-codecode)【例例1-31-3】输出任意两数中较大的数。输出任意两数中较大的数。分析:分析:1.1.陈述问题和需求分析:陈述问题和需求分析:输入任意两个数,输出两数中较输入任意两个数,输出两
28、数中较大的数。大的数。2.2.处理流程和确定算法:处理流程和确定算法:比较两个数,根据比较结果决定比较两个数,根据比较结果决定程序的输出结果。使用类程序的输出结果。使用类C C伪代码描述的算法可表示如下:伪代码描述的算法可表示如下:定义三个实型变量:定义三个实型变量:num1num1和和num2num2存放任意两个数,存放任意两个数,maxmax存放较大的数。存放较大的数。使用使用scanfscanf函数输入两个变量函数输入两个变量num1num1和和num2num2的值。的值。if(num1num2)max=num1;if(num1num2)max=num1;else max=num2;el
29、se max=num2;使用使用printfprintf函数输出较大数函数输出较大数maxmax的值的值。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v这是一个这是一个选择结构选择结构算法。算法。v第第步按照条件比较结果,选择某个分支步按照条件比较结果,选择某个分支执行。执行。v用伪代码法描述算法时,使用了用伪代码法描述算法时,使用了C C语言的语言的某些语法特征,可读性好,算法能方便地某些语法特征,可读性好,算法能方便地转换为程序。转换为程序。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础ABabpYN当p为“真”当p为“假”选择结构选择结构使程序能
30、使程序能进行逻辑进行逻辑判断,在判断,在满足条件满足条件时转去执时转去执行相应的行相应的语句;语句;C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v传统流程图传统流程图开始结束框开始结束框 判断框判断框 处理框处理框 输入输出框输入输出框连接点连接点 准备框准备框 流程线流程线 流程线流程线图图1-10 传统流程图的常用符号传统流程图的常用符号C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础分析:分析:1.1.陈述问题和需求分析:陈述问题和需求分析:输入输入3030个学生成绩数据,个学生成绩
31、数据,输出它们的平均值。输出它们的平均值。2.2.确定算法:确定算法:首先,首先,3030个学生成绩数据需要求个学生成绩数据需要求和,然后用和值除以和,然后用和值除以3030取平均值。取平均值。“求多个数和值求多个数和值”的方法有多种。但的方法有多种。但用计算机解决这个问题的最好算法是用用计算机解决这个问题的最好算法是用循循环结构环结构。【例例1-41-4】求某班求某班3030个学生某门课程成绩的平均值。个学生某门课程成绩的平均值。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础否否是是开始开始num1num2max=num1max=num2输出输出max输入输入num1和和
32、num2结束结束开始开始图图1-6 1-6 例例1-31-3的流程图的流程图 图图1-7 1-7 例例1-41-4的流程图的流程图否否是是平均值平均值ave=sum/30输入第输入第i个成绩个成绩sc结束结束sum=sum+sc,i+输出平均值输出平均值avesum0,i=1i=30C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础v传统流程图的优点是方便、直观、灵活、传统流程图的优点是方便、直观、灵活、流程清晰、无流程清晰、无“歧义性歧义性”。但占用面积大,。但占用面积大,且有一个缺点,它允许流程线指向任意一且有一个缺点,它允许流程线指向任意一个框。对程序流程不加任何限制,对
33、大程个框。对程序流程不加任何限制,对大程序而言就会导致算法的逻辑难以让人理解。序而言就会导致算法的逻辑难以让人理解。这种描述方法的可读性、可靠性及可维护这种描述方法的可读性、可靠性及可维护性差。性差。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础循环语句则使单调的重复运算循环语句则使单调的重复运算变得简单明了。变得简单明了。Aabp1YWhileWhile型循环型循环N当p1为“真”当p1为“假”Aabp2NUntilUntil型循环型循环Y当p2为“真”当p2为“假”C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础三种基本算法结构的共同特点三种基本算法结
34、构的共同特点v只有一个入只有一个入口口v只有一个出只有一个出口口v结构内每一结构内每一部分都有机部分都有机会被执行到会被执行到v结构内不存结构内不存在在“死循环死循环”AabBABaC语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础算法具有以下算法具有以下5 5个特点:个特点:(1 1)有穷性。(2 2)可行性。(3 3)确定性。(4 4)有零个或多个输入。(5 5)有一个或多个输出。设计好了算法,就可以将它们用具体的算法描述设计好了算法,就可以将它们用具体的算法描述工具进行描述,最终转化为解决问题的程序。工具进行描述,最终转化为解决问题的程序。算法的特点C语言程序设计语言程序
35、设计-第第1章章 C语言学习基础语言学习基础1.5 C程序初探程序初探v目的:通过以下几个程序的编辑输入、错误修改、通过以下几个程序的编辑输入、错误修改、编译运行、结果观察,体会:编译运行、结果观察,体会:(1 1)VC+VC+编程环境的使用;编程环境的使用;(2 2)总结)总结C C程序的输入程序的输入/输出,计算,处理等功输出,计算,处理等功能;能;(3 3)总结)总结C C语言的基本元素;语言的基本元素;(4 4)总结)总结C C语言程序的结构和特点。语言程序的结构和特点。注意:以下程序的讲解重在理解过程与概念,并不要求对注意:以下程序的讲解重在理解过程与概念,并不要求对程序作过细记忆和
36、理解。程序作过细记忆和理解。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.5.1 1.5.1 亲身经历第一个亲身经历第一个C C程序程序【例例1-51-5】在屏幕上显示如图所示的结果。在屏幕上显示如图所示的结果。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础分析:按六步法实现该问题。分析:按六步法实现该问题。1.1.问题陈述问题陈述:2.2.需求分析需求分析:3.3.处理流程处理流程:顺序逐行输出所需的信息顺序逐行输出所需的信息 4.4.确定算法确定算法:采用顺序结构程序设计方法,应用采用顺序结构程序设计方法,应用printfprintf函数来实现,
37、算法描述如下:函数来实现,算法描述如下:输出第一行信息;输出第一行信息;输出第二行信息;输出第二行信息;5.5.使用使用C C语言编写的程序代码如下:语言编写的程序代码如下:C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础主函数/*program ch1-5.c*/*program ch1-5.c*/*/*注释语句注释语句*/#include#include /*/*包含头文件的命令行包含头文件的命令行*/void void main(voidmain(void)/*/*函数首部函数首部*/*/*函数体开始函数体开始*/printfprintf(.n);(.n);/*/*第一
38、行第一行*/printfprintf(.(.欢迎学习应用型欢迎学习应用型C C语言程序设计语言程序设计.n);.n);/*/*第二行第二行*/printfprintf(.(.欢迎欢迎 .n);.n);/*/*第三行第三行*/printfprintf(.(.学习学习 .n);.n);/*/*第四行第四行*/printfprintf(.(.应用型应用型 .n);.n);/*/*第五行第五行*/printfprintf(.C(.C语言程序设计语言程序设计.n);.n);/*/*第六行第六行*/printfprintf(.n);(.n);/*/*第七行第七行*/return 0;return 0;/*
39、/*返回语句返回语句*/*/*函数体结束函数体结束*/文件头预处理部分C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础程序剖析程序剖析了解基本概念:了解基本概念:(1 1)C C源程序源程序u用用C C语言编写的程序称为语言编写的程序称为C C语言源程序(语言源程序(Source Source ProgramProgram),),C C语言源程序文件的后缀为语言源程序文件的后缀为“.c”.c”。(2 2)主函数()主函数(mainmain)uC C程序也称为函数式程序,由函数构成。程序也称为函数式程序,由函数构成。u任何一个任何一个C C程序中有且只能有一个程序中有且只能有一
40、个mainmain函数,也称为主函数,也称为主函数。函数。C C程序总是从主函数开始执行,并且结束于主函程序总是从主函数开始执行,并且结束于主函数。数。(3 3)C C函数(函数(FunctionFunction)u函数是构成函数是构成C C程序的基本单位。程序的基本单位。u一个函数由函数首部(一个函数由函数首部(HeadHead)和函数体)和函数体(Body)(Body)两部分两部分组成。组成。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础(4 4)语句和输出语句)语句和输出语句u“printfprintf(”.n“);”(”.n“);”是一个输出语句。是一个输出语句。u
41、 C C语言的语句以分号(;)作结束标志。语言的语句以分号(;)作结束标志。(5 5)头文件包含与标准库函数)头文件包含与标准库函数u#include#include 是一个头文件包含命令是一个头文件包含命令(6 6)注释)注释u“/*/*/”/”是注释符号,必须成对出现,是注释符号,必须成对出现,两者之间的所有字符(可以是多行)均为注释文字,两者之间的所有字符(可以是多行)均为注释文字,增加了程序的可读性,不作为程序代码运行。增加了程序的可读性,不作为程序代码运行。(7 7)C C语言程序的书写字母要求与符号:语言程序的书写字母要求与符号:区分大小区分大小写写C语言程序设计语言程序设计-第第
42、1章章 C语言学习基础语言学习基础6.6.运行测试运行测试:VC:VC集成环境的使用集成环境的使用 使用Turbo C2.0集成环境(自学)使用使用Visual C+6.0工作环境工作环境高级语言程序实现的步骤如图所示:程序运行必须经过四个阶段:程序运行必须经过四个阶段:编辑编辑-编译编译-链接链接-运行运行。这四个阶段都是由语言系统提供的系统程序完成的。这四个阶段都是由语言系统提供的系统程序完成的。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础提示:提示:VC+VC+是一个是一个IDEIDE(Integration Development Integration Deve
43、lopment EnvironmentEnvironment(集成开发环境)。(集成开发环境)。IDEIDE一般以代码编辑器为核心,包括一系列周边组一般以代码编辑器为核心,包括一系列周边组件和附属功能。一个优秀的件和附属功能。一个优秀的IDEIDE,最重要的就是在,最重要的就是在普通文本编辑之外,提供针对特定语言的各种快捷普通文本编辑之外,提供针对特定语言的各种快捷编辑功能,让程序员尽可能快捷、舒适、清晰的浏编辑功能,让程序员尽可能快捷、舒适、清晰的浏览、输入、修改代码。对于一个现代的览、输入、修改代码。对于一个现代的IDEIDE来说,来说,语法着色、错误提示、代码折叠、代码完成、代码语法着色
44、、错误提示、代码折叠、代码完成、代码块定位、重构,与调试器、版本控制系统块定位、重构,与调试器、版本控制系统(VCS)(VCS)的的集成等等都是重要的功能。以插件、扩展系统为代集成等等都是重要的功能。以插件、扩展系统为代表的可定制框架,是现代表的可定制框架,是现代IDEIDE的另一个流行趋势。的另一个流行趋势。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.5.2 1.5.2 认识认识C C程序的基本结构程序的基本结构【例例1-61-6】编程实现,输出任意两数中较大的数。编程实现,输出任意两数中较大的数。编码如下编码如下:C语言程序设计语言程序设计-第第1章章 C语言学习
45、基础语言学习基础/*program ch1-6.c*/*program ch1-6.c*/#include#include stdio.hstdio.h /*/*包含头文件的命令行包含头文件的命令行*/*/*求两数中较大数的自定义函数求两数中较大数的自定义函数*/*/*程序段功能注释程序段功能注释*/intint Getmax(intGetmax(int snum1 snum1,intint snum2)snum2)/*/*用户自定义函数首部用户自定义函数首部*/intint smaxsmax;/*/*变量定义变量定义*/if(snum1snum2)if(snum1snum2)smaxsmax
46、=snum1;=snum1;/*/*比较选择,分支语句比较选择,分支语句*/else else smaxsmax=snum2;=snum2;return return smaxsmax;/*/*返回语句返回语句*/void void main(voidmain(void)/*/*主函数首部主函数首部*/intint num1,num2,max;num1,num2,max;/*/*定义变量定义变量*/printfprintf(请输入两个整数请输入两个整数););/*/*提示用户输入的信息提示用户输入的信息*/scanf(%d%d,&num1,&num2);scanf(%d%d,&num1,&nu
47、m2);/*/*调用调用scanfscanf 函数输入两个数函数输入两个数*/max=Getmax(num1,num2);max=Getmax(num1,num2);/*/*调用用户自定义函数调用用户自定义函数GetmaxGetmax求两数中较大数求两数中较大数*/printfprintf(较大的数为较大的数为%dndn,max);max);/*/*输出结果输出结果*/C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础程序剖析:程序剖析:(1 1)用户自定义函数)用户自定义函数u该程序中包含两个函数,一个是主函数该程序中包含两个函数,一个是主函数mainmain,另外一,另外一
48、个是名为个是名为GetmaxGetmax的用户自定义函数。的用户自定义函数。(2 2)变量)变量u程序中的程序中的snum1snum1、snum2snum2、num1num1、num2num2、maxmax等都是变等都是变量。以存放操作数据。每个已定义的变量在内存占据量。以存放操作数据。每个已定义的变量在内存占据一定的存储单元,其中一定的存储单元,其中&num1&num1和和&num2&num2表表(3 3)输入函数)输入函数uscanfscanf函数也是一个库函数,和库函数函数也是一个库函数,和库函数printfprintf一样,一样,其原型说明也在名为其原型说明也在名为“stdio.hst
49、dio.h”的头文件中。的头文件中。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础(4 4)程序交互界面)程序交互界面u程序运行时,为了给用户一个良好的人机交程序运行时,为了给用户一个良好的人机交互操作界面,需要设计一些提示信息。如程互操作界面,需要设计一些提示信息。如程序中的语句序中的语句“printfprintf(请输入两个整数请输入两个整数);”);”就是提示用户输入数据的语句。就是提示用户输入数据的语句。(5 5)查阅库函数)查阅库函数(6 6)注释)注释C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础1.5.3项目任务项目任务1.1.软件界面设计
50、概念软件界面设计概念v人机界面又称用户界面人机界面又称用户界面(User Interface)(User Interface),实,实现用户与计算机之间的通信,以控制计算机或现用户与计算机之间的通信,以控制计算机或用户和计算机之间的数据传送。用户和计算机之间的数据传送。C语言程序设计语言程序设计-第第1章章 C语言学习基础语言学习基础2.2.算法设计算法设计v通过初步调查,我们假设通过初步调查,我们假设“学生信息管理系统学生信息管理系统”将能够实现如下子功能:将能够实现如下子功能:(1 1)用户身份验证)用户身份验证 (2 2)学籍管理子系统)学籍管理子系统 (3 3)成绩管理子系统)成绩管理