1第一章计算机语言及C语言概述第二章基本数据类型、运算符和表达式第三章数据的输入和输出第四章语句第五章指针初步和数组第六章函数与程序结构第七章编译预处理第八章指针第九章结构体第十章文件C语言程序设计2第一章计算机语言及C语言概述1.1计算机语言1.2C语言概述1.3C程序的上机步骤31.1计算机语言1.1.1计算机语言的发展过程计算机语言是指计算机能够接受和处理的、具有一定格式的语言。用计算机语言编写的,使计算机能够完成特定任务的代码串称为计算机程序。计算机语言经历了三个阶段:1..机器语言:由0、1代码组成的、能被机器直接理解执行的指令集合。如:10000011就是一条单字节指令。2.汇编语言:采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言。如:ADDA33.高级语言:接近自然语言和数学语言的程序设计语言。1.汇编程序:将用汇编语言编制的程序(源程序)翻译加工成机器语言程序(目标程序)的工具。1.12语言处理程序42.编译程序:将用高级语言编写的程序(源程序)翻译成机器语言或汇编语言程序(目标程序)的工具。特点:一次编译,目标程序可多次使用.从高级语言程序到获得运行结果的一般过程程序库数据源程序目标程序可执行程序结果3.解释程序:直接对源代码中的语句进行解释执行,产生运行结果,它不产生目标代码。编译连接执行51.2C语言概述C语言是适用于描写结构的程序设计语言,常用来设计操作系统或其它系统程序。1.2.1C语言的发展历史C语言的发展依次为:ALGOL60CPLBCPLBC略。(见教材)1.2.2C语言的特点6例1.1:#includestdio.hmain(){printf(ThisisaCprogram.\n);}例1.2:main(){inta,b,sum;a=123;b=456;sum=a+b;printf(sumis%d\n,sum);}1.2.3C程序举例7例1.3:输入任意三个整数num1、num2、num3,求三个数中的最大值。main(){intnum1,num2,num3,max;printf(Pleaseinputthreenumbers:);scanf(%d,%d,%d,&num1,&num2,&num3);if(num1num2)max=num1;elsemax=num2;if(num3max)max=num3;printf(Thethreenumbersare:%d,%d,%d\n,num1,num2,num3);printf(max=%d\n,max);}8例1.3:求a、b和c中的大者.main()/*主函数*/{inta,b,c,max1;/*定义变量*/scanf(“%d,%d,%d”,&a,&b,&c);/*输入变量a、b和c的值*/max1=max(a,b);max1=max(max1,c)/*调用max函数,将得到的值赋给max1*/printf(“max=%d”,max1);/*输出最大的值*/}intmax(x,y)/*定义max函数,函数值为整型,x,y为形式参数*/intx,y;/*对形参x,y作类型定义*/{intz;/*max函数中用到的变量z,也要加以定义*/if(xy)z=x;elsez=y;return(z);}/*将z值返回调用处*/9通过对上面三个程序的讨论,可以归纳如下:(1)C程序是由函数构成的.且至少要包含一个主函数main,也可以包含若干个其它函数.(2)被调用的函数可以是系统提供的库函数(如printf和scanf函数),也可以是用户自定义的函数(如例1.3中的max函数)。(3)一个函数由两部分组成:a.函数头:包括函数名、函数类型、函数形参名、形参类型一个函数名后面必须跟一对圆括号,但函数参数可以没有。b.函数体函数体是用一对花括号作为开始和结尾的标志.包括说明和执行两部分:说明部分用来说明函数、变量和定义变量、指针、数组等,执行部分则通过语句描述函数的功能。变量定义和语句都要以分号结尾。(4)程序的任何地方都可以加入以“/*”和“*/”包围起来的解释部分,该部分的作用是为了增加程序的可读性,它不是程序的可执行部分,不产生程序代码。10(5)C语言书写形式自由.一行内可以写多条语句,一条语句也可以分写在不同行上,当一条语句分写在几行上时,行尾需加续行符“\”。C语言中大小写字母是有区别的,这一点在使用时要特别注意。1.C语言的基本符号:(1)大小写英文字母各26个:a~z,A~Z。(2)0~9共十个数字。(3)下划线_。(4)特殊符号:包括运算符在内的其他字符。如+、-、*、/、、、\等。2.标识符:用来标识变量名、符号常量名、函数名、类型名、文件名等。标识符只能由字母、数字和下划线三种字符组成,且必须以字母或下划线开头;其次,虽然C语言没有对标识符的长度进行统一的规定,但是具体的系统都有长度限制。TurboC能识别长达31个字符。1.2.4C语言的基本语法单位11C语言中,标识符有三种类型:a.关键字:系统已定义过的、有特定含义、不能挪作它用的标识符。C语言共有32个关键字。例如,int、char、break、for等。b.预定义标识符:系统定义过的,用于编译预处理命令中的标识符。例如,include、define等。建议这些标识符也不要作为用户自定义标识符。c.自定义标识符:依据标识符的命名原则,由用户自己定义的标识符。若能使用“见名知义”的名字,会使程序的可读性增强。例如,下面的标识符都是合法的。A2studentarea_of_circlenum_dd而下面的标识符则是不合法的。2AA-Bareaofcircle(一个标识符)M.D121.进入TurboC集成环境运行TurboC的执行程序TC.EXE,就进入了TurboC集成环境,TC主屏由四部分组成:主菜单、编辑窗口、信息窗口和功能键提示行。在进行编辑程序之前应设置好包含文件、库文件、输出文件和TurboC系统所在的目录。2.编辑在编辑窗口中将编写好的程序输入计算机或对已经存在的源程序文件进行修改的过程,就是源程序的编辑过程。File/Load命令:输入一个要编辑的源程序名字,则编辑窗口中的NONAME.C被新输入的名字取代。若被编辑的是一个新文件,则可以输入编写好的程序到编辑窗口;若被编辑的是一个旧文件,则可以对其进行修改。File/Save命令:保存文件。File/New命令:在清屏后的编辑窗口,输入程序.File/Writeto命令输入源程序名字保存文件1.3C程序的上机步骤13选择Compile/CompiletoOBJ命令,对编辑窗口中的文件进行编译,如果编译成功,按F2键,将文件保存一下后就可进入下一个过程;否则,若编译失败,则在信息窗口中将发现的错误和警告信息一一列出。编译后生成的目标文件和库文件连接在一起才能生成可执行文件。当编译成功后,选择Compile/LinkEXEfile命令,进入连接,如果出现错误,则一般要检查库文件和头文件的路径设置是否正确,修改后重新连接。3.编译4.连接14选择Run/Run或Ctrl+F9(两个键同时按下)命令,就可以执行程序。若要察看运行结果,则按ALT+F5。如果程序在运行过程中需要输入数据,则选择了Run/Run命令后,屏幕处于用户屏状态,等待用户输入所需的数据,数据输入结束,运行后重新回到集成环境的主屏。TurboC中,编译和连接这两个步骤也可以通过功能键ctrl+F9(建立.EXE可执行文件)附带一并一次完成。简言之,编辑后,可通过ctrl+F9一起完成.若有错,则要反复多次.选择File/OSshell命令,可以暂时退出TurboC,转到DOS提示符下,此时,若再键入EXIT,则又可以返回TurboC集成环境的主屏。选择File/Quit命令,彻底退出TurboC,返回到DOS提示符下。作业:习题3,5,6上机知识:编辑、编译、连接、执行全过程5.运行6.退出Turbo环境15第二章基本数据类型、运算符和表达式2.1基本数据类型2.2运算符和表达式2.3小结16C语言可以处理数值型及非数值数据。大致可分为:2.1基本数据类型17每一种数据类型又有常量和变量之分,下面分别予以介绍。1.值常量和符号常量常量是指那些在程序运行过程中其值不能改变的量。(1)值常量:如:-25、3.0、2e-3、'A'。(2)符号常量:是用define命令定义的常量,例如:#definePI3.14define是宏定义,定义符号常量的方法为:#define标识符常量值习惯上符号常量名用大写表示,而变量名则用小写表示。注意:符号常量虽然用标识符来标识,但它本质上是常量,具有常量值不能改变的性质。2.1.1常量18【例2.1】#definePI3.14main(){floatr=3.0,s,l;l=2*PI*r;s=PI*r*r;printf(l=%f,s=%f;l,s);}2.整型常量计算机中的整型数是有范围的,一般而言,用一个机器字来存放一个基本整型数据.(若干个字节组成一个存储单元,称为“字”).在表示方法上,通常在整数后面加上字母“l”或“L”,表示它为一个长整型数据;若在某个整数后面加上字母“u”或“U”,则表示它是一个无符号整数。例如:125、26、40000L、37U、0L等等,都是合法的整型常量。而50000、-23u非法.19整型常量还有十进制、八进制和十六进制三种表示方法。1)十进制形式如125、-21、0。2)八进制形式以数字0开头的,由0~7之间的数字组成的数据。如:056。3)十六进制数以0x或0X开头的,由数字0~9和字母A、B、C、D、E、F组成的数据.其中6个字母也可以小写.如:0X5A、0x39。0X5A=5*161+10*160=90整型常量的类别和进制表示可以结合在一起使用。如:0X41L为十六进制长整型数。203.实型常量实型常量有两种表示方式:1)十进制小数形式由正负号、数字和小数点组成,其中小数点不能缺少,正数符号可省略。如1.25、34.0、+1.25、17.和.1。2)指数形式由尾数开头,加上指数部分共同构成,其中指数部分由指数符号e(或E),正负号及整数组成。如1.25e-5、+1e10、-1.25e5、1e-6、3e2。注意:e前面不能没有数字,e后面的数字必须为整数,也不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。4.字符型常量C语言提供了两类字符型常量。1)普通的字符常量:用单引号括起来的一个字符.如'A'、'b'、'0'、'?'。2)转义字符常量:是以“\”(反斜杠)开头的用单引号括起来的字符序列。常用的转义字符见p13.21注意:•'\x61'表示ASCII码为97的字符,即字符'a'。•'\0'表示ASCII码为0的字符,它是一个空字符(不是空格字符),常作为字符串的结束标志。•整型数据和字符型数据可以在一定范围内通用,通过指定不同的格式,一个字符型数据既可以以字符形式输出,又可以以整数形式输出其ASCII码值。字符型char的值机内以ASCII码值表示。如:数字字符'0'~'9'的ASCII码值是连续排列的,为48~57;大写字母'A'~'Z'的ASCII码值是连续排列的,为65~90;小写字母'a'~'z'的ASCII码值是连续排列的,为97~122。•A与'A'不同,前者是字符串,实际上由两个字符组成,即字符'A'和字符串结束标志'\0',而后者是一个字符,仅由一个字符'A'组成,在存储器中存放的是'A'的ASCII码值65。221.变量的定义变量:在程序运行过程中其值可变的量.变量的定义方式如下:[存储类别]数据类型变量名表;其中“存储类别”是可以省略的,缺省时,在函数内默认为auto型,即自动类型。例如:inta,b;(定义变量a和b为整型)unsignedc,d;(定义变量c,d为无符号整型变量)longe,f;(定义变量e和f为长整型)floatx,y;(定义变量x和y为单精度实型)doublez;(定义变量z为双精