《C语言(第一章概论).ppt》由会员分享,可在线阅读,更多相关《C语言(第一章概论).ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 主讲:谭龙(副教授)邮件地址:计算机科学技术学院应用软件教研室答疑地点:实验楼325室答疑时间:第三周后每周四下午 2:304:30教材、参考书与课时安排教材C程序设计 谭浩强编著 清华大学出版社参考书C语言程序设计教程 谭浩强 高等教育出版社C语言习题集课时安排授课 :48学时C试验课程:24学时上机安排上机地点:计算机楼上机时间:周二学时上机内容:随教学进度的基础训练有时间,可以上机调试每次课堂作业要求:所有作业必须独立完成作业最好经上机调试通过上机实验同上课同等重要发现上机时间上网或打游戏将严重处理C语言发展历史C语言特点C程序格式和结构特点C程序上机步骤第一章 C语言概述程序设计语言
2、分类程序程序 1.0 程序设计语言的分类程序程序Program程序是指令程序是指令InstructionInstruction序列序列,是操作步骤是操作步骤的预先编排的预先编排按一定的按一定的顺顺序安排的步序安排的步骤执骤执行序列,就称行序列,就称为为程序程序 乘乘车车回家回家、假日旅游假日旅游、菜谱、乐谱、编织、菜谱、乐谱、编织样式样式程序设计程序设计语言语言计算机硬件与机器语言程序设计计算机硬件计算机硬件处理器:算术、逻辑、控制处理器:算术、逻辑、控制内存:内存:ROMROM、RAMRAM(bitbit、bytebyte、kbkb、MbMb)寄存器寄存器外设:键盘、显示器、磁盘等外设:键盘
3、、显示器、磁盘等机器语言机器语言直接控制计算机硬件的指令集直接控制计算机硬件的指令集 机器语言机器指令由若干字节组成,第1字节为操作码,其余字节为操作数例1(直接数)指令操作B82301将值0123H移入AX寄存器052500将值0025H加到AX之中8BD8将AX内容移到BX03DB将AX内容加到BX8BCB将BX内容移到CX2BC8从CX内容中减去AX2BC0AX中减去AX本身(清除)汇编语言机器指令由若干字节组成,第1字节为操作码,其余字节为操作数例1(直接数)指令汇编语句操作B82301MOV AX,0123将值0123H移入AX寄存器052500ADD AX,0025将值0025H加
4、到AX之中8BD8MOV BX,AX将AX内容移到BX03DBADD BX,AX将AX内容加到BX8BCBMOV CX,BX将BX内容移到CX2BC8SUB CX,AX从CX内容中减去AX2BC0SUB AX,AXAX中减去AX本身(清除)机器(汇编)语言优点优点使用少得多的内存和执行时间使用少得多的内存和执行时间完成高度技术性的任务完成高度技术性的任务有利于理解机器体系结构有利于理解机器体系结构往往用于设计瓶颈模块往往用于设计瓶颈模块驻留程序和中断服务程序设计实现驻留程序和中断服务程序设计实现缺点缺点过于复杂、难以用于开发大型程序过于复杂、难以用于开发大型程序高级语言高级语言接近自然语言与数
5、学语言亦称:命令语言1950s1980s:大发展典型高级语言FORTRAN-FORMULA TRANSLATORALGOL-ALGORITHM LanguageCOBOL-Common Business Oriented LanguagePASCAL -结构化程序设计教学语言BASIC-Beginners All-purpose SymbolicInstruction CodeC-目前最流行的高级语言 高级语言(续)高级语言翻译成机器语言高级语言翻译成机器语言不能被计算机硬件不能被计算机硬件(裸机裸机)直接执行直接执行编译编译compile高级语言程序高级语言程序(源程序源程序source)机
6、器语言程序机器语言程序(目标程序目标程序target)然后执行目标程序然后执行目标程序编译会发现不符合语法编译会发现不符合语法syntax的错误,称编译错的错误,称编译错解释解释interpret不生成目标程序不生成目标程序源程序边翻译边执行源程序边翻译边执行汇编汇编assemble(装配装配)汇编语言程序汇编语言程序机器语言程序机器语言程序高级语言(续)l面向过程程序设计的高级语言面向过程程序设计的高级语言 称算法语言。称算法语言。如:如:FortranFortran,BasicBasic,PascalPascal,C C 等等等等l面向对象程序设计的高级语言面向对象程序设计的高级语言199
7、0s1990s发展起来发展起来能较自然地描述大量实际问题模型能较自然地描述大量实际问题模型AdaAda、C+C+、JavaJava等等思想:思想:任何事物都看作对象任何事物都看作对象一个程序就是一组相互通信的对象一个程序就是一组相互通信的对象每个对象具有由其它对象组成的存储每个对象具有由其它对象组成的存储每个对象有自己的类型每个对象有自己的类型可视化高级语言具有面向对象的思想,如:Visual C+,Visual Basic,Visual J+,Delphi,PowerBuilder,JBuilder,ASP等等第一代第一代:机器语言机器语言=是一种是一种CPUCPU机器语言。机器语言。由数字
8、由数字0 0、1 1组合而成。组合而成。优点:机器可直接执行,速度快。优点:机器可直接执行,速度快。缺点:程序长,难记,难理解,不易查错。缺点:程序长,难记,难理解,不易查错。第二代第二代:汇编语言汇编语言=用助记符描述的指令系统。用助记符描述的指令系统。如:如:MovMov Ax Ax,bp+4bp+4 push d1 push d1,优点:比机器语言较易理解,执行速度快。优点:比机器语言较易理解,执行速度快。缺点:难度大,非专业人士难以掌握。缺点:难度大,非专业人士难以掌握。程序程序语言语言总结总结第三代第三代:面向过程的高级语言面向过程的高级语言=或称算法语言。或称算法语言。如:如:Fo
9、rtranFortran,BasicBasic,PascalPascal,C C 等等。等等。优点:灵活,易于理解,容易查错。优点:灵活,易于理解,容易查错。缺点:对大型程序而言维护性较差,对缺点:对大型程序而言维护性较差,对“拟定拟定”好好的的 程序难以扩充,修改(所谓牵一而动百)。程序难以扩充,修改(所谓牵一而动百)。第四代第四代:非过程化的高级语言非过程化的高级语言=是一种面向对象的设计语言,如:是一种面向对象的设计语言,如:C+C+,Java Java 等等。等等。优点:灵活、易于理解、维护、修改、扩充。优点:灵活、易于理解、维护、修改、扩充。缺点:掌握难度较大。缺点:掌握难度较大。程
10、序程序语言语言总结总结第五代:可视化多媒体程序设计工具。第五代:可视化多媒体程序设计工具。具有面向对象的思想,具有面向对象的思想,如:如:Visual C+Visual C+,Visual BasicVisual Basic,DelphiDelphi等等。等等。程序程序语言语言总结总结程序设计程序设计语言语言C BASIC FORTRAN PASCAL1.1 C语言发展过程语言的诞生与发展语言的诞生与发展在在C语言诞生以前,系统软件主要是用汇编语言语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很
11、差;但一般的高级语言又难以实读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势)现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性,于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。的新语言。1.1960年年出出现现了了Algol60语语言言,但但该该语语言言主主要要面面向向问问题题,与与硬硬件件较较远远,故故英英国国剑剑桥桥大大学学推推 出出 了了 CPL(Combined Programming Language)2.1967年年,Matin Richards对对CPL进进行行改改进进、简简 化化、推
12、推 出出 了了 BCPL(Basic Combined Programming Language)C语言发展过程 3.1970年年,美美国国贝贝尔尔实实验验室室Ken Thomson 以以BCPL为为基基础础,再再次次简简化化推推出出了了B语语言言,并写了第一个并写了第一个UNIX系统。系统。4.1972年年美美国国贝贝尔尔实实验验室室D.M.Ritchie 在在B语语言言基基础础上上设设计计出出了了C语语言言,并并用用其其将将UNIX系统全部改写并实现。系统全部改写并实现。C语言发展过程 5.经经进进一一步步改改进进,至至1977年年出出现现了了与与具具体体机机器器无无关关的的C编编译译文文
13、本本,从从而而使使C语语言言广广泛泛应用,各种机器皆可使用。应用,各种机器皆可使用。6.1978年年,美美 国国 Brain W.Kernighan与与 Dennis.M.Ritchie 联联合合出出版版一一书书The C Programming Language成成为为 ANSI C之之基础。基础。C语言发展过程7.1983年,美国标准化协会年,美国标准化协会(ANSI)制定了制定了ANSI C。注:注:以ANSI C 为基础:不同机器有不同版本,尤其是函数均应参考 相应的版本。特别说明:特别说明:C语言的编译环境有多种 如:Turbo C,Borland C,Microsoft C 等1.
14、2 C语言的特点语言简洁,紧凑,使用方便,灵活,32个关键字运算符丰富,34种运算符数据结构丰富具有结构化的控制语句语法限制不严格,程序设计自由度大允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作生成目标代码质量高,程序执行效率高可移植性好32个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed s
15、izeof static structswitch typedef unsigned union voidvolatile while32个关键字q if()elseq for()q while()q dowhile()q continueq breakq switchq gotoq return9种控制语句例 C语言与Pascal语言比较C语言 Pascal语言 含义 BEGIN.END 复合语句if(e)s;IF(e)THEN s 条件语句int i;VAR i:INTEGER 定义i为整型变量 int a10;VAR a:ARRAY1.10 OF INTEGER 定义整型数组aint f
16、();FUNCTION f():INTEGER 定义f为返值整型的函数int*p;VAR p:INTEGER 定义p为指向整型变量的指针i+=2;i=i+2 赋值i+2ii+,+i;i=i+1 i自增值结论:C比 Pascal简练,源程序短。C语言与Pascal语言比较算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它 :()-34种运算符C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型v
17、oid定义类型定义类型typedef数值类型数值类型字符类型字符类型char枚举类型枚举类型enum整整 型型浮点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union数据类型/*example1.1 The first C Program*/#include main()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!1.3 简单C程序介绍例1.2/*example1.1 calculate the sum of a and
18、b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%dn,sum);/*This function calculates the sum of x and y */int add(int x,int y)int z;z=x+y;return(z);运行结果:sum=34函数语句预处理命令注释格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main().main()int i,j,sum;sum=0;for(i=1;i
19、10;i+)for(j=1;jy)return x;Else return y;Void Dump()C语言程序的基本结构(续)3、每个语句和数据定义最后以分号结束4、一行可写几句,一句可写在多行上5、程序执行总是从main开始执行与主函数、被调用函数在程序中位置无关6、输入输出由标准函数库提供7、程序中可使用预编译处理命令,如#include8、注释:用/*/对任一部分内容作注释起说明作用,不编译也不执行目的是增强程序的可读性 1.4 C程序的上机步骤独立工具编辑器editor,编译器compiler,连接程序linker集成环境Turbo C,Visual Studio(Visual C+
20、)配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系统硬盘容量约2M,448K RAM运行空间安装Turbo C创建子目录Install若不是可安装盘,将文件拷贝到对应的目录下TC*.*INCLUDELIB*.*SYS*.*Turbo C集成开发环境进入Turbo C进入进入TurboCD:TCTC.exe 主控菜单主控菜单文件操作文件操作FILE:NewLoadSaveWriteto编辑操作编辑操作EDIT:插入插入/修改修改块块查找查找/替换替换编译链接编译链接COMPILELINKMAKE执行执行RUN退出退出TurboCAlt+xAlt+F,Q帮助帮助HelpF1Ctrl+
21、F1基本操作:基本操作:F10-调用主菜单调用主菜单F2-存盘存盘F3-打开打开Alt+F9-CompileCtrl+F9-RunAlt+F5-User Screen文本编辑:文本编辑:-移动光标移动光标PgUp,PgDnPgUp,PgDn-上下翻页上下翻页Ctrl+PgUp,Ctrl+PgDnCtrl+PgUp,Ctrl+PgDn-文件首尾文件首尾Home End Home End DdeleteDdelete Insert Insert BkspaceBkspace块操作块操作:Ctrl+KB-块开始标记块开始标记 Ctrl+KK-块结束标块结束标记记Ctrl+KC-块拷贝块拷贝 Ctrl
22、+KV-块移动块移动Ctrl+KY-块删除块删除 Ctrl+KH-块隐藏块隐藏程序调试:程序调试:F8-Step over F7-Trace intoF4-Goto Cursor Ctrl+F7-Add WatchCtrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset窗口操作:窗口操作:F5-窗口缩放窗口缩放F6-窗口切换窗口切换常用热键 DOS基本概念(Disk Operating System)对计算机系统软硬件资源进行控制与管理是用户和计算机间的接口MS-DOS和PC-DOSDOS的组成引导程序I/O设备管理程序:IO.SYS 或 IBMBIO.C
23、OM文件管理和功能调用程序:MSDOS.SYS或IBMDOS.COM命令处理程序:COMMAND.COM预备知识:DOS基础DOS文件文件概念:存储在磁盘上的一组相关信息文件名:文件标识符文件标识符.扩展名扩展名 文件名中的通配符用途:指定文件组,避免重复操作?与 *u最长8个字符u可用字符:英文字母数字09其它字符:$_!#%&()等u不可用字符:“./:|+=;,空格uDOS设备名:CON LPT1 PRN AUX COM NUL A:Z:例 磁盘上有如下文件:ABCD.XYZ CBCD.XYZABCT.XYZ ABTTS.XYZABID.XYZ TEXTS.TXTABYD.TXT ABC
24、D.BAS1.?B?D.XYZ 2.AB*.XYZABCD.XYZ ABCD.XYZABID.XYZ ABCT.XYZCBCD.XYZ ABID.XYZ ABTTS.XYZ3.*.TXTABYD.TXTTEXTS.TXT4.*.*所有文件u可省略u13个字符u表示文件类型DOS中常用扩展名及其表示文件类型.COM 系统程序文件.EXE 可执行文件.BAT 批处理文件.BAK 备份文件.TXT 文本文件.SYS 系统文件.OBJ 目标文件.LIB 库文件.DAT 数据文件.C C源程序文件DOS目录用途:对文件进行有效组织管理树型目录结构 USERUSERDOSDOSTCTCWANGWANGZH
25、AOZHAOZHANGZHANGINCLUDEINCLUDELIBLIBDOCDOCEXEEXECODECODESYSSYS根目录子目录当前目录:用户目前正在其中工作的目录路径绝对路径:以根目录为起点的路径相对路径:从当前目录开始的路径例 绝对路径 USERZHAODOCch1.doc例 若当前目录为TC 相对路径 INCLUDEstdio.h 常用的内部命令:DIR 显示磁盘文件目录COPY 拷贝文件TYPE 显示文本文件RENAME 更改文件名DEL 删除磁盘文件DATE 显示和设置日期TIME 显示和设置时间CLS 清除显示屏幕 常用的外部命令:FORMAT 磁盘格式化DISKCOPY
26、软盘间拷贝XCOPY 拷贝目录和文件PRINT 打印文件FDISK 硬盘分区DOS命令内部命令:在COMMAND.COM中,驻留内存外部命令:以文件形式驻留在磁盘(.com .exe .bat)DOS命令格式:命令名 参数选择项例 A:FORMAT A:/S/V格式化A驱软盘,将DOS系统文件存入,并为其加上卷标常用DOS命令系统服务命令:DATE 显示和设置日期TIME 显示和设置时间CLS 清屏幕目录操作命令:DIR 显示目录清单 例 C:DIR A:*.C /PMD 建立子目录 例 C:MD WINZIPCD 改变当前目录 例 C:CD TCRD 删除子目录 例 C:RD USERWANGTREE 显示目录结构 例 C:TREE C:/F文件操作命令:TYPE 显示文件内容 例 C:TYPE A:HELLO.C REN 更改文件名 例 C:REN C:*.TXT *.TMPDEL 删除文件 例 C:DEL A:*.*COPY 复制文件 例 C:COPY C:TC*.C A:XCOPY 复制子目录及文件 例 C:XCOPY USER A:/S磁盘操作命令:FORMAT 磁盘格式化 例 A:FORMAT A:/S DISKCOPY 复制软盘 例 A:DISKCOPY A:B: