内容正文:
第七章结构体和共用体
A
学习目标
1.理解结构体和共用体的内涵
2.掌握结构体变量的定义与使用。
3.掌握结构体数组的定义与使用。
4.理解共用体变量的用法。
里同步训练
(struct cmplx fint x:int y:cnum2 (1.3.2,7);
一、选择题
printf ("%d
",enum[o].y /enum[0].x
1.若程序中有下面的说明和定义,则会发生
*cnum1].x);
的情况是(
)o
A.0
B.1
struct abcfint x:char y:
C.3
D.6
struct abe sl,s2;
4.根据下面的定义:
A.编译出错
struct person char name[9]:int age;)
B.程序将顺利编译、链接、执行
struct person
C.能顺利通过编译、链接但不能执行
class[10]=("John",17."Paul".19."Mary".
D.能顺利通过编译但链接出错
18."Adam",16l:J
2.设有定义“struct{char mark[I2];int
能打印出字母M的语句是()。
numl;double num2:l,l2;”,若变量均
A.printf ("Ccin",class[3].name )
已正确赋初值,则以下语句中错误的是
B.printf ("%c
",class[3].name[1]):
()。
C.printf ("%c
",class[2].name[1]);
A.t1=2:
D.printf ("Ccin",class[2].name[0]);
B.t2.numl=t1.numl;
5.设有以下语句,则下面叙述中正确的是
C.t2.mark=t1.mark:
(
)。
D.t2.num2=t1.num2.
typedef struct S
3.下面程序的输出是()。
int g:char h:)T';
main (
A.可以用S定义结构体变量
65
职升课堂·计算机应用1◆
B.可以用T定义结构体变量
9.若共用体定义为“union data{char ch:intx
C.S是struct类型的变量
”,则下列不正确的是()。
D.T是struet S类型的变量
A.a='x',10:
6.以下选项中,能定义s为合法的结构体变
B.a.x=10:ax++:
量的是(
C.a.ch='x';a.ch++;
A.typedef struct abe
D.a.x=10;a.ch='x';
double a;
10.设有以下说明和定义:
char b[10];
typedef unionflong i;int k[5]:char e:)DATE:
Is:
struct datefint cat:DATE cow;double dog:
B.struct
too:
DATE max;
double a;
则语句“printf("%d",sizeof((struct
char b[10];
date)+sizeof(max))))”的执行结果
Is;
是(
)。
C.struct ABC
A.26
B.30
double a;
C.18
D.8
char b[10];
11.设有以下说明和定义:
ABC s:
typedef union
D.typedef ABC
flong i;int k[5]:char e:DATE:
double a;
struct date
char b[10]:
int cat:DATE cow;double dog:)too;
ABC s:
DATE max;
7.根据以下定义,变量a所占的内存字节数
则下列语句的执行结果是()。
是()。
printf ("%d",sizeof struct date)+sizeof
union udata(char strf4]:int i:long x:):
max))
struct sdata[int c:union udata u:a:
A.26
B.30
A.4
B.5
C.18
D.8
C.6
D.8
12.有以下定义和说明:
&.若共用体定义为“union data(char ch:intx
typedef union
a:”,则下列正确的是(
(long i;int k[5]:char c:)DATE:
A.a.ch=x':a=10:
B.a=x',10:
struct date
C.a.x=10:a.ch='x':
D.a='x':
(int cat;DATE cow;double dog:)too:
第一部分编程语言基础—C语言◆◆◆◆
DATE max;
5.在标准C语言中,可以直接引用整个结构
则下列语句的执行结果是()。
体变