自定义数据类型习题及答案(C语言)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第7章自定义数据类型习题

一.选择题:

1.当定义一个结构体变量时,系统分配给它的内存空间是【】。

A) 结构中一个成员所需的内存量 B) 结构中最后一个成员所需的内存量 C) 结构体中占内存量最大者所需的容量 D) 结构体中各成员所需内存量的总和2.若有以下说明,对初值中整数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) a[1][1].i B) a[0][1].i C) a[0][0].i D) a[0][2].i

3.根据以下定义,能打印字母M的语句是【】。

struct p

{

char name[9];

int age;

}c[10]={“Jobn”,17,”Paul”,19,”Mary”,18,”Adam”,16};

A) printf(“%c”,c[3].name); B) printf(“%c”,c[3].name[1]);

C) printf(“%c”,c[2].name); D) printf(“%c”,c[2].name[0]);4.以下说明和语句中,已知int型数据占两个字节,则以下语句的输出结果是【】。

struct st

{

char a[l0];

int b;

double c;

};

printf(“%d”,sizeof(struct st));

A) 0 B) 8 C) 20 D) 2

5.以下说明和语句中,对结构体变量std中成员id的引用方式不正确的是【】。

struct work

{

int id;

int name;

} std, *p;

p=&std;

A) B) * C) (*p).id D) &

6.如设有如下定义,若要使px指向rec中的成员x,正确的赋值语句是【】。

struct aa

{int x;

float y;

}rec, *px;

A) *px=;B) px=&

C) px=(struct aa*);D) px=(struct aa*)&;

7.下列程序的输出结果是【】。

#include

main()

{

struct date

{

int y,m,d;

};

union

{

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

8.设有以下结构体定义,若要对结构体变量p的出生年份赋值.下面正确的语句是【】。

struct date

{int y;

int m;

int d;

}

struct worklist

{ char name[20];

char sex;

struct date birthday;

} p;

A) y=1976;B) =1976;

C) ;D) =1976;

9.若有以下说明语句:

struct p

{ char name[20];

int age;

char sex;

}a={“li ming”,20,‘m’},p=&a;

则对字符串“li ming”的错误引用方式是【】。

A) (*p).name B) *

C) D)

10.当说明一个联台体变量时,系统分配给它的内存为【】。

A) 联台体中的一个成员所需的内存量

B) 联台体中最后一个成员所需的内存量

C) 联台体体中占内存量最大者所需容量

D) 联台体中各成员所需内存量的总和

11.设有以下说明,则下面不正确的叙述是【】。

union data

{

int I;

char c;

float f;

}a;

A) a所占的内存长度等于成员f的长度

B) a的地址和它的各成员地址都是同一地址

C) a可以作为函数参数

D) 不能对a赋值,但可以在定义a时对它初始化12.下面程序的运行结果是【】。

main()

{

union u

{

char *name;

int age;

int income;

}s;

=”wanghong”;

=26;

=2000;

printf(“%d\n”,;

}

A) 8 B) 1000

C) 0 D) 不确定

13.已知字符0的ASCII码为十六进制的30,下面程序的输出为【】。

main()

{

union

{

char c;

unsigned int a[4];

}z;

[0]=0x39;

[l]=0x36;

printf(“%c\n”, ;

}

A) 6 B) 9

C) 0 D) 3

14.若定义共用(联合)体数据类型如下.

union

{

int a;

int b;

} x,y;

执行语句=3;=4;=*2;后,则的值为【】。

A) 3 B) 4 C) 6 D) 8

15.定义以下结构体数组

相关文档
最新文档