首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
admin
2014-10-11
58
问题
阅读以下函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
在软件评审中,设计质量是指设计的规格说明书符合用户的要求。设计质量的评审内容不包括______。
下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则里程碑C在关键路径上。在其他活动按时完成的情况下,活动FJ最多可以晚_______天开始而不影响工期。
关系数据库是表的集合。对视图进行查询,本质上就是查询从_______中获得的数据。
在C程序中,________是合法的用户定义变量名。①123②form-7③short④form7
设X、Y、Z为逻辑变量,当且仅当X和Y同时为1时,Z为0,其他情况下Z为1,则对应的逻辑表达式为________。
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
若计算机字长为32,则采用补码表示的整数范围为______。
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
阅读以下说明,回答问题1至问题4,将解答填人答题纸的对应栏内。[说明]某小公司的网络拓扑如图9-2所示。其中路由器具有ISDN模块,公司网络通过ISDN连接到ISP。
目前,通过移动电话接人互联网采用的主要技术是什么?公司网络中的设备或系统(包括存储商业机密的数据库服务器、邮件服务器、存储资源代码的PC机、应用网关、存储私人信息的PC机、电子商务系统)哪些应放在DMZ中,哪些应放在内网中?给予简要说明。
随机试题
A.PGE2B.PGF2αC.PGl2D.TXA2E.TXB2血小板合成的是:
假膜性炎是发生于
患者眩晕,头痛头胀,头重脚轻,面红目赤,急躁易怒,口苦,舌红苔黄,脉弦数。其证型是
对于二级评价项目,地面气象观测资料调查要求是:距离项目最近的地面气象观测站,()的常规地面气象观测资料。
某项目单因素敏感性分析,评价指标为财务净现值,不确定性因素为投资额,产品价格、经营成本,由下表所示计算结果可知,项目对三个因素的敏感程度由高到低依次为()。
某建设单位欲新建一座大型综合市场,于2006年3月20日领到工程施工许可证。开工后因故于2006年10月15日中止施工。根据建筑法施工许可制度的规定,该建设单位向施工许可证发证机关报告的最迟期限应是2006年()。
a>2,则双曲线的离心率的取值范围是()。
具体迁移是指一种学习中的具体的经验直接迁移到另一种学习中去。()
说明人类历史上存在的“超越”现象与五种社会形态演进规律的一致性。
数据库应用系统中的核心问题是()。
最新回复
(
0
)