




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章C语言概述,1.1C语言的特点及发展历史1.2C语言的基本符号1.3C语言程序的结构1.4标准输入输出库函数1.5C语言程序的编辑及运行习题1,1.1C语言的特点及发展历史,1.1.1C语言的发展历史C语言是一种编译性程序设计语言,它的前身是BCPL(BasicCombinedProgrammingLanguage)语言,1967年由英国剑桥大学的MartinRichard推出。1970年,贝尔实验室的K.Thompson以BCPL语言为基础,开发了B语言,并用B语言编写了UNIX操作系统,在PDP-上实现。1972年,贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言,C语言既保持了BCPL语言和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单)。,1973年,K.Thompson和D.M.Ritchie合作把UNIX的90%以上用C语言改写,并加进了多道程序设计的功能,称为UNIX第五版,开创了UNIX系统发展的新局面。1975年UNIX第六版颁布后,C语言得到计算机界的普遍认可,并与UNIX系统一起互相促进,迅速发展。,最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。目前,C语言已独立于UNIX系统,先后被移植到大、中、小型计算机上。1978年,B.Kernighan和D.M.Ritchie合作编写了经典著作“TheCProgrammingLanguage”,它是目前所有C语言版本的基础。1983年,美国国家标准化协会(ANSI)对C语言问世以来的各种版本进行扩充,制定了ANSIC。现在流行的C语言版本有:MicrosoftC,TurboC,QuickC,BorlandC等。本书以介绍TurboC为主,并简单介绍C语言的高级应用。,1.1.2C语言的特点C语言有以下几个基本特点:(1)C语言不但具有高级语言的特性,还具有汇编语言的特点。既有高级语言面向用户、容易记忆、便于阅读和书写的优点;又有面向硬件和系统,可以直接访问硬件的功能。(2)C语言是结构化程序设计语言。C语言程序的逻辑结构可以用顺序、选择和循环三种基本结构组成,便于采用自顶向下、逐步细化的结构化程序设计技术。用C语言编制的程序,具有容易理解、便于维护的优点。,(3)C语言是模块化程序设计语言。C语言的函数结构、程序模块间的相互调用及数据传递和共享技术,为大型软件设计的模块化分解技术,及软件工程技术的应用提供了强有力的支持。(4)C语言具有丰富的运算能力。除具有一般高级语言所拥有的四则运算及逻辑运算功能外,还具有二进制的位(bit)运算、单项运算和复合运算等功能。,(5)C语言具有预处理能力。能够对字符串或特定参数进行宏定义,能够对外部文本文件实现读取和合并。(6)C语言具有丰富的数据类型和较强的数据处理能力。不但具有整型、实型、双精度型,还具有结构、联合等构造类型,并为用户提供了自定义数据类型。,(7)C语言具有较强的移植性。C语言程序本身并不依赖于计算机的硬件系统,只要在不同种类的计算机上配置C语言编译系统,即可达到程序移植的目的。(8)C语言具有较好的通用性,它既可用于编写操作系统、编译程序等系统软件,也可用于编写各种应用软件。,1.2C语言的基本符号,1.2.1基本符号集(1)C语言的基本符号集是ASCII码字符集。包括:(1)大小写英文字母各26个。(2)阿拉伯数字09。,(3)特殊符号39个,包括运算符和操作符:+-*/%=!/*变量说明*/scanf(%f%f,/*如果b大,则输出b的值*/,例1.1是一个简单的C语言程序。其中main()表示主函数,由大括号括起来的部分是函数体。/*.*/表示对程序的注释。scanf()和printf()是标准输入输出库函数。main()函数中定义了两个实型变量a和b,并用scanf()函数从键盘输入a和b的值,if-else是一个条件判断语句,如果ab成立,则用printf()函数输出a的值,否则输出b的值。,例1.2求三个数的平均值。floataverage(x,y,z)/*定义average函数的值为实型*/floatx,y,z;/*定义average函数的参数x、y、z为实型*/floataver;/*定义函数中的变量aver为实型*/aver=(x+y+z)/3;/*计算x、y、z的平均值并赋给aver*/return(aver);/*将aver的值返回主函数的调用处*/main()/*主函数*/floata,b,c,ave;/*定义a#,b#,c#,ave为实型变量*/scanf(%f%f%f,/*输出ave的值*/,例1.2程序包括两个函数:主函数main()和被调用函数average()。主函数main()从键盘接收a、b、c(称实际参数)的值,并传递给average()函数的x、y、z(称形式参数);average()函数计算x、y、z的平均值并赋给变量aver,return语句将aver的值返回给主函数main()的调用处。,1.3.2C语言程序的结构特点从上述两个例子可以看到,C语言程序具有以下结构特点:1.C语言程序由函数构成(1)函数是C语言程序的基本单位。一个C语言程序至少由一个函数main()组成,也可以由一个main()函数和多个其它函数构成。例如,在例1.1中只包含一个main()函数,在例1.2中则包含两个函数main()和average(),通常称main()为主调函数,average()为被调函数。,(2)被调用函数可以是系统提供的库函数(例如scanf()和printf()函数),也可以是用户根据需要自己编制的函数(例如例1.2中的average()函数)。(3)一个C语言程序总是从main()函数开始执行。这与main()函数在程序中的位置无关,因此,main()函数可以放在程序的任何位置。,2.一个函数由函数说明和函数体两部分组成(1)函数说明:包括对函数名、函数类型、函数参数名、函数参数类型的说明。例如:例1.2中floataverage(x,y,z);floatx,y,z;前者是对函数名、函数参数名及函数类型的说明,后者是对函数参数类型的说明。(2)函数体:函数体是指由大括号括起来的部分。主要包括变量说明和执行语句两部分。,3.一个函数由若干行组成(1)一行可由一个或多个语句组成,一个语句也可以分别写在若干行上。(2)语句或变量说明的最后必须有一个分号,分号是语句或变量说明的必要组成部分。(3)为了增强可读性,可以利用/*/对C语言程序中的任何部分做注释。4.C语言程序的书写习惯是用小写英文字母,1.4标准输入输出库函数,1.4.1编译预处理在使用标准输入输出库函数时,要用编译预处理命令“include”将“stdio.h”文件包含到用户程序中。一般形式如下:includestdio.hstdio.h文件包含了与标准输入输出库函数有关的变量定义、宏定义和函数定义(详细内容见第5章)。在需要使用标准输入输出库函数时,应在程序之前使用上述编译预处理命令。,1.4.2字符输入输出函数1.字符输出函数putchar()(1)putchar()的作用:向标准输出设备输出一个字符。(2)putchar()的一般形式:putchar(输出项);其中,输出项可以是整型变量或字符型变量。,例1.3输出字符B。includestdio.h/*编译预处理*/main()intch;/*说明ch为整型变量*/ch=66;/*将B的ASCII码值赋给变量ch*/putchar(ch);/*输出ch的值B*/,例1.4输出字符B。includestdio.h/*编译预处理*/main()charch;/*说明ch为字符型变量*/ch=B;/*将字符B赋给变量ch*/putchar(ch);/*输出ch的值B*/以上两个程序的运行结果都是输出字符B。,2.字符输入函数getchar()(1)getchar()的作用:从标准输入设备上接收一个字符。(2)getchar()的一般形式:getchar()getchar()函数没有参数,函数值即是从输入设备接收的字符。,例1.5从键盘接收一个字符并输出。includestdio.h/*编译预处理*/main()charch;/*说明ch为字符型变量*/ch=getchar();/*从键盘接收一个字符赋给变量ch*/putchar(ch);/*输出ch的值*/,程序运行结果如下:a(键盘输入a后,按回车键,字符a送到变量ch中)a(输出变量ch的值)例1.5程序的输出结果中,“”表示“按回车键”,这是一种习惯写法,本书将采用这种写法。(3)getchar()的使用说明:getchar()接收的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,直接作为表达式的一部分使用。,例1.6改写例1.5。includestdio.hmain()putchar(getchar();HT5SS例1.6程序中,getchar()函数作为putchar()函数的输出变量使用,输出结果与例1.5相同。,1.4.3格式化输入输出函数格式化输入输出函数scanf()和printf(),也是标准输入输出库函数。它们可以在程序中直接引用,不需要进行编译预处理说明,标准输入输出库函数中只有scanf()和printf()是例外的。格式化输入输出库函数,是按指定的格式完成输入输出操作的。,1.输出函数printf()(1)printf()的作用:将用户指定的输出项按规定格式送到标准输出设备上。(2)printf()的一般形式:printf(输出格式,输出项表);其中,输出项表由若干个输出项组成,当输出项的个数多于一个时,输出项之间用逗号分隔。输出项可以是常量、变量或表达式。输出格式由普通字符、格式说明和换码序列字符三部分组成。,普通字符是指需要按原样输出的字符。例如:printf(v=%6.2fn,v);HT5SS其中,v是输出项;v=是普通字符,它将原样输出;%6.2f是格式说明;n是换码序列字符。格式说明由%、附加格式字符(例如6.2)和格式字符(例如f)组成,它规定了输出项的输出形式。常用的格式字符见表1-2所示,常用的附加格式字符见表13所示。,表1-2格式字符,续表,表1-3附加格式字符,换码序列字符是以反斜杠“”打头后跟一个字母或数字组成的,它的作用是输出控制代码和特殊字符。例如,n表示输出一个回车换行。详细内容将在第2章介绍。,(3)printf()的使用说明:格式字符必须用小写英文字母。例如,%f不能写作%F。如果想原样输出一个%号,则应在输出格式中用两个%表示。例如:printf(%f%,0.777777);HT5SS的输出结果如下:0.777777%,选用格式字符“e”时,以标准指数形式输出单精度、双精度数。所谓标准指数形式是指小数点前必须有并且只能有一位非零数字。例如:printf(%en,567.123);的输出结果如下:5.67123e+03,附加格式字符“m.n”用于控制输出数字的位数。表示输出数字共占m位,其中含有n位小数。如果数值长度小于m则左端补空格。例如:printf(%6.3fn,34.56);HT5SS的输出结果如下:34.560,例1.7printf()的应用。main()inta,b;a=10;b=25;printf(a=%db=%dn,a,b);printf(a+b=%4dna-b=%4dn,a+b,a-b);,程序的运行结果如下:a=10b=25a+b=35a-b=-15,例1.8printf()应用。main()inta,b;a=100;b=-200;printf(%+10d,%+10dn,a,b);printf(%-10d,%-10dn,a,b);printf(%010d,%010dn,a,b);,程序的运行结果如下:,例1.8程序中,选用“+”时,输出数据右对齐,左边补空格,并输出符号;选用“-”时,输出数据左对齐,右边补空格;选用“0”时,输出数据右对齐,左边补0。,2.输入函数scanf()(1)scanf()的作用:从标准输入设备上按一定格式接收一批数据,并赋给指定的变量。(2)scanf()的一般形式:scanf(输入格式,输入项地址表);其中:输入项地址表由若干个地址组成,当地址个数多于一个时,地址之间用逗号分隔。地址可以是变量的地址或字符串的首地址。C语言规定:用“printf(输入第一个整数i:);scanf(%d,例1.9程序是以人机对话的方式向变量i和j赋值,运行结果如下:输入第一个整数i:25输入第二个整数j:12i+j=37i-j=13其中,有底划线的部分是用户从键盘输入的字符。,1.5C语言程序的编辑及运行,1.5.1C语言程序编辑及运行的一般步骤C语言采用编译方式将源程序翻译为二进制代码,其一般过程分为四个步骤:1.程序编辑程序编辑包括以下内容:(1)将源程序输入到计算机内存;(2)修改源程序,并将修改好的源程序存入磁盘。源程序文件的扩展名为.C。,2.程序编译C语言编译程序对源程序进行语法检查,如果发现语法错误时,将在屏幕上显示出错信息。此时,应重新编辑源程序,编辑结束后再重新编译。正确的源程序文件经过编译后,形成二进制文件,其扩展名为.OBJ。,3.程序连接编译后产生的二进制文件,不能直接运行,因为每一个程序模块往往是单独编译的。二进制文件需要经过连接,把各个二进制模块以及系统提供的标准库函数等进行连接处理后,形成可执行文件。可执行文件的扩展名为.EXE。,4.程序运行可执行文件形成后,可以在操作系统支持下运行该文件。,1.5.2TurboC集成环境简介C语言有许多种编译器,这些编译器之间只有很小的区别,只要学会其中的一种,对其它几种就能很快地适应。本节主要介绍当前最流行的,并且操作最为简单的TurboC集成环境。TurboC是美国Borland公司的产品。TurboC是一个完整的交互式集成开发环境,它是一个集程序建立、编辑、编译、连接、运行于一体的集成开发环境,是易学、易用、快速、高效、方便用户使用的程序开发工具。TurboC2.0具有图形库和文本窗口函数库,具有查错及协处理器的仿真功能。,1.5.3TurboC集成环境的基本操作1.TurboC的安装TurboC2.0集成环境包括两张高密软盘,安装时,将第一张软盘插入A或B驱动器,并在DOS提示符下键入如下命令:A:INSTALL然后按照屏幕的提示进行操作,即可完成TurboC2.0的安装。,安装完成后,在C盘根目录下自动建立一个TC子目录。TC子目录中包含另外两个子目录:LIB和INCLUDE。在LIB子目录中存放着“库文件”,在INCLUDE子目录中存放着TurboC系统的所有“头文件”(即标准库函数)。为了使用方便,用户可在自动批处理文件Autoexec.bat中加入TC子目录的搜索路径:PATH=C:TC;C:TCLIB;C:TCINCLUDE然后重新启动计算机,就可以在任何目录下直接使用TurboC了。,2.TurboC集成环境的操作在C盘根目录或TC子目录下键入如下命令:C:tc或C:tc文件名即可进入TurboC的集成开发环境,此时屏幕显示如图1-1所示。屏幕的第一行为主菜单,主菜单包括的内容如下:File(文件),Edit(编辑),Run(运行),Compile(编译),Project(工程),Option(选项),Debug(调试),Break/watch(断点及跟踪)。其中Edit下为编辑窗口,Massage下为信息窗口,最后一行为功能键提示行。,主菜单中的每一项(除Edit之外)都有子菜单,按下Alt键的同时按下某个选项的第一个字母,即可下拉出相应的选项子菜单。例如,按下Alt+F即可进入File的下拉子菜单。按下F10键,再用左右箭头键选择相应的选项后回车,也可以达到同样的效果。,图1-1TurboC集成环境的屏幕界面,下面举例说明TurboC集成环境的使用。(1)录入源程序:进入TurboC后,即可在编辑窗口输入C语言源程序。例如,输入程序如下:main()printf(“TurboC集成环境的使用介绍!n);,(2)存储源程序:源程序输入结束后,选择File菜单中的Save项或直接按下F2键,系统将询问文件名,用户输入一个自己认为合适的文件名。例如,本例为Example.c,源程序以Exarmple.c为名存入磁盘。,(3)编译、连接和运行程序:源程序存入磁盘后,即可对该程序进行编译、连接。编译、连接结束后,即可运行该程序。TurboC集成环境中,编译、连接和运行,可以合并成一步完成,也可以分成几步分别完成,具体情况视用户程序的大小而定。如果用户程序较小,用一步完成的方法比较方便;如果用户程序很大,包括多个模块,则应采用分步的方法。例如,本例程序很小,可以采用一步完成的方法。,方法一:一步完成。选择Run子菜单中的Run项或直接按下Ctrl+F9键,系统将自动完成编译、连接和运行的全部工作,输出运算结果。方法二:分步完成。选择Compile子菜单中的Compile项或直接按下F9键,系统只完成编译与连接工作,生成相应的.EXE文件。需要运行程序时,选择Run子菜单中的R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗医学基础题库及答案
- 2025年延安社区考试真题及答案
- 2025年护理应聘考试题库及答案
- 鬼步舞考试题目及答案
- 广西高中会考试题及答案
- 2025年营养师考试实操技能实战演练试卷:专项训练与解析
- 2025年教师资格证考试 小学语文教学设计实战演练试卷
- 沙漠绿洲盐洞冥想创新创业项目商业计划书
- 有机农业市场调研服务创新创业项目商业计划书
- 安全培训幼儿园内容课件
- 二手车经销公司管理制度
- 无人机操控与维护专业教学标准(中等职业教育)2025修订
- 十五五护理工作发展规划
- 消防宣传安全常识课件
- 2025年内蒙古鄂尔多斯市国源矿业开发有限责任公司招聘笔试参考题库含答案解析
- 2025年广州市越秀区九年级中考语文一模试卷附答案解析
- GB/T 1040.1-2025塑料拉伸性能的测定第1部分:总则
- 学校食堂食品安全风险管控清单
- DB54/T 0316-2024藏香生产技术规程
- 电力行业职业健康卫生管理制度
- 新22J01 工程做法图集
评论
0/150
提交评论