首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
阅读以下函数说明和c代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Boo
admin
2014-10-11
51
问题
阅读以下函数说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(17)。
在进行可用性测试时关注的问题应包括()。①安装过程是否困难②错误提示是否明确③GUI接口是否标准④登录是否方便⑤帮助文本是否上下文敏感
以下________不是敏捷开发方法Scrum的步骤。
以下关于数据流图的基本要素的叙述中,不正确的是_______。
若系统中有4个互斥资源R,当系统中有2个进程竞争R,且每个进程都需要i个R(i≤3)时,该系统可能会发生死锁的最小i值是________。
假设系统有n(n≥5)个并发进程,它们竞争互斥资源R。若采用PV操作,当有3个进程同时申请资源R,而系统只能满足其中1个进程的申请时,资源R对应的信号量s的值应为_______。
某计算机系统页面大小为4K,进程P的页面变换表如下表所示。若P中某数据的逻辑地址为十六进制2C18H,则该地址的页号和页内地址分别为2和C18H;经过地址变换后,其物理地址应为十六进制______。
以下描述中,属于通用操作系统基本功能的是_______。
_______是构成我国保护计算机软件著作权的两个基本法律文件。
若计算机字长为32,则采用补码表示的整数范围为______。
随机试题
境内企业的外方在境外的控股公司申请上市,从而达到境内企业上市的目的,被称为()
固定义齿固位体设计,不正确的是
面呈六边形的牙是
属于名城整体空间环境保护方法的是()。
根据《标准施工合同》,对于未达到必须招标规模或标准的项目,可自监理人在暂估价内直接确定价格的是()。
根据《个人所得税法》的规定,下列各项中,免征个人所得税的有()。
下列属于印花税纳税人的有()。
“夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远”。下列关于道德的说法中,你认为正确的是()
胃分泌的内因子不足时,则()吸收不良,造成巨幼红细胞性贫血。
公司的某件物品丢失。领导查找几次未有结果。你从各方面获得的线索表明这件事情很有可能是某某同事干的。你会()。
最新回复
(
0
)