c++实训单元五-自定义数据类型

来源:互联网 发布:读诗书明德知礼下联 编辑:程序博客网 时间:2024/05/20 00:50

知识点提问

1.什么是结构体类型?什么是结构体变量?结构体类型需自己定义吗?答:一种数据结构,结构体变量是结构体类型分配出的空间。需要自己定义
2.结构体与数组有什么不同?为什么要用结构体类型,即用途是什么?答:数组可以用结构体表示,数组是同一类型,结构体可以有多个类型。实际问题的一组数据可以能有多个不同数据类型。
3.结构体成员变量(简称成员)与结构体变量有何区别?答:结构体变量就是定义的结构体类型,成员变量为结构体中的一个变量。
4.如何定义结构体类型?如何定义结构体变量?答:struct +类型名,定义类型,在类型{}中添加成员变量。类型名+变量名。
5.结构体变量可以是数组吗?答:可以。
6.结构体成员变量的类型可以是不同的吗?什么类型不可作为结构体成员?答:可以是不同的。不能是他本身。
7.结构体运行嵌套定义即在结构体类型定义另一个结构体类型吗?答:可以
8.结构体成员变量可以是另一个结构体变量吗?答:不能,但是可以extern
9.定义一个结构体类型或变量,他在内存中创建了吗?类型没有,变量创建了。
10.定义一个结构体变量,它的所有成员变量都必须在内存中创建吗?答:是
11.结构体变量所占内存大小等于其成员所占内存之和吗?答:是
12.在定义结构体类型时,可以对成员赋值吗?为什么?答:能,因为已经分配了空间。
13.在定义结构体变量时,可以对成员赋值吗?为什么?答:可以
14.如何对结构体变量进行初始化?如何访问结构体成员?答:定义变量后,赋值,使用‘.’ 成员运算符访问
15.两个相同类型的结构体变量直接可以相互赋值嘛?赋值是如何进行的?答:可以,直接等于。
16.俩个不同类型的结构体可以相互赋值嘛?为什么?答:不能,因为类型不一样,然后成员不一样。
17.cin>>结构体变量;cout<<结构体变量;正确吗?答:不正确,需要对成员变量进行操作。
18.如何对一个结构体变量进行输入、输出?答:用成员运算符进行操作。
19什么是结构体数组?它的每一个元素是什么?每个元素的大小和类型相同吗?答:结构体类型定义的结构体变量的数组,每一个元素都是一个变量,每个元素的大小和类型相同。
20.结构体数组的每个元素再内存中连续存储吗(地址相邻)?答:连续存储的。
21.如何定义结构体数组?如何初始化一维、二维结构体数组?答:类似其他类型进行定义数组,用{},或者逐个初始化。
22.如何访问结构体数组中每个元素的成员变量?答:用成员晕算符
23.什么是结构体指针?如何定义结构体指针?答:结构体当作类型进行定义指针,类型名+指针名。
24.用结构体指针访问成员时,用什么操作符?如何访问?答:用指针运算符,直接变量成员运算符和成员变量。
25.什么是结构体数组的指针?什么是结构体指针数组?两者有何差异?答:结构体数组的指针,是一个指针,结构体指针数组是多个指针。
26.如何定义和使用结构体数组的指针?如何定义和使用结构体指针数组?答:类似数组中的指针定义。
27.如何定义结构体变量的引用?答:用&
28。函数的形参可以是结构体变量、结构体指针、结构体引用,分别应该如何定义和调用?那种方法的效率比较低?为什么?答:变量是直接定义,指针是定义的时候增加*,结构体是增加&。
29.c++对结构体进行了扩展,允许其有成员函数吗?答:允许。
30。什么是共用体(或联合体)类型?如何定义共用体类型?答:公用一片内存单元,用union定义。
31.如何定义共用体变量?共用体变量所占内存大小等于各成员所占内存之和吗?答:用union所定义的类型名定义变量,所占的内存为其中最长的成员变量的长度。
32.什么是枚举类型?如何定义枚举类型?答:当一个变量有多个可能的取值即是枚举。使用enum +类型名定义。
33.为什么要用枚举变量?如何定义枚举类型?答:举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。使用enum类似结构体定义。
34.什么是枚举常量?什么是枚举常量值/其值如何确定?答:枚举常量是定义的枚举的成员,枚举常量值是枚举的成员的值,默认整形上一个+1,可自行确定。
35.什么是枚举变量?如何定义枚举变量?答:变量是定的枚举类型定义的变量,使用enum后直接可以使用成员。
36.枚举常量值可以指定吗?不指定枚举常量值,其值如何确定?答:可以指定,默认0,后一个是前一个相加。
37.指定枚举常量值时,可以指定一部分常量值吗?其余常量值又如何确定呢?答:可以,其余为前一个默认加1。
38.枚举常量值的指定,是再定义枚举类型时,还是再定义枚举变量时?答:枚举类型时。
39.枚举常量值一经指定,以后还可以改变它吗?答:不能。
40.typedef的使用很频繁,它的作用是什么?答:用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象.用途二:用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名对象名。用途三:用typedef来定义与平台无关的类型。
41typedef主要又那几种用途?定义模板。简化,别名。

实训十一 结构体数组的快速排序
对结构体成员进行排序,类似直接的数组。sort,qsort。
实训十二 栈与堆栈
使用stack的数据结构
实训十三 单链表及操作
定义单链表

因为在学校即使没有看过,但是也对这几种结构学习过,接触过了,这里就不再进行学习了。