问题 简答题

(14分)材料一 王力常常到网吧玩游戏,结识了网吧里一帮哥们儿。一天,他们相约到外边去找钱,在行窃时被人当场抓获,并扭送至公安机关。

材料二 孙强原来对数学不感兴趣,成绩一般,但他在同桌耿涛的影响下,数学成绩有了很大的提高,最近被吸收进了数学的奥数培训班。

材料三 与善人居,如入芝兰之室,久而不闻其香;与不善人居,如入鲍鱼之肆,久而不闻其臭。

阅读上述材料,请回答:

(1)王力、孙强发生上述变化的原因分别是什么? (4分)

(2)结合材料一和材料二,谈谈你对材料三的理解。(4分)

(3)在今后的学习生活中,你打算怎样去交友?(6分)

答案

(1)王力发生变化的原因主要是结实了一帮损友,对他产生了不良影响;孙强发生变化的原因是结交了一位益友,潜移默化地接受到了好的影响。(4分)

(2)结交益友,可帮助自己进步;结交损友,可能会走上弯路、邪路。(意思相近即可。4分)

(3)交友要有所选择。善交益友,乐交诤友,远离损友。(6分)

题目分析:本题材料一从反面反映出结交损友的危害,材料二从正面反映出结交益友有利于自己的进步。学生通过比较这两个方面可以得出在今后学习生活中要慎重交友,多交益友,远离损友。解答本题学生只要将答案组织完整即可。

多项选择题
问答题

[说明]

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