问题 探究题

声音与人的生活息息相关,为了认识声音,某实践活动小组设计了以下实验对声音进行了探究。

实验一:使正在发声的音叉接触水面溅起水花。

实验二:用细线把一个小铃铛悬挂在软木塞的下端,并置入烧瓶中,摇一摇瓶子,会听到清晰的“叮当”声。然后取下软木塞点燃酒精棉球放入瓶中,待火熄灭后,迅速塞紧软木塞,再摇瓶子,听到瓶里的响声比原来小很多。

实验三:支起自行车,一手转动自行车的脚踏板,另一只手则拿一硬纸片并让纸片一头伸进自行车后轮的辐条中,随着车轮转速的加快,纸片发出的声音会越来越尖。

(1)以上三个实验中,实验______表明发声体在振动。

(2)实验二表明:_________________________________;

(3)实验三表明:_________________________________。

答案

(1) 一 

(2)声音的传播需要介质

(3)音调高低由频率决定

完形填空
填空题

阅读下列说明和C函数代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二又树的每个结点,且每个结点仅访问一次的过程。函数InOrder()借助栈实现二叉树的非递归中序遍历运算。

设二叉树采用二叉链表存储,结点类型定义如下:

typedef struct BtNode

ElemType data; /*结点的数据域,ElemType的具体定义省略*/

struct BtNode *lchiid,*rchiid; /*结点的左、右孩子指针域*/

BtNode,*BTree;

在函数InOrderO中,用栈暂存二叉树中各个结点的指针,并将栈表示为不含头结点的单向链表(简称链栈),其结点类型定义如下:

typedef struct StNode /*链栈的结点类型*/

BTree elem; /*栈中的元素是指向二叉链表结点的指针*/

Struct StNode *link;

StNode;

假设从栈顶到栈底的元素为en,en-1,…,e1,则不含头结点的链栈示意图如图21-11所示。

[C函数]

int InOrder(BTree root) /*实现二叉树的非递归中序遍历*/

BTree ptr; /*ptr用于指向二叉树中的结点*/

StNode *q; /*q暂存链栈中新创建或待删除的结点指针*/

StNode *stacktop=NULL; /*初始化空栈的栈顶指针stacktop*/

ptr=root; /*ptr指向二叉树的根结点*/

while( (1) || stacktop!=NULL)

while(ptr!=NULL)

q=(StNode*)malloc(Sizeof(StNode));

if(a==NULL)

return-1;

q->elem=ptr;

(2)

stacktop=q; /*stacktop指向新的栈顶*/

ptr= (3) ; /*进入左子树*/

q=stacktop;

(4) ; /*栈顶元素出栈*/

visit(q); /*visit是访问结点的函数,其具体定义省略*/

ptr= (5) ; /*进入右子树*/

free(q); /*释放原栈顶元素的结点空间*/

return 0;

/*Inorder*/

(2)处填()。