




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
普通高等教育“十二五”规划教材C语言程序设计任正云李素若赖玲主编中国水利水电出版社第1章C语言程序设计基础程序设计及程序设计语言C语言的特点C程序结构源程序的编辑、编译、连接与运行1.1程序设计及程序设计语言程序是能被机器识别并能执行的一系列的指令代码,这些指令代码是用程序设计语言来描述的。1.1.1程序设计语言的发展低级语言高级语言低级语言机器语言用二进制代码表示机器指令和数据。某CPU指令系统中的两条指令:10000000(进行一次加法运算)10010000(进行一次减法运算)汇编语言20世纪50年代中期人们开始用一些“助记符”来代替0、1码进行编程。A+B=>A或ADDA,BA-B=>A或SUBA,B这种用助记符号描述的指令系统称为符号语言或汇编语言。高级语言高级语言是相对于低级语言而言的,它以人类易于接受的文字来表达解决问题的全过程。高级语言分为面向过程的程序设计语言和面向对象的程序设计语言。如C语言和Pascal语言、FoxBase、VisualC++、VisualBasic等。高级语言面向过程的程序设计语言把解题过程看作数据被加工的过程。基于这种方法的程序设计语言称为面向过程的程序设计语言。面向对象的程序设计语言面向对象的程序设计是一种结构模拟方法,它把现实世界看成是由许多对象(object)所组成,对象之间通过相互发送和接收消息进行联系。消息的发送对象本身运动,形成对象状态的变化。从程序结构的角度,每个对象都是一个数据和方法的封装体——抽象数据类型。1.1.2C语言的发展过程C语言的发展过程可粗略地分为三个阶段:1970年至1973年为诞生阶段之后至1988年为发展阶段1988年以后为成熟阶段1.C语言的诞生C语言是为写UNIX操作系统而诞生的。1970年美国AT&T公司贝尔实验室KenThompson为实现UNIX操作系统而提出一种仅供自己使用的工作语言,由于该工作语言是基于1967年由英国剑桥大学的MartinRichards提出的BCPL语言设计的,因而被作者命名为B语言,B取自BCPL的第一个字母。B语言被用于在PDP-7计算机上实现了第一个UNIX操作系统。1972年贝尔实验室的DennisM.Ritchie又在B语言基础上系统地引入了各种数据类型,从而使B语言的数据结构类型化。1973年K.Tompson和D.M.Ritchie用C语言重写了UNIX操作系统,推出UNIXv5。1975年又推出UNIXv6。此时的C语言是附属于UNIX操作系统的。2.C语言的发展1977年C语言的作者发表了不依赖于具体机器系统的C语言编译文本《可移植C语言编译程序》,从而推动了UNIX操作系统在各种机器上的实现以及UNIX操作系统的不断发展。1978年以后相继推出了UNIXv7,UNIXsystemV。使人们普遍注意到C语言的突出优点,从而又促进了C语言的迅速推广。1978年BrianW.Kernighan和D.M.Ritchie以UNIXv7中编译程序为基础写了影响深远的名著TheCProgrammingLanguage,这本书上介绍的C语言是以后各种C语言版本的基础,被称为传统C语言。1978年以后,C语言先后移植到各种大型机、中型机、小型机及微型机上。目前,C语言成为世界上使用最广泛的高级程序设计语言,且不依赖于UNIX操作系统而独立存在。3.C语言的成熟1978年以后,C语言的不断发展产生了各种C语言版本,不同的C语言版本对传统C语言都有所扩充和发展。1983年,美国国家标准协会(ANSI)综合了各版本对C的扩充和发展,制定了新标准,称为ANSIC。Kernighan和D.M.Ritchie按ANSIC标准重写了他们的经典著作,于1990年正式发表了国际标准化组织(ISO)公布的C语言标准。1988年以后推出的各种C语言版本与ANSIC是相容的。1.2C语言的特点语言简洁、紧凑,使用方便、灵活。一共只有32个关键字9种控制语句程序书写形式自由,主要用小写字母表示。C语言PASCAL语言含义{}BEGIN...END复合语句if(e)SIF(e)THENS条件语句inti;VARi:INTEGER定义i为整型变量inta[10];VARa:ARRAY[1..10]OFINTEGER定义a为整型一维数组intf();FUNCTIONf():INTEGER定义f为返回整型值的函数int*p;VARp:
INTEGER定义p为指向整型变量的指针变量i+=2;i:=i+2赋值语句,使i+2=>ii++,++ii:=i+1i自增值1,i+1=>i1.2C语言的特点运算符丰富。共有34种运算符。数据结构丰富,具有现代化语言的各种数据结构。C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能实现各种复杂的数据结构(如链表、树、栈等)的运算,尤其是指针类型数据。具有结构化的控制语句if...else语句while语句do...while语句switch语句for语句1.2C语言的特点语法限制不太严格,程序设计自由度大。对数组下标越界不做检查,由程序编写者自己保证程序的正确。整型数据与字符型数据可以通用。
C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。C语言既具有高级语言的特点,又具有低级语言的许多功能,可用来编写系统软件。生成目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10%~20%。程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。1.3.1简单的C程序介绍main() { printf("ThisisaCprogram.\n"); }输出结果是:ThisisaCprogram.【例1.1】简单的C程序介绍【例1.2】
运行结果为:sum=579
计算两数之和并输出结果。main(){inta,b,sum; a=123;b=456;sum=a+b; printf("sum=%d\n",sum); }简单的C程序介绍
【例1.3】运行结果为:sum=579
输入两个整数,计算两者较大的数,并输出。main(){inta,b,c;intmax(intx,inty);scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz; if(x>y) z=x; else z=y; returnz;}1.3.2C程序结构(1)C程序由函数构成(函数是C程序的基本单位)
一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。函数是C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。C函数库非常丰富,ANSIC提供100多个库函数,TurboC提供300多个库函数。1.3.2C程序结构(2)main函数(主函数)是每个程序执行的起始点。一个C程序总是从main函数开始执行,而不论main函数在程序中的位置。可以将main函数放在整个程序的最前面,也可以放在整个程序的最后,或者放在其他函数之间。1.3.2C程序结构(3)一个函数由函数首部和函数体两部分组成。函数首部:一个函数的第一行。返回值类型函数名([函数参数类型1函数参数名1][,…,函数参数类型2,函数参数名2])intmax(intx,inty)函数体:函数首部下用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。函数体一般包括声明、执行两部分。[声明部分]:定义本函数所使用的变量。执行部分]:由若干条语句组成命令序列(可以在其中调用其他函数)。1.3.2C程序结构(4)C程序书写格式自由。一行可以写几个语句,一个语句也可以写在多行上。C程序没有行号,也没有FORTRAN、COBOL那样严格规定书写格式。每条语句的最后必须有一个分号“;”表示语句的结束。1.3.2C程序结构(5)可以使用/**/对C程序中的任何部分作注释。如果一开始编程就对程序进行注释,虽然刚开始麻烦一些,但日后可以节省大量的时间。一个实际的系统往往是多人合作开发,程序文档、注释是其中重要的交流工具。1.3.2C程序结构(6)C语言本身不提供输入/输出语句,输入/输出的操作是通过调用库函数(scanf,printf)完成。输入/输出操作涉及具体计算机硬件,把输入/输出操作放在函数中处理,可以简化C语言和C的编译系统,便于C语言在各种计算机上实现。1.4源程序的编辑、编译、连接与运行用高级语言编写的程序称为“源程序”,通常简称为程序。高级程序设计语言也必须被转换为机器语言程序才能被机器理解和执行,完成这种转换任务的系统软件称为编译程序。相应的转换过程通常称为编译。C语言采用编译方式将源程序转换为二进制的目标代码。1.编辑将源程序逐个字符输入到计算机内存;修改源程序;将修改好的源程序保存在磁盘文件中。编辑的对象是源程序,它是以ASCII代码的形式输入和存储的,不能被计算机执行。
编写好一个C程序到完成运行一般经过以下几个步骤:2.编译编译就是将已编辑好的源程序(已存储在磁盘文件中)翻译成二进制的目标代码。编译后得到的二进制代码在UNIX下是后缀为.o的文件,在MS-DOS下是后缀为.obj的文件。经编译后得到的二进制代码还不能直接执行,因为第一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业贴息管理办法
- 收入财务管理办法
- 徐州长效管理办法
- 库房蔬菜管理办法
- 当地雇员管理办法
- 春季幼儿园常见传染病行为规范预防措施
- 长春工业大学人文信息学院《软件工程概论》2023-2024学年第一学期期末试卷
- 中山火炬职业技术学院《供配电技术》2023-2024学年第一学期期末试卷
- 延边大学《中学语文技能训练》2023-2024学年第一学期期末试卷
- 重庆资源与环境保护职业学院《软件项目管理》2023-2024学年第一学期期末试卷
- 防尘防锈管理办法
- 吸引力法则教学课件
- 养老机构洗涤规范
- 中国慢性阻塞性肺疾病基层诊疗与管理指南2024
- 视觉设备考试题目及答案
- 护理缺陷纠纷登记报告制度
- 2025年初中英语教师进城考试试卷含答案(三套)
- 新能源技能测试考试题及答案
- 地质灾害防治工程师岗位面试问题及答案
- (2025)新版gcp考试题库附答案
- 浙江省嘉兴市2024-2025学年高一下学期期末测试语文试题卷(含答案)
评论
0/150
提交评论