练习8
1、若有如下结构体说明:
struct STRU
{ int a, b ; char c; double d;
struct STRU p1,p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型
t[20];
3、假定已建立如下动态链表结构,且指针p1和p2已指向如下图所示的节点:
则以下可以将p2所指节点从链表中删除并释放该节点的语句组是()
A. (*p1).next=(*p2).next; free(p1);
B. p1=p2; free(p2);
C. p1->next=p2->next; free(p2);
D. p1=p2->next; free(p2);
4、Vc6中,若有下面的说明和定义,则sizeof(struct aa)的值是( )。struct aa
{ int r1;
double r2;
float r3;
union uu
{ char u1[5];
long u2[2];
}ua;
}mya;
A.30
B.29
C.24
D.22
5、根据下面的定义,能打出字母M的语句是( )。struct person
{ char name[9];
int age;
}
struct person class[10]={ 〞John〞,17, 〞Paul〞,19, 〞Mary〞,18, 〞Adam〞,16};
A.printf(〞%c\n〞,class[3].name);
B.printf(〞%c\n〞,class[3].name[1]);
C.printf(〞%c\n〞,class[2].name[1]);
D.printf(〞%c\n〞,class[2].name[0];
6、下面程序的输出结果为( )。
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10
B.50
C. 51
D.60
20 60 60 70
20 21 21 31
7、完成将文件指针fp重新指向文件开头的函数是 A. feof(fp) B. rewind(fp)
C. fseek(fp)
D. ftell(fp)