版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 语言概述1.1语言出现的历声背景1产生背景u 在 C 语言诞生以前, 系统软件主要是用汇编语言编写的。u 汇编语言程序的特点: 依赖于计算机硬件; 其可读性和可移植性都很差;u 一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),u 人们盼望有一种兼有汇编语言和高级语言特性的新语言。2产生过程u 时间: 19721973u 地点: 美国贝尔实验室u 目的: UNIX 操作系统u 来源: 早期的编程语言 BCPL发展演变而来u 设计人: Ken.Thompson 和 Dennis.M.Ritchie3C标准u 标准 C: K&R 合著The C Programming
2、 Language 1978年u (美国国家标准化协会) ANSI C: 1983年u 87 ANSI C: 1987年u 1990 年国际标准的 ISO C1.2 C语言的特点 一种语言之所以能存在和发展,并具有生命力,总是有其不同于(或优于)其它语言的特点。C语言的主要特点如下。语言简洁、紧凑,使用方便、灵活。 C语言一共只有32个关键字(见附录II),9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。运算符丰富 的运算符包含的范围很广泛,共有种运算符(见附录III)。把括号、赋值、强制类型转换等都作为运算符处理。从而使的运算类型极其丰富,表达式类型多样化,灵活使
3、用各种运算符可以实现在其它高级语言中难以实现的运算。数据结构丰富,具有现代化语言的各种数据结构 的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。尤其是指针类型数据,使用起来比Pascal更为灵活、多样。具有结构化的控制语句(如if.else语句、whi1e语句、dowhi1e语句、for语句)。 用函数作为程序模块以实现程序的模块化。是结构化的理想语言,符合现代编程风格要求。语法限制不大严格,程序设计自由度大. 例如,对数组下标越界不作检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如,整
4、型量与字符型数据以及逻辑型数据可以通用,一般的高级语言语法检查比较严,能检查出几乎所有的语法错误。而语言允许程序编写者有较大的自由度,因此放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖编译程序去查错。“限制”与“灵活”是一对矛盾。限制严格,就失去灵活性;而强调灵活,就必然放松限制。一个不熟练的人员,编一个正确的程序可能会比编一个其它高级语言程序难一些。也就是说,对用语言的人,要求对程序设计更熟练一些。语言允许直接访问物理地址 能进行位()操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。语言的这种
5、双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。有人把称为“高级语言中的低级语言”,也有人称它为“中级语言”意为兼有高级和低级语言的特点。生成目标代码质量高,程序执行效率高。 一般只比汇编程序生成的目标代码效率低。用语言写的程序可移植性好(与汇编语言比)。 基本上不作修改就能用于各种型号的计算机和各种操作系统。 上面我们只介绍了语言的最容易理解的一般特点,至于语言内部的其它特点将结合以后各章的内容作介绍。由于语言的这些优点,使语言应用面很广。许多大的软件都用编写,这主要是由于的可移植性好和硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题现在可以改用语言来处理了。
6、的以上特点,读者现在也许还不能深刻理解,待学完以后再回顾一下,就会有比较深的体会。 总之,语言对程序员要求较高。程序员使用语言编写程序会感到限制少、灵活性大,功能强,可以编写出任何类型的程序。现在,语言已不仅用来编写系统软件,也用来编写应用软件。学习和使用的人已越来越多。1.3 简单的程序介绍 下面先介绍几个简单的程序,然后从中分析程序的特性。例1.1 /* Example 1.1 on page 4 */ main () printf (This is a C program n); 本程序的作用是输出以下一行 This is a C program 其中main表示“主函数”,每一个程序都
7、必须有一个main函数。函数体由大括弧只有一个输出语句,printf是语言中的输出函数(详见第三章);“n”是换行符。例1.2 /* Example 1.2 on page 4 */ main ()int a, b, sum; a=123;b=456; sum=a+b; printf(Sum of a plus b is %dn,sum);本程序的作用是求两个整数和b之和sum * *表示注释部分,为便于理解,用汉字表示注释,当然也可以用英语或汉字拼音作注释。注释只是给人看的,对编译和运行不起作用,注释可以加在程序中任何位置。第二行是变量定义部分,说明a,b.sum是整型(int)变量。第三行
8、是两个赋值语句,使和b的值分别为和。第四行使sum的值为a+b第五行中“%d”是输入输出“格式字符串”,用来指定输入输出时的数据类型和格式(详见第三章),“%d”表“十进制整数类型”。在执行输出时,此位置上代以一个十进制整数,因此输出一行信息为: Sum of a plus b is 579例1.3/* Example 1.3 on page 4 */main() * 主函数 *int a,b,c; *定义变量*printf(Input a,b:);scanf(%d,%d,&a,&b); *输入变量和b的值*c=max(a,b); *调用max函数,将得到的值赋给c *printf(Max o
9、f a and b is %dn,c); *输出c的值*/int max(x,y) * 定义max函数,函数值为整型,x,y为形式参数 *int x,y; /* 对形参x, 作类型定义 *int z; /* max函数中用到的变量z,也要加以定义 *if(xy) z=x; else z=y;return (z); /* 将z的值返回,通过max带回调用处 * 本程序包括两个函数:主函数和被调函数max ,max函数的作用是将x和y中较大者的值赋给变量z . return语句将z的值返回给主调函数main。返回值是通过函数名max带回到main函数的调用处,main函数中的scanf是“输入函数
10、”的名字(scanf,printf都是语言提供的标准输入输出函数)。程序中scanf函数的作用是输入和b的值。a和中的“”的含义是“取地址”,此scanf函数的作用是:将两个数值分别输入到变量a和b的地址所标志的单元中,也就是输入给变量a和b。这种形式是与其它语言不同的,它相当于basic语言中的input a ,b“,”的含义与前相同,只是现在用于“输入”。它指定输入的两个数据按十进制整数形式输入。关于scanf函数佯见第三章。 main函数中第四行为调用max函数,在调用时将实际参数和b的值分别传送给max函数中的形式参数x和。经过执行max函数得到一个返回值(即max函数中变量z的值),
11、把这个值赋给变量c,然后输出c的值。printf函数中双引号内的“max=%d”在输出时,其中“%d”将由的值取代之,“max=”原样输出。程序运行情况如下: 8,5 (输入和给和b) max=8 (输出的值) 本例用到了函数调用、实参和形参等概念,只作了很简单的解释。读者如对此不大理解,可以先不予以深究,在学到以后有关章节时问题自然迎刃而解。在此介绍此例子,无非是让大家对C程序的组成和形式有个初步的了解。通过上例,可以看到: 程序是由函数构成的。一个源程序至少包含一个函数(main函数),也可以包含 一个main和若干其他函数。C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说
12、是函数式的语言。程序全部工作都是由函数来完成的。的函数库十分丰富,标准提供一百多个库函数,Turbo和MS C4.0提供三百多个库函数。 的这种特点使得容易实现程序的模块化。 一个函数由两部分组成: (1)函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。 例如例1.3中的max函数的说明部分为。 int max ( x,)函数类型 函数名 函数参数 int ,y; 形参类型 形参 一个函数名后面必须跟一对圆括弧,函数参数可以没有,如main( )。 (2)函数体,即函数说明部分下面的大括弧内的部分。如果一个函数内有多个大括弧,则最外层的一对 为函数体的范围。
13、函数体一般包括: 变量定义。如例中main函数中的“int a,b,c”。 执行部分。由若干个语句组成。 当然,在某些情况下也可以没有变量定义部分(例如例)。甚至可以既无变量定义也无执行部分。如: () 它是一个空函数,什么也下干,但这是合法的。 一个程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。 程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上人程序没有行号,也不象O或那样严格规定书写格式(语句必须从某一列开始书写)。 每个语句和数据定义的最后必须有一个分号。
14、分号是语句的必要组成部分。例如: 十;分号不可少。即使是程序中最后一个语句也应包含分号(这是和语言不同的)。 语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成C对输入输出实行函数化 可以用*对程序中的任何部分作注释,一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。1.4 程序的上机步骤 在了解了上述语言的初步知识后,一定要上机运行一个程序,以增加对的认识。 在编好一个源程序后,如何上机运行呢?下面就Turbo C的环境下运行程序作一简单介绍。 用 运行程序的步骤 先将 装人磁盘tc目录。 调用 程序,进入MS-dos;只需打入:cdtc;tc 屏幕顶部出现一排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 川化股份合同范本
- 建材分销协议书
- 工地测量合同范本
- 执行实施合同范本
- 装修发票协议书
- 内网维护合同范本
- 征收协议书模板
- 意向性合同协议
- 展览品合同范本
- 装饰装潢协议书
- 2025张家港市辅警考试试卷真题
- 部编版小学三年级语文寒假衔接讲义第4讲:句子复习 (学生版)
- 辽宁省本溪市2024-2025学年七年级(上)期末历史试卷【含答案】
- 道路清扫保洁重点路段分析及解决措施
- 民主建国会会史课件
- 鹦鹉热护理措施
- 员工劳务合同书
- 人体形态学(山东联盟)智慧树知到期末考试答案章节答案2024年青岛滨海学院
- 《办公用房租赁合同》范本标准版可打印
- 人机环管安全管理措施
- 大庆一中、六十九中初四上学期期末质量检测物理试题
评论
0/150
提交评论