c语言课件第1章c语言概述

c语言课件第1章c语言概述

ID:36324643

大小:1.02 MB

页数:63页

时间:2019-05-09

上传者:U-145848
c语言课件第1章c语言概述_第1页
c语言课件第1章c语言概述_第2页
c语言课件第1章c语言概述_第3页
c语言课件第1章c语言概述_第4页
c语言课件第1章c语言概述_第5页
资源描述:

《c语言课件第1章c语言概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

C语言程序设计2010年9月刘梅彦liumeiyan2003@tom.com计算中心计算机教研室1 C语言程序设计教学要求掌握程序设计语言的基本知识常用算法(用计算机解决问题时常用的算法)初步的程序设计能力学习方法自主学习重视上机实践2 3本课程着重培养的能力点问题分析与算法设计能力程序阅读和编写能力程序调试与排错能力3 如何尽快学会用C语言进行程序设计了解程序设计语言(C语言)模仿、改写、编写通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法。4 5关于大学的学习….拥有一套学习方法培养自学能力拓宽知识面充分利用各种资源5 6大学教育与中小学教育 有什么不同?给学生以更大的发挥空间,教师仅进行基础性、引导性的教育,更深入的知识要靠学生自学。课堂学习可持续发展的必备知识基本理论、思想、技术一定的新知识关键是学会思考尊重权威人士、挑战权威理论自学能力是跨进大学校门后必备的素质之一6 教材和参考书C语言程序设计,李文杰等,清华大学出版社实验指导书与自测练习集参考书:C语言程序设计,何钦铭、颜晖主编,高等教育出版社C语言编程(第3版),[美]Stephen,G.Kochan,张小潘译,电子工业出版社,2006C语言教程(第4版),[美]AlKelley,IraPohl,徐波译,机械工业出版社,2007C程序设计语言,[美]BrianW.Kernighan,DennisM.Ritchie,徐宝文等译,机械工业出版社,20067 课程情况介绍本课学时数共64学时,其中:上课学时数:48上机学时数:16(共8次))课程安排:上课时间:周二5,6节,周四5,6节(双周)上机时间:在第4/5,9-12,14-15,17周电信1001班:周一1,2节电信1002班:周三7,8节电信1003班:周三9,10节地点:计算中心清河校区机房(二教四层401机房)8 程序、计算机程序一词来自生活,通常指完成某些事务的一种既定方式和过程。从表述方面看,可以将程序看成对一系列动作的执行过程的描述。日常生活中也可以找到许多“程序”实例。例如,一个学生早上起床后的行为可以描述为:9 起床;刷牙;洗脸;吃饭;早自习;这是一个直线形程序,是最简单形式的程序。描述这种程序的就是给出一个包含其中各个基本步骤的序列。如果按顺序实施这些步骤,其整体效果就完成该项事务。10 现在考虑另一个复杂些的过程:到食堂吃饭。这一常见过程可以描述为:1.进入食堂;2.查菜谱;3.向服务员点菜;4.可能由于某种原因,菜谱上的菜没有;食客可以有两种选择:4.1.回到第2步(进一步查找其它想吃的菜);4.2.放弃在此吃饭,离开食堂;5.若点的菜有,在此吃饭。6.吃完饭离开食堂。这个程序比前一个复杂得多。可以看到,这一程序不是一个平铺直叙的动作序列,其中步骤更多,还出现了分情况处理和可能出现的重复性动作。11 计算机是人类发明的一种自动机器,它能完成的工作就是计算。计算机的最基本功能是可以执行一组基本操作,每个操作完成一件很简单的计算工作,例如整数的加减乘除运算等等。为使计算机能按人的指挥工作,每种计算机都提供了一套指令,其中的每一种指令对应着计算机能执行的一个基本动作。12 预备知识:计算机的工作原理计算机系统的组成硬件系统计算机基本组成指令的执行过程程序软件系统13 系统软件应用软件计算机系统包括:硬件+软件硬件软件计算机系统14 CPU存储器数据流控制流运算器外存储器输出设备内存储器输入设备控制器地址流计算机系统的硬件组成演示:计算机的五大部件15 存储器是计算机存储数据和程序的记忆单元集合,每个记忆单元由8位二进制位组成,可读写其中的数据。存储器存储器通常分为内存储器和外存储器存放大量信息的外存储器信息交流中心内存储器存储器16 CPU控制器运算器控制整个计算机所有部件的工作执行算术运算和逻辑运算中央处理器(CPU)17 常用输入设备:键盘、鼠标、扫描仪、光笔、麦克风等。常用输出设备:显示器、打印机、音箱、绘图仪等。输入设备和输出设备:18 指令是能被计算机识别并执行的的二进制代码,完成一种操作。操作码操作数数据传送指令数据处理指令程序控制指令输入输出指令其它指令IfGoto……+-×÷AndOr……CPU内存I/O设备存储器对计算机的硬件进行管理等指令结构分类操作码要完成的操作类型或性质操作数操作的内容或所在的地址计算机指令19 通常包含以下3个步骤:①取指令按照指令计数器中的地址,从内存储器中取出指令,并送往指令寄存器。②分析指令对指令寄存器中存放的指令进行分析,由译码器对操作码进行译码,将指令的操作码转换成相应的控制电位信号;由地址码确定操作数地址。③执行指令由操作控制线路发出完成该操作所需要的一系列控制信息,去完成该指令所要求的操作。一条指令执行完成后,指令计数器加1或将转移地址码送入程序计数器,然后回到①。指令的执行过程(了解)20 计算机软件什么是计算机软件,软件的作用是什么?什么是计算机语言?如何创建一个程序?了解程序的执行过程21 软件系统软件实用程序(诊断程序排错程序等)操作系统(Windows,Unix,Linux)语言处理程序(例C语言编译器程序,链接程序等)应用软件系统软件:控制和维护计算机的正常运行,管理计算机的各种资源,以满足应用软件的需要。应用软件:完成一个特定的任务, 在系统软件的支持下,才能运行22 计算机语言:即程序设计语言程序要需要用某种形式(语言)来描述。现代计算机的程序则是用计算机程序设计语言来描述的。从计算机诞生到今天,程序设计语言也在伴着计算机技术的进步不断升级换代。机器语言汇编语言高级语言23 机器语言一种CPU的指令系统,也称该CPU的机器语言,它是该CPU可以识别的一组由0和1序列构成的指令码。下面是某CPU指令系统中的两条指令:10000000(进行一次加法运算)10010000(进行一次减法运算)用机器语言编程序,就是从所使用的CPU的指令系统中挑选合适的指令,组成一个完成特定任务的指令系列。计算机自动执行这个程序。24 机器语言这种程序虽然可以被机器直接理解和执行,却由于它们不直观,难记、难认、难理解、不易查错,只能被少数专业人员掌握,同时编写程序的效率很低,质量难以保证。这种繁重的手工方式与高速、自动工作的计算机极不相称。这种方式仅使用于计算机出现的初期(使用穿孔纸带的时期)的编程(用有孔、无孔,分别代表1、0)。现在已经不再使用。25 汇编语言为减轻人们在编程中的劳动强度,20世纪50年代中期人们开始用一些“助记符号”来代替0,1码编程。如前面的两条机器指令可以写为A+B=>A或ADDA,BA-B=>A或SUBA,B这种用助记符号描述的指令系统,称为符号语言或汇编语言。26 汇编语言用汇编语言编程,程序的生产效率及质量都有所提高。但是汇编语言指令是机器不能直接识别、理解和执行的。用它编写的程序经检查无误后,要先翻译成机器语言程序才能被机器理解、执行。这个翻译转换过程称为“代真”。代真后得到的机器语言程序称为目标程序(objectprogram)代真以前的程序,称为源程序(sourceprogram)。27 高级语言汇编语言和机器语言是面向机器的,不同类型的计算机所用的汇编语言和机器语言是不同的。1954年出现的FORTRAN语言以及随后相继出现的其它高级语言,开始使用接近人类自然语言的、但又消除了自然语言中的二义性的语言来描述程序。这些高级语言使人们开始摆脱进行程序设计必须先熟悉机器的桎梏,把精力集中于解题思路和方法上。高级语言源程序目标程序(二进制表示的)翻译28 第1章C语言概述一个C语言程序程序与程序设计语言C语言的发展历史与特点实现问题求解的过程29 本章要点什么是程序?程序设计语言包含哪些功能?程序设计语言在语法上包含哪些内容?结构化程序设计有哪些基本的控制结构?C语言有哪些特点?C语言程序的基本框架如何?形成一个可运行的C语言程序需要经过哪些步骤?如何用流程图描述简单的算法?30 1.1C语言的发展历史与特点历史1972年:贝尔实验室的DennisRitchie在B语言的基础上设计并实现了C语言。1978年:B.W.Kernighan和D.Ritchie(简称K&R)合著的《TheCProgrammingLanguage》是各种C语言版本的基础,称之为旧标准C语言。1983年:美国国家标准化协会(ANSI)制定了新的C语言标准,称ANSIC。31 32C语言的祖师爷DennisM.Ritchiehttp://www.cs.bell-labs.com/who/dmr/3232 33Ritchie和Thompson在开发UNIX3333 34接受美国国家技术勋章3434 C语言的特点1.C语言是一种结构化语言2.C语言语句简洁、紧凑,使用方便、灵活32个关键字,9种控制语句,程序书写形式自由。3.C语言程序易于移植C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们。4.C语言有强大的处理能力5.生成的目标代码质量高,运行效率高35 C语言的特点6.数据类型检查不严格,表达式出现二义性,不具备数据越界自动检查功能,运算符的优先级与结合性对初学者难于掌握。C语言中大小写字母代表不同含义36 1.2认识C语言程序例1-1求阶乘问题。输入一个正整数n,输出n!。#includeintmain(void){intn,result;intfactorial(intn);scanf(“%d”,&n);result=factorial(n);printf(“%d ”,result);return0;}intfactorial(intn){inti,fact=1;for(i=1;i<=n;i++)fact=fact*i;returnfact;}输入4输出24C程序由函数组成有且只有一个主函数main/*编译预处理命令*//*主函数*//*变量定义*//*函数声明*//*输入一个整数*//*调用函数计算阶乘*//*输出计算结果*//*定义计算n!的函数*//*循环*/37 1.3程序与程序设计语言程序人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。程序的执行过程实际上是对程序所表达的数据进行处理的过程。程序设计语言提供了一种表达数据与处理数据的功能要求程序员按照语言的规范编程38 1.3程序与程序设计语言程序与指令程序设计语言的功能程序设计语言的语法程序的编译与编程环境39 程序与指令指令:计算机的一个最基本的功能如实现一次加法运算或实现一次大小的判别计算机的指令系统:计算机所能实现的指令的集合程序:一系列计算机指令的有序组合40 程序与指令例1-2编写程序,求三数之和先认识几个计算机指令(7条指令,一个虚拟的系统)指令1:InputX将当前输入数据存储到内存的X单元指令2:OutputX将内存X单元的数据输出。指令3:AddXYZ将内存X单元的数据与Y单元的数据相加并将结果存储到Z单元。指令4:SubXYZ将内存X单元的数据与Y单元的数据相减并将结果存储到Z单元。指令5:BranchEqXYP比较X与Y,若相等则程序跳转到P处执行,否则继续执行下一条指令。指令6:JumpP程序跳转到P处执行。指令7:SetXY将内存Y单元的值设为X。指令的格式和含义是认为规定的。程序的编写依赖于计算机的指令系统41 程序与指令编写完成如下功能的程序:输入3个数A,B和C,求A+B+C的结果。输入第1个数据到存储单元A中输入第2个数据到存储单元B中输入第3个数据到存储单元C中将A、B相加并将结果存在D中将C、D相加并将结果存在D中输出D的内容InputA;InputB;InputC;AddABD;AddCDD;OutputD;处理步骤:程序代码:42 程序设计语言的功能数据表达:表达所要处理的数据流程控制:表达数据处理的流程43 数据表达数据表达:一般将数据抽象为若干类型数据类型:对某些具有共同特点的数据集合的总称代表的数据(数据类型的定义域)在这些数据上做些什么(即操作或称运算)例如:整数类型包含的数据:{…,-2,-1,0,1,2,…}作用在整数上的运算:+、-、*、/等44 数据表达C语言提供的数据类型基本数据类型:程序设计语言事先定义好,供程序员直接使用,如整型、实型(浮点型)、字符型等。构造类型:由程序员构造,如数组、结构、文件、指针等。各种数据类型的常量与变量形式常量(常数)与变量45 流程控制结构化程序设计方法将复杂程序划分为若干个相互独立的模块模块:一条语句(Statement)、一段程序或一个函数(子程序)等单入口、单出口46 流程控制任何程序都可以将模块通过3种基本的控制结构进行组合来实现顺序结构循环结构分支结构47 流程控制语句级控制:3种基本的控制结构顺序控制结构:按书写顺序执行(即按自然顺序)分支控制结构(选择结构):根据不同的条件来选择所要执行的模块循环控制结构:重复执行某个模块单位级控制:函数的定义与调用处理复杂问题时,将程序分为若干个相对独立的子程序(函数)48 程序设计语言的语法用程序设计语言所写的程序必须符合相应语言的语法源程序(源代码)是一个字符序列,这些字符序列按顺序组成了一系列“单词”,“单词”的组合就形成了语言有意义的语法单位,一些简单语法单位的组合又形成了更复杂的语法单位,最后一系列语法单位组合成程序。49 程序设计语言的语法C语言的主要“单词”(1)标识符:C语言的标识符规定由字母、数字以及下划线组成,且第一个字符必须是字母或下划线。(2)保留字(关键字):它们是C语言规定的、赋予它们以特定含义、有专门用途的标识符。(3)自定义标识符:包括在程序中定义的变量名、数据类型名、函数名以及符号常量名。有意义的英文单词(4)常量:常量是有数据类型的,如,123、12.34(5)运算符。代表对各种数据类型实际数据对象的运算。如,+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)请对照一个C语言程序来理解本页中的概念50 程序设计语言的语法C语言的主要语法单位(1)表达式:运算符与运算对象组合就形成了表达式。如,2+3*4(2)变量:变量也有数据类型,所以在定义变量时要说明相应变量的类型。如:inti;(3)语句:语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的。(4)函数:定义一个函数,调用一个函数。请对照一个C语言程序来理解本页中的概念51 程序设计语言的语法其中,(3)语句:表达式语句:表达式加分号“;”分支语句:实现分支控制过程if(a>b)x=a;elsex=b;循环语句:实现循环控制的过程sum=0;/*初始化sum和i*/i=1;while(i<=100){/*while循环语句*/sum=sum+i;i=i+1;}复合语句:用一对“{}”,将若干语句顺序组合在一起就形成了一个程序段。52 程序设计语言的语法(4)函数定义与调用函数是完成特定任务的独立模块,函数的使用最主要涉及到函数的定义与调用。输入输出:C语言没有输入输出语句,用库函数printf、scanf等实现。53 程序的编译与编程环境程序的编译编译器程序————〉计算机直接能理解的指令序列编译器:对源程序进行词法分析、语法与语义分析,生成可执行的代码。直接指出程序中的语法错误编程环境包括编辑程序(Edit)、编译(Compile)、调试(Debug)等过程。掌握程序设计语言:根据语言的语法,用语言表达数据、实现程序的控制,并会使用编程环境。54 可执行代码源程序C语言上机过程编译连接运行test.cpptest.objtest.exe55 1.4实现问题求解的过程问题:求1~100间所有偶数的和。1.问题分析与算法设计求在一定范围内(1~100)、满足一定条件(偶数)的若干整数的和,求累加和。思路:设置一个变量(sum),其初值为0,然后在1~100的数中(i)寻找偶数,将它们一个一个累加到sum中。一步累加:sum=sum+i;重复累加,用循环语句实现,在循环过程中:(1)判别i是不是偶数:用分支控制语句来实现。(2)对循环次数进行控制:通过i值的变化56 问题分析与算法设计思路确定算法算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。算法的描述:自然语言伪代码流程图:算法的图形表示法57 sum=0i=1i<=100i是偶数?sum=sum+ii=i+1输出sum真真假假58 实现问题求解的过程2.编辑程序生成程序的源文件,C语言源文件的后缀为.c或.cpp#includeintmain(void){inti,sum=0;for(i=1;i<=100;i++)if(i%2==0)sum=sum+i;printf("%d",sum);return0;}59 实现问题求解的过程3.程序编译、连接编辑程序后,用该语言的编译程序对其进行编译,以生成二进制代码表示的目标程序(.obj)。与编程环境提供的库函数进行连接(Link)形成可执行的程序(.exe)。编译程序指出语法错误语法错误VS逻辑错误60 实现问题求解的过程4.运行与调试经过编辑、编译、连接,生成执行文件后,就可以在编程环境或操作系统环境中运行该程序。如果程序运行所产生的结果不是你想要的结果,这是程序的语义错误(逻辑错误)。调试:在程序中查找错误并修改错误的过程。调试的方法设置断点单步跟踪调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一。61 开始结果语法错误源程序.c/.cpp目标程序.obj可执行程序.exe编辑编译连接运行连接错误运行错误C语言程序的调试、运行步骤62 作业63

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭