第11章 结构体
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单项选择题
1101. 当说明一个结构体变量时系统分配给它的内存是( )。
A. 各成员所需内存量的总和
B. 结构中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
1002. 设有以下说明语句
struct uu
{ int n;
char ch[8];
} PER;
则下面叙述中正确的是( )。
A. uu 是结构体标识名
B. PER 是结构体标识名
C. struct uu是结构体标识名
D. struct 是结构体标识名
1003. 已知有如下定义:
struct a{char x; double y;}data,*t;
若有t=&data,则对data中的成员的正确引用是( )。
A. (*t).x
B. (*t).data.x
C. t->data.x
D. t.data.x
1004. 设有如下定义:
struct sk
{ int a;
float b;
} data;
int *p;
若要使P指向data中的b域,正确的赋值语句是( )。
A. p=&data.b;
B. p=&b;
C. p=data.b;
D. *p=data.b;
1005. 已知学生记录描述为:
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是( )。
A. s.birth.year=1984;s.birth.month=11;s.birth.day=12;
B. birth.year=1984;birth.month=11;birth.day=12;
C. s.year=1984;s.month=11;s.day=12;
D. year=1984;month=11;day=12;
1006. 有如下定义
struct person{char name[9];int age;};
struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};
根据上述定义,能输出字母M的语句是( )。
A. printf("%c\n",class[3].name[1]);
B. printf("%c\n",class[3].name);
C. printf("%c\n",class[2].name[1]);
D. printf("%c\n",class[2].name[0]);
1007. 若程序中有以下的说明和定义:
struct abc
{ int x;char y; }
struct abc s1,s2;
则会发生的情况是( )。
A. 编译出错
B. 程序将顺序编译、连接、执行
C. 能顺序通过编译、连接、但不能执行
D. 能顺序通过编译、但连接出错
1008. 有以下程序段
struct st
{ int x; int *y;}*pt;
int a[]={1,2};b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是( )。
A. ++pt->x
B. *pt->y
C. pt->x
D. (pt++)->x
1009. 有以下说明和定义语句
struct student
{ int age; char num[8];};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是( )。
A. stu[3].age
B. (p++)->num
C. p->num
D. (*p).num
1010. 在VC++6.0下,定义以下结构体类型
struct s
{
int a;
char b;
float f;
};
则语句printf("%d",sizeof(struct s))的输出结果为( )。
A. 9
B. 8
C. 7
D. 6
1011. 在VC++6.0下,定义以下结构体类型
struct s
{ int x;
float f;
}a[3];
语句printf("%d",sizeof(a))的输出结果为( )。
A. 24
B. 20
C. 16
D. 12
1012. 定义以下结构体数组
struct c
{ int x;
int y;
}s[2]={1,3,2,7};
语句printf("%d",s[0].x*s[1].x)的输出结果为( )。
A. 2
B. 3
C. 4
D. 5
1013. 在VC++6.0下,定义以下结构体类型