资源描述:
《c语言程序设计 结构体及共用体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、 选择题1、 定义结构类型时,下列叙述正确的是()A、 系统会按成员大小分配每个空间B、 系统会按最大成员大小分配空间C、 系统不会分配空间D、 以上说法均不正确2、已知结构类型变量x的初始化值为{“20”,30,40,35.5},请问合适的结构定义是()A、 Structs{intno;intx,y,z};B、 Structs{charno[2];intx,y,z};C、 Structs{intno;floatx,y,z};D、Structs{charno[2];floatx,y,z};3、若程序中有定义structabc{intx
2、;chary;};abcs1,s2;则会发生的情况是()A、 编译时会有错误B、 链接时会有错误C、 运行时会有错误D、 程序没有错误4、已知学生记录描述为structstudent{intno;charname[20];charset;struct{intyear;intmonth;intday;}birth;};structstudents;设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是().A)year=1984;B)birth.year=1984;month=11;birth.month=11;da
3、y=11;birth.day=11;C)s.year=1984;D)s.birth.year=1984;s.month=11;s.birth.month=11;s.day=11;s.birth.day=11;5、当说明一个结构体变量时系统分配给它的内存是().A)各成员所需内存量的总和B)结构中第一个成员所需内存量C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量6、以下对结构体类型变量的定义中不正确的是().A)#defineSTUDENTstructstudentB)structstudentSTUDENT{intnu
4、m;{intnum;floatage;floatage;}std1;}std1;C)structD)struct{intnum;intnum;floatage;floatage;}std1;}student;structstudentstd1;7、设有以下说明语句structstu{inta;floatb;}stutype;则下面的叙述不正确的是().A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名8、C语言结构体类型变量在程序执行期间()
5、..A)所有成员一直驻留在内存中B)只有一个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中9、在16位IBM-PC机上使用C语言,若有如下定义:structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是().A)1B)2C)3D)410、以下程序的运行结果是().#include“stdio.h”main(){structdata{intyear,month,day;}today;printf(“%d”,sizeof(structdata));}A)6B)8C)10D)1211
6、、若有以下定义和语句; structstudent {intage; intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21}};main(){structstudent*p;p=stu; …..}则以下不正确的引用是()。A)(P++)—》num B)p++ C)(*p).num D)p=&stu.age12、以下scanf函数调用语句中对结构体变量成员的不正确引用是()。 s
7、tuctpupil {charname[20]; intage; intsex; }pup[5,]*p; p=pup;A)scanf(“%s”,pup[0].name);B)scanf(“”%d),&pup[0].age;C)scanf(“%d”,&sex));àD)scanf(“%d”,P->age);13、有以下定义和语句,则以下引用形式不合法的是()。 Structs {inti1; structs*i2,i0; }; stati
8、cstructsa[3]={2,&a[1],’ ’,4,%a[2],&a[0],6,’ ’,&a[1]}, *ptr; ptr=a; A)ptr->i1++ B)*