首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
admin
2014-10-11
55
问题
阅读以下函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下关于建立良好的程序设计风格的叙述中,正确的是()。
下列操作系统中,_____保持网络系统的全部功能,并具有透明性、可靠性和高性能等特性。
一个程序的控制流图中有5个结点,8条边,在测试用例数最少的情况,确保程序中每个可执行语句至少执行一次所需要的测试用例数的上限是_______。
下图是责任链设计模式的类图,该设计模式的目的是________。该图中,Handler和Handler之间是关联关系,Handler和ConcreteHandler之间是继承关系。
己知某文档仅包含6种不同的字符,其每个字符出现的频率如下表所示,采用霍夫曼编码对该文档压缩存储,则单词“face”的编码为_______,该文档的压缩比为25%。
某计算机系统页面大小为4K,进程P的页面变换表如下表所示。若P中某数据的逻辑地址为十六进制2C18H,则该地址的页号和页内地址分别为2和C18H;经过地址变换后,其物理地址应为十六进制______。
_______是构成我国保护计算机软件著作权的两个基本法律文件。
在应用服务器关机的情况下,公司员工能连接上因特网吗?简要解释。假设采用ISDN基本速率接口,下载1875KB的文件,最快需要多长时间?
阅读以下说明,回答问题1至问题3。[说明]某公司规模扩大,既要考虑保证目前土建装修的效果不被破坏,又要满足网络扩容和企业工作实际需求,同时还要保证投资不要过大。经过深入分析和研究对比,决定采用无线局域网组网来解决网络扩容的问题,网络拓扑如图1-1
随机试题
患者女性,62岁,患高血压10年。否认患有糖尿病、高血脂等。查体:血压170/100mmHg,心界扩大,A2亢进,无杂音。实验室检查:尿蛋白+,尿素氮(BUN)7.0mol/L;糖耐量异常。
孕妇患沙眼衣原体宫颈炎可引起________、________、________及________。
A.高钙血症B.血尿C.雷耶(Reye’s)综合征D.再生障碍性贫血和紫癜E.柯兴征
在实践中合作企业在合作期满时,其全部()往往归中国合作者所有。
教授创造性思维的策略和方法中,()的主要目的是发展学生的想象力和对事物的敏感性,并促使学生深入思考,灵活应对。
(2016·广东)课外活动与课堂教学()(易错)
无行为能力人接受赠与的合同是()合同。
简述知识整合和深化的方法与策略。
Ifyou’vetraveledbyairplaneinthepastfewyears,chancesareyou’vewalkedthroughafullbodyscanneratthesecuritychec
A、Anannualcyclingevent.B、MajorCanadianbicycleraces.C、Thecontributionofcyclingtohealth.D、Howtoincreaseone’sspee
最新回复
(
0
)