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

  • 格式:doc
  • 大小:606.00 KB
  • 文档页数:13

第 1 页 共 13 页

答案参见我的新浪博客:/s/blog_3fb788630100muda.html 习 题 一

1-1 Pascal语言的程序结构由哪几部分组成?试述各部分的构成形式和作用。

1-2 Pascal基本字符集有哪些成分构成?Pascal的保留字是什么?

1-3 Pascal语言中标识符是怎样构成的?下列字符串哪些是正确的Pascal标识符?哪些是错误的?为什么?

A5B,5H4,PEL,1,A31,x﹡y,AB,A + B,

$500,G1(x),xyz,E-10,VAR

1-4 下列数据哪些是整数?哪些是实数?哪些是非法的(假设计算机字长为32位)?

256 2.54 25E+6 3.75E6 0.15E-6

1.2E70 1E-15 -673 E8 4,734

5.7E-6.6 0 58989 -73451 E-3

1-5 下列哪些常量定义是正确的?

CONST

hvalue=200;

lvalue=0 OR 1 OR 2;

firstchar=’a’;

t=true;

b=true OR false;

1-6 假定已作了下述说明:

CONST

gap=’’;

VAR

m,n:integer;

a,b:real;

p,q:boolean;

c1,c2:char;

指出下列每一语句是否有效,并说明理由:

⑴ m:=trunk(b)+a

⑵ p:=m+n

⑶ read(c1,c2,’’)

⑷ c1:=gap

⑸ p:=q AND (ord(c1)<>’a’)

⑹ m:=n MOD a

⑺ ‘c1’ :=’c2’

⑻ c2:=chr(‘a’)

⑼ m:=m-ord(‘0’)

⑽ writeln(a,p,m,n,q,q,b)

⑾ n:=a-trunc(a)

⑿ b:=2.99*109 第 2 页 共 13 页

答案参见我的新浪博客:/s/blog_3fb788630100muda.html ⒀ a:=m/n

⒁ b:ord(c1)+ord (c2)

1-7 已知变量有下面指定的值:

a=7,b=-6,c=30,d=10.8600,e=1E3,f=’*’,g=true

求下面表达式的值:

a+b DIV trunc(d)+3

① d-0.75/(e+140.0)*70.0

② sqrt(abs(b-a)+succ(ord(f))

③ chr(10* a MOD sqr(b))

④ NOT ((a>=b) AND g)

⑤ (ord(b) OR (sqr(b)>e)) AND (g AND NOT(abs(b)<>6))

1-8 已知有如下说明

VAR

p,q,r,s:Boolean;

k:integer;

试写出下列每一表达式的类型,如能确定,请写出它们的值。

⑴ sqr(2)

⑵ sqr(2.0)

⑶ ord(‘z’)-ord(‘a’)

⑷ trunc(-99.9)

⑸ –round(99.9)

⑹ –round(-99.9)

⑺ NOT (p AND q) = NOT (NOT p AND NOT q)

⑻ 10 DIV 3

⑼ 10/3⑾

⑽ 126 DIV 3 MOD 5

⑾ (p AND (q AND NOT q),OR NOT(r OR (s OR NOT s))

⑿ (round(-65.3)< trunc(-65.3)) AND p

⒀ odd(k) OR odd(k+1)

1-9 令x=1.0,y=2.0,z=3.0。下面输出语句的输出字样是什么?

Writeln(x,y,z);

Writeln(y:10);

Writeln(z:10:3);

Writeln(x,y:3);

1-10 设有变量和它们的值如下:

bar=’/’,n=-999,s=’abcd’,x=4.55,y=1.234567E2

试问以下语句的输出形式是什么?

Writeln(bar,n:1,bar,n:4,bar,n:8,bar);

Writelx(bar,x:1,bar,x:4,bar,x:8,bar);

Writels(bar,s:1,bar,s:4,bar,s:8,bar);

Writely(bar,y:9:2,bar,y:1:1,bar,y:6:1,bar);

Writeln(bar,x:1:3,bar,x:9:3,bar); 第 3 页 共 13 页

答案参见我的新浪博客:/s/blog_3fb788630100muda.html 1-11 编一程序,根据输入的半径计算圆的周长和面积。

1-12 已知摄氏温度与华氏温度的换算关系式为:

C=59(F-32)

编写一程序求华氏温度为30,70,90,100,150时的摄氏温度。

1-13 已知地球半径为6371.0km,编写一程序计算地球表面积的近似值,并打印输出地球半径、的近似取值、地球表面积等项。

1-14 编写一程序打印下列图案

* * *

* * * *

* * * * *

* * * * * * * * * *

* * * * * * *

* * * * * * * *

* * * * * * * * *

1-15 已知三角形三条边a,b,c, 求三角形的面积公式为:

()()()ssasbsc

其中,s=(a+b+c)/2。编写一程序读入a、b、c的值,计算出三角形的面积A,并打印输出三条边长及面积的值。

1-16 绝对温度为T的黑体,对波长为λ的辐射功率为

5/21chBcPc

其中,c是光速2.997924×108,h是普朗克常数6.6252×10-34,B为波尔兹曼常数5.6687-8 。编写一程序读入λ和T的值,计算并输出P的值。

1-17 绿化某大道,大道两旁栽4排树,每隔5米一棵,大道全长2000米,编写程序求这次绿化树苗费共需多少元并输出结果。

1-18 鸡兔同笼,计数共有头m个,脚n只。编写程序计算鸡兔共为多少?其中m和n都由终端输入。

习 题 二

2-1 编写一个程序,让计算机读入两个数,将其中较大者放入变量max中,并打印出来。

2-2 编写一个程序求一元二次方程

ax2+bx+c=0

的根,其中a不等于0。

2-3 编制程序计算 第 4 页 共 13 页

答案参见我的新浪博客:/s/blog_3fb788630100muda.html

2-4 一个写的不好的Pascal程序中有下列语句:

IF a

ELSE IF a

ELSE x:=3

ELSE IF a

ELSE x:=5

ELSE x:=6

ELSE x:=7

① 试用较好的语句格式重写该语句。

② 该语句中有没有多余或矛盾的条件?

③ 写一个效果相同但比该语句简单的语句。

2-5 编写程序计算

2-6 使用分情形语句重写例3-2

2-7 编写一程序输出2的方幂表。

2-8 编写程序计算

m=11+22+33+44+„+nn

直到m≧1030,m为实数。

2-9 编写程序计算

11111123sn…+

直到最后一项小于10-5。

2-10 用牛顿迭代法求方程

2x3-4x2+3x-6=0

在x=2.5附近的实根,直到满足条件

5110kkxx

2-11 用迭代法求x=a,计算公式是11()2nnnaxxx

要求满足条件 x2+1 当x≤2.5

y=

x2 -1 当 x>2.5

-п/2 当x<0

y= 0 当x=0

-п/2 当x>0

cos (x+3.0) 当x<0

y= cos 2(x+7.5) 当x=0

cos 4(x+4.0) 当x>0 第 5 页 共 13 页

答案参见我的新浪博客:/s/blog_3fb788630100muda.html 5110nnxx

2-12 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮一担货。试编程序计算大、中、小马的数目。

2-13 试说明

① 任何REPEAT语句可以用WHILE来改写。

② 任何WHILE语句可以用IF和REPEAT来改写。

2-14 编写列出从1到100的所有整数的平方、立方和阶乘表的程序。

2-15 编写一个译码程序将一英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,„,26代替字母Z,如遇空格则打印一个星号“*”。英文句子以“.”结束。

2-16 下面是一个用直到语句写的程序。

PROGRAM testrepeat(output)

VAR

i:integer;

BEGIN

i:=1;

REPEAT;

writeln(i);

i:=i+1

UNTIL i>5

END.

试用当语句重新写出该程序。

2-17 写一个程序,按顺序和倒序两种形式打印英文字母。

2-18 写一个程序计算正整数1到n中的奇数之和及偶数之和。

2-19 某工程预计到2010年产值100万元,并计划在此基础上每年增加产值10%,试编一程序,求该厂从2011年到2020年每年的产值应是多少?

2-20 编一个程序,读入n个整数的平均值,找出最大值和最小值,统计出有多少正整数和多少负整数,分别计算出正整数和负整数的总和。

2-21 编一个程序,把从终端上输入的一串连续的数字符转换成相应的整数值,并把这一数值用八进制形式输出。

2-22 什么是自顶向下法?自顶向下的研制法有什么优点?

习 题 三

3-1 编写一个过程,将一个实数分解为整数部分和小数部分。

3-2 编写一个过程,将以秒为单位计算的时间转换成小时、分、秒。