首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和C代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShe
阅读以下函数说明和C代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShe
admin
2012-02-20
31
问题
阅读以下函数说明和C代码,回答问题
[说明]
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图7-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。
[图7-1]
[C代码]
typedef bool(*fun1)();
typedef (1) (*fun2)();
const int BOOK_MAX = 10;//最大书本数
struct Book{
char name30;
};
struct BookShelf{//书架
struct Book books[BOOK MAX];
int index;//书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书
};
Struct Book* getBookAt(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)
{
if(BS->index < BOOK_MAX){
BS->books[BS->index++] = book;
return true;
}
return false;
}
int getLength(struct BookShelf *bookShelf)
{
return bookShelf->index;
}
struct Iterator{//迭代器
fun1 hasNext;//判断是否还有下一个元素
fun2 next;//取得下一个元素
};
struct BookshelfIteratorf{//书架迭代器
int index;
struet BookShelf* bookShelf;
}bookShelfIterator = {0, NULL};
bool BShasNext()//判断是否还有下一本书
{
if(bookShelfIterator.index
return true;
}else{
return false;
}
}
struct Book* BSnext()//取得下一本书,并将index加1,以便下一次正确访问
{
return getBookAt(bookShelfIterator.bookShelf,
(3) );
}
void main()
{
struct BookShelf bookShelf;
bookShelf.index = 0;
//将书籍上架,省略代码
//将bookShelf与bookShelfIterator相关联
bookShelfIterator.bookShelf = (4) ;
struct Iterator iterator;
iterator.hasNext = BShasNext;
iterator.next = BSnext;
struct Book* b;
while( (5) ){//遍历书架,输出书名
b=iterator.next();
printf("%s\n", b->name);
}
}
选项
答案
(1)struct Book* indexindex bookShelfIterator.index++ &bookShelf iterator.hasNext()
解析
是某个函数类型定义,先看空(2),根据注释,此处应填下标index“不大于当前书架上的最后一本书对应的下标”,而结构体BookShelf中的字段index是表示“书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书”,故空(2)应填:indexindex。
继续看空(3),根据注释函数BSnext()的功能是“取得下一本书,并将index加1,以便下一次正确访问”,而函数getBookAt(BS,index)是“从书架BS上取得下标为index的书”,因此空(3)应填欲取书的下标,应为bookShelfIterator.index,故空(3)应填bookShelflterator.index++。
书架迭代器BookShelflterator中的字段bookShelf是struct BookShelf*类型的,因此空(4)应填&bookshelf,注意取地址符&。
while循环是遍历书架,输出书名,循环条件是“还有下一记录(书)”,故空(5)应填iterator.hasNext()。
现在再来看空(1),由迭代器Iterator中字段next的定义:fun2 next;以及赋值语句iterator.next=BSnext;可得,fun2应该定义了与BSnext函数同参数的函数指针,函数指针的定义原型为:函数返回类型函数指针变量名(参数列表),又知函数BSnext的定义为struct Book*BSnext(),故空(1)应填struct Book*。
转载请注明原文地址:https://jikaoti.com/ti/K3i7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下不属于易用性测试的是(69)________________。
软件测试使用各种术语描述软件出现的问题,以下叙述正确的是______。A.软件错误(error)是指在软件生命周期内的不希望或不可接受的人为错误,其结果是导致软件故障的产生B.软件缺陷(defect)是存在于软件(文档、数据、程序)之中的那些不希望或不
针对下列程序段,对于(A,B)的取值,以下(57)测试用例组合能够满足条件覆盖的要求。IF((A-10)=20AND(B+20)>10)THENC=0IP((A-30)<10AND(B-30)<0)THENB=30①A=5
软件内部/外部质量模型中,以下(66)不是功能性包括的子特性。
程序员甲与同事乙在乙家探讨甲近期编写的程序,甲表示对该程序极不满意,说要弃之重写,并将程序手稿扔到乙家垃圾筒。后来乙将甲这一程序稍加修改,并署乙名发表。以下说法正确的是(11)。
测试记录包括、(64)。①测试计划或包含测试用例的测试规格说明。②测试期间出现问题的评估与分析。③与测试用例相关的所有结果,包括在测试期间出现的所有失败。④测试中涉及的人员身份。
(38)属于概要设计说明书的评测内容。①分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。②系统定义的目标是否与用户的要求一致。③从软件维护的角度出发,确认该软件设计是否考虑了方便未来
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
通常一个HFC网络由前端(FE)、主数字终端(HDT)、光纤节点(FN)、网络接口单元(NIU)、综合业务单元(ISU)及传输线路等构成。根据HFC网接入Internet网的典型配置,将图6-12所示的拓扑图中(A)~(D)空缺处的名称填写完整(请使用题干
通常一个HFC网络由前端(FE)、主数字终端(HDT)、光纤节点(FN)、网络接口单元(NIU)、综合业务单元(ISU)及传输线路等构成。根据HFC网接入Internet网的典型配置,将图6-12所示的拓扑图中(A)~(D)空缺处的名称填写完整(请使用题干
随机试题
下列情形构成共同犯罪的是()。
某学生学习基础不错,但学习成绩时起时伏。原因是每晚打开电视就控制不了自己,看完电视太晚,来不及复习功课,他学习上的问题说明他在性格方面具有不良的()
女性,38岁,反复发作吞咽困难10余年,钡剂造影发现食管下端呈鸟嘴样狭窄,食管体部增宽达5cm。进一步检查最必要的是
2017年12月9日2时9分,A省B市生物科技有限公司甲间二氯苯装置发生爆炸事故,造成10人死亡、1人轻伤,直接经济损失4875万元。甲公司经营范围:生物科技研发;间二硝基苯、2,4-D酸、间二氯苯、五硫化二磷等。2017年11月22日,甲公司提
首次公开发行股票并在创业板上市的要求发行人最近1期末净资产不少于2000万元,发行后股本不少于()。
下列选项中加下划线的字的读音全都正确的一项是()。
唯物主义和唯心主义是哲学史上的两个基本派别,唯心主义者都主张()。
2015年,我国海洋灾害以风暴潮、海浪、海冰和赤潮灾害为主,绿潮、海岸侵蚀、海水入侵与土壤盐渍化、咸潮入侵等灾害也均有不同程度发生。各类海洋灾害造成直接经济损失72.74亿元,死亡(含失踪)30人。2014年7月,在我国华南沿海登陆的1409“威马逊”台风
A.成纤维细胞B.成牙本质细胞C.组织细胞D.未分化的间充质细胞E.淋巴细胞位于牙髓周围,呈柱状紧接前期牙本质排列成一层,其细胞顶端有一细长的突起伸入牙本质小管内的是()。
下列哪些是毛泽东在20世纪六七十年代提出的理论?()
最新回复
(
0
)