2016C语言习题全集及答案:结构体和共用体01.doc
文本预览下载声明
第八单元 结构体和共用体
选择题
1、 说明一个结构体变量时系统分配给它的内存是 。
A. 各成员所需要内存量的总和
B. 结构体中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
2、 C 语言结构体类型变量在程序执行期间 。
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在在内存中
D. 没有成员驻留在内存中
3、 设有以下说明语句
struct stu { int a ; float b ; } stutype ;
则下面的叙述不正确的是 。
A. struct 是结构体类型的关键字
B. struct stu 是用户定义的结构体类型
C. stutype 是用户定义的结构体类型名
D. a 和b 都是结构体成员名
4、 程序中有下面的说明和定义
struct abc { int x;char y;}
struct abc s1,s2;
则会发生的情况是 。
A. 编译出错
B. 程序将顺利编译、连接、执行
C. 能顺利通过编译、连接、但不能执行
D. 能顺利通过编译、但连接出错
5、 有如下定义
struct person { char name[9]; int age;};
struct person class[10]={ Johu, 17,Paul, 19,Mary, 18,Adam,
16};
根据上述定义,能输出字母M 的语句是 。
A. prinft( %c\n,class[3].name);
B. printf( %c\n,class[3].name[1]);
C. prinft( %c\n,class[2].name[1]);
D. printf( %c\n,class[2].name[0]);
6、 下面程序的输出是 。
A. 0 B. 1 C. 3 D. 6
main()
{ struct cmplx { int x; int y;} cnum[2]={1,3,2,7};
printf(%d\n,cnum[0].y/cnum[0].x*cnum[1].x);}
7、 设有如下定义:
struct sk {int a ;float b ;}data ,*p ;
若有p=data ; ,则对data 中的a 域的正确引用是 。
A.(*p).data.a B.(*p).a C.p-data.a D.p.data.a
8、 当说明一个共用体变量时系统分配给它的内存是 。
A. 各成员所需要内存量的总和
B. 共用体中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 共用体中最后一个成员所需内存量
9、 以下对C 语言中共用体类型数据的叙述正确的是 。
A. 可以对共用体变量名直接赋值
B. 一个共用体变量中可以同时存放其所有成员
C. 一个共用体变量中不可以同时存放其所有成员
D. 共用体类型定义中不能出现结构体类型的成员
10、C 语言共用体类型变量在程序运行期间 。
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在在内存中
D. 没有成员驻留在内存中
11、以下对枚举类型名的定义中正确的是 。
A. enum a={one ,two ,three} ;
B. enum a {one=9 ,two=-1 ,three} ;
C. enum a={one ,two ,three} ;
D. enum a {one ,two ,three} ;
12、设有如下枚举类型定义:
enum language { Basic=3 ,Assembly ,Ada=100 ,COBOL ,Fortran} ;
枚举量Fortran 的值为 。
A. 4 B. 7 C. 102 D. 103
13、下面对的叙述中不正确的是 。
A. 用typedef 可以定义各种类型名,但不能用来定义变量
B. 用typedef 可以增加新类型
C. 用typedef 只是将已存在的类型用一个新的标识符来代表
D. 使用typedef 有利于程序的通用和移植
14、以下各选项企图说明一种新的类型名,其中正确的是
显示全部