文档库 最新最全的文档下载
当前位置:文档库 › PASCAL语言程序设计

PASCAL语言程序设计

PASCAL语言程序设计
PASCAL语言程序设计

目录

第一部分 PASCAL语言程序设计 (2)

第一章 PASCAL语言基础 (2)

第一节程序的组成与上机调试运行 (2)

第二节常量、变量与数据类型 (3)

第三节表达式与标准函数 (6)

第四节赋值语句、输入与输出语句 (9)

习题 (13)

第二章程序的三种基本结构 (15)

第一节顺序结构 (15)

第二节选择结构 (15)

第三节循环结构 (17)

习题 (20)

第三章数组 (22)

第一节一维数组 (22)

第二节二维数组及应用 (25)

习题 (26)

第四章字符与字符串操作 (29)

第一节字符和字符数组 (29)

第二节字符串变量 (29)

第三节字符串应用举例 (31)

习题 (33)

第五章函数与过程 (35)

第一节自定义函数 (35)

第二节自定义过程 (38)

第四节递归 (42)

第五节递归与回溯 (45)

习题 (50)

第一部分 PASCAL语言程序设计

第一章 PASCAL语言基础

Pascal语言是瑞士苏黎士工科大学的Niklans Wirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者Blaisc Pascal而将它命名为Pascal程序设计语言。Pascal语言是信息学奥赛中普遍使用的程序设计语言。

第一节程序的组成与上机调试运行

一、程序的组成

我们先看一道例题。

例1-1 输入两个整数a和b,计算a和b的和(a+b)。

【参考程序】

program a1(input,output); //程序首部

var a,b,c:integer; //程序说明部分,a,b,c被说明为整型变量

begin //程序执行部分,下面是程序的内容

write('a='); //在屏幕上输出一个字符串“a=”,输出完后不换行

read(a); //从键盘输入一个数值赋给变量a

write('b='); //在屏幕上输出一个字符串“b=”,输出完后不换行

read(b); //从键盘输入一个数值赋给变量b

c:=a+b; //计算a+b的和,并将这个和赋值给变量c

writeln(a,'+',b,'=',c); //输出a+b=c的等式,输出完后换行 end. //程序结束

【样例输入】

a=10

b=30

【样例输出】

10+30=40

由上可以看出,一个Pascal程序由以下三部分组成:

(1)由Program 引导的一行是Pascal程序的首部。

程序首部指出了源程序的名称,是由用户自己给出的,该例子称为a1。程序名后用括号括住的两个参数input与output,通常表示程序运行中的标准输入和输出文件,程序首部以分号结束。

(2)Pascal程序的第二部分是说明部分。

说明部分要求列出程序中引用的全部常量、变量、转移标号、类型、过程和函数的有关说明。若变量c在说明部分没有说明,后边的语句c:=a+b在执行时;翻译软件便能指出其错误并提醒用户加以改正,程序中每个语句都以分号表示结束。

(3)程序的第三个部分是用BEGIN和END括住的一串语句,称为程序的执行部分。有的书中将说明部分和执行部分合称为程序体。

二、PASCAL语言编辑软件的基本操作

下面我们以Free Pascal 1.10系统为例来学习一下Pascal语言编辑软件的使用。

1.Free Pascal的启动

在运行程序目录下(一般是c:\pp\bin\go32v2)运行启动程序fp.exe,即可启动系统。屏幕上出现如图1-1所示的集成环境。

图1-1

2.Free Pascal系统集成开发环境(IDE)简介

最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。

3.新建程序窗口

按F10切换到主菜单,选择FILE菜单,执行其中New命令,就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。

4.程序的输入、编辑与运行

在当前程序窗口中,一行一行的输入程序。当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。如果程序有语法错误,则会出现一个Compiler窗口,提示你语句错误的坐标。若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。接下来,我们可以运行程序了。

程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9,则可以在用户窗口中输出运行结果。通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。

5.程序的保存与打开

当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。

当我们要将磁盘上的PASCAL程序打开(装入窗口)时,可按F3(或执行File菜单中的Open命令)来打开程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要打开的文件。

第二节常量、变量与数据类型

一、常量

(1)常量:在某个程序运行的整个过程中其值不能发生改变的量。

(2)常量定义:常量定义出现在说明部分。它的语法格式是:

const

<常量标识符>=<常量>;

...

<常量标识符>=<常量>;

例如:

const

pi=3.141592; //此种方式定义的常量在程序中不可以改变

(3)常量定义部分必须以保留字const开头,可以包含一个或几个常量定义,而且每个常量均以分号结束。

二、变量

(1)变量定义:在某个程序的运行过程中其值可以发生改变的量。它应具有以下三个要素:变量名、变量类型和变量值。

(2)变量说明:变量说明出现在说明部分。它的语法格式是:

var

<变量列表>:<类型>;

...

<变量列表>:<类型>;

(3)变量名

每一个变量必须用一个合适的标识符来命名。

标识符是用来标识处理对象(如常量、变量、类型、过程、函数、程序和文件等)的符号名称。标识符是编程者命名的,自由度很大。命名中应该注意遵循一定的规则,如必须以字母开头,后面可以跟字母、数字和连字符“_”,若有连字符“_”则必须位于标识符中间。如:a,root,tot,t3,exp_1都是合法的标识符,而3a,a#,my%都不是合法的标识符。

(4)变量的类型

在Pascal程序执行的任一时刻,变量总有相应的值。由于变量是有类型的,所以整型变量对应整数值,实型变量对应实数值。

在Pascal语言中规定:在程序中使用的变量必须先定义后使用。如果用到的变量没有定义就使用,程序编译时会出现“Identifier not found X”的错误信息。

例1-2 已知某圆的半径r=15.15,求该圆的面积s?

【分析】圆的面积s=3.14*圆的半径r*圆的半径r

【参考程序】

program t301;

const pi=3.14;

var s,r:real; //定义两个实型变量s,r

begin

r:=15.15;

s:=pi*r*r;

writeln(s:10:2); //显示宽度是10,保留两位小数

end.

【输出结果】

47.57

三、数据类型

Pascal语言提供了丰富的数据类型,大致分为以下三类,如图1-2所示:

图1-2

简单类型是指该类型不能再分解为其它类型,而结构类型是由简单类型所组成的,或者说结构类型是由简单类型所构造成的。

1.整型

一个整型数据用来存放整数。Free Pascal支持七种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)、word(字类型)、int64和Qword,每一种类型规定了相应的整数取值范围以及所占用的内存字节数。

Free Pascal预定义了两个整型常量标识符maxint和maxlongint,他们各表示确定的常数值,maxint为32767,maxlongint为2147483647,他们的类型分别是integer和longint。

2.实型

Free Pascal语言支持五种预定义实型,它们是real(基本实型)、single(单精度实型)、double(双精度实型)、comp()、extended(扩展实型),每一种类型规定了相

实型常量包括正实数、负实数和实数零。pascal中表示实型常量的形式有两种。

⑴十进制表示法

这是人们日常使用的带小数点的表示方法,要求小数点前后必须有数字。如0.0、-0.0、+5.61、-8.0、-6.050等都是实型常量,而0.、.55都不是合法的实数形式。

⑵科学记数法

科学记数法是采用指数形式的表示方法,如1.25×10^5可表示成1.25E+05。在科学记数法中,字母“E”表示10 这个“底数”,而E之前为一个十进制表示的小数,称为尾数,

E之后必须为一个整数,称为“指数”。如-1234.56E+26、+0.268E-5、1E5 是合法形式,而.34E12、2.E5、E5、E、1.2E+0.5都不是合法形式的实数。值得注意的是实数的运算比整数的运算速度慢且无法像整数那样精确表示,只能近似表示。

3.布尔型(boolean)

一个布尔型数据用来存放逻辑值(布尔值),布尔型的值只有两个:false(假值)和true(真值)。

4.字符型(char)

字符型只允许单引号中有一个字符,否则就是字符串(string)。如:'A','y','9','7'。

例1-3 有如下程序,运行它,看有什么结果?

program aa;

var a,b:integer; c,d:real; m,n:booLean; ch:char;

begin

a:=10; b:=5;

writeln('a=',a,' ','b=',b);

c:=a/b;

writeln('c=',c);

ch:='T';

writeln('ch=',ch);

m:=5>6; n:=10>7;

writeln('m=',m,' ','n=',n);

end.

【输出结果】

a=10 b=5

c= 2.000000000000000E+000

ch=T

m=FALSE n=TRUE

例1-4 编写程序,输出如下图形。

【参考程序】

program aa;

begin

writeln(' $');

writeln(' $$$');

writeln('$$$$$');

end.

第三节表达式与标准函数

一、算术运算符与算术表达式

1.算术运算符

常用的有以下6个算术运算符:

+(加)、-(减)、*(乘)、/(实数除)、DIV(整除)、MOD(求余)

其中,/(实数除)得到结果为实型,如5.0/2.0=2.5, 4/2=2.0,DIV(求两个数相除后的整数部分),它要求除数和被除数均为整型,结果也为整型,如10 DIV 2=5,5 DIV 10=0,-15 DIV 4=-3,DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。mod (求两个数相除后的余数部分)也只能用于整数运算,结果为整数,例如:10 mod 4=2,-17 mod -4=-1,4 mod (-13)=4。

2.算术表达式

在Pascal语言中,算术表达式的意义为:所有符合Pascal语法规则的数值型运算对象(数值型常量、变量、函数)、运算符、圆括号所组成的有意义的式子。

表达式的结果可按标准类型分成算术表达式(运算结果为整型/实型)及布尔表达式(运算结果为布尔型)。

3. 关系运算符和关系表达式

由一个关系运算符将两个类型相容且有序的表达式连结起来的式子,称之为关系表达式,其结果为布尔型(真true或假false)。这里用到的Pascal语言中的关系运算符有:>(大于) =(等于) <(小于) >=(大于等于) <=(小于等于) <>(不等于)

共六个。

4. 布尔运算及布尔表达式

(1)布尔常量和变量

在Pascal语言中,布尔运算又称为逻辑运算,布尔值也称为逻辑值,它有“真”与“假”两个,分别用“TRUE”与“FALSE”这两个布尔常量来表示的。用来存放逻辑值的变量称为布尔变量,它的作用就是存放一个布尔常量。当然,布尔变量也必须先定义后使用。

例如:VAR T,F:BOOLEAN;

在这里,使用BOOLEAN这个标准类型标识符来定义T与F这两个布尔变量。

(2)布尔运算

布尔运算有三个运算符:Not(逻辑非)、And(逻辑与)、Or(逻辑或)

由一个布尔运算符将两个类型相容且有序的表达式连结起来的式子,称之为布尔表达式。

在一个既包括有布尔运算符,又有关系运算符的表达式中,它们的运算次序为:

1)括号

2)函数

3)NOT(逻辑非)

4)*、/、DIV、MOD、AND

5)+、-、OR

6)>、=、<、>=、<=、< >

(3)布尔型数据的输入与输出

在Pascal的程序中,只能通过赋值语句给布尔型变量赋值,不能用READ语句输入一个布尔常量,但可以用write或writeln语句直接输出布尔变量和布尔常量的值。

例1-5 判断程序运算结果

program aa;

var a,b,s,d:integer; L,e,g,f,h,m:boolean;

begin

a:=3;b:=7;

s:=a+b; d:=a div b;

L:=a

g:=a>b;f:=e or g;h:=e and g;m:=not h;

write('s=',s:5);

writeln('d=',d:5);

writeln('L=',L);

writeln('e=',e,'g=',g);

writeln(f,' ',h,' ',m);

end.

【输出结果】

s= 10d= 0

L=TRUE

e=FALSEg=FALSE

FALSE FALSE TRUE

二、标准函数

Pascal 预先定义了很多种标准函数,其调用格式如下: 变量名:=函数名(自变量参数); 1.算术函数

(1)绝对值函数abs(X)与数学中的意义功能相同,如:abs(7.1)=7.1,abs(-16)=16

(2)平方值函数sqr(X)即求X 2

值,如:sqr(5)=25

(3)在Pascal 语言中,若要计算y=X n

,可以用y=exp(n*LN(x))来表示。

(4)平方根函数sqrt(X)与数学中的

X 意义功能相同,运算时要求自变量X>=0。如

果要计算3X 的值,那只能借助其它方法了。如: 3X =exp(1/3*LN(x))。

(5)指数函数exp(x)与对数函数LN(x)是一对逆函数。与数学中相应函数的区别在于它们都是以自然对数e(e ≈2.71828)为底。

例如:exp(2)即求e 2

=2.71828*2.71828≈7.3890461 反过来,LN(7.3890461)=2 附:对数的定义:

假定a 是一个不等于1的正实数(即1a ≠且a>0),对于正实数b(即b>0),如果存在一个实数c ,满足c

a b = 这样的关系式,那么我们说”c 是以a 为底,b 的对数”。并以数学符号log a b c =来表示此意义。(注:log a b

读作”以a 为底 , b 的对数”,其中a 叫作log a b 的”底”, b 叫作log a b 的”真数”)

2.转换函数

转换函数使用注意事项:

(1)截尾函数trunc(x)可以将实数型自变量x 的小数部分截去,函数值为整数。如:trunc(17.8)的值为17,trunc(-6.41)的值为-6。

(2)舍入函数round(x)是将实数型自变量x 的小数部分四舍五入,取它的整数部分。如: round(17.8)的值为18,round(-6.1)的值为-6。

(3)当序号函数的自变量为字符时,函数值为该字符的 ASCⅡ码,当自变量为整型数据时,则ord(x)的值为自变量本身,当自变量为BOOLEAN 时,Pascal中规定:FALSE的序号为0,TRUE的序号为1。如:ord('A')=65,ord('a')=97,ord('0')=48,ord(68)=68,ord(FALSE)=0,ord(TRUE)=1。

序号函数ord(x)与字符函数chr(x)的功能相反,它们是一对逆函数。如:

chr(ord('A'))= 'A',ord(chr(96))=96。

(1)前趋函数pred(x)和后继函数succ(x)是一对逆函数。如:pred(succ(x))=x,succ(pred(x))=x。

(2)顺序函数的自变量x必须是一个有顺序的数据类型,如实数型的数虽然能比较大小但无法确定x前一项和后一项到底是什么数,所以实型数没有前驱和后继。

(3)当自变量x为数据第一项时,它没有前驱,如pred(FALSE)无意义;当自变量x 为最后一项时,它没有后继。如succ(TRUE)无意义。

4.逻辑判断函数

奇函数的值为BOOLEAN类型,即只存在“真”(TRUE)和“假”(FALSE)。如:odd(5)=true,odd(10)=false

第四节赋值语句、输入与输出语句

一、赋值语句

1.格式:

变量:=表达式;

2.使用说明:

(1)该语句具有先计算后赋值的功能,即先计算出来表达式的值,然后将其值赋给左边的变量或函数标识符,注意:一个赋值语句只能给一个变量赋值。

(2)“:=”称为赋值号,要注意不能与关系运算符“=”混淆,只有在赋值语句中才能使用赋值号,赋值号具有方向性,是将赋值号右边表达式的值计算出来,赋予赋值号左边的变量,所以赋值号的左边只能是变量,并且赋值号两边的类型应该具有赋值相容性,如整型的值可以赋值给实型变量,反之则不行,字符型可以赋值给字符串型变量,反之也不行。

(3)被赋值的变量本身可以作为因子参与运算,如n:=n-1,i:=i+1,s:=s+x。

例1-6 写出执行下面的程序运行后,变量A、B、C的值。

program a16;

var a,b:integer; c:real;

begin

a:=200;

b:=a div 10;

c:=a;

writeln(a:7,b:7,c:7:2);

end.

二、输入语句(读语句)

1.格式:

read(输入项);或 readln<(输入项)>

2.使用说明:

(1)执行该语句时,从键盘上(或文件中)读入数据,将其值依次赋给输入项中的变量。注意输入的数据必须是常量,且输入的数据类型必须和变量一一对应。

(2)输入项中的括号内应是一组变量,这里一组的含义是可以为一个,也可以是多个,若是多个时,各变量之间必须用逗号分隔,最后一个没有符号,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型等数据类型,但不能是布尔型,因为布尔型不可以直接读入。

如:Read(a,b,c,d);或 Readln(M,N,L);

(3)程序运行后,执行到Read或Readln语句时,系统处于等待状态,等待用户从键盘上输入数据,且当输入项中的变量为多个时,要求输入的相应数据个数不能少于其变量的个数,当输入的数据个数少于变量个数时,系统仍处于等待状态,接着输入的数据无论是换行输入还是不换行输入均有效。

注意:输入数值(整型或实型)数据时,数据间用空格或回车键分隔,最后一定要有一个回车,表示输入结束;输入字符型数据时,数据间不能用空格分隔,可以连续输入(不用空格)或用回车键一个一个字符分隔输入。

(4)READ与READLN的区别:

read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。Readln则不同,在读完本Readln语句中变量所需的数据后,自动换行,该数据行中剩余的数据多余无用,并且readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车),经常用于暂停程序的运行,直到输入一个回车。

例1-7 设I,J,K是整型变量,现需将30,20,10分别赋给这三个变量,要求写出对应于下列语句的所有可能的输入格式:read(i,j,k);

解:所有可能输入格式如下(注:其中用“□”来表示空格,每一行后均有一个回车,以下均同):

(1)30□20□10

(2)30□20

10

(3)30

20□10

(4)30

20

10

例1-8 设A,B,C是字符型变量,现需将'P','A','S'分别赋给这三个变量,要求写出对应于下列语句所有可能的输入格式:read(a,b,c);

(1)PAS

(2)PA

S

(3)P

AS

(4)P

A

S

例1-9 设a,b,c,i,k,j,L,m,n为整型变量,则下面语句的赋值情况是:Readln(a,b,c);

Readln(i,k,j,L);

Readln(m,n);

输入数据:

1□2□3□4□5

6□7□8□9□0

10□20

读入结果为:

1□2□3(分别对应a,b,c,后面的4,5被忽略)

6□7□8□9(分别对应i,k,j,L,后面的0被忽略)

10□20(分别对应M,N)

三、输出语句(写语句)

1.格式:

write(输出项) 或writeln<(输出项)>

2.使用说明:

(1)执行该语句时,按指定的格式将输出项的内容输出。

(2)输出项中括号内的项目内容可以是一组常量、变量、表达式或字符串,一组的含义是可以为一个,也可以是多个,若是多个时,各输出项之间必须用逗号分隔,最后一个没有符号。

如:WRITE('A+B=',A+B);或WRITELN(3,'*',N,'=',L);

(3)输出项中的各个不同项目其输出的结果分别是:

当输出项为常量时,直接输出该常量的值;当输出项为变量时,输出该变量存储单元内的内容,变量允许属于任何一种标准数据类型;当输出项为表达式时,则首先对表达式进行计算,然后输出计算的结果;当输出项为字符串时,原样输出用单引号括起来的字符串中的内容。

(4)Write语句与writeln语句的区别:

write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。

例如以下两个程序段的输出分别为:

(1)write(1,2,3,4);

write(5,6);

输出为:

123456

(2)writeln(1,2,3,4);

write(5,6);

输出为:

1234

56

例1-10 请写出下面程序的输出结果。

const a=20;

var b:integer;

begin

b:=60;

writeln(100);

writeln(b);

writeln(a+b);

writeln('A+B=',a+b)

end.

【输出结果】

100 //直接输出该常量的值

60 //输出该变量存储单元内的内容

80 //输出计算的结果

A+B=80 //原样输出字符串中的内容及输出a+b表达式的结果

4.输出语句的输出格式

在Pascal语言中,我们将每一种类型的数据在输出时所占据的列数称为场宽,下表是Pascal对各种数据定义的标准场宽(要注意各种计算机系统对标准场宽的约定不同):

Pascal对各种数据定义的标准场宽

在编程时,我们除了可以使用上表中的标准场宽,还可以根据实际需要自己来定义要输出数据的场宽,自定义场宽分为单场宽和双场宽。

(1)单场宽

格式:X:n,其中X表示要输出的项目,n表示输出X时所占的位数,应为正整数。如:writeln(‘PAS ‘:5);表示项目字符串’PAS’的场宽为5。它主要用来输出整型、字符型、布尔型的数据。

例1-11 设M为整型数2009,CH为字符’#’,F为布尔值FALSE,此时执行如下输出语句:

writeln (M:5);

writeln (CH:5);

writeln (F:5);

writeln (‘PAS’:5);

则屏幕显示:

□2009

□□□□#

FALSE

□□PAS

(2)双场宽

格式:X:n1:n2,双场宽是用来输出实型数据的。其中:X表示要输出的项目,n1表示输出X时所占总位数,包括符号位、整数部分、小数点与小数部分,n2表示小数部分的位数,当n2小于实际小数位数时,要对舍去的小数位数进行四舍五入。当n2大于实际小数位数时,右边以零补齐。

要注意的是,在数据不突破场宽限制时,一律按场宽定义输出,在数据突破了场宽限制时,则强行将场宽扩展到所需要的位数,所以有时输出限制仅有小数位N2时,一般设总场宽为0,即:X:0:N2,如对X要求保留两位小数,写法为:writeln(X:0:2);

例1-12 写出以下程序的输出结果:

program aa;

var a:integer; b:real; c:char; d:boolean;

begin

a:=1234;

b:=1234.6793;

c:='$';

d:=false;

writeln(a,a:5);

writeln(b,b:12:2);

writeln(b:0:2)

writeln(c,c:5);

writeln(d,d:5);

writeln('OK':5);

end.

【输出结果】

1234□1234

□ 1.234679300000000E+003□□□□□1234.68

1234.68

$□□□□$

FALSEFALSE

□□□OK

习题

1-1 在屏幕上打印一行字符:"This is my first program!",请同学们将以下程序输入计算机内并运行。(运行程序:Ctrl+F9,查看程序运行:Alt+F5)

program k101;

begin

writeln('This is my first program!');

end.

1-2 编写一个减法程序,输入两个整数(<30000),输出这两个整数的差(第一个数减去第二个数)。

【样例输入】30 10 【样例输出】20

1-3 编写一个乘法程序,输入两个整数(<100),输出这两个整数的乘积。

【样例输入】20 10 【样例输出】200

1-4 输入正方形的边长(边长为整数),求正方形的面积?

【样例输入】5 【样例输出】25

1-5 小明的妈妈给小明100元钱,让他去文具商店买他自己所需要的文具,他买了10元1支的钢笔2支,花5元买了一瓶蓝色墨水,批发了23元的作业本,最后,走的时候又买了1支1元的冰糕吃着走了,现在问小明最后还剩多少钱?

1-6 求任意长a和宽b的长方形的周长c。总场宽为10,保留两位小数。

【分析】长方形周长c=2*(长a+宽b)。

【样例输入】2 3 【样例输出】c= 10.00

1-7 已知三角形的底为5,高为10,求三角形的面积?要求保留两位小数。

【分析】三角形的面积S=1/2*底a*高h。

【输出结果】 25.00

1-8 判断程序运行结果

program aa;

var a,b:integer;

begin

a:=3;

b:=a;

b:=a+1;

a:=a+1;

b:=b+1;

writeln(a,' ',b);

end.

1-9 输入三个整数a,b,c(0

【样例输入】5 10 20 【样例输出】0.50 200

1-10 用键盘输入两个整数a,b (0b的值。

【样例输入】12 9 【样例输出】TRUE

1-11 有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。现在他们做一个游戏,从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做,问最后甲、乙、丙三人各有多少粒糖果?

1-12 试编一程序,输入一梯形的上底a、下底b、高h,求该梯形的面积s。结果保留3位小数。

【分析】梯形面积s=(a+b)*h/2,a,b,h,s均为实数。

【样例输入】12.5 9.2 8 【样例输出】86.800

1-13 已知A1、A2和A3的布尔值分别是:True、False、False,计算下列表达式的值。

(1)not a1 and not a2= (2)al or a2 and a3= (3)(not a1 or a2) and (a2 or a3)=

1-14 输入两个整数,将两个数交换值后输出。

【样例输入】26 90 【样例输出】90 26

1-15 输入一个字符,打印出它的前导值、后继值和序号。每一项中间隔一空格,最后无空格。

【样例输入】D 【样例输出】C E 68

1-16 读入摄氏温度c,写程序将它转换成华氏温度f输出。已知f=9/5*c+32。

1-17 输入一个三位自然数,把这个数的百位与个位数对调,输出对调后的自然数。

【样例输入】312 【样例输出】213

第二章程序的三种基本结构

第一节顺序结构

若程序按照语句的书写先后顺序逐句执行,直到程序的结束,这种程序结构我们称为顺序结构。这是程序设计中最简单的一种结构。如程序中N个语句:

语句1;

语句2;

……

语句N;

若运行时的顺序是语句1执行后执行语句2,语句2执行后执行语句3,…直到语句n-1执行后执行语句N。那么程序中语句1;……语句N;便是一个顺序结构的部分,它是结构化程序设计的基础。注意每条语句以分号表示结束。

第二节选择结构

一、复合语句

复合语句的一般形式是:

BEGIN

语句1;

语句2;

……

语句n;

END;

在这里,BEGIN与END起语句括号的作用,相当于使用了一个语句括号将若干语句括了起来,做一个语句处理。程序运行时,通常是按书写的顺序去执行复合语句内的各个语句。

二、条件语句(IF语句)

1.格式:IF语句有以下两种标准格式:

(1)if 条件表达式then 语句;

(2)if 条件表达式 then 语句1 else 语句2;

2.功能

(1)格式1的IF语句的执行过程是:若条件关系式的条件为真,则执行THEN后面的语句,当条件不成立时,退出IF结构,去执行IF语句下面的语句。

(2)格式2的IF语句的执行过程是:若条件关系式的条件为真,则执行THEN后面的语句,否则执行ELSE后面的语句。要特别注意else前面的语句1最后不能有分号,因为分号是两个语句之间的分隔符,而else并非语句,如果在该处添了分号,则在编译的时候就会认为if 语句到此结束,而把else当作另一句的开头,输出出错信息。

例2-1 输入两个整数a,b,将它们由小到大输出。

【样例输入】56 32 【样例输出】32 56

【参考程序】

program aa;

var a,b,t:integer;

begin

read(a,b);

if a>b then //如果第一个数大于第二个数,则两个数互换

begin

t:=a; a:=b; b:=t; //两个数互换

end;

writeln(a,' ',b); //输出运算结果

end.

例2-2 输入一个三位数的整数,将数字位置重新排列,组成一个尽可能大的三位数。

【样例输入】213

【样例输出】321

【分析】先用DIV、MOD结合分离出来整数的每一位数字,然后将这三位数字按照由大到小进行排序,然后把最大的作为百位数,次之作为十位数,最小的作为个位数即可。

【参考程序】

program aa;

var t,a,b,c,n:integer;

begin

read(n);

a:=n div 100;

b:=n div 10 mod 10;

c:=n mod 10;

if a

if a

if b

n:=a*100+b*10+c;

writeln(n);

end.

例2-3 小红开了一个花店,她规定凡在店里购花不超过50元时,按九折付款,如超过50元,不到200元,超过50元部分按七点五折收费,如果超过200元,超过200元部分,将按6折收费。现在她想请你帮她编一程序完成花店自动计费的工作。

【分析】根据题意,我们可以得到计费S的收费公式:

【样例输入】50

【样例输出】45.00

【参考程序】

program aa;

var p,s:real;

begin

read(p); //输入应付款数

if p<=50 then s:=0.9*p //进行自动计费

else if p<=200 then s:=0.9*50+(p-50)*0.75

else s:=0.9*50+150*0.75+(p-200)*0.6;

writeln(s:0:2); //输出实际付款数

end.

三、CASE语句

1.格式:

CASE语句又称为分情况语句,格式如下:

case 测试表达式of

情况标号1:语句1;

情况标号2:语句2;

……

情况标号n:语句n;

//可选项

end;

2.功能

(1)先计算出测试表达式的值,注意:这个测试表达式中不能含有trunc、round函数,测试表达式的值不能是实数。

(2)然后用测试表达式的值依次与各情况标号进行对照,当找到一个与测试表达式的值相匹配的情况标号,就去执行该CASE情况标号后面的语句块,然后跳到与CASE相对应的END后面的语句继续执行。

(3)如果找不到与之匹配的情况标号(若有ELSE则执行它后面的语句),退出CASE 语句,执行它后面的语句。

例2-4 打印某年某月有几天。

【样例输入】2000 2

【样例输出】29

【参考程序】

program aa;

var

y,m,d:integer;

begin

read(y,m); //读入年和月

case m of

1,3,5,7,8,10,12:d:=31;

4,6,9,11:d:=30;

2:if (y mod 4=0) and (y mod 100<>0) or (y mod 400=0) //判断闰年布尔表达式

then d:=29 else d:=28;

end;

writeln(d); //输出这个月的天数

end.

第三节循环结构

一、计数循环

1.其语句格式是:

(1)for 控制变量:=初值 to 终值 do

一条语句;

(2)for 控制变量:=初值 downto 终值 do

一条语句;

其中for、to、downto和do是Pascal语言保留字,一条语句可以是一条简单语句或一条复合语句,但只能是一条语句,它适合用于能事先确定循环次数的事件。

2.执行过程

(1)先将初值赋给左边的变量(称为循环控制变量);

(2)判断循环控制变量的值是否已"超过"(递增是大于,递减是小于)终值,如已超过,则跳到步骤(6);

(3)如果未超过终值,则执行do后面的那个语句(称为循环体);

(4)循环变量递增(对to)或递减(对downto)1;

(5)返回步骤(2);

(6)循环结束,执行for循环下面的一个语句。

3.注意事项

(1)for循环控制变量必须是顺序类型的变量,如整数,但不能是实数,也不能是8字节整型,如int64、qword等。

(2)for语句的循环体中不能修改循环控制变量,它将会自动增加或减少。

(3)break:中断当前所在的循环。

例2-5 输入n(0<=n<=200),计算从1累加到n之和。

【分析】设置一个循环变量初值为1,终值为n,重复进行n次加法的循环。每次将循环控制变量(I)的值迭加在S中,不断重复该过程,故当循环结束的时候,S变量表示的就是总和了。s:=s+i;这里的s称为累加器,它使用前要清0。

【样例输入】100

【样例输出】5050

【参考程序】

program aa;

var i,n,s:integer;

begin

read(n);

s:=0;

for i:=1 to n do s:=s+i;

writeln(s);

end.

例2-6 输入一个自然数x(x<=10000),求这个自然数的所有约数之和s。

【分析】如果某数i能被x整除,则有x mod i=0,要找出x的所有约数,也就是要让1至X循环并进行断定。

【样例输入】2328

【样例输出】5880

【参考程序】

program aa;

var x,i,s:integer;

begin

read(x);

s:=0; //累加器使用前要清0

for i:=1 to x do //求X的所有约数和

if x mod i=0 then s:=s+i; //如果i是x的约数,则将i累加到s 中

writeln(s);

end.

例2-7 假设有一个三位数a,将它的个位数字与十位数字对调后得到一个新数b,此时b恰好比a 大27,请编程找出所有这样的三位数。

【输出结果】

103

……

169

【参考程序】

program aa;

var a,b,t,k:integer;

begin

for a:=100 to 999 do

begin

t:=a mod 10; //得到a的个位数

k:=(a div 10) mod 10; //得到a的十位数字

b:=100+t*10+k; //组合一个新数b

if b-a=27 then writeln(a); //用式子b-a=27筛选出符合条件的数a 并输出

end;

end.

例2-8 求100以内所有素数,输出时数与数之间隔一空格。

【分析】若i存在约数,肯定不是素数,所以让f=1,中断循环退出。如果是素数,则f=0,就输出i。

【输出结果】2 3 5 7 …… 89 97

【参考程序】

program aa;

var i,j,k,p,f:integer;

begin

for i:=2 to 100 do

begin

f:=0;

for j:=2 to i div 2 do //判断i是否为素数,如果不是,则f的值变为1

if i mod j=0 then begin f:=1; break; end;

if f=0 then write(i,' '); //若经过上面的程序段,f的值没有改变,则i是素数并输出它

end;

writeln;

end.

二、当型循环

1.语句格式: while 布尔表达式 DO 一条语句

2.注意事项:

(1)执行过程:先求出布尔表达式的值,当其值为真(TRUE)时,重复执行指定语句,当其值为假(FALSE)时,终止循环。注意这里的一条语句可以是一条简单语句,也可以是一条复合语句。

(2)为了能使WHILE循环正常终止,表达式中所含变量在循环指定的语句中一定要有更改,即有可能使表达式的值为假,以便循环能够结束,否则循环永不结束,而出现死循环。

(3)由于先判断条件,所以布尔表达式中的变量必须在循环语句开始之前先赋初值,如果当条件一开始就不成立,这时将跳过WHILE语句执行它下面的语句。

例2-9 输入若干个字符,它的终止符是’.’,计算输入的字符中字母’A’出现的次数(包含大小写)。

【分析】先读入一个字符赋给ch,然后进入while循环,若是'A'(或'a'),则s累加1,再读入下一个字符,最后输出s的值。

【样例输入】sdkfjaAgsdfAdsfsAs323sdfs.

【样例输出】4

【参考程序】

program aa;

var ch:char; s:integer;

begin

s:=0;

read(ch);

while ch<>'.' do

begin

if (ch='a')or(ch='A') then s:=s+1;

read(ch);

end;

writeln(s);

end.

例2-10 求输入的一个整数N(0

【样例输入】3563

【样例输出】270

【参考程序】

program aa;

var n,t,s:integer;

begin

read(n); s:=1; //s为累乘器,它使用前要置1

while n<>0 do

begin

t:=n mod 10; s:=s*t; n:=n div 10; //每次分离出n的个位数赋值给t,并将之累乘到s中,然后将个位数字去掉

end;

writeln(s);

end.

例2-11 求两个自然数m,n的最小公倍数。

【样例输入】12 8

【样例输出】24

【参考程序】

program aa;

var m,n,i,s:longint;

begin

read(m,n); //输入两个自然数m,n

i:=1; //让一个变量i呈自然数列增长,刚开始设为1

s:=m*i; //s为m的倍数

while s mod n<>0 do //若s又刚好是n的倍数,则s就是m,n的最小公倍数

begin

i:=i+1;

s:=m*i

end;

writeln(s); //输出最小公倍数

end.

习题

2-1 判断下面题目是否正确

(1)复合语句与程序执行部分的“Begin..End”意义相同。

(2)布尔型数据是顺序型数据。

(3)NOT false 的值是False。

(4)一个变量或常量不可以看成为一个表达式。

2-2 判断读入的整数a是奇数还是偶数,若是奇数,输出“jishu”,否则输出“oushu”

【样例输入】5 【样例输出】jishu

2-3 输入三个数,将它们按由大到小的顺序输出。

【样例输入】12 56 9 【样例输出】56 12 9

2-4 根据学生的成绩给予相应的等级,若成绩在90-100之间输出A,在80-89之间输出B,在60-79之间输出C,60以下输出D。现在输入一个学生的成绩S(0<=S<=100),请输出这个学生的成绩等级。

【样例输入】85 【样例输出】B

2-5 某服装公司为了推销产品,采取这样的批发销售方案:凡订购超过100 套的,每套定价为50 元,否则每套价格为80元。现输入订购套数,输出应付款的金额数。

汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计第四版 【课后习题答案】--囮裑為檤 第3章汇编语言程序格式 〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用? 〔解答〕 伪指令语句与硬指令语句的本质区别是能不能产生CPU动作; 伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。 〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成? 〔解答〕 为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符; 汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。 〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。 〔解答 保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的DB就是伪指令助记符。 〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成? 〔解答〕 汇编语句有执行性语句和说明性语句; 执行性语句由标号、硬指令助记符、操作数和注释四部分组成; 说明性语句由名字、伪指令助记符、参数和注释四部分组成 〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 〔解答〕 ⒈编辑文本编辑程序汇编语言源程序.asm ⒉汇编汇编程序目标模块文件.obj ⒊连接连接程序可执行文件.exe或.com

⒋调试调试程序应用程序 〔习题3.6〕区分下列概念: (1)变量和标号 (2)数值表达式和地址表达式 (3)符号常量和字符串常量 〔解答〕 (1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。 (2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。 (3)在程序中,为了使常量更便于使用和阅读,经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符串常量。 〔习题3.7〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原因。 (1)mov byte ptr [bx],1000 (2)mov bx,offset myword[si] (3)cmp mybyte1,mybyte2 (4)mov al,mybyte1+mybyte2 (5)sub al,myword (6)jnz myword 〔解答〕 (1)1000超出了一个字节范围 (2)寄存器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为lea bx,myword[si] (3)两个都是存储单元,指令不允许 (4)变量值只有执行时才确定,汇编过程不能计算 (5)字节量AL与字量myword,类型不匹配 (6)Jcc指令只有相对寻址方式,不支持间接寻址方式 〔习题3.8〕OPR1是一个常量,问下列语句中两个AND操作有什么区别? AND AL,OPR1 AND 0feh 〔解答〕

高级语言程序设计(VB)随堂练习答案DOC

高级语言程序设计(VB)随堂练习答案 第1章概述·1.1程序设计语言 当前页有1题,你已做1题,已提交1题,其中答对1题。 1. https://www.wendangku.net/doc/9b1339462.html,是一种( )程序设计语言。 A. 面向事件 B. 面向属性 C. 面向对象 D. 面向过程 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 第1章概述·1.2程序设计 当前页有2题,你已做2题,已提交2题,其中答对2题。 1.把源程序代码翻译为目标程序代码可以使用的翻译方式为( )。 A. 嵌入方式 B. 运行方式 C. 连接方式 D. 解释方式或编译方式 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 2.编译程序时出现的错误称为( ) 错误。 A. 语法或编译 B. 运行 C. 逻辑 D. 计算 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 第1章概述·1.3建立简单控制台应用程序 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.存储数据不属于数据处理功能。

答题:对. 错. (已提交) 参考答案:× 问题解析: 2.控制台应用程序至少有一个Main过程。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 3.上机时,程序编译和连接成功后,系统自动生成以.exe为扩展名的可执行文件。 答题:对. 错. (已提交) 参考答案:√ 问题解析: 第2章基本数据类型与表达式·2.1基本字符集和词汇集 当前页有3题,你已做3题,已提交3题,其中答对3题。 1.下面选项中()是算术运算符。 A. % B. & C. Mod D. And 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 2.下面不合法的标识符是()。 A. Go_To B. Integer C. 姓名 D. Int1 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 3.在程序设计语言系统中具有固定语法含义的符号串称为标识符。 答题:对. 错. (已提交) 参考答案:× 问题解析: 第2章基本数据类型与表达式·2.2 基本数据类型

《高级语言程序设计》复习题及答案

一、选择题 1.以下叙述正确的是( ): A)在C程序中,main函数必须位于程序的最前面 B) C程序的每行只能写一条语句 C) C语言使用库函数实现输入输出操作 D)注释中的拼写错误会影响编译结果 2、以下说法中正确的是() A) C语言程序总是从第一个的函数开始执行 B) C语言程序总是从main()函数开始执行 C)在C语言程序中,要调用的函数必须在main()函数中定义 D)C语言程序中的main()函数必须放在程序的开始部分 3、下列选项种说法正确的是( ) A)函数由声明部分和执行部分两部分组成 B)语言中main函数一定在程序的开始部分 C)C语言程序总是从第一个定义的函数开始执行 D)C程序的每行中只能写一条语句 4、设有说明:int a;float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int) 2.6 值的类型为( )。 A)doubleB) char C) floatD) int 5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 6、以下不正确的C语言标识符是( )。 A) ABC B) abc C)a_bc D) void 7、下列运算符中优先级最高的是( ) A)< B)+ C)&& D)!= 8、以下选项中属于C语言中合法关键字的是( ) A)Float B)abc C)int D)CASE 9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 10、在C语言中,要求数据必须是整型的运算符是( ) A)/ B)+ + C)!=D) % 11、若整型变量x的值为8,则下列表达式中值为1的表达式是 A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x 12、若w=1,x=2,y=3,z=4,则条件表达式“w > x? w : y< z ? y : z”的值是( ) A)4 B)3 C)2 D)1 13、有以下程序,程序运行后的输出结果是。 main() {inti=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); }

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

汇编语言程序设计

汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址

偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 AND、OR、XOR、NOT为四条逻辑运算指令,下面解释正确的是()。 A、 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、 指令AND AX,OFH执行后,分离出AL低四位 D、 NOT AX,执行后,将AX清0 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。

2020年10月全国高级语言程序设计(一)自考试题及答案解析.docx

??????????????????????精品自学考料推荐?????????????????? 全国 2018 年 10 月高等教育自学考试 高级语言程序设计(一)试题 课程代码: 00342 一、单项选择题(本大题共20 小题,每小题 1 分,共 20 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括 号内。错选、多选或未选均无分。 1.下列不正确的转义字符是() . A. ′ ′ B. ′ ″ C. ′ \086′ D. ′ \0′ 2.下列运算符中,优先级最高的是() A. [] B.++ C.% D.&& 是 C 语言保留字的是 () 3.下列标识符中,不. A. char B. while C. min D. default 4.下列数据中,不.是 C 语言常量的是 () A. ′ \n′ B. ″ a″ C. e-2 D. 012 5.若定义了 int a; char b; float c ;,则表达式a*b-c 的类型是 () A. float B. int C. char D. double 6.若定义了 int a, x,y;,则下列语句中不.正确的是 () A. x=3 ,y=5 ; B. ++x ; C. x=y+=x*30 ; D. a=y+x=30 ; 7.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是() A. 数组的长度 B.数组的首地址 C. 数组第一个元素的值 D. 整个数组元素的值 8.在 C 语言中,函数返回值的类型是由() A. 定义的函数类型决定 B.return 语句中表达式的类型决定 C.调用该函数的主调函数类型决定 D. 调用该函数时系统状态决定 9.若定义了 int b [][ 3]={ 1,2, 3,4, 5, 6, 7};,则 b 数组第一维的长度是 () A. 2 B. 3 C. 4 D.无确定值 1

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

汇编语言程序设计

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院

一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

PASCAL语言程序设计

目录 第一部分 PASCAL语言程序设计 (1) 第一章 PASCAL语言基础 (1) 第一节程序的组成与上机调试运行 (2) 第二节常量、变量与数据类型 (3) 第三节表达式与标准函数 (6) 第四节赋值语句、输入与输出语句 (9) 习题 (12) 第二章程序的三种基本结构 (15) 第一节顺序结构 (15) 第二节选择结构 (15) 第三节循环结构 (17) 习题 (20) 第三章数组 (22) 第一节一维数组 (22) 第二节二维数组及应用 (25) 习题 (26) 第四章字符与字符串操作 (29) 第一节字符和字符数组 (29) 第二节字符串变量 (29) 第三节字符串应用举例 (31) 习题 (33) 第五章函数与过程 (35) 第一节自定义函数 (35) 第二节自定义过程 (38) 第四节递归 (42) 第五节递归与回溯 (45) 习题 (50) 第一部分 PASCAL语言程序设计 第一章 PASCAL语言基础 Pascal语言是瑞士苏黎士工科大学的Niklans Wirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者Blaisc Pascal而将它命名为Pascal程序设计语言。Pascal语言是信息学奥赛中普遍使用的程序设计语言。

第一节程序的组成与上机调试运行 一、程序的组成 我们先看一道例题。 例1-1 输入两个整数a和b,计算a和b的和(a+b)。 【参考程序】 program a1(input,output); //程序首部 var a,b,c:integer; //程序说明部分,a,b,c被说明为整型变量 begin //程序执行部分,下面是程序的内容 write('a='); //在屏幕上输出一个字符串“a=”,输出完后不换行 read(a); //从键盘输入一个数值赋给变量a write('b='); //在屏幕上输出一个字符串“b=”,输出完后不换行 read(b); //从键盘输入一个数值赋给变量b c:=a+b; //计算a+b的和,并将这个和赋值给变量c writeln(a,'+',b,'=',c); //输出a+b=c的等式,输出完后换行 end. //程序结束 【样例输入】 a=10 b=30 【样例输出】 10+30=40 由上可以看出,一个Pascal程序由以下三部分组成: (1)由Program 引导的一行是Pascal程序的首部。 程序首部指出了源程序的名称,是由用户自己给出的,该例子称为a1。程序名后用括号括住的两个参数input与output,通常表示程序运行中的标准输入和输出文件,程序首部以分号结束。 (2)Pascal程序的第二部分是说明部分。 说明部分要求列出程序中引用的全部常量、变量、转移标号、类型、过程和函数的有关说明。若变量c在说明部分没有说明,后边的语句c:=a+b在执行时;翻译软件便能指出其错误并提醒用户加以改正,程序中每个语句都以分号表示结束。 (3)程序的第三个部分是用BEGIN和END括住的一串语句,称为程序的执行部分。有的书中将说明部分和执行部分合称为程序体。 二、PASCAL语言编辑软件的基本操作 下面我们以Free Pascal 1.10系统为例来学习一下Pascal语言编辑软件的使用。 1.Free Pascal的启动 在运行程序目录下(一般是c:\pp\bin\go32v2)运行启动程序fp.exe,即可启动系统。屏幕上出现如图1-1所示的集成环境。 图1-1 2.Free Pascal系统集成开发环境(IDE)简介 最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。

高级语言程序设计答案

《高级语言程序设计答案 一、选择题(每题2分,共30分,请将答案写在后面的答题栏...上) 1-5 BDBBB 6-10 BBDCC 11-15 CDBAB 二、填空题(1-3题每空1分,4-8题每空2分,共20分) 1、对象,事件驱动 2、frm ,vbp 3、函数 过程 4、31 5、9 6、countn<5 n mod 3=1 and n mod 5=1 and n mod 7=1 8、7 7、*n s+1/f 三、综合题(每题5分,共25分) 1、 (2*y)/(a*x+b*y)(a*x-c*z) 2、(x+sqr(x^2+1))^(1/3) 3、30 60 4、7 5、1)建立界面。先建立窗体,再利用控件在窗体上创建各种对象。 2)设置属性。设置窗体或控件等对象的属性。 3)编写代码。编写对象的事件代码。 四、程序设计题(8+8+9,共25分) 1:x 的值由文本框输入,计算分段函数的值:y=???????≥<≤<≤<2 ,321,210,10,0x x x x 。 private sub command1_click( ) Dim x% x=text1.text if x>=2 then y=3 elseif x>=1 then y=2 elseif x>=0 then y=1 2:统计100以内被3整除的数比被5整除的数多多少。 Private Sub Command1_Click() Dim i%, s1%, s2% For i = 1 To 100 If i Mod 3 = 0 Then s1 = s1 + 1 If i Mod 5 = 0 Then s2 = s2 + 1 Next i

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

《高级语言程序设计》期末考试试卷附答案

《高级语言程序设计》期末考试试卷附答案 一、选择题(共20题,每题3分,共60分) 1. 下列四个选项中,均是合法的整型常量的选项是() A.160 –0XFFFF 011 B. -0XCDF 01A 0XE C. -01 986,012 0688 D. -0X48a 2e5 0x 2. 下列四个选项中,均是不合法的浮点数的选项是() A.160.0.12 e3 B. 123 2e4.2 .e5C.18 0.0 123e4 D. e3. 234 1e3 3. 合法的C语言字符常数是() A.'\t' B. "A"C.54 D. A 4. 在C语言中,要求运算数一定是整型的运算符是() A./ B. ++C.!= D. % 5. 字符串常量”mine”的字符个数是() A.4 B. 5C.6 D. 7 6. 以下属于非法的C语言转义字符的是() A.'\b' B. '0xf'C.'\037' D. '\' 7. 若x、y、z均为int型变量,则执行以下语句后的输出是() x=(y=(z=10)+5)-5; printf("x=%d, y=%d, z=%d\n",x,y,z); y=(z=x=0,x+10); printf("x=%d, y=%d, z=%d\n",x,y,z); A. x=10, y=15, z=10 B.x=10, y=10, z=10 x=0, y=10, z=0x=0, y=10, z=0 C.x=10, y=15, z=10 D. x=10, y=10, z=10 x=10, y=10, z=0 x=10, y=10, z=0 8. 在以下一组运算符中,优先级最高的运算符是() A.<= B. =C.% D. && 9. 已知:int x; float y; 所用的scanf调用语句格式为: scanf( “x=%d, y=%f”, &x, &y ); 为了将数据10和66.6分别赋给x和y,正确的输入应当是() A.x=10, y=66.6<回车> B. 10, 66.6<回车> C.10<回车>66.6<回车> D. x=10<回车>y=66.6 <回车> 10. 已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开

汇编语言程序设计

实验四程序设计 一、实验目的 学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG 中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。 二、实验题 1、已知当前数据段中DADT1和DADT2开始分别存放若干字节数据,数据个数相同,编制程序检查两数据块中数据是否相同,若相同,则在屏幕上显示1,否则显示0。 【参考程序如下】 DSEG SEGMENT DATA1 DB 'ABCDEFG3' DATA2 DB 'ABCDEF3G' CNT DW 8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT DEC SI DEC DI AGAIN:INC SI INC DI MOV AL,[SI] CMP AL,[DI] LOOPZ AGAIN JZ DISP DEC DL DISP: MOV AH,2

INT 21H MOV AH,4CH INT 21H CSEG ENDS END START 阅读程序,理解循环程序结构及执行过程,并改成串指令实现。 2 编写程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。 三、实验报告 写出程序清单,记录运行结果。 改写串指令实现: DSEG SEGMENT DATA1 DB'ABCDEFG3' DATA2 DB'ABCDEF3G' CNT DW8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV ES,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT CLD

PASCAL程序设计

第一章PASCAL程序设计基础 我们日常工作、学习和生活中,要做某件事,如果事先没有计划,只是想一步做一步,是达不到理想效果的。要很好地、高效率地完成某件事,必须事先有一个计划,第一步做什么,下一步做什么,最后一步做什么。即先考虑好做这件事的所有步骤,然后按部就班地完成它。在计算机系统中,能完成某项任务的一系列指令或语句就是程序。程序设计是设计、书写和调试程序的过程。 第一节程序设计语言及算法 一、程序设计语言 人们使用计算机,可以通过某种计算机语言与其交谈,用计算机语言描述所要完成的工作。为了完成某项特定任务用计算机语言编写的一组指令序列就称之为程序。编写程序和执行程序是利用计算机解决问题的主要方法和手段。程序设计语言是用来书写计算机程序的语言。程序设计语言经历了机器语言、汇编语言、高级语言到面向对象的程序设计语言等多个阶段。 1.机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。 2.汇编语言 为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。 3.高级语言 20世纪50年代后期,在对低级语言的改进过程中,又研制出一种既接近于自然语言,又接近数学语言的程序设计语言。使用这种语言编写程序快捷方便,便于修改和高度,大大提高了编程的效率,同时这种语言编写的程序不依赖具体的机器,能用性好,我们称之为高级语言。用高级语言,不必考虑机器的结构和特点,可以集中精力考虑解决问题的算法,因此,高级语言也称为算法语言。 4.面向对象的程序设计语言

高级语言程序设计作业及答案(2017.1)

《高级语言程序设计(https://www.wendangku.net/doc/9b1339462.html,)》作业 2017.1 教学中心:新疆产业发展研究中心校外学习中心 专业层次: 高中升大专 学 号:2009 姓 名: 王 成 均 分 数: 注意事项:1. 本作业共五大题,满分100分; 2. 请将以上各项信息填写清楚,否则,作0分处理; 3. 所有答案直接做在答案栏上,做在其它地方无效。 一.判断题(如正确打√,否则,打×。) 1.源程序中的错误一般分为编译错误、运行错误和逻辑错误等三种。 2.控制台应用程序至少有一个Main 过程。 3.在程序设计语言系统中具有固定语法含义的符号串称为标识符。 4. 判别a 是否等于b ,若a=b ,则输出字符串 “a is equal to b ”的块结构条件语句为: If a=b Then WriteLine(“a is equal to b ”) End If 5. 输入结构变量的值就是输入该变量的各个元素的值。 6.若某个模块中以关键字private 定义函数过程,则该函数过程只能在该模块中使用。 7. 关键字private 用于声明私有成员。私有成员可以在类中和类外访问。 8.在程序运行期间,用户可以用文本框显示信息。文本框接受输入的内容的属性是Text 。 9.列表框ListBox 中项目的序号从1开始到Listcount 结束。 10.以数据流的方式对文本文件中的数据进行读/写操作,需要StreamReader 类和StreamWriter 类。 答案栏: 1.√ 2.√ 3.√ 4.√ 5.√ 6.× 7.√ 8.× 9.√ 10.×二.单项选择题 1.下列变量名中错误的是( )。 A. n B. 名称 C. ab# D.“年龄” 2.设X 为整型变量,不能正确表达1< X < 5的逻辑表达式是( )。 A. 1< X <5 B. X=2 or X=3 or X=4 C. 1=5) 3.设有数组说明语句:Dim c( 10) AS Integer ,则下面表示数组c 的元素选项中( )是错误的。 A. c(i-1) B. c(5+0.5) C. c(0) D. c(11) 4.在过程的形式参数前面加上关键字( ),则该参数说明为引用参数。 A. Val B. ref C. Byref D. ByVal 5. 设已定义函数过程f ,它有三个实型传值参数;设a,b 和c 为实型变量,则调用该函数的正确形式为( )。 A. f B. f( a+b, b+c ) C. f ( a+b, b+c ,c+a ) C. f a+b, b+c, c+a 6. 若使命令按钮不可见,可以设置Visible 属性的值为( )。 A. False B. True C. T D. F 7.要使单选按钮RadioButton 处于选中或未选中状态,需由( )属性来决定。 A. Show B. List C. Text D. Checked 8.要删除列表框中的某一个项目,需要使用( )方法。 (密封线内不答 题 )

相关文档
相关文档 最新文档