当前位置:文档之家› 十一章 结构体与共用体

十一章 结构体与共用体

结构体与共用体
一、选择题:
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;
}。

相关主题