第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共7页第十章结构体与共用体一、选择题1.在说明一个结构体变量时系统分配给它的存储空间是。(0级)A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和2.若有以下说明和语句:structworker{intno;charname;}work,p=&work;﹡﹡则以下引用方式不正确的是。(1级)A)work.noB)(p)﹡.noC)p->noD)work->no3.有如下定义:structdate{intyear,month,day;};structworklist{charname[20];charsex;structdatebirthday;}person;对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。(1级)A)year=1958B)birthday.year=1958C)person.birthday.year=1958D)person.year=19584.以下对结构体类型变量的定义中不正确的是。(1级)A)#defineSTUDENTstructstudentB)structstudentSTUDENT{intnum;{intnum;floatage;floatage;}std1;}std1;C)structD)struct{intnum;{intnum;floatage;floatage;}student;}std1;structstudentstd1;5.设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是。(1级)A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名6.C语言结构体类型变量在程序执行期间。(0级)A)所有成员一直驻留在内存中第2页共7页第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共7页B)只有一个成员主留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中7.以下程序的运行结果是。(1级)#includemain(){structdate{intyear,month,day;}today;printf(“%d\n”,sizeof(structdate));}A)6B)8C)10D)128.有如下定义structperson{charname[9];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19“Mary”,18,“Adam16,};根据上述定义,能输出字母M的语句是。(1级)A)prinft(“%c\n”,class[3].mane);B)pfintf(“%c\n”,class[3].name[1]);C)prinft(“%c\n”,class[2].name[1]);D)printf(“%^c\n”,class[2].name[0]);9.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是。(1级)A)scanf("%d",&(*p).age);B)scanf("%s",&std.name);C)scanf("%c",&std[0].sex);D)scanf("%c",&(p->sex))10.设有以下说明语句,则下面的叙述中不正确的是。(1级)structex{intx;floaty;charz;}example;A)struct结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)structex是结构体类型11.若程序中有下面的说明和定义:structstt{intx;charb;}structstta1,a2;第3页共7页第2页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共7页则会发生的情况是。(1级)A)程序将顺利编译、连接、执行。B)编译出错。C)能顺利通过编译、连接,但不能执行。D)能顺利通过编译,但连接出错。12.已知教师记录定义为:structstudent{intno;charname[30];struct{unsignedintyear;unsignedintmonth;unsignedintday;}birthday;}stu;structstudent*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)structaa{inta;int*b;};B)structbb{inta;bb*b;};C)structcc{int*a;ccb;};D)structdd{int*a;aab;};14.以下程序的输出结果是。(2级)amovep(int*p,inta[3][3],intn){inti,j;for(i=0;i