《分校课件第讲语言概述精.ppt》由会员分享,可在线阅读,更多相关《分校课件第讲语言概述精.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、分校课件第讲语言概述分校课件第讲语言概述第1页,本讲稿共32页课程介绍课程介绍教材教材C语言程序设计教程语言程序设计教程汪同庆汪同庆 等等 主编主编 机械工业出版社机械工业出版社C语言程序设计实验教程语言程序设计实验教程汪同庆汪同庆 等等 主编主编 机械工业出版社机械工业出版社C语言程序设计语言程序设计 谭浩强主编谭浩强主编 第二版第二版 清华大学出版社清华大学出版社 二级二级C语言程序设计语言程序设计 上机考试习题集上机考试习题集 2008版南开版南开100题题C C语言程序设计语言程序设计联系方式:联系方式:公共邮箱:公共邮箱:密码密码:dhfx)*课程性质:大学计算机公共基础课(必修)课
2、程性质:大学计算机公共基础课(必修)课程内容课程内容C语言语言程序设计的基本方法和技巧程序设计的基本方法和技巧预备知识预备知识计算机基础计算机基础2第2页,本讲稿共32页授课计划授课计划C C语言程序设计语言程序设计周次周次 日期日期课堂讲授内容课堂讲授内容 上机实验内容上机实验内容 备注备注第1周2.15-2.20第1讲 C语言概述第2周2.23-2.27第2讲 C语言快速入门认识C语言集成开发环境(1)第3周3.2-3.6第3讲 基本数据类型认识C语言集成开发环境(2)第4周3.9-3.13第4讲 输入输出和库函数第3章 实验体验第5周3.16-3.20第5讲 运算符和表达式第4章 实验体
3、验第6周3.23-3.27第6讲 语句和算法第5章 实验体验第7周3.30-4.3第7讲 选择结构第5章 实验体验第8周4.6-4.10第8讲 循环结构第5章 实验体验4.6放假,周一停课第9周4.13-4.17第9讲 函数第6章 实验体验布置单元测验和实验报告第10周4.20-4.24第10讲 作用范围和存储类别第7章 实验体验第11周4.27-5.1第11讲 数组第8章 实验体验5.1节放假周五停课第12周5.4-5.8第11讲 数组第8章 实验体验5.4节放假半天周一下午停课第13周5.11-5.15第12讲 指针第9章 实验体验单元测验单元测验第14周5.18-5.22第12讲 指针第
4、9章 实验体验9.4-9.5节不讲节不讲第15周5.25-5.29第13讲 字符串第10章 实验体验5.28端午假1天5.31补周五课第16周6.1-6.5第14讲 结构体第11章 实验体验交实验报告交实验报告第17周6.8-6.12机动补齐放假的课机动补齐放假的课11.4-11.10节不讲节不讲第18周6.15-6.19复习复习3第3页,本讲稿共32页预备知识预备知识计算机组成和工作原理计算机组成和工作原理计算机语言和程序计算机语言和程序C语言的简史语言的简史为什么学习和使用为什么学习和使用C语言语言C语言程序的开发过程语言程序的开发过程C语言编程环境语言编程环境C语言编程实验环境语言编程实
5、验环境C C语言程序设计语言程序设计第一讲第一讲 C C语言概述语言概述4第4页,本讲稿共32页计算机计算机计算机计算机(Computer)能进行计算和逻辑判断的设备能进行计算和逻辑判断的设备在一组指令在一组指令(instructions)程序程序(programs)的控制下处理的控制下处理数据数据硬件硬件(Hardware)组成计算机的各种物理部件组成计算机的各种物理部件键盘、鼠标、显示器、内存、硬盘、光驱等等键盘、鼠标、显示器、内存、硬盘、光驱等等软件软件(Software)计算机中运行的程序和数据计算机中运行的程序和数据C语言概述语言概述5第5页,本讲稿共32页计算机的组成计算机的组成计
6、算机包括五大部件计算机包括五大部件输入单元输入单元(Input unit)从输入设备(键盘、鼠标)获得数据从输入设备(键盘、鼠标)获得数据输出单元输出单元(Output unit)把数据输出到输出设备(显示器、打印机等)把数据输出到输出设备(显示器、打印机等)内存内存(Memory unit)临时存储正在处理的数据和运行的程序临时存储正在处理的数据和运行的程序可以快速地访问可以快速地访问容量不大容量不大C语言概述语言概述6第6页,本讲稿共32页计算机的组成计算机的组成中央处理单元中央处理单元(Central processing unit,CPU)算术逻辑单元算术逻辑单元(Arithmetic
7、 and logic unit,ALU)进行算术运算和逻辑判断进行算术运算和逻辑判断控制器控制器(Control unit)管理和协调计算机的其它部件管理和协调计算机的其它部件辅助存储器辅助存储器(Secondary storage unit)保存需长期存储的数据和非活动的程序保存需长期存储的数据和非活动的程序保存时间长保存时间长价格便宜、容量大价格便宜、容量大例如硬盘、光盘、磁带例如硬盘、光盘、磁带C语言概述语言概述7第7页,本讲稿共32页计算机的工作原理计算机的工作原理五大部件紧密协作五大部件紧密协作C语言概述语言概述8第8页,本讲稿共32页计算机的工作原理计算机的工作原理CPU负责执行程
8、序负责执行程序从内存中读取一条指令从内存中读取一条指令执行该指令执行该指令从内存中读取下一条指令并执行从内存中读取下一条指令并执行一个主频为一个主频为1GHz的的CPU可以在一秒钟内进行大约一亿次这可以在一秒钟内进行大约一亿次这样的操作样的操作 CPU有自己的工作区:有自己的工作区:包括若干个寄存器包括若干个寄存器(Registers)CPU只能理解有限的指令只能理解有限的指令(CPU的指令集)的指令集)指令能够完成的任务是具体的指令能够完成的任务是具体的例如,把一个数从内存移动到某一个寄存器例如,把一个数从内存移动到某一个寄存器C语言概述语言概述9第9页,本讲稿共32页计算机程序和语言计算机
9、程序和语言存储在计算机中的一切内容都是二进制的数字形式存储在计算机中的一切内容都是二进制的数字形式数据:数、字符、图片、声音、动画等等数据:数、字符、图片、声音、动画等等指令指令计算机程序计算机程序确切告诉计算机如何完成某项任务的指令序列就是一套确切告诉计算机如何完成某项任务的指令序列就是一套程序程序计算机语言计算机语言(p35ltfc.c)用来编写程序用来编写程序C语言概述语言概述#include#include void main()float a,b,c,p,disc,q,x1,x2;scanf(%f%f%f,&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=s
10、qrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%f,x2=%f,x1,x2);01100011000001100110010111001100000011000001101101100011000001100110010111001100000011000001101110第10页,本讲稿共32页机器语言机器语言数字形式的指令码就是机器语言数字形式的指令码就是机器语言(Machine language)用机器语言编写的程序能够被计算机直接理解和执行用机器语言编写的程序能够被计算机直接理解和执行但是,编写程序非常费力但是,编写程序非常费力例如,编写程序完成两个数
11、相加的任务需要以下几步例如,编写程序完成两个数相加的任务需要以下几步把地址为把地址为2000的内存单元中的数复制到寄存器的内存单元中的数复制到寄存器1;把地址为把地址为2004的内存单元中的数复制到寄存器的内存单元中的数复制到寄存器2;把寄存器把寄存器2中的数与寄存器中的数与寄存器1中的数相加,结果保留在寄存器中的数相加,结果保留在寄存器1中;中;把寄存器把寄存器1中的数复制到地址为中的数复制到地址为2008的内存单元中。的内存单元中。C语言概述语言概述01100011000001100110010111001100000011000001101111第11页,本讲稿共32页汇编语言汇编语言符
12、号化的指令码就是汇编语言符号化的指令码就是汇编语言(Assembly language)例如,完成两个数相加的汇编语言程序例如,完成两个数相加的汇编语言程序汇编语言程序必须被翻译成机器语言程序才能被执行汇编语言程序必须被翻译成机器语言程序才能被执行汇编程序汇编程序(Assembler)充当充当“翻译翻译”C语言概述语言概述ldreg n1,r1把变量把变量n1的值复制到寄存器的值复制到寄存器1(r1););ldreg n2,r2把变量把变量n2的值复制到寄存器的值复制到寄存器2(r2););add r1,r2把把r2中的数与中的数与r1中的数相加,结果保留在中的数相加,结果保留在r1中;中;s
13、tore r1,sum把把r1中的数复制到变量中的数复制到变量sum。12第12页,本讲稿共32页高级语言高级语言高级语言高级语言(High-level language)使用数学符号和类似英语使用数学符号和类似英语的单词的单词例如,完成两个数相加的例如,完成两个数相加的C语言程序语言程序从多方面提高了编程效率从多方面提高了编程效率不必考虑不必考虑CPU的指令集的指令集不必考虑不必考虑CPU实现特定任务的精确步骤实现特定任务的精确步骤采用接近人类思考问题的方式去书写程序采用接近人类思考问题的方式去书写程序高级语言程序必须被高级语言程序必须被编译程序编译程序(Compiler)翻译成机器语言程翻
14、译成机器语言程序才能被执行序才能被执行C语言概述语言概述sum=n1+n2;13第13页,本讲稿共32页C语言的简史语言的简史C语言的起源语言的起源美国贝尔实验室的美国贝尔实验室的Dennis Ritchie在在1972年开发的年开发的用于设计用于设计UNIX操作系统操作系统其前身是其前身是B语言语言(Ken Thompson于于1970年为第一个年为第一个UNIX系统开发的语言)系统开发的语言)C语言的标准语言的标准美国国家标准化组织(美国国家标准化组织(ANSI)于)于1983年成立了一个委员会年成立了一个委员会(X3J11),以确定),以确定C语言的标准。语言的标准。该标准(该标准(AN
15、SI C)于)于1989年被正式采用,即年被正式采用,即C89。最新的标准是最新的标准是C99标准。标准。目前,大多数目前,大多数C语言编译器没有完全实现语言编译器没有完全实现C99的所有修改。的所有修改。C语言概述语言概述14第14页,本讲稿共32页为什么学习和使用为什么学习和使用C语言语言C语言的特点语言的特点C语言是一种强大而灵活的语言,可以用来语言是一种强大而灵活的语言,可以用来编写任意复杂的编写任意复杂的程序程序。C语言简洁、紧凑,使用方便、灵活。语言简洁、紧凑,使用方便、灵活。C语言语言程序效率高程序效率高、运行速度快。、运行速度快。C语言是语言是可移植的可移植的。C语言很语言很适
16、合结构化程序设计适合结构化程序设计,因而要求用户以功能模块的,因而要求用户以功能模块的方式来思考问题。方式来思考问题。C语言语言具有自我扩展能力具有自我扩展能力。C语言概述语言概述15第15页,本讲稿共32页为什么学习和使用为什么学习和使用C语言语言C与与C+(C加加,加加,see-plus-plus)贝尔实验室于二十世纪八十年代在贝尔实验室于二十世纪八十年代在C语言的基础上开发的。语言的基础上开发的。C+是是C语言的超集,包含了语言的超集,包含了C语言的所有内容,同时增加语言的所有内容,同时增加了面向对象编程方面的内容。了面向对象编程方面的内容。C与与Java(爪哇)(爪哇)Sun公司于公司
17、于1995年发布的面向对象编程语言。年发布的面向对象编程语言。Java也是基于也是基于C语言的。语言的。C与与C#(see-sharp)微软在微软在2000年年6月与月与.NET平台一同推出。平台一同推出。C#也是从也是从C语言派生的一种面向对象语言。语言派生的一种面向对象语言。C语言概述语言概述16第16页,本讲稿共32页C语言程序的开发过程语言程序的开发过程一般分成五个步骤一般分成五个步骤定义程序目标定义程序目标设计程序设计程序编写代码编写代码编译编译运行、测试和调试程序运行、测试和调试程序C语言概述语言概述17第17页,本讲稿共32页C语言程序的开发过程语言程序的开发过程定义程序目标定义
18、程序目标在开始解决问题之前,程序的开发人员必须彻底了解问题在开始解决问题之前,程序的开发人员必须彻底了解问题的目的是什么,对即将要创建的程序要做的事情有个清晰的目的是什么,对即将要创建的程序要做的事情有个清晰的想法。的想法。这需要仔细考虑以下问题这需要仔细考虑以下问题程序需要什么信息程序需要什么信息程序需要执行哪些计算和操作程序需要执行哪些计算和操作程序应该报告什么信息程序应该报告什么信息例如,计算任意一个圆环的面积例如,计算任意一个圆环的面积提出问题,明确目标提出问题,明确目标圆环是什么?如何计算?计算精度?圆环是什么?如何计算?计算精度?C语言概述语言概述18第18页,本讲稿共32页C语言
19、程序的开发过程语言程序的开发过程设计程序设计程序决定程序如何去解决问题。决定程序如何去解决问题。需要考虑需要考虑如何给程序提供必要的数据如何给程序提供必要的数据程序中如何表示数据程序中如何表示数据用什么方法来处理数据用什么方法来处理数据程序如何组织程序如何组织程序怎样报告结果程序怎样报告结果完成这个程序需要多长时间完成这个程序需要多长时间应该用一般的概念考虑设计中的问题,而不是考虑具体的应该用一般的概念考虑设计中的问题,而不是考虑具体的代码。代码。C语言概述语言概述19第19页,本讲稿共32页C语言程序的开发过程语言程序的开发过程编写代码编写代码编写代码来实现前面的设计,即用某一门语言来表示程
20、序编写代码来实现前面的设计,即用某一门语言来表示程序设计。设计。需要开发人员熟练掌握该语言的知识。需要开发人员熟练掌握该语言的知识。可以在草稿纸上勾画自己的想法或书写代码,但最终必须可以在草稿纸上勾画自己的想法或书写代码,但最终必须将代码输入计算机。将代码输入计算机。输入代码所采用的机制则取决于具体的编程环境。输入代码所采用的机制则取决于具体的编程环境。一般来说,需要使用文本编辑器(例如一般来说,需要使用文本编辑器(例如Windows的记事本程序)的记事本程序)来创建一种文件,称为来创建一种文件,称为源文件源文件源文件包含程序设计的源文件包含程序设计的C语言表示形式(称为语言表示形式(称为源程
21、序源程序或或源代码源代码)C语言概述语言概述20第20页,本讲稿共32页C语言程序的开发过程语言程序的开发过程编译编译把把C语言源程序转换成机器语言表示的程序。语言源程序转换成机器语言表示的程序。这种程序可以直接被计算机理解和执行,所以称之为这种程序可以直接被计算机理解和执行,所以称之为可执行程序可执行程序,放,放在在可执行文件可执行文件中。中。编译的具体细节取决于使用的编程环境。编译的具体细节取决于使用的编程环境。C语言分两步完成这一工作:语言分两步完成这一工作:编译编译和和链接链接。编译器将源代码转换为编译器将源代码转换为目标代码目标代码,并存在,并存在目标文件目标文件中。中。链接器将目标
22、代码与其他代码结合起来生成可执行文件。链接器将目标代码与其他代码结合起来生成可执行文件。这种把编译和链接分开来做的方法便于程序的模块化。这种把编译和链接分开来做的方法便于程序的模块化。可以分别编译程序的各个模块,然后用链接器把编译过的模块结合起来。可以分别编译程序的各个模块,然后用链接器把编译过的模块结合起来。这样,如果需要改变一个模块,则不需要重新编译所有其他模块。这样,如果需要改变一个模块,则不需要重新编译所有其他模块。C语言概述语言概述21第21页,本讲稿共32页C语言程序的开发过程语言程序的开发过程运行、测试和调试程序运行、测试和调试程序运行包含可执行程序的文件,观察运行的结果。运行包
23、含可执行程序的文件,观察运行的结果。在不同的系统中运行程序的方式可能不同。在不同的系统中运行程序的方式可能不同。例如,例如,Windows的控制台和资源管理器。的控制台和资源管理器。应该对程序进行仔细的检查,看程序是否在做该做的事。应该对程序进行仔细的检查,看程序是否在做该做的事。比较好的做法是为验证程序的正确性设计一个测试计划。比较好的做法是为验证程序的正确性设计一个测试计划。越早做越好,因为它有助于理清程序员的思路。越早做越好,因为它有助于理清程序员的思路。程序中的错误被称为程序中的错误被称为bug,调试(,调试(Debug)就是要发现并)就是要发现并修正错误。修正错误。C语言概述语言概述
24、调试时不仅要输入正确的数据、也要输入错误的数据和临界调试时不仅要输入正确的数据、也要输入错误的数据和临界数据,都能判断给出相应的答案,则程序设计正确。数据,都能判断给出相应的答案,则程序设计正确。22第22页,本讲稿共32页C语言的编程环境语言的编程环境开发程序的具体操作取决于使用的编程环境开发程序的具体操作取决于使用的编程环境因为因为C语言是可移植的,所以它在许多环境中都是可用的。语言是可移植的,所以它在许多环境中都是可用的。例如例如UNIX、Linux、Windows和和MS-DOS。C语言编程环境包括一系列程序。语言编程环境包括一系列程序。编辑器编辑器编译器编译器链接器链接器运行和调试环
25、境运行和调试环境C语言概述语言概述Hello.cHello.objHello.exe编辑器编辑器源代码源代码编译器编译器目标代码目标代码链接器链接器可执行代码可执行代码启动代码启动代码库代码库代码执行执行如果有错如果有错如果有错如果有错如果有错如果有错23第23页,本讲稿共32页C语言的编程环境语言的编程环境编辑器编辑器使用一个文本编辑器程序输入源代码,并将代码保存在源使用一个文本编辑器程序输入源代码,并将代码保存在源文件中。文件中。一般,一般,C程序的源文件名称的扩展名是程序的源文件名称的扩展名是.c例如例如welcometoyou.c和和Hello.c。该名称应该遵循特定的操作系统的命名规
26、则。该名称应该遵循特定的操作系统的命名规则。例如,例如,MS-DOS要求基本名包含的字符数不能大于要求基本名包含的字符数不能大于8,所以,所以welcometoyou.c不是合法的不是合法的DOS文件名。文件名。Windows允许长文件名,所以允许长文件名,所以welcometoyou.c是合法的是合法的Windows文件名。文件名。C语言概述语言概述Hello.c编辑器编辑器源代码源代码24第24页,本讲稿共32页C语言的编程环境语言的编程环境编译器编译器编译器接收源文件,生成目标文件,扩展名为编译器接收源文件,生成目标文件,扩展名为.obj或或.o。编译器还会检查输入的程序是否是有效的编译
27、器还会检查输入的程序是否是有效的C语言程序。语言程序。如果编译器发现错误,就会报告出错,且不能生成可执行程序。如果编译器发现错误,就会报告出错,且不能生成可执行程序。这时就必须修改错误,然后再编译。这时就必须修改错误,然后再编译。显然,为了能迅速找到错误,理解特定编译器的报错信息显然,为了能迅速找到错误,理解特定编译器的报错信息是一项有用的技能。是一项有用的技能。C语言概述语言概述Hello.cHello.obj编辑器编辑器源代码源代码编译器编译器目标代码目标代码如果有错如果有错25第25页,本讲稿共32页C语言的编程环境语言的编程环境链接器链接器目标代码虽然已经是机器代码,但还不能被执行。目
28、标代码虽然已经是机器代码,但还不能被执行。缺少下面两个东西缺少下面两个东西启动代码启动代码:相当于程序和操作系统之间的接口。:相当于程序和操作系统之间的接口。库函数的代码库函数的代码:库文件中包含许多函数的目标代码。:库文件中包含许多函数的目标代码。链接器的作用就是将这三个元素(目标代码、启动代码和链接器的作用就是将这三个元素(目标代码、启动代码和库代码)结合起来,并将它们放在一个文件中,即可执行库代码)结合起来,并将它们放在一个文件中,即可执行文件,扩展名为文件,扩展名为.exe或或.out。C语言概述语言概述Hello.objHello.exe目标代码目标代码链接器链接器可执行代码可执行代
29、码启动代码启动代码库代码库代码如果有错如果有错26第26页,本讲稿共32页Windows的的C语言编程环境语言编程环境Windows的的C语言编程环境语言编程环境Windows并不包含并不包含C编译器,所以需要获得并安装一个编译器,所以需要获得并安装一个C编译器。编译器。许多现代的编译器都是许多现代的编译器都是集成开发环境集成开发环境(或叫(或叫IDE)的一部分。)的一部分。包括一个编辑器、编译器、链接器和包括一个符号调试程序在内的包括一个编辑器、编译器、链接器和包括一个符号调试程序在内的运行支持系统。运行支持系统。许多软件厂商都提供了基于许多软件厂商都提供了基于Windows的集成开发环境的
30、集成开发环境Microsoft公司的公司的Visual C/C+Borland公司的公司的C/C+BuilderMetrowerks公司的公司的Code Warrior目前,大多数目前,大多数IDE把把C和和C+编译器结合在一起。编译器结合在一起。C语言概述语言概述27第27页,本讲稿共32页DOS的的C语言编程环境语言编程环境DOS的的C语言编程环境语言编程环境基于基于DOS的的IDE Borland公司的公司的Turbo CBorland公司的公司的Borland C+许多许多Windows上的上的IDE也提供了在也提供了在DOS命令行环境中编程命令行环境中编程的命令行工具。的命令行工具。
31、C语言概述语言概述28第28页,本讲稿共32页C语言编程实验环境简介语言编程实验环境简介上机实验环境简介上机实验环境简介举例演示举例演示Visual C+6.0的基本操作的基本操作启动启动创建源文件创建源文件构建工程(编译、链接)构建工程(编译、链接)运行程序运行程序C语言概述语言概述29第29页,本讲稿共32页30第30页,本讲稿共32页小结小结C是一种通用的程序设计语言,具有许多突出的优点。是一种通用的程序设计语言,具有许多突出的优点。程序设计的初学者应该严格按照程序设计的初学者应该严格按照C语言程序的开发过语言程序的开发过程进行训练,以便尽快掌握程序设计的基本原则。程进行训练,以便尽快掌
32、握程序设计的基本原则。C是一种需要编译的高级语言。是一种需要编译的高级语言。进行进行C语言编程的具体操作依赖于所使用的编程环境。语言编程的具体操作依赖于所使用的编程环境。程序设计是一门实践性很强的课程,在学习过程中必程序设计是一门实践性很强的课程,在学习过程中必须十分重视实验环节。须十分重视实验环节。C语言概述语言概述31第31页,本讲稿共32页请请请请自自自自学学学学第第第第一一一一章章章章教教教教材材材材内内内内容容容容并并并并预预预预习习习习第第第第二二二二章章章章的的的的内内内内容容容容请请请请自自自自己己己己做做做做第第第第一一一一章章章章的的的的习习习习题题题题与与与与实实实实验验验验希望同学们能规划自己的未来希望同学们能规划自己的未来本章到此结束,谢谢您的光临!本章到此结束,谢谢您的光临!THANK YOU VERY MUCH THANK YOU VERY MUCH!第32页,本讲稿共32页