当前位置:文档之家› 练习题-第十章 结构体与共用体(有答案)

练习题-第十章 结构体与共用体(有答案)

一、填空题
1.若有如下结构体定义:
struct student
{ int num;
float age;
char sex;
}stud;
则stud所占的内存空间是9 字节。

2.已有定义和语句:
union data
{ int i;
char c;
float f;
}a,*p;
p=a;
则对a中成员c的正确访问形式可以是 a.c 或: p->c或:(*p).c。

(只需
写出一种)
二、单项选择题:
1.若有下列定义:
struct b
{ float a[5];
double c;
int d;}x;
则变量x在内存中所占的字节为下列哪一个:( C )
A.6 B. 10 C. 30 D. 14
2.设有以下说明语句,则下面的叙述不正确的是( C )
struct stu
{ int a;
float b;
} stutype;
A. struct 是结构体类型的关键字。

B. struct stu 是用户定义的结构体类型。

C. stutype是用户定义的结构体类型名。

D. a和b都是结构体成员名。

3.下面程序的运行结果是( )
#include <stdio.h>
main( )
{ struct date
{ int year, month, day;
}today;
printf(“%d\n”,sizeof(struct date));
}
A. 6
B. 8
C. 10
D. 12
4.设有以下说明语句,则下面的叙述正确的是( B )
typedef struct
{ int a;
float b;
} stutype;
A. stutype是结构体变量名。

B. stutype 是结构体类型名。

C. struct是结构体类型名。

D. typedef struct是结构体类型名。

三、填程序
1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。

请填
空。

static struct man
{ char name[20];
int age;
}person[ ]={{“LiMing”,18},{“WangHua”,19},{“ZhangPing”,20}};
main( )
{ struct man *p,*q;
int old=0;
p=person;
for(; p <person+3 ; p++)
if(old<p->age){ q=p; old=p->age ;}
printf(“%s %d”, q->name,q->age );
}。

相关主题