计算机程序设计基础(C语言)1PPT课件1.课堂要求很严格。2.多听,适时做笔记。3.上课不能讲闲话。4.课后认真完成作业、实验报告。5.有问题,及时与老师联系。教学要求2PPT课件选用教材与参考书主教科书顾治华、陈天煌等《C语言程序设计》机械工业出版社2007.2参考教材顾治华、陈天煌等《C语言程序设计实验指导》机械工业出版社2007.2参考书谭浩强《C语言程序设计》清华大学出版社3PPT课件课程内容第一章C语言程序设计概述第二章算法及算法设计简介第三章数据描述与基本操作第四章选择结构程序设计第五章循环结构程序设计第六章数组与指针第七章函数与模块化程序设计方法4PPT课件第一章C语言程序设计概述5PPT课件1.1程序设计的概念1.2C语言的产生及发展1.3简单C程序介绍1.4C程序的上机步骤1.5C语言的基本语法和基本结构1.6本章要点小结6PPT课件1.1程序设计的概念1.1.1程序设计语言1.1.2程序设计的概念7PPT课件计算机计算机是用来延伸人的能力的工具,需要人来驾驭我们的职责是让非计算机专业的人更容易驾驭它完成这一目标的主要手段之一就是“编程(Programming)”8PPT课件计算机基本工作过程整个过程的执行者是硬件,但硬件是受软件控制的编程,就是编写软件,使硬件按照人的意图工作9PPT课件计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯·诺依曼机”结构大脑眼/耳/口程序和数据执行结果10PPT课件软件的形成软件(Software)的形成程序员(Programmer)编写程序源代码(SourceCode)编译器(Compiler)把源代码转换为可被计算机理解的机器代码(MachineCode)并把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上11PPT课件机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象1.1.1程序设计语言12PPT课件程序设计语言的故事计算机为什么用二进制呢?为什么不用我们日常熟悉的十进制呢?二进制在在电器元件中容易实现计算机进行二进制运算比进行十进制运算要简单得多13PPT课件程序设计语言的故事机器语言编写的1+1程序汇编语言(AssembleLanguage)编写的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,114PPT课件程序设计语言的故事BASIC语言编写的1+1程序C语言编写的1+1程序PRINT1+1#includestdio.hmain(){printf(%d\n,1+1);}15PPT课件5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN9016PPT课件1.1.2程序设计的概念程序设计就是用计算机语言来编写程序的过程。什么是程序?著名计算机科学家沃思提出有名的公式:算法+数据结构=程序17PPT课件算法即问题的求解过程、计算机的工作步骤。数据结构即对参与运算的数据怎样进行合理的组织、安排,以提高程序运行的效率和求解的精确性。程序的两大要素:数据结构、算法18PPT课件1.2C语言的产生和发展1.2.1C语言的产生1.2.2C语言的发展1.2.3C语言的特点19PPT课件1.2.1C语言的产生一切从一个叫“SpaceTravel”的电子游戏开始的……KenThompson为了让他的游戏能在PDP-7上运行,用汇编语言给PDP-7写了一个操作系统—UNIX汇编太不好用了,Thompson需要高级语言试验了一些高级语言,包括Fortran,都不理想他在BCPL基础上,自己设计了一个B语言UNIX开始发展,B也不够用了DennisRitchie加入,把B改造成C开始用C重写UNIX20PPT课件1.2.2C语言的发展C语言发展过程产生过程时间:1972~1973地点:美国贝尔实验室目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.RitchieC标准标准C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年国际标准的ANSIC21PPT课件Ritchie和Thompson在开发UNIX22PPT课件接受美国国家技术勋章23PPT课件C语言的祖师爷DennisM.Ritchie24PPT课件Ritchie漫画像25PPT课件1.C语言本身既有一般高级语言的特点,又由低级语言(汇编语言)的特点。2.C语言是一种结构化的程序设计语言,它具有实现顺序、分支、循环三种基本结构化控制的语句。3.C语言简洁,紧凑,使用方便灵活。只有32个保留字,9种控制语句,书写形式自由。4.数据类型丰富。有整型、实型、字符型、数组型、指针型、结构体型、共用体型和枚举型等。1.2.3C语言的特点26PPT课件5、运算功能强。有32种运算符,包括了算术运算、关系运算、逻辑运算、位运算、指针运算等。6、目标代码质量高,运行速度快。7、可移植性强。8、语法限制不太严格,程序设计自由度大。1.2.3C语言的特点27PPT课件C语言是编译型语言一种编译语言对应一种编译器按照该语言的语法编写程序源代码,把自己的思想融入到代码中编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用28PPT课件C语言与计算机系统层次关系29PPT课件1.3简单C程序介绍30PPT课件C程序格式和结构特点第一个程序Hello,World!/*example1.1ThefirstCProgram*/#includestdio.hmain(){printf(“Hello,World!”);}注释编译预处理函数语句输出:Hello,World!31PPT课件/*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语句预处理命令注释主函数子函数32PPT课件格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main(){……………….…………………………..…………..……………….………………………….……………….………………..}main(){inti,j,sum;sum=0;for(i=1;i10;i++){for(j=1;j10;j++){sum+=i*j;}}printf(“%d\n”,sum);}优秀程序员的素质之一:使用TAB缩进{}对齐有足够的注释有合适的空行33PPT课件结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/**/为注释,不能嵌套不产生编译代码例:/*Thisisthemain/*ofexample1.1*/*/非法编译预处理命令①函数首部:包括函数名、函数类型、函数参数名、参数类型。②函数体:声明部分,执行部分。34PPT课件1.4C程序的上机步骤35PPT课件编辑链接编译执行程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c或.cpp.obj.exe开始编辑编译有错?执行连接结果正确结束可执行目标程序f.exe源程序f.c目标程序f.obj库函数和其他目标程序YesNoYesNo36PPT课件1.5C语言的基本语法和结构1.5.1C语言的基本语法1.5.2C语言的基本结构37PPT课件1.5.1C语言的基本语法标识符关键字运算符分隔符常量注释符字符集38PPT课件标识符常量、变量、语句标号以及自定义函数的名称只能是字母、数字和下划线组成的字符串,第一个字符必须是字母或下划线标准C不限制标识符长度,但一般不超过8字符标识符大小写有区别标识符名最好能“顾名思义”39PPT课件32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile40PPT课件9种控制语句:if()~else~switch~case~for()~while()~do~while()continuebreakgotoreturn41PPT课件34种运算符:算术运算符:+-*/%++--关系运算符:====!=逻辑运算符:!&&||位运算符:~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.-下标运算符:[]其它:()-42PPT课件1.5.2C语言的基本结构(1)顺序结构ABab43PPT课件(2)选择结构,或称分支结构此结构中必包含一个判断框。根据给定的条件P是否成立而选择执行A框或B框abBAp不成立成立44PPT课件(3)循环结构,它又称为重复结构,即反复执行某一部分的操作。又两类循环结构:a.当型(while型)循环结构ap1TFAbb.直到型(Until型)循环结构aATFbp245PPT课件1.6本章要点小结程序设计的概念C语言的产生及发展C语言的特点C程序的介绍和上机步骤C语言的基本语法和结构46PPT课件本章课堂练习(1)以下说法中正确的是().A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分47PPT课件解答:C解释:C语言程序总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。除main函数外,其它函数都是在执行main函数时被调用执行的。在C语言中,函数不允许嵌套定义。习惯上,将主函数main()放在最前头,但并不是必须的。48PPT课件(2).以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面49PPT课件解答:D解释:凡是用“/*”和“*/”括起来的文字,都是注释。其出现的位置可以