首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
admin
2014-10-11
32
问题
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图7—1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。
【图7一1】
【C代码】
typedef bool (*fun1)();
typedef (1) (*fun2)();
constint Book_MAX=10;//最大书本数
struct Book{
char name[3 0];
};
struct Bookshelf(//书架
struct Book books[BooK—MAX];
intindex;//书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书
};
struct Book*getB00kAt(struct BookShelf *BS, int index)
//从书架BS上取得下标为index的书
//只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标,才取书成功;
//否则失败,返同NuLL
{
if(index>: 0&& (2) ){
return&BS一>books[index];
}
return NULL:
}
bool appendBook(struct BookShelf *BS, struct Book book)
{
i f(BS一>index
BS一>books[BS一>index++] =book;
return true:
}
return false:
}
int getLength(struct BookShelf*bookShelf)
{
return bookShelf一>index:
}
structIterator{//迭代器
fun1 hasNext;//判断是否还有下一个元素
fun2 next;//取得下一个元素
};
struct BookshelfIterator(//书架迭代器
intindex:
struct BookShelf*bookShelf:
)bookShelfIterator={0,NULL);
bool BshasNext()//判断是否还有下一本书
{
i f(bookShel fIterator.index
return true:
}else{
return false;
}
}
struct Book*Bsnext()//取得下一本书,并将index加1,以便下一次正确访问
{
return getBookAt(bookShel fIterdtor.bookShel f,
(3) };
}
void main()
{
structBookShel f bookShel f;
bookShelf.index=0:
//将书籍上架,省略代码
//将bookshelf与booksheInterat。r相关联
bookShelfIterator.bookShelf= (4) ;
struct Iterator iterator;
iterator.hasNext= BShasNext;
iterator.next =BSnext:
struct Book*b;
while((5))(//遍历书架,输出书名
b= iterat0r.next();
prin七f(“%s\n”, b一>name);
}
选项
答案
(1)structBook* (2)index
index (3)bookShelflterator.index++ (4)&bookShelf (5)iterator.hasNext()
解析
空(1)是某个函数类型定义,先看空(2),根据注释,此处应填下标index“不大于当前书架上的最后一本书对应的下标”,而结构体BookShelf~的字段index是表示“书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书”,故空(2)应填:index
index。继续看空(3),根据注释函数BSnext0的功能是“取得下一本书,并将index加1,以便下一次正确访问”,而函数getBookAt(BS,index)是“从书架BS上取得下标为index的书”,因此空(3)应填欲取书的下标,应为bookShelfIterator.index,故空(3)应填bookShelflterator.index++。书架迭代器BookShelflteratorqh的字段bookShelf是structBookShelf*类型的,因此空(4)应填&bookshelf,注意取地址符&。while循环是遍历书架,输出书名,循环条件是“还有下一记录(书)”,故空(5)应填iterator.hasNext()。现在再来看空(1),由迭代器Iterator中字段next的定义:fun2next;以及赋值语句iterator.next=BSnext;可得,fun2应该定义了与BSnext函数同参数的函数指针,函数指针的定义原型为:函数返回类型函数指针变量名(参数列表),又知函数BSnext的定义为structBook*BSnext(),故空(1)应填structBook*。
转载请注明原文地址:https://kaotiyun.com/show/ZiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
下列操作系统中,_____保持网络系统的全部功能,并具有透明性、可靠性和高性能等特性。
己知某文档仅包含6种不同的字符,其每个字符出现的频率如下表所示,采用霍夫曼编码对该文档压缩存储,则单词“face”的编码为_______,该文档的压缩比为25%。
以下________不是敏捷开发方法Scrum的步骤。
在C程序中,________是合法的用户定义变量名。①123②form-7③short④form7
假设系统有n(n≥5)个并发进程,它们竞争互斥资源R。若采用PV操作,当有3个进程同时申请资源R,而系统只能满足其中1个进程的申请时,资源R对应的信号量s的值应为_______。
在由L2TP构建的VPN中,主要由①和②两种类型的服务器构成。1.将图5-1中①和②处空缺名称填写在答题纸的相应位置。2.简要说明两种服务器的主要作用。某路由器(在图5-1中没有标出)的部分配置信息如下所示,请解释其中标有下划线部分的含
造成故障1的原因是什么?如何解决?1.将故障2中(1)和(2)两处合适的答案填入答题纸相应的解答栏内。2.故障2如何解决?
将图2-1中(1)和(2)空缺名称填写在应的位置。使ADSL的传输速率更高有哪两个主要因素?
阅读以下说明,回答问题1~5。[说明]SSL(SecureSocketLayer)是目前解决传输层安全问题的一个主要协议,其设计的初衷是基于TCP协议之上提供可靠的端到端安全服务,SSL的实施对于上层的应用程序是透明的。应用SSL协议最广泛
从下列选项中选取合适的答案分别填入图4-1中的(1)~(4)处。A.DES算法B.MD5算法C.会话密钥D.数字证书E.甲的公钥F.甲的私钥G.乙的公钥H.乙的私钥以下关于摘要
随机试题
Theteacher______thatthestudentsbetherebeforenoon.
A.眼底正常B.眼底出血C.眼底动脉栓塞D.玻璃体下出血E.视乳头水肿蛛网膜下腔出血可见
工程监理企业应当拥有一套健全的管理制度,现代化的管理手段,先进的管理理论、方法和手段,足够的技术、经济资料和数据,这是建设工程监理()的期。
在进口设备时,若采用装运港船上交货价,卖方的责任是()。
在社会主义初级阶段,我国的一项基本经济制度是()。
周先生最喜欢的出行方式是乘坐()。
求解微分方程y"一y=ex+4cosx.
ThelongandprogressivereignofQueenVictoriacametoaclimaxatatimeofpeaceandplentywhentheBritishEmpireseemedt
A、 B、 C、 D、 D栈是一种特殊的线性表,限定仅在表的一端进行插入和删除运算的线性表,这一端称为栈顶(top),另一端则称为栈底(bottom)。表中无元素时称为空栈,最后进入栈顶的数据元素称为栈顶元
Somesocialscientistshaveclaimedthatdivorceharmschildrenfortherestoftheirlivesleadingthemtoformmarriagesash
最新回复
(
0
)