C语言自定义数据类型编程题,自定义数据类型习题及其答案(C语言-).doc

''

第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,7.98,’c’,3,1.93I}

{‘d’,4,4.73,’e’,5,6.78,’f’,6,8.79 }};

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) std.id B) *p.id C) (*p).id D) &std.id

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

struct aa

{int x;

float y;

}rec, *px;

A)*px=rec.x; B) px=&rec.x

C) px=(struct aa*)rec.x; D) px=(struct aa*)&rec.x;

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)birthday.y=1976;

C)p.birthday.y=1976;D)p.y=1976;

9.若有以下说明语句:

struct p

{ char name[20];

int age;

char sex;

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

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

A)(*p).name B)*p.name

C)a.name D)p.name

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值