问题 实验题

下图是李明同学用两片长方形木板(1和2)、两条松紧带(3和4)、和一颗螺丝(5)制作的肌肉牵拉骨运动的模型,请据图回答问题。(共12分,除说明外,每空1分)

(1)图中[1][2]相当于两块       ,[3][4]相当于       ,[5]相当于      

(2)根据图中虚线箭头判断,此时[3]应处于        状态,[4]应处于       状态。如果[5]表示肘关节,则此过程表示         动作。(每空2分)

(3)从这个模型可以看出,人在运动时要靠          牵拉       ,绕        转动而完成动作。

答案

(1)骨骼 骨骼肌 关节(2)收缩 舒张 屈肘(3)骨骼肌 骨骼 关节

题目分析:骨骼肌靠肌腱绕过关节连接在不同的骨上,形成的结构就是关节,与骨相连的肌肉总是由两组肌肉相互配合活动的,屈肘时,肱二头肌收缩,肱三头肌舒张,3相当于肱二头肌,4相当于肱三头肌,连接在两块骨骼上,形成了肘关节。

选择题
问答题


阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。
【说明】
在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。
【C语言代码】
/*变量与类型说明*/
#include "stdio.h"
#include "stdlib.h"
extern int sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, iht arg2);
#define NOERROR 0

type struct {
int _fd;
} TYP_DEV_TAB;
TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,};

/*程序代码*/
void manage_device(int devid, int arg1, int arg2)
{ int place ;
int ret;
for(place=0 ; place<50 ; place++)
if dev_tab [place]. fd == devid) break;
if(place>=50)
printf(" NO DEVICE fd = %d\n ",devid);
switch(dev_tab [place]._fd) {
case 80:
ret = Dev_drv3(int arg1,int arg2);
break;
case 99:
ret = Dev_drv2(int arg1,int arg2);
break;
case 101:
ret = Dev_drv1(int arg1,int arg2);
break;
case 120:
ret = Dev_drv4(int arg1,int arg2);
break;
}
if (ret!=NOERROR)
printf(" DEVICE %d error!\n ", devid);
}

int Dev_drv1(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}

int Dev_drv2(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}

int Dev_drv3(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}

int Dev_drv4(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/

【问题4】
在设备驱动程序(函数)Dev_drv1中,对指针ptr的说明如下:
【C语文代码】
int Dev_drv1(int arg1,int arg2 )
{
struct node {
int ID;
char name [20];
int range;
} ;
struct node *ptr;
/*其他局部变量声明,略*/
ptr = (struct node *)malloc(sizeof(struct node)*100);
/*其他程序代码,略*/
}
设int为32位整数,char占8位。当对指针ptr赋完值后的值为0x3751CO,若再执行一条“ptr++;”语句,此时ptr的值为多少 (用十六进制表示)。