程序设计语言基本概念与试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基本概念
在计算机中,程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低。与程序设计相关的基本概念如下。
(1)低级语言:又称面向机器语言,它是特定的计算机系统所固有的语言。
(2)汇编语言:是机器语言的一种提升,它使用了一些助记符来表示机器指令中的操作码和操作数。但它仍然是一种和计算机机器语言十分接近的语言,使用起来仍然不太方便。
(3)高级语言:与人们的自然语言比较接近,使用起来很方便,也极大的提高了程序设计效率。
(4)编译程序:也称编译器,将源程序翻译成目标语言程序,然后在计算机上运行目标程序。虽然执行效率高,但编写出来的程序可读性很差,且难以修改和维护。
(5)解释程序:也称解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行。
(6)程序设计语言:程序设计语言的定义都涉及语法、语义和语用等方面。
(7)语法是指由程序语言的基本符号组成程序中的各个语法成分(包括程序)的一组规则,其中由基本字符构成的符号(单词)书写规则称为词法规则,由符号构成语法成分的规则称为语法规则。
(8)语义是程序语言中按语法规则构成的各个语法成分的含义,分为静态语义和动态语义。
(9)语用表示了构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响。
(10)语境是指理解和实现程序设计语言的环境,包括编译环境和运行环境。
二、程序设计语言的分类
1.命令式程序设计语言
命令式程序设计语言是基于动作的语言,在这种语言中,计算被看成是动作的序列。
结构化程序设计语言属于命令式语言类,其结构特性主要有:一是用自顶向下逐步精化的方法编程,二是按照模块组装的方法编程,三是程序只包含顺序、判定(分支)及循环结构,而且每种构造只允许单入口和单出口。C语言、PASCAl等都是典型的结构化程序设计语言。
2.面向对象程序设计语言
面向对象的程序设计在很大程度上应归功于从模拟领域发展起来的Simula,Simula提出了类和对象的概念。C++、Java和smalltalk是面向对象程序设计语言的代表。
3.函数式程序设计语言
函数式程序设计语言是一类以λ-演算为基础的语言,其概念来自于Lisp,一个在1958年为了人工智能应用而设计的语言。函数是一种对应规则(映射),它使定义域中每个元素和值域中唯一的元素对应。
函数定义1:Square[x]:=x×x
函数定义2:Plustwo[x]:= Plusone[Plusone[x]]
函数定义3:fact[n]:=if n =0 then 1 else n×fact[n-1]
4.逻辑型程序设计语言
逻辑型程序设计语言是一类以形式逻辑为基础的语言,其代表是建立在关系理论和一阶谓词理论基础上的Prolog(Programming in Logic)。Prolog程序是一系列事实、数据对象或事实间的具体关系和规则的集合。通过查询操作把事实和规则输入数据库。用户通过输入查询来执行程序。在Prolog中,关键操作是模式匹配,通过匹配一组变量与一个预先定义的模式并将该组变量赋给该模式来完成操作。
三、程序设计语言的基本成分
1.数据成分
数据成分指的是一种程序语言的数据类型。
(1)常量和变量
按照程序运行时数据的值能否改变,将数据分为常量和变量。变量具有左值和右值,在程序运行过程中其右值可以改变;常量只有右值,在程序运行过程中不能改变。
(2)全局变量和局部变量
按照数据的作用域范围,可分为全局变量和局部变量。系统为全局变量分配的存储空间在程序运行的过程中一般是不改变的,而为局部变量分配的存储单元是动态改变的。
(3)数据类型
按照数据组织形式不同可将数据分为基本类型、用户定义类型、构造类型和其他类型。
基本类型:整型(int)、字符型(char)、实型(float、double)和布尔类型(bool)。
特殊类型:空类型(void)。
用户定义类型:枚举类型(enum)。
构造类型:数组、结构、联合。
指针类型:type *。
抽象数据类型:类类型。
2.运算成分
程序语言的运算成分指明允许使用的运算符号及运算规则。大多数高级程序语言的基本运算可分成算术运算、关系运算和逻辑运算,有些语言如C(C++)还提供位运算。
3.控制成分
控制成分指明语言允许表述的控制结构。
(1)顺序结构
顺序结构用来表示一个计算操作序列,从第一个操作开始,按顺序依次执行后续的操作,直到最后一个操作,如图2-1所示。(2)选择结构选择结构提供了在两种或多种分支中选择其中一个的逻辑,如图2-2所示。
(3)循环结构
循环结构描述了重复计算的过程,通常由三部分组成:初始化、循环体和循环条件。主要有两种形式:while型循环结构和do-while型循环结构,如图2-3所示。
(4)C(C++)语言提供的控制语句
①复合语句
复合语句用于描述顺序控制结构。复合语句是一个整体,要么全部执行,要么一条语句也不执行。
②if语句和switch语句
if语句实现的是双分支的选择结构,其一般形式为:
1.if(表达式)
2.语句1;
3.else
4.语句2;
需要注意的是if和else的匹配关系。
switch语句描述了多分支的选择结构,其一般形式为:
1.switch(表达式){
2.case 常量表达式1:语句1;
3.case 常量表达式2:语句2;
4.
5.…
6.case 常量表达式n:语句n;
7.default:语句n+1;
8.
9.}
③循环语句主要指while语句、do-while语句和for语句。while语句描述了先判断条件再执行循环体的控制结构,其一般形式为:
1.while(条件表达式)
2.{
3.
4.循环体语句;
5.
6.}
do-while语句描述了先执行循环再判断条件的控制结构,其一般格式是:
1.do
2.
3.循环体语句;
4.while(条件表达式);
for语句的基本格式是:
1.for(表达式1;表达式2;表达式3;)循环体语句;
可用while语句等价地表示为:
1.表达式1;
2.while(表达式2){
3.循环体语句;
4.表达式3;