




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
荆茂辉 论文 C语言与Pascal语言的简单比较C语言与Pascal语言的简单比较荆茂辉 (2010101026)(汕头大学工学院计算机系)摘要:C语言和Pascal语言既有相似之处,又有区别。本文从常量、变量、运算符、数组、指针和一些语句等方面对两者做了简单的比较。常量的比较中,两种语言都有数、字符、字符串这三种,但C语言中的数可以有多种进制。由于C语言中存在修饰符,变量要比Pascal语言中的变量复杂的多。C语言中运算符和表达式数量之多,在高级语言中是少见的,也是Pascal语言不能比拟的。至于数组、指针和语句,两种语言有很大的相同点,但区别也是明显的,如C语言的数组、指针可以初始化等。最大的区别是在各个方面,与Pascal相比C语言更为简洁。关键词:C语言和Pascal语言,比较,常量,变量,语句Abstract: There are similarities and differences between Combined Language and Pascal Language. In this paper, the author does simple comparison in constant, variable, operator, array, pointer and some sentences. In comparison of constant, both languages have number, character and character strings and Combined Language can have an octal number system and a hexadecimal number system. Due to modifiers, the variables in Combined Language are much more complicated than that in Pascal Language. Two languages have a lot of similarities in array, pointer and sentences, and differences are also obvious. To sum up, Combined Language is more compact compared with Pascal Language.Key words: Combined Language and Pascal Language, comparison, constant, variable, sentence1.引言 C语言和Pascal语言是两种影响较大的计算机程序设计高级语言。其两者都在ALGOL60的基础上发展而来,只是C语言的发展经历了更加复杂的过程。这就使得C语言和Pascal语言既有相似之处,又有不同的地方。Pascal语言是由瑞士的沃斯(N. Wirth)教授于1971年提出,其命名是为了纪念法国数学家Pascal。其特点如下:(1)它是世界上第一个结构化程序设计语言。在程序设计方法上,采取自顶向下、逐步求精的方法。(2)功能强、应用广。(3)编译和运行效率高。(4)可移植、易推广。由于Pascal语言具有良好的结构化程序设计特性,它特别适用于教学。适合于培养学生掌握自顶向下逐步求精的结构化程序设计思想和方法,并养成良好的程序设计风格和习惯。相对来讲,C语言的发展更为复杂。C语言的发展史经历了由ALGOL60到CPL(combined programming language, 1963年提出),到BCPL(basic CPL,1967年提出),到B语言,最后由Dennis Ritchie 在B语言基础上开发新语言C,并于1972年正式投入运行。相对于Pascal语言,C语言通常被称为中级语言。这是因为它把高级语言的成分同汇编语言的功能结合起来,因而功能更加强大。C语言的特点:(1)可以实现很多汇编语言的功能,也支持高级语言常用的各种思想和方法。(2)生成的可执行代码质量高。(3)可移植性好。(4)允许程序模块的分块编译。下面我们就来比较一下C语言和Pascal语言。2.1常量在程序运行过程中,其值不能改变或不允许改变的数据对象,称之为常量。在Pascal语言和C语言中的常量都有数、字符、字符串这三种,但在细节上又有不同。且C语言中还有符号常量;Pascal语言中有标准常量。2.1.1数C语言中有整数和实数(浮点型)两种数。1.整型常量 整型常量也称为整型常数或整数。 C整型常量按进制分可分为十进制整数,八进制整数和十六进制整数。 1) 十进制整数 十进制数:以正负号开头,后跟09的若干位数字构成。2)八进制整数 八进制数:以正负号开头,第一位数字一定是0,后面跟07的数字。3)十六进制整数 十六进制数:以正负号开头,前两位为0x,后面跟09和af的数字。2.实型常量1) 小数形式 一个实数可以是正负号开头,有若干位09的整数,后跟一个小数点(必须有),再有若干位小数部分2) 指数形式 实数的指数形式也称为科学计数法。一个实数的指数形式分成尾数部分和指数部分。尾数部分可以是整数形式或小数形式,指数部分是一个字母“e”后跟一个整数。在浮点数表示中,可以不出现整数或小数部分,但两者不能同时省去。即,以下浮点数表示.7 .7e2 4.e-2是有效的。3)双精度实数和long double(用于提高精度) Pascal语言中,1)整型常量和实型常量都是十进制; 2)实型常量中没有双精度实数和long double; 3)小数点前后必须有数字2.1.2字符常量在c语言中,字符型数据用于表示一个字符值,但字符数据的内部表示是字符的ASCII代码,并非字符本身。而在Pascal语言中,字符常量的值是单个字符。字符常量的书写方法是用单引号()括起一个字符,这在两种语言中是一样的。在C语言中由于字符型常量是以编码形式存放的,所以可以参与各种运算。例如:y=b+10;相当于y=98+10; 结果为:108但在Pascal语言中,字符常量是不能直接参与算术运算的,必须用“取序”函数(ord)取其ASCII码,然后参加运算。2.1.3字符串常量在C语言中,字符串常量是一对双引号(“ ”)括起来的字符序列。字符的个数称为其长度,简称为字符串。长度为n的字符串,在计算机存储器中占n+1个字节,分别存放字符的编码,最后一个字节存放是NULL字符(或叫空字符,编码为0,在C语言中也用0来表示,也就是说任何一个字符串最后一个存储字节都是0)。而在Pascal语言中,字符串是用一对单引号( )括起来的字符序列。 在Pascal语言中,只有字符串中才区分字母大小写;而C语言被称为“大小写敏感语言”,不只在字符串中区分字母大小写。2.1.4符号常量(仅在C语言中有)在C语言中,可对常量命名,也就是用符号代替常量。该符号称为符号常量,一般用大写字母表示。使用前要用宏定义命令先定义。 宏定义命令define用来定义一个标识符和一个字符串,在程序中每次遇到该标识符时就用所定义的字符串替换它。这个标识符叫做宏名,替换过程叫做宏替换或宏展开。应注意宏替换仅是简单地用所说明的字符串来替换对应的宏名,无实际的运算发生,也不作语法检查 2.1.5 Pascal中的标准常量最大整数maxint和布尔常量false,true 2.2变量在程序运行过程中其值可以变化的量我们称之为变量。每一个变量都对应计算机内存中相应的存储单元。在该单元中存放变量的值。2.2.1 C语言基本数据类型和Pascal语言标准类型C语言变量基本数据类型的长度和值域如下表类 型二进制位长度值 域charintfloatdoublevoid81632640-128127-32768327673.4e-383.4e+381.7e-3081.7e+308valueless 基本数据类型、长度、值域对照表字符型(char)变量用于存贮ASCII码字符,也可存贮8位二进制数。 整型(int)变量用于存贮整数。因其字长有限,故可表示的整数的范围也有限。 单精度实型(float)和双精度实型(double)变量用于存贮实数,实数具有整数和小数两部分或是带指数的数据。表中的值域用绝对值表示。 无值型(void)有两种用途:第一是明确地表示一个函数不返回任何值;第二是产生同一类型的指针。 Pascal语言的标准类型:实型、整型和字符型与C语言区别已在上文讲到。这里就看一下布尔型。布尔型的值只有两个:false和true,并规定false)、小于(=)、小于等于()、小于(=)、小于等于(=)和不等于()六种。 3.逻辑运算符 用于逻辑运算。包括与(&)、或(|)、非(!)三种。 Pascal语言:与(AND)、或(OR)、非(NOT)除了符号不同外,还需注意在C语言中以任何非零值作为“真”,而以0值作为“假”。而在Pascal语言中,false为假,其值为0,true为真,其值为1。特别需要注意的是,C语言规定,若e1|e2中的表达式e1的值为非零,则不对表达式e2求值;若e1&e2中的e1的值为零,则不对e2求值。 4.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,=)三类共十一种。 Pascal语言中的赋值运算符为:=,没有复合赋值运算符。 以下是Pascal语言中没有的运算符: 5.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非()、位异或()、左移()六种。 6.条件运算符 这是一个三目运算符,用于条件求值(? :)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10. 圆点和箭头运算符 用于对结构分量的访问。2.4数组(一维) C语言中的声明: 类型 数组名 整型常量表达式;其中,类型用来指出数组元素的类型;数组名为标识符,用来标识这个数组;整型常量表达式是一个值为整型的常量表达式,它的值(记为n)表示该数组元素的个数,n应当大于零。该数组的n个元素的下标值依次为0,1n-1,这些元素按下表值由小到大的次序依次存放在一片连续的存储空间里。Pascal语言的说明: TYPE 数组类型标识符 = ARRAY 下标类型OF 基类型VAR 数组变量表: 数组类型标识符下标类型可以是boolean,char以及枚举类型和子界类型,通常下标类型表示成形如min. max的子界类型(这里ord(min) ord(max)。基类型描述了该数组元素的类型,一个数组中的元素类型相同。C语言中数组元素下标值只能为整型;而Pascal语言中,下表类型可以有多种。两种语言中,同一个数组里元素类型相同。两种语言中的数组都是记第一个元素的地址,在C语言中,数组名即是整个数组的标识,有代表该数组第一元素的地址。在数组元素的引用上,C语言有两种。第一种与Pascal语言相似,即: 数组名整型常量表达式这里的 中的表达式值必须为整型,且要大于等于零,小于元素个数。而Pascal语言中为: 数组名下标变量。第二种为: * (被引用的数组元素的地址)在Pascal中,除了同类型的数组可以整体拷贝(赋值)外,数组不能整体读入和输出。对数组的读、写、赋值、和其他运算,通常是对每个元素进行的。而在C语言中,数组可以初始化。形式如下: 类型 数组名 =常量表达式1,常量表达式2,常量表达式n或者 类型 数组名常量表达式=常量表达式1,常量表达式2,常量表达式n第一种形式中数组的元素个数等于中常量表达式的个数;第二种形式中内的表达式个数应小于等于 内常量表达式的值,若小于,用零补足。2.5 指针 C语言的指针变量说明: 类型 * 指针变量名其中类型是指针变量所指向的类型,它可以是整型、浮点型、数组类型、结构等类型,也可以是指针类型;指针变量名用标识符表示。 Pascal语言中指针类型说明: TYPE 指针类型标识符 = 结点类型标识符; 结点类型标识符 = 类型; VAR 指针类型变量表:指针类型标识符;这里是先定义一个指向某类型结点的指针类型,然后再定义该指针类型的变量。通常在Pascal语言的指针类型中都要用到过程new。它的作用是为一个由指针变量所指向的数据结构分配存储,所分配的数据结构类型由所指向数据结构的类型决定。这是与C语言的不同之处,在C语言中则不用。引用结点时,Pascal语言中为P(其中P为一个指针变量),即由指针变量后加一个箭头表示。需要注意的是在终端由代替。在C语言中,要用到简介操作*,即*P表示某一地址的内容。还有,C语言与Pascal语言在指针类型上的很大不同是C语言的指针可以在声明时对其进行初始化,指针变量亦可进行运算(包括与整数做+、-运算,同类型指针相间、比较相等和不等运算);而在Pascal语言中,指针变量不能初始化,指针变量也只能做相等和不等的运算。2.6 IF语句C语言中形式如下: If (表达式) 语句 If-else语句: If (表达式) 语句1 else 语句2其中括号内的表达式称为控制表达式,语句为任意的单个C语句。 Pascal语言中形式: IF 条件 THEN语句 ELSE 语句2条件是一个布尔表达式。这里容易看出区别在于IF后面的表达式和条件,C语言中任意的单个C语句,而Pascal语言中“条件”为布尔表达式。这是因为在C中没有逻辑变量的定义,“真”值是任何非零值,“假”值为零。两种语言都允许IF语句的嵌套,在else-if匹配规则上也相似。C语言要求else与最近的未得到匹配的if语句匹配,但可以通过加括号改变匹配关系。Pascal语言规定ELSE总是与同一层前面最靠近它的、没有ELSE与之配对的THEN配对,但可以通过加BEGIN、END改变配对关系。2.7 switch语句和case语句 Switch语句形式: switch (表达式) case 常量1: 语句序列1 case 常量2: 语句序列2 default: 语句序列n 其中表达式为控制表达式,其类型为int,语句序列由C的任意语句组成。Case语句形式: CASE 表达式 OF 值表1:语句1; 值表2:语句2; 值表n:语句n; END其中表达式为有序类型,值表是一些由逗号分隔开的常数。表达式中所有可能的值必须在值表中出现,且每个值只能出现一次。Switch语句中,控制表达式只能是int型,而case语句表达式为有序类型,包括整型;switch语句中语句序列中必须有break语句(用来跳出switch语句),若没有则会执行下一个语句序列,直至遇到break语句或default语句。Switch语句也必须有default语句,若没有则不执行switch语句。而在case语句中只是要在最后加END。Switch语句中的语句序列可以有多个语句,而case语句中值表后的语句为一条语句,可以是由BEGIN、END构成的复合语句。2.8 循环语句2.8.1 for语句 C语言for语句形式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电信运营商招聘技术岗位模拟题及参考答案
- 免疫细胞技术临床应用规范
- 腹膜透析的护理
- 田园四季歌课件
- 新解读《GB-T 36778 - 2018燕麦花叶病毒检疫鉴定方法》
- 用表格表示变量关系课件
- 升国旗作文教学课件
- 新解读《GB-T 22048-2022玩具及儿童用品中特定邻苯二甲酸酯增塑剂的测定》
- 2025年建筑工程管理与实务一级建造师考试冲刺押题卷
- 生活安全知识培训方案课件
- 并购贷款业务培训
- 维护新疆稳定 实现长治久安课件
- 北京大学人民医院-医疗知情同意书汇编
- 档案管理员述职报告9篇
- 舞台灯光基础知识教学课件
- 建设集团有限公司安全生产管理制度汇编
- 牙体牙髓病最全课件
- 交通信号控制系统检验批质量验收记录表
- 疫苗运输温度记录表
- 各国钢材-合金牌号对照表
- 医院定岗定编要点
评论
0/150
提交评论