早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列算法说明和流程图1,回答问题1至问题3,将解答填入答题纸的对应栏内。 【算法说明】 某旅馆

题目

阅读下列算法说明和流程图1,回答问题1至问题3,将解答填入答题纸的对应栏内。

【算法说明】

某旅馆共有N间客房。每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级值为1、2或3。房间的状态值为0(空闲)或1(占用)。客房是以房间(不是床位)为单位出租的。

本算法根据几个散客的要求预订一间空房。程序的输入为:人数M,房间等级要求R(R=0表示任意等级都可以)。程序的输出为:所有可供选择的房间号。

流程图1描述了该算法。

【问题1】

假设当前该旅馆各个房间的情况见表3。

当输入M=4,R=0时,该算法的输出是什么?

【问题2】

如果等级为r的房间每人每天的住宿费为RATE(r),RATE为数组。为使该算法在输出每个候选的房间号RM(J)后,再输出这批散客每天所需的总住宿费DAYRENT(J),流程图1的β所指框中的最后处应增加什么处理?

【问题3】

如果限制该算法最多输出K个可供选择的房间号,则在流程图1的α所指的判断框应改成什么处理?

【流程图1】(如图2所示)

图2

参考答案
正确答案:

●试题一

[问题1

【答案】101301

【解析】当M=4,R=0表示客人数为4,对房间等级没有要求,根据流程图,依次判断各个房间是否满足要求,1014张床且房间空闲,满足要求;102202已被占用,排除,201床数为3<4,排除;3016张床,且未被占用,满足条件,所以,输出结果为:101301

[问题2

【答案】RATERANKI))*M->DAYRENTJ

【解析】房间的费用是根据房间的等级和房间所住客人的数量决定,所以在β框中应加入RATERANKI))*M->DAYRENTJ)。

[问题3

【答案】I>N||jK,其中,J=K也可写成JK

【解析】若要限制算法最多输出K个房间号,也就是说,该程序执行输出结果的条件应为:(1)所有房间都已检查完,且满足条件的房间数小于等于K。(2)没有检查完但满足条件的房间数已等于K,所以α框中的条件应该改为I>N||jK