[说明]对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方

题型:问答题

问题:

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(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);

(4)处填()。

考点:计算机软件水平考试中级软件设计师中级软件设计师下午试题
题型:问答题
已知向量m=(sin
x
4
cos
x
4
),n=(
3
cos
x
4
cos
x
4
),记f(x)=m•n;
(1)若f(x)=1,求cos(x+
π
3
)
的值;
(2)若△ABC中,角A,B,C的对边分别是a,b,c,且满足(2a-c)cosB=bcosC,求函
数f(A)的取值范围.
题型:问答题

如图所示,对于大写字母F,选择正确的编号填空. 

(1)在照相机的取景框上看到该物体的像的形状为______;

(2)在照相机底片上成的像为______;

(3)用放大镜看物体,看到的该物体的像的形状为______.

题型:问答题

用磷的同素异形体红磷和白磷做如下实验,装置如图所示.取0.5克(过量)红磷置于燃烧匙中,点火后立即插入瓶内并塞紧橡皮塞,停止燃烧后待瓶温冷却到室温,把瓶倒置于盛水的水槽中,在水面下打开塞子,任水进入瓶里,最终进入瓶内水的体积约为瓶容积的15%.如果把0.5克(过量)白磷置于燃烧匙中,按照相同操作最终进入瓶内水的体积约占瓶容积的21%.

(1)以上两个实验结果说明了什么?______.

(2)有人认为,在水面下打开塞子水即进入瓶内,主要原因是五氧化二磷溶于水,这种看法是否正确?为什么?

______.

(3)白磷和红磷燃烧时看到的现象是______,反应的符号表达式是______.

题型:问答题

手法复位相对不适合应用于:

A.关节内骨折不能解剖复位者
B.有软组织嵌入骨折断端者
C.骨折后两周仍有畸形者
D.急诊疑有血管损伤者
E.程度较轻的开放性骨折者

题型:问答题

飞机是否得到RVSM批准在公司的哪部手册中可以查到()

A.运行规范

B.飞行运行手册

C.运行总手册

D.飞行签派手册

更多题库