单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C语言程序设计教程,第一章 C语言程序设计基础,1,第一章 C语言程序设计基础 1,本章要求:,了解C语言的特点、与其它高级语言间异同;,了解C程序在PC机上的建立、编译和运行过程;,了解C语言程序设计思想;,重点:,C语言的主要特点;,C语言在PC机上的运行过程及上机操作过程;,常用算法的应用,2,本章要求:2,0. 回顾下计算机相关知识,.计算机定义:计算机是一种在事先存入程序的控制下,能够接收数据、存储数据、处理数据并提供处理结果的数字化电子设备。,输入数据,输出结果,2.计算机工作流程图,输入,处理,存储,输出,数据,3,0. 回顾下计算机相关知识.计算机定义:计算机是一种在事先,3. 计算机内所有的信息(多媒体信息)采用二进制代码表示,称为机器数。,机器数有三种不同的编码形式:,原码、反码和补码,。,4. 采用二进制的原因:,1)二进制只含有两个数字0和1,因此可用大量存在两种不同稳定状态的元件来表示。,2)二进制数的运算规则简单,使得计算机中的运算部件的结构变得比较简单。,4,3. 计算机内所有的信息(多媒体信息)采用二进制代码表,5 .计算机中信息的表示,数值直接转换为二进制,字符采用ASCII编码(7位、美国标准信息交换码),(见附录A),其它信息(汉字、图形、图象、声音、表格)也有相应的编码标准和规则。,5,5,计算机系统,软件系统,硬件系统,系统软件(操作系统、编译程序、测试程序等),如DOS、WINDOWS等,应用软件(WORD、EXCEL等),CPU,控制器,运算器,输入设备(鼠标、键盘、手写笔、MIC等),输出设备(显示器、绘图仪、打印机等),存储器,内存储器(ROM、RAM),外存储器(软盘、硬盘、光盘),6. 计算机系统的组成,6,计算机系统软件系统硬件系统系统软件(操作系统、编译程序、测,程序设计语言发展,7,程序设计语言发展7,程序执行,8,程序执行8,1.1.1 C语言的发展(P3),C语言是在研制UNIX操作系统过程中诞生,伴随着UNIX操作系统的发展而流行,ALGOL 60,B语言,C语言(UNIX),ANSI C(1983),目前最流行的语言有以下几种:,Microsoft C 或称 MS C,Borland Turbo C 或称 Turbo C AT&T C,Turbo C2.0 1989年,Turbo C+(3.0) 1991年(本教材选用),1.1 C语言的发展及其特点和应用,9,1.1.1 C语言的发展(P3)C语言是在研制UNIX操作系,1.1.2 C语言主要特点:(P3),1、C语言简洁、紧凑,使用方便、灵活。ANSI C一共只有32个关键字,9种控制语句,主要用小写字母表示。(见附录B),2、运算符丰富。共有34种。C把括号、赋值、逗号等都作为运算符处理。 (见附录C),3、数据结构类型丰富。,4、C语言是一种结构化、模块化的程序设计语言。其程序由函数组成,便于模块化的程序设计,程序结构完全由顺序结构、选择结构和循环结构组成。,10,1.1.2 C语言主要特点:(P3)10,1.1.2 C语言主要特点:,5、语法限制不太严格,程序设计自由度大。一行可以写多个语句,变量类型使用灵活。,6、C语言既具有高级语言的功能,又具有汇编语言的许多功能。,7、生成目标代码质量高,程序执行效率高,与汇编语言相比,用C语言写的程序可移植性好。,11,1.1.2 C语言主要特点:11,1.2 C语言程序的基本结构,1.简单的C程序(P4),例1.1输出指定字符串。,#include,void main(),printf(Hello, this is a c programming language.n);/*输出C程序语言字符串*/,程序运行结果:,Hello, this is a c programming language.,函数首部,函数体开始标志,C语句,函数体结束标志,12,1.2 C语言程序的基本结构1.简单的C程序(P4)#inc,程序分析,1)C程序一般用小写字母书写;,2)每个C源程序有且只能一个main ( ) 函数,称主函数;main前的void表示此函数是“空类型”。,3)程序体必须在一对 之间;,4)每个语句的结尾,必须要有“;”作为终止符。,5)/* */ 表示注释部分,注释内容可用汉字或英文字符表示。,6)函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示.,7)printf函数是一个由系统定义的标准函数库中的输出函数,可在程序中直接调用。printf语句中双撇号中的字符串按原样输出。“n”是换行符即回车换行。,8)“#include”为预编译命令也称为文件包含命令,常在“main”主函数之前,用于将有关的“头文件”包括到用户源文件中。被包含的文件通常是由系统提供的,其扩展名为.h。“stdio.h”为标准输入输出库文件,其内定义了printf函数的原型。,13,程序分析1)C程序一般用小写字母书写;13,例1.2 计算指定函数关系式。(P5),程序运行结果:,input number:,9,2*sqrt(9.000000)+1=7.000000,#include,#include,void main(),float x,y;/*定义两实型变量*/,printf(input number:n);,scanf(%f,/*输入数字*/,y=2*sqrt(x)+1;/*计算指定函数关系式的结果*/,printf(2*sqrt(%f)+1=%fn,x,y); /按制定格式输出,14,例1.2 计算指定函数关系式。(P5)程序运行结果:#inc,程序的功能是输入一个实数x,求2倍开方x加1关系式的值,然后输出结果,1)凡是在程序中调用一个库函数时,都必须用预处理命令调用该函数原型所在的头文件。本例中使用了数学函数sqrt()在其头文件为math.h文件。,2)/* */注释语句可出现在一行中的最右侧,也可独成为一行。,3)注释也可以用“/”符号标识注释内容,这种注释只在一行有效,在执行语句的前面和中间不能使用这种注释。,4)运行本程序时,首先在显示器屏幕上给出提示串input number,这是由执行部分的第一行完成的。用户在提示下从键盘上键入某一数,如9,按回车键(enter),接着在屏幕上给出计算结果。,程序分析:,15,程序的功能是输入一个实数x,求2倍开方x加1关系式的值,然,格式输入格式输出函数简介,scanf和 printf一般形式为:,printf或scanf(格式控制,参数表),格式控制,是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。各种类型的格式表示法可参阅后续章节。在printf函数中还可以在格式控制内出现非格式控制字符,这时在显示屏幕上将按原样输出。参数表中给出了输入或输出的量。当有多个量时,用逗号间隔。例如:,printf(2*sqrt(%f)+1=%fn,x,y);,其中,%f为格式字符,,表示按实数处理。它在格式串中两次现,分别对应了x和y两个变量。其余字符为非格式字符则按原样输出在屏幕上。,16,格式输入格式输出函数简介 scanf和 printf一般形式,程序运行结果:,input two numbers:a,b,5,9,max=9,例1.3求两个数的最大值。(P6),#include,int max(int x,int y) /*定义max函数*/, int m;,if(xy),m=x;,else,m=y;,return m; /*把结果返回主调函数*/,void main()/*主函数入口,程序执行起点*/,int a,b,c; /*变量说明*/,int max(int a,int b); /*函数说明*/,printf(input two numbers:a,bn);,scanf(%d,%d, /*输入a,b的值*/,c=max(a,b); /*调用max函数*/,printf(max=%dn,c); /*输出两数的最大值*/,被调用的,子函数,主函数,17,程序运行结果:例1.3求两个数的最大值。(P6) #incl,程序分析:,程序的功能是由用户输入两个整数,程序执行后输出其中较大的数。,本程序由两个函数组成,主函数和max 函数。函数之间是并列关系。可从主函数中调用其它函数。,max 函数的功能是比较两个数的大小,然后把较大的数返回给主函数。max函数是一个用户自定义函数,其返回值类型是整型。,上例中程序的执行过程是,首先执行main函数,然后调用max函数,把a,b中的较大者给主函数的变量c,最后在屏幕上输出c的值。,18,程序分析:程序的功能是由用户输入两个整数,程序执行后输出其中,2.C程序结构特点(P7),通过上述例子,可以对源程序的结构特点归纳如下,1)一个语言源程序可以由一个或多个源文件组成。,2)每个源文件可由一个或多个函数组成。(main主函数、系统提供printf、scanf函数、用户定义max函数),3)一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。程序总是从main()处开始执行,而不管main()在源文件中的位置。,4)源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。,19,2.C程序结构特点(P7)通过上述例子,可以对源程序的结构,5)每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。,6)C语言用函数进行输入输出,如printf(),scanf()。,7)C语言用/*/或/作注释。注释部分便于阅读程序的人理解程序员的设计意图,这是一个良好的习惯。,8)C程序书写格式自由,一个语句可以占多行,一行也可以有多个语句。,20,5)每一个说明,每一个语句都必须以分号结尾。但预处理命令,函,3.书写C程序时应遵循的规则(P7),从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下的规则:,1)一个说明或一个语句单独占一行。,2)用 括起来的部分,通常表示了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。,3)低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来层次清晰、结构明了,增加程序的可读性。,21,3.书写C程序时应遵循的规则(P7)从书写清晰,便于阅读,理,4.语言的字符集,字符是组成语言的最基本的元素。语言字符集由,字母,数字,空格,标点和特殊字符,组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。,1)字母,小写字母az共26个,大写字母AZ共26个,,2)数字,09共10个,3)空白符,空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。,4)标点和特殊字符,22,4.语言的字符集 字符是组成语言的最基本的元素。语,人机能够对话,是因为计算机可以执行程序,程序是,什么?,人机进行对话所使用的语言,就是程序设计语言,计算机中,可以连续执行的一条条指令的集合就是,程序,。,1.3 算法表示方法(P7),23,人机能够对话,是因为计算机可以执行程序,1. 基本概念-关于程,序设计,用程序设计语言来描述问题的求解过程,以及对其中参与运算的数据进行合理地组织和安排,就叫做,程序设计,。,基,本,步,骤,分析问题,确定算法,编写程序,运行调试,总结过程,24,1. 基本概念-关于程序设计,关于算法,好的算法,有穷性,确定性,可行性,有输出,算法的分类:,数值运算算法:求数值解,非数值运算算法:用于事务管理,算法,是针对,提出的可行,方案确定解决,问题、完成任务,的每一个细节,步骤。,参见P9 算法的特性,参见P8 算法的概念,25,关于算法好的算法有穷性算法的分类:数值运算算法:求数值解算法,1、累乘 即:12345100,12 x(结果),x3 x(结果),x4 x(结果),x100 x(结果),常用算法(p8),x=,1,i,=2,x*ix i+1 i,x=x*i (x=1, i=2),26,1、累乘 即:12345100,常用算法,2、累加 即:1+2+3+4+5+100,1+2 x(结果),x+3 x(结果),x+4 x(结果),x+100 x(结果),x=,1,i,=2,x+ix i+1 i,x=x+i (x=1, i=2),27,常用算法2、累加 即:1+2+3+4+5+100,常用算法,3、找最大值 5,2,4,12,9,5 max (max 放最大值,后面的数都和它比较),2 max 不成立,4 max 不成立,12 max 成立:12 max,9 max 不成立,注:该算法可扩展为在一批数据中,找某一个数,28,常用算法3、找最大值 5,2,4,12,2.常用算法的表示方法(P9),算法的表示方法有很多种,常用的有:自然语言描述、伪代码、流程图、NS图等。在这里重点介绍流程图和NS图。,用流程图表示算法,一个流程图包括:表示相应操作的框,带箭头的流程线,框内外必要的文字说明。几何图形框的含义如下图所示。,起止框,输入输出框,判断框,处理框,流程线,连接点,29,2.常用算法的表示方法(P9)算法的表示方法有很多种,常用的,算法的表示方法(P10),程序设计中的三种基本结构:,顺序结构,自顶向下,无分支,无转移,选择结构,有分支,需条件判断,循环结构,有转移,某些语句可重复执行,当型循环,直到型循环,30,算法的表示方法(P10)程序设计中的三种基本结构:顺序结构,算法的表示方法,(a)流程图,表示法,(b)N-S图,表示法,顺序结构,31,算法的表示方法(a)流程图(b)N-S图顺序结构31,算法的表示方法,选择结构,(a)流程图,表示法,(b)N-S图,表示法,32,算法的表示方法选择结构(a)流程图(b)N-S图32,算法的表示方法,当条件判断表达式为真,循环体语句,判断表达式,循环体语句,真,假,循环体语句,直到判断表达式为假,循环体语句,判断表达式,假,真,循环结构比较,当型循环,直到型循环,33,算法的表示方法当条件判断表达式为真,例1.6用流程图表示累加的算法,一个流程图,包括以下几部分:,表示相应操作的框;,带箭头的流程线;,框内外必要的文字说明;,注意,画流程线时,不要忘记画箭头,因为它是反应流程的执行先后次序的,如不画出箭头就很难判断各框的执行次序了。,34,例1.6用流程图表示累加的算法一个流程图,包括以下几部分:3,用计算机语言表示算法,例1.7用C语言改写累加算法,#include,void main(), int i,x;,i=2;,x=1;,while(i,tc ,38,例:Turbo C+ 3.0的使用38,在Windows环境下,找到可执行文件tc.exe,执行该文件。,主菜单:11个菜单项:,File Edit Search Run Compile Debug Project,Options Window Help,39, 在Windows环境下主菜单:11个菜单项:39,Turbo C +3.0集成开发环境,关闭按钮,窗口名称,最大化/还原按钮,光标所在行号,光标所在列号,水平滚动条,编辑窗口,垂直滚动条,信息窗口,40,Turbo C +3.0集成开发环境 关闭按钮窗口名称最大,(2) 编辑源文件,新建:,单击“File”菜单下 的“New”,修改:,选择“File”“Open”(即单击“File” 的下拉菜单中的“Open”项,修改已有的源程序。,41,(2) 编辑源文件修改:选择“File”“Open”(即单,在编辑(EDIT) 状态下光标表示当前进行编辑的位置,在此位,置可以进行插入、删除或修改,直到自已满意为止。,42,在编辑(EDIT) 状态下光标表示当前进行编辑的位置,在此位,保存:在编辑(EDIT) 状态下光标表示当前进行编辑的位置,在此位置可以进行插入、删除或修改,直到自已满意为止。,43,保存:在编辑(EDIT) 状态下光标表示当前进行编辑的位置,,(3) 对源程序进行编译,选择“Compile”(或“Alt+F9”)对源程序进行编译。,c1.cpp源程序,出现1个错误(error) ,0个警告(warming)。,44,(3) 对源程序进行编译c1.cpp源程序,出现1个错误(e,(4) 将目标程序进行连接,选择菜单“Compile” “Link” ,如果不出现错误,会得到一个后缀为.exe的可执行文件。,(5) 执行程序,。,选菜单“Run” “Run”( 或按“Ctrl+F9” 键)。,(6) 退出Turbo C+ 3.0环境,选择“File”“Quit” 。,45,(4) 将目标程序进行连接 选择菜单“Compile” “,小 节,C语言程序是由一系列函数组成的模块结构。,C语言程序的书写格式自由、有较大的灵活性,但一般应采用一定的格式书写,养成良好的编程风格。,C语言是一种编译型的高级程序设计语言,其开发过程包括:编辑、编译、连接、运行四个步骤。具体操作应参阅操作系统支撑环境的有关资料。,46,小 节C语言程序是由一系列函数组成的模块结构。46,作业,P15-17,一、填空题,二、选择题,47,作业P15-1747,选择题,1.1一个C程序的执行是从_。,(A)本程序的main函数开始,到main函数结束。,(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。,(C) 本程序的main函数开始,到本程序文件的最后一个函数结束。,(D)本程序文件的第一个函数开始,到本程序main函数结束。,1.2以下叙述不正确的是_。,(A)一个C源程序可由一个或多个函数组成。,(B)一个C源程序必须包含一个main函数。,(C) 程序的基本组成单位是函数。,(D)在C程序中,注释说明只能位于一条语句的后面。,A,D,48,选择题AD48,1.3C语言规定:在一个源程序中,main函数的位置_。,(A)必须在最开始(B)必须在系统调用的库函数的后面,(C)可以任意(D)必须在最后,1.4一个C语言程序是由_。,(A) 一个主程序和若干子程序组成(B) 函数组成,(C) 若干过程组成 (D) 若干子程序组成,填空题,1.5C源程序的基本单位是_。,1.6一个C源程序中至少应包括一个_ 。,1.7在一个C源程序中,注释部分两侧的分界符分别为_和_。,C,B,函数,main函数,/*,*/,49,1.3C语言规定:在一个源程序中,main函数的位置_,C语言运行环境,Turbo C2.0版本编译系统启动的命令如下:,进入开机画面第二项win98,在win98下四个选项中进入real dos项,C:tc 回车,退出该系统时,先选择主菜单File,再在其下拉菜单中选择Quit子菜单项,或直接按下【Alt+X】键,便可退出该系统。,50,C语言运行环境Turbo C2.0版本编译系统启动的命令如下,常用命令有:,“Ins”键用来设置“插入”或“修改”方式。在“插入”方式下,从键盘上键入的字符被插入在当前光标之前;在“修改”方式下,从键盘上键入的字符将替代当前光标处的字符。,“Del”键用来删除光标所在的字符。,使用光标键可以上下左右移动光标。,使用“Ctrl+N”组合件可在当前光标所在行上插入一空行。,使用“Ctrl+Y”组合键可删除当前光标所在行。,使用退格键可删除当前光标前一个字符。,51,常用命令有:51,基本操作:,F10-,调用主菜单 F2-存盘 F3-打开,Alt+F9-Compile Ctrl+F9-Run,Alt+F5-User Screen,New编辑新文件,Load装入已有文件,Save重新存储文件,Write to按指定名字存储文件,Change dir指定目录下的文件名,Pick显最近编辑过的若干个文件名,Directory显示当前目录下指定扩展名的所有文件,OS shell进入DOS系统,出现DOS系统提示符,可直接执行DOS命令。键入Exit命令返回原来的编译系统状态,Quit退出该编译系统,返回到DOS操作系统状态,52,基本操作:New编辑新文件52,