c 實訓單元五 自定義資料型別

2021-08-03 09:49:26 字數 2720 閱讀 6092

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的資料結構

實訓十三 單鏈表及操作

定義單鏈表

因為在學校即使沒有看過,但是也對這幾種結構學習過,接觸過了,這裡就不再進行學習了。

C 自定義資料型別單元習題(二)

題目一 定義學生結構體,結構體成員包括學號 姓名 成績 高數,英語,計算機 平均分。程式設計實現 1 鍵盤輸入10個學生的資訊 2 計算每個學生的平均成績,並且將學生資料按平均成績從高到低排序。3 統計各科不及格的人數。如下 13周c 作業 學生成績管理 劉易行 2020年11月24日 includ...

C 自定義資料型別

c 除了提供多種基本的資料型別 如 int float double char等 供使用者使用外,還允許使用者根據需要自己宣告一些型別,例如陣列 結構體 structure 型別 共用體 union 型別 列舉 enumeration 型別 類 class 型別等,這些統稱為 使用者自定義型別 us...

C 自定義資料型別

c 中有以下幾種自定義資料型別方式 typedef union enum typedef只是用於重新命名一種已有的資料型別。typedef char c c c即char c typedef char field 50 field s即char 50 注意第二種用法,陣列的維數 50 是寫在最後的。...