第7章自定义数据类型习题
一.选择题:
当定义一个结构体变量时,系统分配给它的内存空间是【】。
结构中一个成员所需的内存量B)结构中最后一个成员所需的内存量
C)结构体中占内存量最大者所需的容量D)结构体中各成员所需内存量的总和
若有以下说明,对初值中整数 2的正确引用方式是【】。
static struct
{
char ch ;
int i ;
double x ;
} a[2][3]={{‘ a' ,1,3 .45,'b',2” ' c',3,}
{‘d' ,4,, ' e',5,,' f' ,6, }};
a[1][1].i B) a[0][1].i C) a[0][0].i D) a[0][2].i
根据以下定义,能打印字母M的语句是【】。
struct p
{
char n ame[9] ;
int age
}c[10]={
“Jobn”,17, ” Paul”
,19, ” Mary”
,18, ” Adam”
,16};
A) pri ntf(
“% c”,
c[3]. name);
B) pri ntf(
“% c”,
c[3]. name[1]);
C) pri ntf(
“% c”,
c[2]. name);
D) pri ntf(
“% c”,
c[2]. name[0]);
4.以下说明和语句中,已知 int型数据占两个字节,则以下语句的输出结果是【】。
struct st
{
char a[IO] ;
int b
double c
};
printf( "% d ”,sizeof(struct st)) ;
A) 0B) 8 C) 20 D) 2
TOC \o "1-5" \h \z 以下说明和语句中,对结构体变量 std中成员id的引用方式不正确的是【】。
struct work
{
int id ;
int n ame;
} std, *p ;
p=&std ;
A) B) * C) (*p).id D) &
如设有如下定义,若要使 px指向rec中的成员x,正确的赋值语句是【】。
struct aa
{int x ;
float y ;
}rec, *px ;
A) *px=;B) px=&
C) px= (struct aa* );D) px= (struct aa* ) &;
下列程序的输出结果是【】。
#in clude
main ()
{
struct date
{
int y , m, d;
};
union
{
TOC \o "1-5" \h \z long i;
int k ;
char ii;
}mix ;
printf( "% d,% d\ n”,sizeof(struct date),sizeof(mix)); }
A) 6, 2 B) 6, 4 C) 8, 4 D) 8, 6
F面正确的语句是【 】。&设有以下结构体定义,若要对结构体变量p
F面正确的语句是【 】。
struct date
{int y;
int m;
int d;
}
struct worklist
{ char n ame[20];
char sex ;
struct date birthday;
} P ;
A)y=1976;B) =1976;
C); D) =1976;
9.若有以下说明语句:
struct p
{ char n ame[20];
int age ;
char sex ;
}a={"li ming ”,20,' m' } , p=&a;
TOC \o "1-5" \h \z 则对字符串“ li mi ng ”的错误引用方式是【】。
A)(*p). nameB) *
C)D)
10?当说明一个联台体变量时,系统分配给它的内存为【】。
联台体中的一个成员所需的内存量
联台体中最后一个成员所需的内存量
联台体体中占内存量最大者所需容量
联台体中各成员所需内存量的总和
11 ?设有以下说明,则下面不正确的叙述是【】。
union data
{
int I;
char c;
float f;
}a;
a所占的内存长度等于成员f的长度
a的地址和它的各成员地址都是同一地址
a可以作为函数参数
不能对a赋值,但可以在定义 a时对它初始化
12?下面程序的运行结果是【】。
main ()
{
union u
{
char *n ame ;
int age ;
int in come ;
}s ;
wanghong"
=26;
=26;
=2000;
printf( “%d\n” ,;
}
A) 8B)1000
C) 0D)不确定
已知字符0的ASCII码为十