首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
admin
2014-10-11
53
问题
阅读以下函数说明和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://www.kaotiyun.com/show/ZiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某软件设计师自行将他人使用C程序语言开发的控制程序转换为机器语言形式的控制程序,并固化在芯片中,该软件设计师的行为(15)。
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件的可靠性目标在()阶段。
以下关于数据流图的叙述中,不正确的是______。
关系数据库是表的集合。对视图进行查询,本质上就是查询从_______中获得的数据。
函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为_______。
在C程序中,设有“inta=3,b=2,c=1;”,则表达式a>b>c的值是_________。
若系统中有4个互斥资源R,当系统中有2个进程竞争R,且每个进程都需要i个R(i≤3)时,该系统可能会发生死锁的最小i值是________。
甲怀疑乙发给他的信息已遭人篡改,同时怀疑乙的公钥也是被人冒充的。为了消除甲的疑虑,甲、乙需要找一个双方都信任的第三方,即______来签发数字证书。
从下列选项中选取合适的答案分别填入图4-1中的(1)~(4)处。A.DES算法B.MD5算法C.会话密钥D.数字证书E.甲的公钥F.甲的私钥G.乙的公钥H.乙的私钥以下关于摘要
随机试题
不耐热手术用品的灭菌应首选用()
下列不属于气雾剂的优点的是
椿皮的功效是麻黄根的功效是
信息持续披露制度是公平原则在证券市场中的集中表现。()
刘某是甲有限责任公司的董事,任职期间,多次利用职务之便,指示公司会计将资金借贷给一家主要由刘某的儿子投资设立的乙公司,致使甲公司遭受损失。对此,持有公司股权0.5%的股东王某自行直接向法院对刘某提起股东代表诉讼。根据公司法律制度的规定,下列选项中,正确的有
下列交易或事项中,不应确认为营业外收入的是()。
教育的基本着眼点是()。
2012年1~3季度,浙江省实现地区生产总值24214.9亿元,上年同期增长7.7%,增速比1~2季度加快0.3个百分点。其中,第一产业实现增加值1029.4亿元,增长2.1%;第二产业实现增加值12269.0亿元,增长6.8%;第三产业实现增加值1091
下列各项中,不属于行政处分的是()。
MenorcaorMajorca?Itisthattimeoftheyearagain.Thebrochuresarepilingupintravelagentswhilenewspapersandmagazin
最新回复
(
0
)