第七章 结构体和共用体
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章结构体和共用体一、选择题
1.说明一个结构体变量时系统分配给它的内存是(A)。
A)各成员所需内存总和。
B)结构中第一个成员所需的内存量
C)成员中占内存量最大者所需的容量
D)结构中最后一个成员所需内存量
2.以下对结构体类型变量的定义中不正确的是(D)。
A) #define STUDENT struct student
STUDENT
{ int num;
float age;
} std1;
B) struct student
{ int num;
float age;
} std1;
C) struct
{ int num;
float age;
}std1;
D) struct
{ int num;
float age;
} student;
struct student std1;
3.设有以下说明语句
struct stu
{ int a;
float b;
} stutype;
则下面的叙述不正确的是(C)。
A)struct是结构体类型的关键字
B)s truct stu是用户定义的结构体类型
C)s tutype是用户定义的结构体类型名
D)a和b都是结构体成员名
4.C语言结构体类型变量在程序执行期间(A)
A)所有成员一直驻留在内存中
B)只有一个成员驻留在内存中
C)部分成员驻留在内存中
D)没有成员驻留在内存中
5.以下程序运行结果是(A)。
#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
6.下面程序的运行结果是(D)
main()
{
struct cmplx { int x;
int y;
} cnum[2]={1,3,2,7};
printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);
}
A)0 B)1 C)3 D)6
7.以下scanf函数调用语句中对结构体变量成员的不正确引用是(D)struct pupil
{ char name[20];
int age;
int sex;
} pup[5],*p;
p=pup;
A)scanf(“%s”,pup[0].name);
B)scanf(“%d”,&pup[0].age);
C)scanf(“%d”,&(p->sex));
D)scanf(“%d”, p->age);
8.设有如下的定义:
struct sk
{ int n;
float x;
} data, * p;
若要使p指向data中的n域,正确的赋值语句是(C)。
A)p=&data.n;
B)*p=data.n;
C)p=(struct sk *)&data.n
D)p=(struct sk*) data.n;
9.若有以下说明语句
struct student
int num;
} std, *p;
p=&std;
则以下对结构体变量std中成员age的引用方式不正确的是(D)。
A)std.age B)p->age C) (*p).age D)*p.age
10.以下程序的输出结果是(C)。
Struct stu
{ int x;
int *y;
} * p;
int dt[4]={10,20,30,40};
struct stu a[4]={ 50, &dt[0], 60, &dt[1],
70, &dt[2],80, &dt[3]
};
main()
{ p=a;
printf(“%d,”,++p->x);
printf(“%d,”, (++p)->x);
printf(“%d\n”, ++(*p->y));
}
A) 10,20,20 B)50,60,21
C) 51,60,21 D)60,70,31
11.以下程序的功能是:读入一行字符,按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾,然后在按输入的相反的顺序输出,并释放全部结点。请选择正确的内容填空。
#include “stdio.h”
#define genode(type) 【1】malloc(sizeof(type))
main()
{ struct node
{ char info;
struct node *link;
} * top, * p;
char c;
top=NULL;
while ((c=gechar()) 【2】)
{
p=getnode(struct node);
p->info=c;
p->link=top;
top=p;
}