c语言程序设计(第三版)谭浩强-完美!.ppt
《c语言程序设计(第三版)谭浩强-完美!.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计(第三版)谭浩强-完美!.ppt(534页珍藏版)》请在冰豆网上搜索。
C程序设计,谭浩强编著清华大学出版社,教材、参考书与课时安排,教材C程序设计(第二版)谭浩强编著清华大学出版社参考书C语言程序设计教程谭浩强高等教育出版社C高级实用程序设计王士元清华大学出版社C程序设计试题汇编谭浩强清华大学出版社课时安排64学时(理解熟悉),熟记C语言的基本概念熟悉TurboC的上机操作环境会读、会编、会调试C程序学习要点熟记C语言的语法学会算法分析与算法设计,课程目的,课程要求,课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间,目录,第1章C语言概述,C语言程序设计第一章C语言概述,1.1C语言发展历史程序设计语言的发展,CPU指令系统,由0、1序列构成的指令码组成如:
10000000加10010000减,用助记符号描述的指令系统,可进行地址、位操作如ADDA,B编写系统软件,直接对硬件操作,可读性,移植性差,面向机器的语言,C语言程序设计第一章C语言概述,可读性,移植性好,编写应用程序一般较难实现汇编语言的某些功能如:
地址和位的操作,C语言兼有高级和低级语言的功能适合写系统软件和应用软件又称中级语言,C语言发展过程产生背景ALGOL60CPL语言BCPLB语言,写UNIX系统产生过程时间:
19721973地点:
美国贝尔实验室目的:
UNIX操作系统设计人:
Ken.Thompson和Dennis.M.RitchieC标准标准C:
1978年K&R合著TheCProgrammingLanguageANSIC:
1983年87ANSIC:
1987年1990年国际标准的ANSIC,1994年再次修订。
C版本MicrosoftC或称MS-CTurboC或称TC,C语言程序设计第一章C语言概述,1.2C语言的特点语言简洁、紧凑、灵活运算符丰富数据结构、数据类型丰富链表、树、栈程序设计结构化、模块化结构化控制语句:
ifelse、while、switch、for函数作为模块单位语法不严格、程序设计自由度大可以访问内存地址、进行位运算生成目标代码质量高可移植性好,C语言程序设计第一章C语言概述,32个关键字:
(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileTurboC扩充了11个关键字:
asm_cs_ds_es_sscdeclfarhugeinterruptnearpascal注意:
在C语言中,关键字都是小写的。
C语言程序设计第一章C语言概述,C语言简洁、紧凑,使用方便、灵活。
ANSIC一共只有32个关键字,见365页附录B,9种控制语句:
if()elsefor()while()dowhile()continuebreakswitchgotoreturn,C语言程序设计第一章C语言概述,C语言有9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。
C语言程序设计第一章C语言概述,表1.1C语言与Pascal语言比较,通过表1.1我们可以得出结论:
C比Pascal简练,因此源程序更短,编程效率高。
34种运算符:
算术运算符:
+-*/%+-关系运算符:
=!
=逻辑运算符:
!
&|位运算符:
|&赋值运算符:
=及其扩展条件运算符:
?
:
逗号运算符:
指针运算符:
*&求字节数:
sizeof强制类型转换:
(类型)分量运算符:
.-下标运算符:
其它:
()-注意:
各种运算符混合使用,其优先级与结合方法是难点,可先预习。
C语言程序设计第一章C语言概述,C语言运算符丰富(附录C),C语言程序设计第一章C语言概述,C语言数据结构丰富,1.3简单的C程序介绍,/*example1.1ThefirstCProgram*/#includevoidmain()printf(“Thisisacprogram.n”);,C语言程序设计第一章C语言概述,输出:
Thisisacprogram.,例1.1第一个程序Thisisacprogram.,rintf语句中的“n”是换行符,例1.2求俩个数的和,/*example1.1calculatethesumofaandb*/#include/*Thisisthemainprogram*/voidmain()inta,b,sum;/*定义变量*/a=10;b=24;sum=add(a,b);printf(”sum=%dn,sum);/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty)intz;z=x+y;return(z);,运行结果:
sum=34,C语言程序设计第一章C语言概述,rintf语句中的“%d”是表示“十进制整数类型”,C语言程序设计第一章C语言概述,例1.3从键盘输入两个整数,输出其中较大的数,#includevoidmain()intmax(intx,inty)inta,b,c;scanf(“%d,%d”,scanf语句中“&a”的含义是“取地址”,输入:
10,20输出:
max=20,声明部分,定义变量,调用max函数,返回值赋给c,定义max子函数,函数值、形参x、y为整型,通过max函数将z值带回调用处,C语言格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式,C语言程序设计第一章C语言概述,main().,main()inti,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);,优秀程序员的素质之一:
使用TAB缩进对齐有足够的注释有合适的空行,C语言结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main(),可以放在程序中任一位置程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。
程序语句C程序由语句组成用“;”作为语句终止符注释/*/为注释,不能嵌套不产生编译代码,例:
/*Thisisthemain/*ofexample1.1*/*/,编译预处理命令,C语言程序设计第一章C语言概述,1.4C程序的上机步骤C程序开发步骤,file.exe,C语言程序设计第一章C语言概述,程序代码的录入,生成源程序*.c,语法分析查错,翻译生成目标程序*.obj,与其它目标程序或库链接装配,生成可执行程序*.exe,TurboC集成开发环境配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系统硬盘容量约2M,448KRAM运行空间安装TurboC创建子目录Install若不是可安装盘,将文件拷贝到对应的目录下,C语言程序设计第一章C语言概述,进入TurboCD:
TCTC.exe主控菜单文件操作FILE:
NewLoadSaveWriteto编辑操作EDIT:
插入/修改块查找/替换编译链接COMPILELINKMAKE执行RUN退出TurboCAlt+xAlt+F,Q帮助HelpF1Ctrl+F1,C语言程序设计第一章C语言概述,基本操作:
F10-调用主菜单F2-存盘F3-打开F1-帮助信息Alt+F9-CompileCtrl+F9-RunAlt+F5-UserScreenAlt+X-退出Tc,常用热键,文本编辑:
-移动光标PgUp,PgDn-上下翻页Ctrl+PgUp,Ctrl+PgDn-文件首尾Home行首End行尾DdeleteInsertBkspace,块操作:
Ctrl+KB-块开始标记Ctrl+KK-块结束标记Ctrl+KC-块拷贝Ctrl+KV-块移动Ctrl+KY-块删除Ctrl+KH-块隐藏,程序调试:
F8-StepoverF7-TraceintoF4-GotoCursorCtrl+F7-AddWatchCtrl+F8-ToggleBreakpointCtrl+F2-ProgramReset,窗口操作:
F5-窗口缩放F6-窗口切换,C语言程序设计第一章C语言概述,课后作业预习“题解与上机指导”一书中P181199页的14.314.10节P236页实验1教材P12:
1.5、1.6、1.7、1.8题。
注意:
有关设计程序的作业,必须经过上机调试!
C语言程序设计第一章C语言概述,算法的概念,简单算法举例,算法的特性,怎样表示一个算法,第2章程序的灵魂算法,C语言程序设计第二章程序的灵魂算法,结构化程序设计方法,C语言程序设计第二章程序的灵魂算法,程序包括的内容:
数据结构:
数据的类型和组织形式算法:
操作步骤的描述,NikiklausWirth提出:
教材认为:
程序,=算法+数据结构+程序设计方法+语言工具和环境,灵魂,加工对象,工具,C语言程序设计第二章程序的灵魂算法,2.1算法的概念为解决一个问题而采取的方法和步骤,就成为算法。
例如:
歌曲的乐谱,建造房子等。
算法核心是解决“做什么”和“怎么做”的问题。
P15页的例2.1,求15之积。
可以有多种方法,一般采用简单和运算步骤少的。
准确、高效计算机算法类别数值运算算法非数值运算算法,C语言程序设计第二章程序的灵魂算法,2.2简单算法举例例2.1方法1:
累乘方法2:
用循环结构解决,灵活、通用。
例2.2通过循环选择打印例2.3判断闰年例2.4累加求级数的和,循环改变正负号和分母加1。
例2.5判断素数,课后认真思考,加深什么是算法的概念,C语言程序设计第二章程序的灵魂算法,2.3算法的特性有穷性在合理范围内可完成确定性无歧义性有零个或多个输入从外界得到信息有一个或多个输出问题的答案有效性每步有确定的结果,C语言程序设计第二章程序的灵魂算法,2.4怎样表示一个算法自然语言表示2.2节例。
易懂,文字冗长,易歧义性流程图表示用流程图符号构成,直观,易懂N-S流程图表示伪代码表示计算机语言表示,顺序结构选择结构循环结构,C语言程序设计第二章程序的灵魂算法,传统流程图流向混乱、可读性差,所以应该采用结构化流程图。
结构化程序设计基本思想:
任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:
由三种基本结构反复嵌套构成的程序优点:
结构清晰,易读,提高程序设计质量和效率,三种基本结构顺序结构,C语言程序设计第二章程序的灵魂算法,选择结构,二分支选择结构,多分支选择结构,C语言程序设计第二章程序的灵魂算法,循环结构,当型循环结构,直到型循环结构,注:
A,B,A1.An可以是一个简单语句,也可以是一个基本结构,C语言程序设计第二章程序的灵魂算法,三种基本结构的共同特点:
只有一个入口;只有一个出口;结构内的每一部分都有机会被执行到;结构内不存在“死循环”。
C语言程序设计第二章程序的灵魂算法,2.5结构化程序设计方法结构化程序:
用三种基本结构组成的程序基本设计思路:
复杂问题分解成几个最基本问题,再分别处理。
采用的方法:
自顶向下;逐步细化;模块化设计:
复杂问题按功能分成多个子模块结构化编码:
正确采用三种基本结构实现,C语言程序设计第二章程序的灵魂算法,课后作业P36页习题:
2.4、2.8(结合实验指导读懂答案)用N-S图表示2.4题中用传统流程图求解以下问题:
将一个16进制数转化为10进制数复习二进制的基本概念“计算机文化基础”一书中P2733页,第