武汉理工大学C语言-第1章-C语言概述2015

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

主讲:袁小玲Email:xlyuan@whut.edu.cn教材、参考书与课时安排教材C语言程序设计顾治华等编著机械工业出版社参考书顾治华、陈天煌等《C语言程序设计学习辅导与等级考试精解》C程序设计谭浩强编著清华大学出版社C高级实用程序设计王士元清华大学出版社课时安排授课:36学时C编程实验:12学时课程考核C语言程序设计课程性质:公共必修考试方式:统考,笔试,闭卷时间:about第19周成绩:考试卷面成绩70%+平时成绩30%平时成绩:实验+作业+考勤上机安排上机地点:计算中心7楼机房(5-717)上机时间:待定,听通知上机内容:随教学进度的编程训练:顺序,选择,循环结构,数组,函数,指针要求:上机前先编好程序编程作业建议上机调试通过考勤3次缺席,按不及格处理发现上机时间上网,玩游戏,按缺席一次处理课程要求课前请做好预习课堂上保持头脑清醒,思维活跃,积极思考认真、独立、按时完成作业重视上机实践,有效利用宝贵的上机时间课程内容第一章C语言程序设计基础第二章程序的基石—算法第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章数组与指针第七章函数与模块化程序设计方法第八章结构体和共用体第九章预处理命令与带参数的主函数第十章文件第一章C语言程序设计概述第一章C语言程序设计概述程序设计语言及其发展史C语言发展历史C语言特点C程序格式和结构特点C程序上机步骤及常用开发工具C语言的基本词法§1.1程序设计语言发展历史C语言程序设计第一章C语言概述计算机系统硬件系统软件系统计算机中看得见,摸得着的实体部件。人们编写的各种各样程序的总和。指令:是指示计算机完成某种操作的命令。组成:opcode+opdata程序:是程序员为使计算机解决问题而编写的指令序列。由此可见:(1)程序是人类与计算机交流的媒介(2)程序是用计算机程序设计语言编写的指挥计算机操作的指令集合而程序设计语言是人类与计算机打交道的语言计算机采用二进制运算以及存储程序、程序控制的工作方式将表示计算步骤的程序同参加计算的数据一起存储在存储器中,由计算机执行程序,自动完成计算过程。五大部件组成计算机硬件系统现代计算机的范式——冯•诺依曼结构存储器运算器输入设备输出设备控制器数据信号控制信号注:冯·诺依曼型计算机的组织结构及工作过程1输入2存储3处理4输出CPU在计算机内部,一切都是二进制程序设计语言的---历史、现状和发展程序设计语言发展历史机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象C语言程序设计第一章C语言概述1.第一代语言:机器语言/二进制语言特点:它是计算机所特有的,不同计算机有不同的机器语言。机器语言与特定的计算机相关,能被特定的计算机识别(称“离硬件比较近”)[例如]:完成两个数据100和256相加的功能,8086CPU的代码序列如下:101110000110010000000000000001010000000000000001101000110000000000100000优点:计算机可以直接识别和执行,效率较高。缺点:人工编写机器语言程序很繁琐,容易出错,不便于人理解而且通用性很差。2.第二代语言:汇编语言/符号语言特点:用含义较鲜明的符号代替机器语言中的二进制编码。[例如]:实现100与256相加的MASM汇编语言程序段如下:movax,100;(对应机器代码:B86400)addax,256;(对应机器代码:050001)mov[2000h],ax;(对应机器代码:A30020)优点:比机器语言容易理解和掌握、也容易调试和维护。缺点:不能被计算机硬件直接识别和执行,仍然依赖于计算机(它也与特定的计算机有关),通用性较差。3.第三代语言:算法语言/高级语言特点:是一种接近人类使用习惯的程序设计语言,是按解决问题的实际需要规定好的一套基本符号以及由这套基本符号构成的编程规则。基本组成成分是各种语句。[例如]:实现100与256相加的C语言程序段如下:a=100+256;优点:编写程序方便、简单和直观;不依赖于机器(高级语言与计算机的硬件结构及指令系统无关),通用性强。缺点:不能被计算机硬件直接识别和执行。[例如]:BASIC,FORTRAN,C等。源程序“翻译”机器能识别的目标程序高级语言编写的程序编译方式:给计算机配备一套编译程序。编译程序将源程序翻译成机器能够识别的二进制代码程序。C语言是此方式运行的高级语言。解释方式:给计算机配备一个解释系统,它逐条解释源程序的语句为二进制代码,并立即执行该条语句的操作。QBASIC语言是此方式运行的高级语言。翻译方式1翻译方式24.第四代语言:实质上是可以快速开发应用软件的各种高生产率的软件工具的统称。[例如]:VC++,Delphi等。5.第五代语言:(还处于萌芽状态)多数人认为,第五代语言将是智能化的语言。主要是为人工智能领域设计的。在这些领域内,将复杂的知识进行编码,使得计算机能从中得出推论,使得软件显出较高的智力。PROLOG语言可能是第五代语言最著名的雏形。5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90高级语言发展历史§1.2C语言发展历史C语言发展过程产生背景以前的操作系统等系统软件主要是由汇编语言编写的(包括Unix操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高程序的可读性和可移植性,最好改用高级语言。但一般高级语言离硬件较远,难以实现汇编语言的某些功能(例如,对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言?C语言程序设计第一章C语言概述C语言的发展历史ALGOL60607080剑桥CPL剑桥BCPL贝尔B贝尔CC可移植C编译器ANSIC*由于ALGOL60离硬件远1963年英国剑桥大学在它的基础上推出了CPL(CombinedProgrammingLanguage)语言,但规模比较大,难以实现。*1967年英国剑桥大学的MatinRichards对CPL语言作了简化推出了BCPL(BasicCPL)*1970年美国贝尔实验室的KenThompson对BCPL语言做进一步简化,设计出了更简单的而且很接近硬件的B语言(取BCPL的第一个字母),并用B语言写了第一个UNIX操作系统,在PDP-7上实现。*但B语言过于简单,功能有限。1973年,贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。*最初的C语言只是为描述和实现Unix操作系统提供一种工作语言而设计的,1978年以后,C语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一。C语言既可用来写系统软件,也可用来写应用软件。ALGOrithmicLanguage的缩写C标准标准C:BrianW.kernighan和DennisM.Ritchie(合称K&R)合著了影响深远的名著《TheCProgrammingLanguage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。ANSIC:1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSIC。ANSIC比原来的标准C有了很大的发展。1987年,ANSI又公布了新标准一87ANSIC。目前广泛流行的各种版本C语言都是以它为基础的编译系统,虽然各版本之间有些差异,但它们的基本部分是相同的。(C89,C90,C99,C11)在微型机上使用的有MicrosoftC,TurboC,QuickC等,它们的不同版本又略有差异。C语言程序设计第一章C语言概述§1.3C语言特点语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好中级语言C语言程序设计第一章C语言概述32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC语言程序设计第一章C语言概述9种控制语句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturnC语言程序设计第一章C语言概述例C语言与Pascal语言比较C语言Pascal语言含义{}BEGIN….END复合语句if(e)s;IF(e)THENs条件语句inti;VARi:INTEGER定义i为整型变量inta[10];VARa:ARRAY[1..10]OFINTEGER定义整型数组aintf();FUNCTIONf():INTEGER定义f为返值整型的函数int*p;VARp:INTEGER定义p为指向整型变量的指针i+=2;i=i+2赋值i+2ii++;i=i+1i自增值结论:C比Pascal简练,源程序短。C语言程序设计第一章C语言概述34种运算符:算术运算符:+-*/%++--关系运算符:====!=逻辑运算符:!&&||位运算符:~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.-下标运算符:[]其它:()-(负号)C语言程序设计第一章C语言概述C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体unionC语言程序设计第一章C语言概述§1.4C程序格式和结构特点例1.1第一个程序Hello,World!/*example1.1ThefirstCProgram*/#includestdio.hmain(){printf(“Hello,World!”);}C语言程序设计第一章C语言概述注释编译预处理函数语句输出:Hello,World!例1.2/*example1.2calculatethesumofaandb*/#includestdio.h/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n,sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}运行结果:sum=34函数语句预处理命令注释C语言程序设计第一章C语言概述TurboC源程序的一般形式包含文件子函数类型声明全程变量声明main(){局部变量声明程序体}sub1(){局

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功