c语言第七章习题
第七章 结构体
一、选择题
1、若有语句:char s1[]="string",s2[8],*s3,*s4="string2";则对库函数strcpy的错误调用是()
A)strcpy(s1,"string2"); B)strcpy(s4,"string1"); C)strcpy(s3,"string1"); D)strcpy(s1,s2);
2、下面程序的运行结果是()
fun(int **a,int p[2][3])
{**a=p[1][1];}
main()
{int x[2][3]={2,4,6,8,10,12},*p;p=(int *)malloc(sizeof(int));fun(&p,x);printf("%d\n",*p);}
A)10 B)12 C)6 D)8
3、以下scanf函数调用语句中对结构体变量成员的不正确引用是()。
struct pupil
{ char name[20]; int age; int sex;} pup[5],*p; p=pup;
A)scanf("%s",pup[0].name); B)scanf("%d",&pup[0].age);
C)scanf("%d",&(p->sex)); D)scanf("%d",p->age);
4、以下对结构体变量stul中成员age的非法引用是()。
struc student
{ int age; int num; }stul,*P; p=&stul;
A)stul.age B)student.age C)p->age D)(*p).age
5、设有以下说明和定义语句,则下面表达式中值为3的是()。
struct s
{ int i1; struct s *i2;};
struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptr;
ptr=&a[1];
A)ptr->i1++ B)ptr++->i1 C)*ptr->i1 D)++ptr->i1
6、若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则《1》中应填入的内容是:
int *p; p=《1》malloc(sizeof(int));
A)int B)int * C)(*int) D)(int *)
7、以下对C语言中共用体类型数据的叙述正确的是()。
A)可以对共有体变量名直接赋值 B)一个共用体变量中可以同时存放其所有成员
C)一个共有体变量中不能同时存放其所有成员
D)共用体类型定义中不能出现结构体类型的成员
8、当说明一个共用体变量时系统分配给它的内存是()。