第七章 结构体和共用体

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

相关文档
最新文档