C语言程序设计结构体与共用体.docx
- 文档编号:3123550
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:6
- 大小:16.20KB
C语言程序设计结构体与共用体.docx
《C语言程序设计结构体与共用体.docx》由会员分享,可在线阅读,更多相关《C语言程序设计结构体与共用体.docx(6页珍藏版)》请在冰豆网上搜索。
C语言程序设计结构体与共用体
一、 选择题
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;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;
day=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)#defineSTUDENTstructstudent B)structstudent
STUDENT {intnum;
{intnum; floatage;
floatage; }std1;
}std1;
C)struct D)struct
{intnum; intnum;
floatage; floatage;
}std1; }student;
structstudentstd1;
7、设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是().
A)struct是结构体类型的关键字
B)structstu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名
D)a和b都是结构体成员名
8、C语言结构体类型变量在程序执行期间()..
A)所有成员一直驻留在内存中
B)只有一个成员驻留在内存中
C)部分成员驻留在内存中
D)没有成员驻留在内存中
9、在16位IBM-PC机上使用C语言,若有如下定义:
structdata
{inti;
charch;
doublef;
}b;
则结构变量b占用内存的字节数是().
A)1 B)2 C)3 D)4
10、以下程序的运行结果是().
#include“stdio.h”
main()
{structdata
{intyear,month,day;
}today;
printf(“%d\n”,sizeof(structdata));}
A)6 B)8 C)10 D)12
11、若有以下定义和语句;
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.age
12、以下scanf函数调用语句中对结构体变量成员的不正确引用是()。
stuctpupil
{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;
};
staticstructsa[3]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]},
*ptr;
ptr=a;
A)ptr->i1++ B)*ptr->i2 C)++ptr->i0 D)ptr->i1
14、设有如下定义:
struct sk
{intn;
floatx;
}data,*p;
若要使P指向data中的n域,正确的负值语句的是()。
A、p=&data.n;B)*p=data.n;C)p=(structsk*)&data.n;D)p=(structsk*)data.n;
15、若哟于以下说明和语句:
structstudent
{intage;
intnum;
}std,*p;
p=&std;
则以下对结构体变量std中成员age的引用方式不正确的是()。
A)std.age B)p->age C)(*p).age D)*p.age
16、若有以下说明和语句,则下面表达式中值为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
17、以下对结构体变量stul中成员age 的非法引用是()。
structstudent
{intage;
intnum;
}stul,*p;
p=&stul;
A)stul.age B)student.age C)p—>age D)(*p).age
18、若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则[ ]中应填入的内容是( )。
int*p;
P=[ ]malloc(sizeof(int));
A)int B)int* C)(*int) D)(int*)
19、当说明一个共用体变量时系统分配给它的内存是( )。
A)各成员所需内存量的总和 B)结构中第一个成员所需内存量
C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量
20、以下对C语言中共用体类型数据的叙述正确的是( )。
A)可以对共用体变量名直接赋值 B)一个共用体变量中可以同时存放其所有成员
C)一个共用体变量中不可能同时存放其所有成员
D)共用体类型定义中不能出现结构体类型的成员
21、若有以下定义和语句:
uniondata
{inti;
charc;
floatf;
}a;
intn;
则以下语句正确的是( )。
A)a=5; B)a={2,’a’,1.2}; C)printf(“%d\n”,a); D)n=a;
22、设有以下说明,则下面不正确的叙述是( )。
uniondata
{ int i;
charc;
floatf;
}un;
A)un所占的内存长度等于成员f的长度 B)un的地址和它的各成员地址都是同一地址
C)un可以作为函数参数 D)不能对un赋值,但可以在定义un时对它初始化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 结构 共用