十一章 结构体与共用体

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

结构体与共用体

一、选择题:

1.已知赋值语句wang.year=2004;则wang的变量类型是()

A. 字符或文件

B. 整型或实型

C. 共用或结构

D. 实型或指针

2.Turbo C中,以下类型数据在存储器中占的字节数为 ( ) struct test

{ int x;

float y;

char z;

} ;

A. 2

B. 3

C. 6

D. 7

3.以下语句中,成员data的正确引用方式为( ) struct node

{ int data;

char name[10];

}stree;

struct node *p=&stree;

A. p.data

B. p->data

C. (*p)->data

D. stree->data

4、当执行以下程序段时,输出的结果是。()struct data

{ char a; int b; float c; };

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

A. 1

B. 2

C. 4

D. 7

5.下面程序段的运行结果是。

struct stu

{ int num; char name[10]; float scrose ; };

printf(“%d\n”, sizeof (struct stu ));

(A)14 (B)12 (C)16 (D)3

6. 若有定义:

typedef char* string;

#define str char *

int a=4;

struct {

int x, *y;

}z={10, &a}, *p=&z;

则下列不等价的是:

A. string name, sign; 与 str name, sign;

B. *p->y++ 与 *(p->y++)

C. ++*p->y 与 ++(*p->y)

D. ++p->x与++(p->x) ()

二、填空题:

1.已知赋值语句zhang.year=1985;可判断zhang是类型的变量;

2.若有类型定义:“typedef union{int a; char b; double c;} share;”

及声明:“float r;”,则表达式:sizeof(r)+sizeof(share)的值是:。

三、看程序写结果:

1、struct atudent

{ int num;

char name[10];

int age;};

main()

{ struct atudent a[2]={{2,”Li”,20}, {2,”zhang”,21}},*p;

p=a;运行结果:

p rintf(“%s\n”, p->name) ; }

2、struct student

{ int num;

运行结果:char name[10];

int age; };

void main( )

{ struct student a[2]={{2,"JACK",20}, {2,"ROSE",21}},*p;

p=a+1;

printf("%s\n", p->name) ; }

四、编程题:

1. 有3个学生信息,放在一个结构体数组中,要求程序实现输入并输出全部学生信息。(本题8分)

(注:学生信息的结构体包括以下几个成员:学号、姓名、性别、年龄。请自己根据实

际应用情况选择适当的数据类型来表示这些成员。)

2、建立一个链表,每个结点信息包括:学号、姓名、性别、年龄。要求建立长度为n 的链表。

3. 设链表的结点只有两个域:一个整形的数值域,一个指针域。编写一函数creatList( ),它用malloc函数,实现创建链表的功能,函数返回的是创建链表的头。(本题12分)

4.编写一个函数new,用于创建一个链表,链表的结点类型定义如下。该链表包含n个结点,函数应返回一个指针,指向指向开始的空间。结点类型与函数原型如下。(本题12分)

链表结点的类型:struct listNode { int data;

struct listNode *next;

}

相关文档
最新文档