第11章 结构.docx
- 文档编号:3028980
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:21
- 大小:20.45KB
第11章 结构.docx
《第11章 结构.docx》由会员分享,可在线阅读,更多相关《第11章 结构.docx(21页珍藏版)》请在冰豆网上搜索。
第11章结构
第11章结构与联合
一、单选题
1下列关于结构的说法错误的是:
A:
结构是由用户自定义的一种数据类型
B:
结构中可设定若干个不同数据类型的成员
C:
结构中成员的数据类型可以是另一个已定义的结构
D:
在定义结构时,可以为成员设置默认值
答案:
D
2以下关于结构体的叙述中,错误的是:
A:
结构体是一种可由用户构造的数据类型
B:
结构体中的成员可以具有不同的数据类型
C:
结构体中的成员不可以与结构体变量同名
D:
结构体中的成员可以是指向自身结构的指针类型
答案:
C
3以下结构体类型说明和变量定义中,正确的是:
A:
structSS
{charflag;
floatx;
}
structSSa,b;
B:
struct
{charflag;
floatx;
}SS;
SSa,b;
C:
structss
{charflag;
floatx;
};
D:
typedef
{charflag;
floatx;
}SS;
SSa,b;
答案:
C
4以下对结构体类型变量st的定义中,不正确的是:
A:
struct
{charc;
inta;
}st;
B:
struct
{charc;
inta;
}TT;
structTTst;
C:
typedefstruct
{charc;
inta;
}TT;
TTst
D:
#defineTTstruct
TT
{charc;
inta;
}st;
答案:
B
5设有以下说明语句:
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是:
A:
struct是结构体类型的关键字
B:
structstu是用户定义的结构体类型名
C:
stutype是用户定义的结构体类型名
D:
a和b都是结构体成员名
答案:
C
6在16位IBM-PC机上使用C语言时,若有如下定义:
structdata
{inti;
charch;
doublef;
}b;
则结构变量b占用内存的字节数是:
A:
1
B:
2
C:
8
D:
11
答案:
D
7以下程序的运行结果是:
#include"stdio.h"
main()
{structdate
{intyear;
intmonth;
intday:
}today;
printf("%d\n",sizeof(structdate));
}
A:
6
B:
8
C:
10
D:
12
答案:
A
8下面程序的运行结果是:
main()
{structcmplx
{intx;
inty;
}c[2]={1,3,2,7};
printf("%d",c[0].y/c[0].x*c[1].x);
}
A:
0
B:
1
C:
3
D:
6
答案:
D
9若有以下说明和语句,则对pup中sex域的正确引用方式是:
structpupil
{charname[20];
intsex;
}pup,*p;
p=&pup;
A:
p.pup.sex
B:
p->pup.sex
C:
(*p).pup.sex
D:
(*p).sex
答案:
D
10已知职工记录描述为
structworkers
{intno;
charname[20];
charsex;
struct
{intday;
intmonth;
intyear;
}birth;
};
structworkersw;
设变量w中的“生日”应是“1993年10月25日”,下列对“生日”的正确赋值方式是:
A:
day=25;
month=10;
year=1993;
B:
w.dat=25;
w.month=10;
w.year=1993;
C:
w.birth.day=25;
w.birth.month=10;
w.birth.year=1993;
D:
birth.day=25;
birth.month=10;
birth.year=1993;
答案:
C
11当定义一个结构体变量时系统分配给它的内存是:
A:
各成员所需内存量的总和
B:
成员中占内存量最大者所需的容量
C:
结构中第一个成员所需内存量
D:
结构中最后一个成员所需内存量
答案:
A
12以下定义结构体类型的变量st1,其中不正确的是:
A:
typedefstructstudent
{intnum;
intage;
}STD;
STDst1;
B:
structstudent
{intnum;
intage;
}st1;
C:
struct
{intnum;
intage;
}st1;
D:
tructstudent
{intnum;
intage;
}
structstudentst1;
答案:
D
13设有以下定义:
structsk
{inta;
floatb;
}data,*p;
若要使p指向data中的a域,正确的赋值语句是:
A:
p=(structsk*)&data.a;
B:
p=(structsk*)data.a;
C:
p=&data.a
D:
*p=data.a
答案:
A
14若有以下的定义、说明和语句,则值为101的表达式是:
structwc
{inta;int*b;}*p;
intx0[]={11,12},x1[]={31,32};
staticstructwcx[2]={100,x0,300,x1};
p=x;
A:
*p->b
B:
p->a
C:
++p->a
D:
(p++)->a
答案:
C
15根据下面的定义,能打印出字母M的语句是:
structperson
{charname[9];
intage;
};
structpersonchass[10]={"John",17,
"Paul",19,"Mary",18,"Adam",16};
A:
printf("%c",class[3].name);
B:
printf("%c",class[3].name[1]);
C:
printf("%c",class[2].name[1]);
D:
printf("%c",class[2].name[0]);
答案:
D
16若有以下定义:
structperson
{intid;
charname[10]:
}per,*s=&per;
则以下对结构体成员的引用中错误的是:
A:
per.name
B:
s->name[0]
C:
(*per).name[8]
D:
(*s).id
答案:
C
17若有以下说明和语句,则下面表达式中值为1002的是()
structstudent
{intage;
intnum;
};
structstudentstu[3]={{1001,20},
{1002,19},{1003,21}};
structstudent*p;
p=stu;
A:
(p++)->num
B:
(p++)->age
C:
(*p).num
D:
(*++p).age
答案:
D
18当说明一个共用体变量时,系统分配给它的内存是()
A:
各成员所需内存量的总和
B:
共用体中第一个成员所需内存量
C:
成员中占内存量最大者所需的内存量
D:
共用体中最后一个成员所需内存量
答案:
C
19以下对C语言中共用体类型数据的叙述正确的是()
A:
可以对共用体变量名直接赋值
B:
一个共用体变量中可以同时存放所有成员
C:
一个共用体变量中不能同时存放其所有成员
D:
共用体类型定义中不能出现结构体类型的成员
答案:
C
20若有以下定义和语句:
uniondata
{inti;
charc;
floatf;
}a;
则以下语句正确的是:
A:
a=5
B:
printf("%d\n",a.i);
C:
a={2,'a',1.2};
D:
n=a
答案:
B
二、多选题
1.若有以下说明和语句:
structstudent
{intage;intnum;
}std,*p;p=&std;
则以下对结构体变量std中成员age的引用方式正确的是()
A.std.ageB.p->ageC.(*p).ageD.*p.age
答案:
ABC
2.设有以下说明语句
structstu
{inta;floatb;}stutype;
则以下叙述正确的是()
A.struct是结构体类型的关键字B.structstu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名
答案:
ABD
3.以下说法正确的是()
A.结构体变量的名称为该结构体变量的存储首地址
B.结构体变量占用空间的大小为各成员项占用空间大小之和
C.结构体类型定义时不分配存储空间
D.同一结构体类型的不同变量的同名成员项数据类型相同
答案:
CD
4.有以下语句:
structlie
{inta,floatb;
}st;
则在下面叙述中,正确的是()
A.struct是结构类型的关键字
B.structlie是用户定义的结构类型
C.st是用户定义的结构类型名
D.a和b都是结构成员名
答案:
ABD
5.在说明一个共用体变量时,系统分配给他的存储空间,描述不正确的是()
A.该共用体中第一个成员所需存储空间
B.该共用体中最后一个成员所需存储空间
C.该共用体中占用最大存储空间的成员所需存储空间
D.该共用体中所有成员所需存储空间的总和
答案:
ABD
6.若有以下说明和定义
uniondt
{inta;charb;doublec;}data;
以下叙述中正确的是
A.data的每个成员起始地址都相同
B.变量data所占的内存字节数与成员c所占字节数相等
C.程序段:
data.a=5;printf("%f\n",data.c);输出结果为5.000000
D.data可以作为函数的实参
答案:
ABD
7.设有如下说明
typedefstructST
{longa;intb;charc[2];}NEW;
则下面叙述中不正确的是
A.以上的说明形式非法
B.ST是一个结构体类型
C.NEW是一个结构体类型
D.NEW是一个结构体变量
答案:
AD
8.关于枚举类型,描述正确的是()
A.枚举类型变量的取值范围只限于类型定义时所列出的值。
B.枚举值可以按整型输出其序号值。
C.枚举值可以进行加(减)一个整数n的运算,用以得到其前(后)第n个元素的值。
D.枚举值可以按定义时的序号进行关系比较。
答案:
ABD
三、判断题
1.结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成员,而结构的所有成员都存在。
()
答案:
正确
2.对于联合的不同成员赋值,相会对其他成员重写,原来成员的值就不存在了而对于结构的不同成员赋值是互不影响的。
()
答案:
正确
3.共用体变量可以作为函数的参数成函数值,也可使用指向共用体的指针变量。
()
答案:
错误
4.共用体不可以作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第11章 结构 11
![提示](https://static.bdocx.com/images/bang_tan.gif)