高级语言程序设计习题及答案Word文档格式.docx
- 文档编号:22200985
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:70.98KB
高级语言程序设计习题及答案Word文档格式.docx
《高级语言程序设计习题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计习题及答案Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
=qAND(ord(c1)<
>
’a’)
=nMODa
‘c1’:
=’c2’
c2:
=chr(‘a’)
=m-ord(‘0’)
writeln(a,p,m,n,q,q,b)
n:
=a-trunc(a)
b:
=2.99*109
a:
=m/n
ord(c1)+ord(c2)
1-7已知变量有下面指定的值:
a=7,b=-6,c=30,d=10.8600,e=1E3,f=’*’,g=true
求下面表达式的值:
a+bDIVtrunc(d)+3
1d-0.75/(e+140.0)*70.0
2sqrt(abs(b-a)+succ(ord(f))
3chr(10*aMODsqr(b))
4NOT((a>
=b)ANDg)
5(ord(b)OR(sqr(b)>
e))AND(gANDNOT(abs(b)<
6))
1-8已知有如下说明
p,q,r,s:
Boolean;
k:
试写出下列每一表达式的类型,如能确定,请写出它们的值。
sqr
(2)
sqr(2.0)
ord(‘z’)-ord(‘a’)
trunc(-99.9)
–round(99.9)
–round(-99.9)
NOT(pANDq)=NOT(NOTpANDNOTq)
10DIV3
10/3
126DIV3MOD5
(pAND(qANDNOTq),ORNOT(rOR(sORNOTs))
(round(-65.3)<
trunc(-65.3))ANDp
odd(k)ORodd(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:
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:
Writels(bar,s:
1,bar,s:
4,bar,s:
Writely(bar,y:
9:
2,bar,y:
1:
1,bar,y:
6:
1,bar);
Writeln(bar,x:
3,bar,x:
3,bar);
1-11编一程序,根据输入的半径计算圆的周长和面积。
1-12已知摄氏温度与华氏温度的换算关系式为:
C=
(F-32)
编写一程序求华氏温度为30,70,90,100,150时的摄氏温度。
1-13已知地球半径为6371.0km,编写一程序计算地球表面积的近似值,并打印输出地球半径、
的近似取值、地球表面积等项。
1-14编写一程序打印下列图案
***
****
*****
**********
*******
*** *****
******* **
1-15已知三角形三条边a,b,c,求三角形的面积公式为:
其中,s=(a+b+c)/2。
编写一程序读入a、b、c的值,计算出三角形的面积A,并打印输出三条边长及面积的值。
1-16绝对温度为T的黑体,对波长为λ的辐射功率为
其中,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编制程序计算
2-4一个写的不好的Pascal程序中有下列语句:
IFa<
bTHENIFc<
dTHENx:
=1
ELSEIFa<
cTHENIFb<
=2
ELSEx:
=3
dTHENIFb<
cTHENx:
=4
=5
ELSEx:
=6
=7
1试用较好的语句格式重写该语句。
2该语句中有没有多余或矛盾的条件?
3写一个效果相同但比该语句简单的语句。
2-5编写程序计算
2-6使用分情形语句重写例3-2
2-7编写一程序输出2的方幂表。
2-8编写程序计算
m=11+22+33+44+…+nn
直到m≧1030,m为实数。
2-9编写程序计算
直到最后一项小于10-5。
2-10用牛顿迭代法求方程
2x3-4x2+3x-6=0
在x=2.5附近的实根,直到满足条件
2-11用迭代法求x=
,计算公式是
要求满足条件
2-12100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮一担货。
试编程序计算大、中、小马的数目。
2-13试说明
①任何REPEAT语句可以用WHILE来改写。
②任何WHILE语句可以用IF和REPEAT来改写。
2-14编写列出从1到100的所有整数的平方、立方和阶乘表的程序。
2-15编写一个译码程序将一英语句子译成数字代码。
译码规则是以数字1代替字母A,数字2代替字母B,…,26代替字母Z,如遇空格则打印一个星号“*”。
英文句子以“.”结束。
2-16下面是一个用直到语句写的程序。
PROGRAMtestrepeat(output)
VAR
i:
integer;
BEGIN
=1;
REPEAT;
writeln(i);
i:
=i+1
UNTILi>
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编写一个过程,将以秒为单位计算的时间转换成小时、分、秒。
3-3指出下列程序中的全程变量、局部变量、变量参数、数值参数,写出程序运行后的结果。
PROGRAMpfoc(output)
a,b,c:
PROCEDUREp(VARx:
y:
integer);
BEGIN
=x*y;
x:
=x+5;
y:
=y+5;
writeln(‘x=’,x:
3,’y=’,y:
3,’m=’,m:
4,’n=’,n:
4)
END;
=3;
p(a,b);
p(a,b);
END.
3-4编写一个函数digit(n,k),它能求出数n的从右边开始的第k个数字的值。
例如
digit(254693,2)=9
digit(7622,6)=0
3-5定义
试编写一个求bin(n,k)的函数。
3-6编写程序计算调和级数的部分和,要求输出结果表示成有理数,即
的形式。
其中分子和分母都是整数。
(提示:
编写一个从分子和分母中消去公因子的过程)。
3-7分析程序hanoi(例4-10),计算移动n个盘子所需的次数,若按每微妙移动一次计算,需要多少时间?
3-8计算组合时,有两个常用公式
前一个公式常用于m<
2n时,后一个公式是实际计算组合时的递归定义,试编制程序计算
。
3-9已知一对兔子每一个月可以生出一对一雌一雄的小兔,每对小兔在两个月以后也逐月生一对一雌一雄的小兔,试编一程序,求n个月后的兔子对数(设最初只有一对一雌一雄的小兔)。
3-10定义Hermite多项式如下:
分别写出递归和递推函数计算
3-11阅读下列程序,写出输出结果。
PROGRAMparanest(output);
PROCEDUREpl;
PROCEDUREp1a;
Writeln(‘PROCEDUREp1a!
’)
END;
PROCEDUREp1b;
Writeln(‘PROCEDUREp1b!
Writeln(‘PROCEDUREpl!
’);
P1a;
P1b
PROCEDUREp2;
PROCEDUREp2a;
Writeln(‘PROCEDUREp2a!
PROCEDUREp2b;
Writeln(‘PROCEDUREp2b!
Writeln(‘PROCEDUREp2!
p2a;
p2b
p1;
p2
3-12编写程序,使用函数参数计算函数
在x等于1.5,3.7和-3.7各处的值。
3-13有一字符序列以句号“.”结束(例如一英文句子)。
试设计一递归过程能按倒序打印出这一字符序列。
3-14编一程序用梯形公式求定积分
的近似值。
3-15编一程序,用辛卜生法求积分
辛卜生求积分的公式为:
习题四
4-1检查以前做过的习题,看看是否有可能使用枚举类型或子界类型。
4-2编写一个程序,若输入数字为0到6则转换成输出相应的一星期的7天,从星期日(Sunday)到星期六(Saturday);
若读入的是字符‘m’,‘p’,‘c’,‘e’,则转换输出相应的专业:
数学(mathematic),物理(physic),计算机(computer),英语(English)等。
4-3编写一个程序,读入某一天的日期(1..31),月份(1..12),年份(1900..2020),并以日期/月份/年份的形式打印出来,或者以日期:
月份:
年份的形式打印出来(月份要以January,February,……,等英文名词打印)。
4-4定义一函数确定1500~9999年中那一些年份是闰年,编写一程序(或子程序)确定在1500~9999年中各年12个月的天数。
习题五
5-1给定类型
TYPE
numberset=SETOFmin·
·
max;
其中min和max是整型常量,试编写过程printset,它能打印类型numberset的变量的值。
例如,元素为3,7,11和19的集合应打印为:
[3,7,11,19]
5-2编写一个程序将一个月的日期按星期日到星期六排列在不同的集合中。
5-3试编写一个程序读入3个英文句子,打印出同时出现在第一句和第二句中,但是不在第三句中的那些字符。
5-4输入一系列字符,将数字字符、英文字母字符和其他字符分别计算,并求出各占的百分比,输出格式要求如下:
Namenumberpersent
Letter------
Digit------
Other------
遇到“1”停止计算,试编写一程序实现之。
5-5假定一本书由下述说明定义:
Linelen=70;
Pagesize=55;
Thickness=330;
Line=ARRAY[1..linelen]OFchar;
Page=ARRAY[1..pagesize]OFline;
Volume=ARRAY[1..thickness]OFpage;
Book:
volume;
指出下述每一表达式的类型和值。
Book[25]
Book[187][50]
Book[46][7][10]
写一个合适的格式打印book内容的子程序。
5-6编一程序计算如下两个多项式的值
P1=a100x100+a99x99+…+a1x+a0
P2=b100x100+b99x99+…+b1x+b0
5-7编一个程序。
读入形式为×
×
…×
<
A>
B的字符串,其中×
为A进制的数字串。
代表一个A进制的整数。
然后将此整数转换成B进制的整数再输出。
A,B为2到10之间的整数。
如字符串1765<
8>
2
表示将8进制整数1765转换成2进制整数,要求程序能连续读入和处理一个文件上的多个这样的字符串,直到文件结束。
5-8编写一个程序,计算两个矩阵的乘积。
5-9编写一个转置n阶矩阵的过程。
5-10编写程序,读入一些英文单词,当遇到单词stop时就停止阅读,并统计读入了几个单词。
5-11b为一个6*6的方阵,先输入36个数据形成该方阵,然后在完成下列运算:
(1)计算两条对角线元素的和、积;
(2)计算方阵中所有不靠边的元素之和;
(3)计算方阵中所有靠边元素之和;
(4)使两条对角线上的元素均为1,其余的元素为0。
5-12编写一个程序对市场某商品价格进行调查。
连续10年,每年12个月份的价格作为输入数据。
该程序能计算某一年的平均价格,10年间某一个月的平均价格(例如2001~2010年,10年间2月份的平均价格),打印输出最高价格及年份月份(用一个二位数组来描述所读入的10年的价格)。
5-13输入两个复数,计算并输出他们的和数及乘积。
5-14编写一个程序,计算直角坐标系中任一点到坐标原点之间的距离。
5-15某班进行了数学考试,每个学生的姓名、学号、考试成绩作为输入数据,编写一个程序完成以下功能:
(1)计算并打印班级的平均成绩;
(2)根据每个学生的成绩给出评定等级(A、B、C、D、E);
90-100(A),80-89(B),70-79(C),60-69(D),0-59(E);
(3)打印出每个学生的姓名、学号、成绩和等级;
(4)计算出每一个等级的学生人数。
5-16有一批图书(设为100本),每本图书要登记XXX姓名、书名、出版社、出版年月、价格等信息。
试编写一个程序完成下列功能:
(1)读入每本书的信息存入一个记录数组中;
(2)打印出价格在2.00元以上的书名;
(3)打印出1985年以后出版的书名和XXX名。
习题六
6-1编写一个程序计算统计类型为FILEOFitems的文件中有多少个元素,items是一个用定义的记录类型。
6-2编写一个过程检索一给定的文件f(FILEOFinteger)查找一给定值values是否存在。
设置一布尔变量标志查找是否成功。
6-3编写一程序将班级同学的姓名、XXX、电话号码写到一个文件中去。
6-4编写一程序读入班级学生的姓名,四门功课的成绩,并把这些数据拷贝到一个顺序文件grades中去。
另编写一过程读和打印该文件。
6-5有两个文件f1和f2。
文件元素的内容包括学生的姓名和学号,f1为男学生组成的文件,f2为女学生组成的文件,且其中学号按递增顺序排列。
编写一程序读入这两个文件f1和f2并将它们合并成第三个文件f3,仍按照学号的递增顺序排列。
6-6设在文件inventory中存放了一个仓库的存货清单,该清单包括货物的库存号、库存量。
编写一个程序,检查仓库的库存量,要求打印出所有库存量小于10的货物的库存号,并建立一个新文件,它包括所有库存量大于1000的货库的库存号和库存量。
6-7有一个已形成好的文件,每一元素是一记录,其中包括职工号、姓名、性别、出生日期、工资额等项,编写一程序将这一文件按职工号递增顺序排列形成一个新文件。
假设该文件可以一次读入内存进行处理。
6-8若上题中文件较长一次不能读进内存,需分二次,请编一程序重做习题6-7中的排序工作。
6-9编写一程序(或过程)分别找出一行文文件中长度最长和长度最短的行。
6-10编写一程序用来统计一行文文件中出现的空格数和非空格字符数。
6-11设计一程序,计算一个文件中每个字母出现的次数,用变量n来表示,n说明为:
ARRAY[char]OFinteger;
n[‘c’]表示文件中字母c出现的次数。
6-12编写一程序可以查找并修改文件中第n个记录。
6-13某单位工作人员健康状况简表如下:
姓名工号年龄性别健康状况
假设已建立了基类型为记录类型的文件。
编写一程序,将文件按性别区分产生men和
women两个文件,文件的记录仅包含姓名、工号、年龄、健康状况。
并要求打印出年龄在40岁到50岁之间的工作人员健康记录。
6-14建立一个包括奇数1到999的文件。
习题七
7-1建立一个工厂车间人员情况表格,表格包括车间号、总人数、技术人员数、管理人员数、工人数等项。
编写程序用链表实现之,数据通过终端输入。
7-2对于上题,编一过程,打印出总人数超过500且技术人员数超过100的车间号。
7-3画图说明在一个双向链环上的插入和删除操作。
在一个空环上删除的结果是什么?
7-4证明在任一二叉树中,一半以上的指针是NIL。
7-5编写一个过程,从一棵二叉排序树中删除一个结点,而又不破坏它的次序。
有关说明如下:
link=↑node;
node=
RECORD
data:
left,right:
link
d,father:
link;
对过程的引用为:
Destree(d,father);
其中d指向被删除结点,father指向其父结点。
7-6编写一个查找二叉排序树的函数,该函数指向二叉排序树中给定数据的结点,如果二叉排序树中没有该结点,则函数值为NIL。
tree:
key:
调用函数时给出根结点指针tree及待查数据key.
7-7给出指向一数值为整数的链表的第一结点的指针。
编写一函数计算出该链表中所有整数之和。
有关类型说明为:
link=↑int;
int=
next:
datat:
integer
习题八
8-1什么是对象?
对象与记录有何区别?
8-2什么是方法?
方法与过程和函数有什么关系?
8-3静态方法和虚拟方法有什么不同?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 习题 答案