(6.7)--补充课件第01讲-C语言概述程序设计基础.ppt
第一讲概述第一讲概述C语言程序设计语言程序设计 The C Programming Language第第1 1讲讲-C-C语言概述语言概述前言前言 第第1章章C语言概述语言概述上机实战上机实战作业布置作业布置3C语言程序设计语言程序设计l教学要求教学要求掌握程序设计语言的基本知识常用算法初步的程序设计能力l学习方法学习方法自主学习理论与上机相结合,重视上机实践4l教材和参考书教材和参考书C程序设计(第四版),谭浩强主编,清华大学出版社,2010C语言程序设计实验指导,颜晖主编,高等教育出版社,2012C语言程序设计,何钦铭、颜晖主编,高等教育出版社,2008C程序设计(第四版)学习辅导,谭浩强主编,清华大学出版社,2010C语言程序设计,苏小红主编,高等教育出版社,2011C语言程序设计,李忠月主编,中国水利水电出版社,20105l学习本课程要求学习本课程要求课前预习该课堂要学习的主要内容课堂上集中注意力领会理解老师讲课要点,并做适当笔记注意课堂演示:记录操作方法步骤,以便于自己课后上机操作参考课后及时复习巩固所学内容,不懂的马上就问认真完成课外作业及实验报告6l上机要求上机要求禁做与课程学习无关的事情(如上网聊天、游戏等)看懂编译信息,逐步学会各种调试方法将做好后的实验报告上交到指定的服务器地址:ftp:/10.172.250.252:1161中对应班级的对应文件夹中7l教学安排及教学方式教学安排及教学方式授课学时:讲课50学时+上机50学时上课:采用启发式、案例教学、多媒体教学、分组讨论、课堂练习以及互动式教学、现场实例演示等多种“以学生为主体”的教学方法。实验:课程学习的重点,教学形式一般以“集中讲+集中练+适当总结”方式,课内上机与课外自由上机相结合的方法完成教学任务。本课程严格遵循“教、学、做合一”的原则,真正做到以学生为主体,教师为主导,让学生边学边做,并在实训环境中熟练掌握相关的操作技能和编程方法。各章课时分配及教学内容的具体安排,请见教学进度表和实验运行表。8l要完成的任务要完成的任务浙江省大学生计算机等级考试二级浙江省高校计算机教育考试网http:/ 温州理工温州理工学院学院 10第一讲第一讲C语言概述语言概述本章要求本章要求了解了解C语言的特点,正确使用语言的特点,正确使用C语言中的标识符语言中的标识符掌握掌握C程序的基本组成结构程序的基本组成结构了解了解C程序在程序在PC机上的建立、编译和运行过程机上的建立、编译和运行过程了解了解C语言程序设计的一般思想语言程序设计的一般思想重点重点C程序的基本组成结构程序的基本组成结构难点难点正确使用正确使用C语言中的标识符语言中的标识符C语言程序设计语言程序设计 温州理工温州理工学院学院 11第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介基本的输入输出基本的输入输出最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 12第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间学习哪种程序设计语言最好?学习哪种程序设计语言最好?C语言程序设计语言程序设计 为什么要学好为什么要学好C语言?语言?C语言程序设计语言程序设计 温州理工温州理工学院学院 14Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 15Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 16Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 17Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 18Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 19After the Software WarsC语言程序设计语言程序设计 温州理工温州理工学院学院 20TIOBE Programming Community Index C语言程序设计语言程序设计 温州理工温州理工学院学院 21Historical StoryCharles Antony Richard Hoare(Tony Hoare)(January 11,1934-)Turing Award(1980)Notes on data structuring.In O-J Dahl,E W Dijkstra and C A R Hoare,editors,Structured Programming,pages 83-174.Academic Press,1972.C语言程序设计语言程序设计 温州理工温州理工学院学院 22Historical StoryDonald E.Knuth(January 10,1938-)Turing Award(1974)C语言程序设计语言程序设计 温州理工温州理工学院学院 23Today:Time Goes OnThe Next Major IT TransitionMAINFRAMESMAINFRAMESMINI-COMPUTERSMINI-COMPUTERSPCPCCLIENT-SERVERCLIENT-SERVERINTERNETINTERNET196019701980199020002010SERVICE-ORIENTED SERVICE-ORIENTED ENTERPRISEENTERPRISEEffective DATA STRUCTURES is required.C语言程序设计语言程序设计 温州理工温州理工学院学院 24计算机程序设计概述计算机程序设计概述程序设计语言的发展程序设计语言的发展机器语言机器语言(Machine Language)汇编语言汇编语言(Assemble Language)汇编语言汇编语言和和机器语言机器语言都是面向机器的程序设计语言,都是面向机器的程序设计语言,一般称为一般称为低级语言低级语言。汇编语言程序的执行过程 C语言程序设计语言程序设计 温州理工温州理工学院学院 25计算机程序设计概述计算机程序设计概述高级语言高级语言(High Level Language):高级语言是一种:高级语言是一种与硬件结构及指令系统无关,表达方式比较接近自与硬件结构及指令系统无关,表达方式比较接近自然语言和数学表达式的一种计算机程序设计语言。然语言和数学表达式的一种计算机程序设计语言。优点优点:描述问题能力强,通用性、可读性、可维:描述问题能力强,通用性、可读性、可维护性都较好护性都较好缺点缺点:执行速度较慢,编制访问硬件资源的系统:执行速度较慢,编制访问硬件资源的系统软件较难。软件较难。用高级语言编写的程序称为用高级语言编写的程序称为“源程序源程序”,计算机,计算机不能直接识别和执行,高级语言程序有不能直接识别和执行,高级语言程序有编译编译和和解解释释两种执行方式。两种执行方式。C语言程序设计语言程序设计 温州理工温州理工学院学院 26高级语言程序的编译执行高级语言程序的编译执行将源程序整个编译成等价的,独立的目标程序,将源程序整个编译成等价的,独立的目标程序,然后通过链接程序将目标程序链接成可执行程然后通过链接程序将目标程序链接成可执行程序。序。高级语言编译执行过程C语言程序设计语言程序设计 温州理工温州理工学院学院 27高级语言程序的解释执行高级语言程序的解释执行解释方式是将源程序逐句翻译,翻译一句执行解释方式是将源程序逐句翻译,翻译一句执行一句,边翻译边执行,一句,边翻译边执行,不产生目标程序不产生目标程序。整个。整个执行过程,解释程序都一直在执行过程,解释程序都一直在内存内存中中。高级语言高级语言源程序源程序解释程序解释程序输出结果输出结果高级语言解释执行过程 C语言程序设计语言程序设计 温州理工温州理工学院学院 28第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 29C语言之父语言之父(1943-)New Orleans,USA B,C,UNIX Turing Award(1983)(1941-)York,USA C,UNIX Turing Award(1983)C语言程序设计语言程序设计 温州理工温州理工学院学院 30C语言出现的历史背景语言出现的历史背景C语言程序设计语言程序设计 温州理工温州理工学院学院 31C语言出现的历史背景语言出现的历史背景C语言程序设计语言程序设计 温州理工温州理工学院学院 32C语言出现的历史背景语言出现的历史背景C语言程序设计语言程序设计 温州理工温州理工学院学院 33C语言出现的历史背景语言出现的历史背景C语言程序设计语言程序设计 温州理工温州理工学院学院 34C语言出现的历史背景语言出现的历史背景C语言程序设计语言程序设计 温州理工温州理工学院学院 35第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 36结构化程序设计结构化程序设计(Structured Programming)模块内部程序各部分要按照自顶向下的结构模块内部程序各部分要按照自顶向下的结构划分划分各程序部分应按功能组合各程序部分应按功能组合各程序之间的联系尽量通过调用子程序来实各程序之间的联系尽量通过调用子程序来实现,不用或少用现,不用或少用GOTO方式方式面向对象程序设计面向对象程序设计(Object-Oriented Programming,OOP)面向方面程序设计面向方面程序设计(Aspect-Oriented Programming,AOP)程序设计方法程序设计方法C语言程序设计语言程序设计 温州理工温州理工学院学院 37结构化设计思想的提出结构化设计思想的提出Niklaus E.Wirth(1934-)SwitzerlandPascal,Structured Programming Turing Award(1984)Edsger W.Dijkstra(1930-2002)Netherlands ALGOL,Dijkstras Algorithm Turing Award(1972)C语言程序设计语言程序设计 温州理工温州理工学院学院 38结构化设计思想的提出结构化设计思想的提出1969年,年,E.W.Dijkstra首次提出首次提出了了“结构化程序设结构化程序设计计”(Structured Programming)的的概念概念。1971年年4月,瑞士计算机科学家月,瑞士计算机科学家(Niklaus E.Wirth)在在Communications of ACM上发表了上发表了“Program Development by Stepwise Refinement”,提出,提出“通过通过逐步求精方式开发程序逐步求精方式开发程序”的思想的思想。C语言程序设计语言程序设计 温州理工温州理工学院学院 39结构化设计思想的核心结构化设计思想的核心不要求一步就编制成可执行的程序,而是分若不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。干步进行,逐步求精。第一步编出的程序抽象程度最高,第二步编出的程第一步编出的程序抽象程度最高,第二步编出的程序抽象程度有所降低,序抽象程度有所降低,最后一步编出的程序,最后一步编出的程序即为可执行的程序。用这种方法编程,似乎复杂,即为可执行的程序。用这种方法编程,似乎复杂,实际上优点很多,可使程序易读、易写、易调试、实际上优点很多,可使程序易读、易写、易调试、易维护,也易于保证程序的正确性及验证其正确性。易维护,也易于保证程序的正确性及验证其正确性。Wirth提出的这种结构化程序设计方法又称为提出的这种结构化程序设计方法又称为“自自顶向下顶向下”或或“逐步求精逐步求精”法,在程序设计领域引发法,在程序设计领域引发了一场革命,成为程序开发的一个标准方法,尤其了一场革命,成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。是在后来发展起来的软件工程中获得广泛应用。C语言程序设计语言程序设计 温州理工温州理工学院学院 40结构化设计结构化设计基本思想基本思想对大型的程序设计,使用一些基本的结构来设计程序,无对大型的程序设计,使用一些基本的结构来设计程序,无论多复杂的程序,都可以使用这些基本结构按一定的顺序论多复杂的程序,都可以使用这些基本结构按一定的顺序组合起来。组合起来。三种基本结构三种基本结构顺序结构顺序结构选择结构选择结构循环结构循环结构三种基本结构的特点三种基本结构的特点只有一个入口只有一个入口只有一个出口只有一个出口每一个基本结构中的每一部分都有机会执行到每一个基本结构中的每一部分都有机会执行到结构内不存在结构内不存在“死循环死循环”C语言程序设计语言程序设计 温州理工温州理工学院学院 41结构化程序设计方法结构化程序设计方法要求把程序的结构规定为顺序、选择和循环三种基本要求把程序的结构规定为顺序、选择和循环三种基本机构,并提出了自顶向下、逐步求精、模块化程序设机构,并提出了自顶向下、逐步求精、模块化程序设计等原则。计等原则。结构化程序设计是把模块分割方法作为对大型系统进结构化程序设计是把模块分割方法作为对大型系统进行分析的手段,使其最终转化为三种基本结构,其目行分析的手段,使其最终转化为三种基本结构,其目的是为了解决由许多人共同开发大型软件时,如何高的是为了解决由许多人共同开发大型软件时,如何高效率地完成可靠系统的问题。效率地完成可靠系统的问题。程序的可读性好、可维护性好成为评价程序质量的首程序的可读性好、可维护性好成为评价程序质量的首要条件。要条件。缺点缺点:程序和数据结构松散地耦合在一起。解决此问:程序和数据结构松散地耦合在一起。解决此问题的方法就是采用面向对象的程序设计方法题的方法就是采用面向对象的程序设计方法(OOP)。C语言程序设计语言程序设计 温州理工温州理工学院学院 42C语言结构化程序设计方法语言结构化程序设计方法模块是较小的、能够完成一定任务的、相对独模块是较小的、能够完成一定任务的、相对独立的程序段,可以被看作组成一个程序的逻辑立的程序段,可以被看作组成一个程序的逻辑单元。单元。C语言使用函数作为程序的组成单元。语言使用函数作为程序的组成单元。简化程序设计简化程序设计 便于调试和维护便于调试和维护 使用函数进行程序设计时,一个完整的程序由使用函数进行程序设计时,一个完整的程序由一个主函数一个主函数main和若干个其它函数组成,由主和若干个其它函数组成,由主函数根据需要调用其它函数来实现相应功能,函数根据需要调用其它函数来实现相应功能,调用的关键在于函数之间的数据传递。调用的关键在于函数之间的数据传递。C语言程序设计语言程序设计 温州理工温州理工学院学院 43C语言结构化程序设计方法语言结构化程序设计方法三种基本结构的流程图三种基本结构的流程图C语言程序设计语言程序设计 温州理工温州理工学院学院 44C语言的特点语言的特点C语语言言是是一一种种结结构构化化语语言言。C语语言言功功能能丰丰富富、表表达达能能力力强强、使使用用灵灵活活方方便便、应应用用面面广广、目目标标程程序序效效率率高高、可可移移植植性性好好。既既具具有有高高级级语语言言的的优点,又具有优点,又具有低级语言低级语言的许多特点。的许多特点。语言简洁、紧凑、使用方便、灵活语言简洁、紧凑、使用方便、灵活共有共有32(C99增加增加5个即个即37)个关键字,个关键字,9种控制语句种控制语句程序书写自由,主要用小写字母表示程序书写自由,主要用小写字母表示运算符丰富运算符丰富C的运算符包含的范围很广泛,共有的运算符包含的范围很广泛,共有34种运算符种运算符将将括括号号、赋赋值值、强强制制类类型型转转换换等等都都作作为为运运算算符符处处理理,使使运算类型极其丰富,表达式类型多样化运算类型极其丰富,表达式类型多样化C语言程序设计语言程序设计 温州理工温州理工学院学院 45C语言的特点语言的特点数据结构丰富数据结构丰富整整型型、实实型型、字字符符型型、数数组组类类型型、指指针针类类型型、结结构构体体类类型型、共用体(联合)类型等共用体(联合)类型等可实现复杂的数据结构(如链表、树、堆栈、图等)的运算可实现复杂的数据结构(如链表、树、堆栈、图等)的运算C是理想的结构化语言,符合现代编程风格的要求是理想的结构化语言,符合现代编程风格的要求用函数作为程序的模块单位,实现程序的模块化用函数作为程序的模块单位,实现程序的模块化具具有有结结构构化化的的控控制制语语句句,如如ifelse语语句句、while语语句句、dowhile语句、语句、switch语句、语句、for语句等语句等语法限制不太严格,程序设计自由大语法限制不太严格,程序设计自由大对对数数组组下下标标越越界界不不作作检检查查,由由程程序序编编写写者者自自己己保保证证的的正正确确性;性;整型数据、字符型数据、逻辑型数据可以通用。整型数据、字符型数据、逻辑型数据可以通用。C语言程序设计语言程序设计 温州理工温州理工学院学院 46C语言的特点语言的特点C语语言言允允许许直直接接访访问问物物理理地地址址,能能进进行行位位(bit)操操作作,能能实实现现汇汇编编语语言言的的大大部部分分功功能能,可可以以直直接接对对硬硬件进行操作件进行操作既既具具有有高高级级语语言言的的功功能能,又又具具有有低低级级语语言言的的许许多多功功能能,可用来写系统软件可用来写系统软件有人称有人称C为为“高级语言中的低级语言高级语言中的低级语言”或或“中级语言中级语言”生成的目标代码质量高,程序执行效率高生成的目标代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低一般只比汇编程序生成的目标代码效率低10%20%可移植性好(较之汇编语言)可移植性好(较之汇编语言)C语言比其它高级语言难掌握,对编程人员要求较高。语言比其它高级语言难掌握,对编程人员要求较高。程序员使用程序员使用C语言编写程序会感到限制少、灵活性大,语言编写程序会感到限制少、灵活性大,功能强,可以编写出几乎任何类型的程序。功能强,可以编写出几乎任何类型的程序。C语言程序设计语言程序设计 温州理工温州理工学院学院 47C语言的局限性语言的局限性所有高层机制必须由显式调用函数提供。所有高层机制必须由显式调用函数提供。虽然可以将整个结构作为一个单元进行拷贝,但没有虽然可以将整个结构作为一个单元进行拷贝,但没有处理整个数组或字符串的操作。处理整个数组或字符串的操作。除了由函数的局部变量提供的静态定义和堆栈外,没除了由函数的局部变量提供的静态定义和堆栈外,没有定义任何存储器分配工具,也不提供堆和无用内存有定义任何存储器分配工具,也不提供堆和无用内存回收工具。回收工具。本身没有提供输入本身没有提供输入/输出功能,也没有内置的文件访问输出功能,也没有内置的文件访问方法。方法。只提供简单的单线程控制流,即测试、循环、分只提供简单的单线程控制流,即测试、循环、分组和子程序,它不提供多道程序设计、并行操作、组和子程序,它不提供多道程序设计、并行操作、同步和协同例程。同步和协同例程。C语言程序设计语言程序设计 温州理工温州理工学院学院 48C语言的局限性语言的局限性某些运算符的优先级是不正确的。某些运算符的优先级是不正确的。语法的某些部分可以进一步优化。语法的某些部分可以进一步优化。C语言程序设计语言程序设计 温州理工温州理工学院学院 49第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介C语言的字符集与标识符语言的字符集与标识符C语言的语句语言的语句C语言程序的结构与书写规则语言程序的结构与书写规则基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 50C语言的字符集与标识符语言的字符集与标识符字符是组成语言的最基本的元素。语言字符集由字字符是组成语言的最基本的元素。语言字符集由字母,数字,空格,标点和特殊字符组成。母,数字,空格,标点和特殊字符组成。字母字母小写字母小写字母az共共26个,大写字母个,大写字母AZ共共26个个(C语言中区分字母大小写)语言中区分字母大小写)数字数字09共共10个个空白符空白符空格符、制表符、换行符等统称为空白符。空白空格符、制表符、换行符等统称为空白符。空白符只在字符、常量和字符串常量中起作用。在其符只在字符、常量和字符串常量中起作用。在其它地方出现时,只起间隔作用。它地方出现时,只起间隔作用。C语言程序设计语言程序设计 温州理工温州理工学院学院 51标点和特殊字符标点和特殊字符C语言程序设计语言程序设计 温州理工温州理工学院学院 52C语言标识符语言标识符保留字符:保留字符:C语言的保留字符(也称关键字)共有语言的保留字符(也称关键字)共有32(C99增加增加5个即个即37)个,根据关键字的作用,可分其个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。字和其它关键字四类。数据类型关键字(数据类型关键字(12个):个):char,double,enum,float,int,long,short,signed,struct,union,unsigned,void控制语句关键字(控制语句关键字(12个):个):break,case,continue,default,do,else,for,goto,if,return,switch,while存储类型关键字(存储类型关键字(4个):个):auto,extern,register,static其它关键字(其它关键字(4个):个):const,sizeof,typedef,volatileC99增加了新关键字(增加了新关键字(5个):个):restrict,inline,_Bool,_Complex,_ImaginaryC语言程序设计语言程序设计 温州理工温州理工学院学院 53C语言标识符语言标识符预定义标识符预定义标识符 C语言中除了上述保留字符外,还有一类具有特殊语言中除了上述保留字符外,还有一类具有特殊含义的标识符,它们被含义的标识符,它们被C系统用作库函数名、预编系统用作库函数名、预编译命令,这类标识符称为系统预定义标识符。例如:译命令,这类标识符称为系统预定义标识符。例如:系统库函数系统库函数sin,printf,scanf等等 预编译命令预编译命令define,include,undef,ifdef,endif等等 一般来说,用户在编写一般来说,用户在编写C程序时,不要把这些标识程序时,不要把这些标识再定义为其它用途的标识符(用户自定义标识符)。再定义为其它用途的标识符(用户自定义标识符)。C语言程序设计语言程序设计 温州理工温州理工学院学院 54C语言标识符语言标识符用户定自义标识符用户定自义标识符用户自定义标识符是用户根据编程的需要而定义的用户自定义标识符是用户根据编程的需要而定义的标识符,用于标识变量、符号常量、用户自定义函标识符,用于标识变量、符号常量、用户自定义函数、类型名等。数、类型名等。C规定,标识符只能是字母(规定,标识符只能是字母(AZ,az)、数)、数字(字(09)、下划线()、下划线(_)组成的字符串,并且其)组成的字符串,并且其第一个字符必须是字母或下划线第一个字符必须是字母或下划线。使用自定义标识符的几点说明使用自定义标识符的几点说明标准标准C不限制标识符的不限制标识符的长度长度,但它受各种版本的,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。语言编译系统限制,同时也受到具体机器的限制。标识符中,标识符中,大小写是有区别大小写是有区别的。的。C语言程序设计语言程序设计 温州理工温州理工学院学院 55C语言标识符语言标识符标识符虽然可由程序员随意定义标识符虽然可由程序员随意定义,建议命名应尽量建议命名应尽量有相应的意义,以便阅读理解,作到有相应的意义,以便阅读理解,作到“顾名思义顾名思义”。例如:可用例如:可用sum 表示求和的量,表示求和的量,name 表示姓名等。表示姓名等。不使用不使用C语言的关键字语言的关键字:类型说明符、语句定义符、:类型说明符、语句定义符、预处理命令。预处理命令。标识符不能和用户已编制的函数或标识符不能和用户已编制的函数或C语言库函数语言库函数同同名名。否则程序中调用库函数就会出错。否则程序中调用库函数就会出错。例如,以下标识符是合法的:例如,以下标识符是合法的:a,x,x3,BOOK1,sum5,mysin 以下标识符是非法的:以下标识符是非法的:3s 以数字开头以数字开头 s*T 出现非法字符出现非法字符*-3x 以减号开头以减号开头 bowy-1 出现非法字符出现非法字符-(减号减号)C语言程序设计语言程序设计 温州理工温州理工学院学院 56第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介C语言的字符集与标识符语言的字符集与标识符C语言的语句语言的语句C语言程序的结构与书写规则语言程序的结构与书写规则基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 57C语言的语句语言的语句与其它高级语言一样,与其它高级语言一样,C语言也是利用函数体语言也是利用函数体中的可执行语句,向计算机系统发出操作命令。中的可执行语句,向计算机系统发出操作命令。按照语句功能或构成的不同,可将按照语句功能或构成的不同,可将C语言的语语言的语句分为句分为:控制语句控制语句函数调用语句函数调用语句表达式语句表达式语句空语句空语句复合语句复合语句C语言程序设计语言程序设计 温州理工温州理工学院学院 58C语言的语句语言的语句控制语句完成一定的控制功能。控制语句完成一定的控制功能。C语言只有条控制语句,语言只有条控制语句,又可细分为三种:又可细分为三种:选择结构控制语句选择结构控制语句if()elseswitch()循环结构控制语句循环结构控制语句dowhile()for()while()breakcontinue其它控制语句其它控制语句gotoreturnC语言程序设计语言程序设计 温州理工温州理工学院学院 59C语言的语句语言的语句函数调用语句函数调用语句函数调用语句由一次函数调用加一个分号(语句结束标志)函数调用语句由一次函数调用加一个分号(语句结束标志)构成。例如,构成。例如,printf(This is a C function statement.);表达式语句表达式语句表达式语句由表达式后加一个分号构成。最典型的表达式表达式语句由表达式后加一个分号构成。最典型的表达式语句是,在赋值表达式后加一个分号构成的赋值语句。例语句是,在赋值表达式后加一个分号构成的赋值语句。例如,如,num=5 是一个赋值表达式,而是一个赋值表达式,而num=5;却是一个赋却是一个赋值语句。值语句。空语句空语句空语句仅由一个分号构成。显然,空语句什么操作也不执空语句仅由一个分号构成。显然,空语句什么操作也不执行。例如,下面就是一个空语句:行。例如,下面就是一个空语句:;C语言程序设计语言程序设计 温州理工温州理工学院学院 60空语句的作用空语句的作用空语句是一种概念,空语句是一种概念,C语言的空语句仅由分号语言的空语句仅由分号构成,在编译时不产生任何指令,在执行时不构成,在编译时不产生任何指令,在执行时不产生任何操作。空语句常用于:产生任何操作。空语句常用于:构成标号语句,标识程序中相关位置。构成标号语句,标识程序中相关位置。循环语句中空循环体。循环语句中空循环体。模块化程序中未实现的模块及暂不联入的模块。模块化程序中未实现的模块及暂不联入的模块。main()while(getchar()!=n);/只要从键盘输入的字符不是回车则重新输入。只要从键盘输入的字符不是回车则重新输入。C语言程序设计语言程序设计 温州理工温州理工学院学院 61C语言的语句语言的语句复合语句复合语句复合语句是由大括号括起来的一组(也可以是复合语句是由大括号括起来的一组(也可以是1条)条)语句构成。例如:语句构成。例如:main()/*复合语句。注意:右括号后不需要分号。复合语句。注意:右括号后不需要分号。*/在语法上和单一语句相同,即单一语句可以出现的在语法上和单一语句相同,即单一语句可以出现的地方,也可以使用复合语句。地方,也可以使用复合语句。复合语句可以嵌套,即复合语句中也可出现复合语复合语句可以嵌套,即复合语句中也可出现复合语句。句。C语言程序设计语言程序设计 温州理工温州理工学院学院 62第一讲第一讲C语言概述语言概述计算机程序设计概述计算机程序设计概述C语言出现的历史背景语言出现的历史背景C语言的特点语言的特点C语言简介语言简介C语言的字符集与标识符语言的字符集与标识符C语言的语句语言的语句C语言程序的结构与书写规则语言程序的结构与书写规则基本的输入输出函数基本的输入输出函数最简单的最简单的C语言程序举例语言程序举例C语言程序的上机过程语言程序的上机过程小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间C语言程序设计语言程序设计 温州理工温州理工学院学院 63C语言程序的总体结构语言程序的总体结构一个完整的一个完整的C语言程序,语言程序,是由一个是由一个main()函数(又函数(又称主函数)和若干个其它称主函数)和若干个其它函数结合而成的。函数结合而成的。程序一般用小写字母书写程序一般用小写字母书写每个程序有且只有一个每个程序有且只有一个main()C程序是函数构成的,函数程序是函数构成的,函数是是C程序的基本单位程序的基本单位函数:系统提供的库函数、函数:系统提供的库函数、用户设计的函数用户设计的函数函数体必须在函数体必须在之间之间每个语句的结尾,必须要有每个语句的结尾,必须要有“;”作为终止符作为终止符可用可用/*/或或/作注释作注释#include /*头文头文件件*/main()/*主函数主函数*/printf(Hello,world n);/*输出语句输出语句*/C语言程序设计语言程序设计 温州理工温州理工学院学院 64C语言程序的结构与书写规则语言程序的结构与书写规则求两个数中的较大数求两个数中的较大数#include main()/*定义主函数定义主函数*/int a,b,c;scanf(%d,%d,&a,&b);c=max(a,b);/*调用调用max函数函数*/printf(max=%d,c);/*输出输出c的值的值*/int max(int x,int y)/*定义定义max函数函数*/int z;if(xy)z=x;else z=y;return(z);/*将将z的值返回的值返回*/C语言程序设计语言程序设计 温州理工温州理工学院学院 65C语言程序的结构与书写规则语言程序的结构与书写规则函数是函数是C语言程序的基本单位语言程序的基本单位main()函函数数的的作作用用,相相当当于于其其它它高高级级语语言言中中的的主主程程序序;其其它它函函数数的的作作用用,相相当当于于子子程程序序。这这种种特特点使得容易实现程序的模块化。点使得容易实现程序的模块化。C语言程序总是从语言程序总是从main()函数开始执行。函数开始执行。一个一个C语言程序,总是从语言程序,总是从main()函数开始执行,而不论函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。行完毕。习惯上,将主函数习惯上,将主函数main()放在最前头。放在最前头。C的函数库十分丰富,的函数库十分丰富,ANSI C约提供约提供100多个库多个库函数,而函数,而Turbo C和和MS C 4.0则提供约则提供约300多个库多个库函数。函数。C语言程序设计语言程序设计 温州理工温州理工学院学院 66C语言程序的结构与书写规则语言程序的结构与书写规则函数的一般结构函数的一般结构 任何函数(包括主函数任何函数(包括主函数main())都是由函数说明)都是由函数说明和函数体两部分组成。其一般结构如下:和函数体两部分组成。其一般结构如下:函数首部函数首部函数体函数体函数返回值的类型函数返回值的类型 函数名函数名(函数参数表函数参数表)说明语句部分;说明语句部分;执行语句部分;执行语句部分;C语言程序设计语言程序设计 温州理工温州理工学院学院 67C语言程序的结构与书写规则语言程序的结构与书写规则函数首部函数首部由函数返回值类型、函数名和函数参数表三部分组由函数返回值类型、函数名和函数参数表三部分组成。成。函数参数表的格式为:函数参数表的格式为:数据类型数据类型 形参形参1,数据类型数据类型 形参形参2函数返回值的类型函数返回值的类型 函数名函数名 函数参数表函数参数表 int max (int x,int y )即使没有函数参数,一个函数名后面必须跟一对圆即使没有函数参数,一个函数名后面必须跟一对圆括弧。括弧。C语言程序设计语言程序设计 温州理工温州理工学院学院 68C语言程序的结构与书写规则语言程序的结构与书写规则函数体函数体在在函函数数声声明明部部分分后后,大大括括号号(必必须须配配对对使使用用)内内的的部分。部分。函函数数体体一一般般由由声声明明语语句句和和可可执执行行语语句句两两部部分分构构成成。特殊情况下可以既无声明语句,也无可执行语句。特殊情况下可以既无声明语句,也无可执行语句。声声明明语语句句部部分分由由变变量量定定义义、自自定定义义类类型型定定义义、自自定义函数说明、外部变量说明等组成。定义函数说明、外部变量说明等组成。可执行语句一般由若干条可执行语句构成。可执行语句一般由若干条可执行语句构成。C语言程序设计语言程序设计 温州理工温州理工学院学院 69C语言程序的结构与书写规则语言程序的结构与书写规则main()int num1,num2;printf(Input the first integer number:);scanf(%d,&num1);printf(Input the second integer number:);scanf(%d,&num2);printf(max=%dn,max(num1,num2);函函数数体体变量定义部分变量定义部分可执行语句部分可执行语句部分C语言程序设计语言程序设计 温州理工温州理工学院学院 70C语言程序的结构与书写规则语言程序的结构与书写规则源程序书写格式源程序书写格式所有