C语言程序设计21.为什么学这门课?C语言的基础性。C语言的市场占有率很高。后续课程要用,实际工作中要用。现成的应用软件解决不了很多新问题。将知道人的智力是如何延伸的。学会编程才能更好地理解计算机是如何工作的。32.学习任务学习C语言基本知识与语法规则。掌握基本算法与程序设计方法。提高上机编程和调试程序的能力。3.学时安排共64学时=4学时/周*16周44.学习方法建立学习的兴趣(兴趣是第一位的)要抓重点、难点、基本点肯下功夫、用足时间(有一份耕耘,就有一份收获)亲自上机,强化实践(实践是检验真理的唯一标准,要在游泳中学习游泳)55.要求上课听得懂作业自己做上机有结果不是听会的,不是看会的,而是练会的!6主要内容引言算法的基本概念及描述方法数据类型、运算符和表达式输入函数和输出函数选择语句和循环语句函数指针和数组结构设计思想及范例(选修)几个小知识7计算机与信息技术计算机技术与通信技术结合,构成了信息技术(InformationTechnology),诞生了一个新词:IT。嵌入式系统是IT未来的主要发展方向之一典型的嵌入式系统有:机器人、手机和智能家电等8计算机计算机是用来延伸人的能力的工具,需要人来驾驭。我们的职责是让非计算机专业的人更容易驾驭它。完成这一目标的主要手段之一就是“编程(Programming)”。冯.诺依曼结构:计算机运算器控制器存储器主机:I/O设备:键盘、显示器等中央处理器CPU10输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯·诺依曼机”结构大脑记忆装置眼睛和耳朵11软件(Software)的形成程序员(Programmer)编写程序源代码(SourceCode)。编译器(Compiler)把源代码转换为可被计算机理解的机器代码(MachineCode)。可执行文件(ExecutableFile),把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上。12软件运行过程的简单描述软件的运行计算机把机器代码读入到内存(Memory)由CPU运行这些代码读取输入(Input)产生输出(Output)完成程序员预定的功能13程序设计语言(ProgrammingLanguage)是人与计算机进行交流的语言。计算机直接能读懂的语言机器语言(MachineCode),也叫机器代码一种纯粹的二进制语言。程序设计语言的故事14程序设计语言的故事计算机为什么用二进制呢?为什么不用我们日常熟悉的十进制呢?二进制在在电器元件中容易实现计算机进行二进制运算比进行十进制运算要简单得多15程序设计语言的故事机器语言编写的1+1程序汇编语言(AssembleLanguage)编写的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,116程序设计语言的故事BASIC语言编写的1+1程序C语言编写的1+1程序PRINT1+1#includestdio.hmain(){printf(%d\n,1+1);}17流行语言应用编程语言机器语言汇编语言BasicPascalCC++JavaC#专项编程语言LotusNotesPowerBuilderWeb编程语言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA来自TIOBEProgrammingCommunity的语言排行榜第一章引言1.1C语言及其特点1.2简单的C程序介绍1.3C程序的编译、链接1.4上机操作1.5算法以及算法的描述方法21主要内容C语言及其特点简单的C程序介绍C程序的编译、链接上机操作算法以及算法的描述方法221.1C语言的发展过程编程语言的发展过程机器语言汇编语言高级语言C语言23C程序设计语言硬件(Hardware)操作系统(OS)应用程序(Application)应用平台基于平台的应用程序低级语言的地盘高级语言的地盘C语言的地盘24C程序设计语言C语言被分类位高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。很多流行语言、新生语言都借鉴了它的思想、语法,从C++,到Java,再到C#。正确地学好C语言,是学习这些流行语言的基础。25CPLCombinedProgrammingLanguage1963年,剑桥大学BCPLBasisCombinedProgrammingLanguage1967年,剑桥大学B语言1970年,贝尔实验室C语言CombinedLanguage(组合语言)1973年,贝尔实验室C++(Cplusplus)贝尔实验室1.1C语言的发展过程26C语言的设计者DennisM.Ritchie27和Unix的设计者KenThompson接受美国国家技术勋章28Ritchie和Thompson在开发UNIX29Unix操作系统的主力语言语言简洁、紧凑,使用方便、灵活运算符和数据类型丰富(如字符处理)是较低级的高级语言(能访问物理地址,对硬件控制等)1.1C语言特点30主要内容C语言及其特点简单的C程序介绍C程序的编译、链接上机操作算法以及算法的描述方法311.2简单的C程序介绍1.输出“世界你好!”(即“helloword!”)main(){printf(“helloword!\n”);/*输出“helloword!”*/}321.2简单的C程序介绍1.输出“世界你好!”(即“helloword!”)也可以写成:main(){printf(“helloword!\n”);}332.输入a,b两个数的值,输出这两个数中的较大者。342.输入a,b两个数的值,输出这两个数中的较大者。x,yz{a,bmax}main#includestdio.hintmax(intx,inty){intz;if(xy)z=x;elsez=y;return(z);}voidmain(){inta,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d\n,c);}353.说明C程序是由函数构成的,可以有参数也可以无参数函数由函数首部和函数体组成一个C程序总是从main函数开始执行的C程序的书写格式较为自由,但最好规范化每个语句和数据定义的最后必须有分号C语言的输入输出由函数提供,并无输入输出语句可以有注解(/*和*/配合起来使用),而且尽量有。36主要内容C语言及其特点简单的C程序介绍C程序的编译、链接上机操作算法以及算法的描述方法371.3C程序的编译、链接解释方式编译方式38编译方式1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。分为五个步骤:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。39解释方式解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。4041主要内容C语言及其特点简单的C程序介绍C程序的编译、链接上机操作算法以及算法的描述方法421.4上机操作TC环境(TurboC2.0or3.0)VC环境(VisualC++6.0)43(1)开机,进入Windows系统(2)调用TurboC程序,进入TC环境;(3)在Edit状态下输入书面程序和修改源程序;(4)在Compile状态下进行编译、链接;(5)在Run状态下运行.exe文件;(6)退出TC环境,回到DOS状态或Windows系统。TC环境(TurboC2.0or3.0)基本操作:F10-----调用主菜单F2------存盘F3------打开Alt+F9------Compile编译Ctrl+F9------Run运行Alt+F5------UserScreen查看结果常用热键文本编辑:-------移动光标PgUp,PgDn------上下翻页Ctrl+PgUp,Ctrl+PgDn------文件首尾HomeEndDdeleteInsertBkspace块操作:Ctrl+KB-------块开始标记Ctrl+KK--------块结束标记Ctrl+KC-------块拷贝Ctrl+KV--------块移动Ctrl+KY-------块删除Ctrl+KH--------块隐藏程序调试:F8-----StepoverF7-------TraceintoF4-----GotoCursorCtrl+F7--------AddWatchCtrl+F8------ToggleBreakpointCtrl+F2--------ProgramReset窗口操作:F5-----窗口缩放F6-----窗口切换48VC环境(VisualC++6.0)进入VisualC++编译、连接、运行、调试VC环境(VisualC++6.0)54主要内容C语言及其特点简单的C程序介绍C程序的编译、链接上机操作算法以及算法的描述方法551.5算法以及算法的描述方法对数据的描述对操作的描述数据与操作间的关系数据是操作对象,操作的目的是对数据进行加工处理以得到期望的结果。指定数据的类型和组织形式,即:数据结构。解决问题的操作步骤,即:算法。56为解决一个问题而采取的方法和步骤。(描述解题的操作步骤)计算机算法分类数值算法:数值运算(求方程的根等)非数值算法:常用于事务管理(图书检索等)算法定义57算法的特点有穷性确定性输入数据输出数据可行性、、、58用自然语言表示用流程图表示用N-S流程图表示用伪代码表示用计算机语言表示算法描述59示例1用y=x2-2x+3计算,当x=0,1,2,3,4,5所对应的y值1.置x的下界为0;2.置x的上界为n=5;3.当x≤n时,重复执行如下3步,否则算法停止。用公式计算y值输出一组x和y的值x值增加1用自然语言描述60流程图是通过箭头相互连接的几何图形来表达程序运行的方法。流程图ANSI规定的一些常用流程图符号。起止框输入输出框判断框处理框流程线ABBAP1、顺序结构2、选择结构PA3、循环结构PA当型循环直到型循环63N-S流程图一种流程图形式,在这种流程图中完全去掉了流程线,全部算法写在一个矩形框内.顺序结构选择结构循环结构ABNoABPYesWhileP1AUntilP2A641、对于循环结构,只有两种画法,如下:2、对于直到型循环,条件为真时继续执行,否则退出循环。N-S流程图----注意事项65伪代码伪代码是一种描述语言。它只是一种描述程序执行过程的工具,是面向读者的,不能直接用于计算机,实际使用时还需转换成某种计算机语言来表示。例:求5!BEGIN(算法开始)1=t2=iwhilei=5{t*i=t,i+1=i}printtEND(算法结束)67用y=x2-2x+3计算,当x=0,1,2,3,4,5所对应的y值1.置x的下界为0;2.置x的上界为n=5;3.当x≤n时,重复执行如下3步,否则算法停止。用公式计算y值输出一组x和y的值x值增加1用自然语言描述开始0x5nxn?y=x2-2x+3输出:x与y值增值:x=x+1结束YN用流程图描述用N-S图描述0x5n是xn否计算:y=x2-2x+3打印:x与y值增值:x=x+1直到xn70用计算机语言表示--用C语言描述main(){intx,y,n;x=0;n=5;while(x=n){y=x*x-2*x+3;printf(“%d%d”,x,y);x=x+1;}}71例:判断一个数能否同时被3和5整除。分别用流程图、N-S流程图、伪代码来描述这个问题的解决方法。72自然语言: