电子技术 第十章 结构体与共用体
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章结构体与共用体
一、选择题
1.在说明一个结构体变量时系统分配给它的存储空间是。(0级)
A)该结构体中第一个成员所需存储空间
B)该结构体中最后一个成员所需存储空间
C)该结构体中占用最大存储空间的成员所需存储空间
D)该结构体中所有成员所需存储空间的总和
2.若有以下说明和语句:
struct worker
{ int no; char ﹡name; }work, ﹡p=&work;
则以下引用方式不正确的是。(1级)
A) work.no B) (﹡p).no C) p->no D)work->no3.有如下定义:
struct date { int year, month, day; };
struct worklist { char name[20]; char sex;
struct date birthday; }person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。
(1级)
A) year=1958 B) birthday.year=1958
C) person.birthday.year=1958 D) person.year=1958
4.以下对结构体类型变量的定义中不正确的是。(1级)
A)#define STUDENT struct student B) struct student
STUDENT { int num;
{ int num; float age;
float age; }std1; }std1;
C) struct D) struct
{ int num; { int num;
float age; float age; } student;
}std1; struct student std1;
5.设有以下说明语句
struct stu
{ int a; float b; }stutype;
则下面的叙述不正确的是。(1级)
A)struct是结构体类型的关键字
B)struct stu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名
D)a和b都是结构体成员名
6.C语言结构体类型变量在程序执行期间。(0级)
A)所有成员一直驻留在内存中
B)只有一个成员主留在内存中
C)部分成员驻留在内存中
D)没有成员驻留在内存中
7.以下程序的运行结果是。(1级)
# include
main( )
{ struct date
{ int year, month, day; }today;
printf(“%d\n”,sizeof(struct date)); }
A) 6 B) 8 C) 10 D)128.有如下定义
struct person{char name[9]; int age;};
stru ct person class[10]={“Johu”, 17,
“Paul”, 19
“Mary”, 18,
“Adam 16,};
根据上述定义,能输出字母M的语句是。(1级)
A)prinft(“%c\n”,class[3].mane);
B)pfintf(“%c\n”,class[3].name[1]);
C) prinf t(“%c\n”,class[2].name[1]);
D)printf(“%^c\n”,class[2].name[0]);
9.设有如下定义
struct ss
{ char name[10];
int age;
char sex;
} std[3],* p=std;
下面各输入语句中错误的是。(1级)
A) scanf("%d",&(*p).age);
B) scanf("%s",&);
C) scanf("%c",&std[0].sex);
D) scanf("%c",&(p->sex))
10.设有以下说明语句,则下面的叙述中不正确的是。(1级)
struct ex {
int x ; float y; char z ;
} example;
A) struct结构体类型的关键字 B) example是结构体类型名
C) x,y,z都是结构体成员名 D) struct ex是结构体类型
11.若程序中有下面的说明和定义:
struct stt
{ int x;
char b;
}
struct stt a1,a2;
则会发生的情况是。(1级)
A)程序将顺利编译、连接、执行。
B)编译出错。
C)能顺利通过编译、连接,但不能执行。
D)能顺利通过编译,但连接出错。
12.已知教师记录定义为:
struct student
{ int no;
char name[30];
struct
{ unsigned int year;
unsigned int month;
unsigned int day;
}birthday;
} stu;
struct student *t = &stu;
若要把变量t中的生日赋值为“1980年5月1日”,则正确的赋值方式
为。(1级)
A) year = 1980; B) t.year = 1980;
month = 5; t.month = 5;
day = 1; t.day = 1;
C) t.birthday.year = 1980; D) t-> birthday.year = 1980;
t.birthday.month = 5; t-> birthday.month = 5;
t.birthday.day = 1; t-> birthday.day = 1;
13.以下结构类型可用来构造链表的是。(1级)
A) struct aa{ int a;int * b;};
B) struct bb{ int a;bb * b;};
C) struct cc{ int * a;cc b;};
D) struct dd{ int * a;aa b;};
14.以下程序的输出结果是。(2级)
amovep(int *p, int a[3][3],int n)
{ int i, j;
for( i=0;i for(j=0;j } main() { int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int *)malloc(100); amovep(p,a,3); printf("%d %d \n",p[2],p[5]);free(p); } A) 56 B) 25 C) 34 D) 程序错误 15.以下程序的输出结果是。(2级) struct HAR { int x, y; struct HAR *p;} h[2]; main() { h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1].x; h[1].p=&h[0].x; printf("%d %d \n",(h[0].p)->x,(h[1].p)->y);