結構體程式設計(二)

2021-06-05 04:20:27 字數 2304 閱讀 4507

實驗十一  結構體程式設計(二)

一.實驗目的

1. 掌握鍊錶的基本概念與定義方法;

2. 掌握鍊錶、共用體的程式設計。

二.實驗環境

1. 硬體:pii以上計算機;

2. 軟體:windows、visual c++ 6.0;

3. 其它:一張軟盤或者u盤等可移動的儲存裝置。

三.實驗內容

練習1.編寫乙個程式,功能為輸入10個整數,將它們儲存在乙個動態鍊錶中。再讀入乙個數n,將鍊錶從第n個結點開始重組(即以第n個結點作為頭結點,而將前n-1個結點平移至鍊錶的末尾),並輸出重組後的鍊錶結果。要求:程式包含3個子函式,各函式要求如下:

l         子函式1:功能為建立包括10個結點的鍊錶並讀入資料;

形式為:struct lnode *creat(void);

l         子函式2:功能為平移(重組)鍊錶;

形式為:struct lnode *move(struct lnode *head,int n);

l         子函式3:功能為輸出鍊錶中的所有結點;

形式為:void print(struct lnode *head);

執行結果示例:

練習2.編寫乙個程式,功能為輸入並儲存一組文具的明細單(以』#』作為結束)。文具的型別以(單個大寫)字母標識,並且不同型別的文具其規格也不同。其中:p為鉛筆,規格為鉛芯直徑;g為簽字筆,規格為顏色;r為尺子,規格為尺子的長度(cm)。

l         要求:程式包含1個子函式,其功能要求為輸出指定型別文具的資訊;

形式為:voidcount(sta a,int n,char type);

執行結果示例:

練習3.編寫乙個程式,功能為輸入10個整數,將它們按奇、偶數分別儲存在odd或even兩個鍊錶中,(兩次)呼叫print子函式以分別輸出兩個鍊錶中的資料。

執行結果示例:

*練習4.編寫乙個程式,功能為輸入一組正整數(以-1作為結束標誌),將它們儲存在乙個動態鍊錶中並輸出。然後,將鍊錶中所有偶數值結點刪除,並輸出鍊錶刪除後結果。

要求:程式包含3個子函式,各函式要求如下:

l         子函式1:功能為建立包括n個結點的鍊錶並讀入資料;

形式為:num *creat(void);

l         子函式2:功能為輸出鍊錶中的所有結點;

形式為:void print(num *head);

l         子函式3:功能為刪除鍊錶中的所有偶數值結點;

形式為:num *dele(num*head);

執行結果示例:

⑴正常情況:  

⑵特殊情況:  

練習1:

#include"stdio.h"

#include"iostream.h"

#include"stdlib.h"

#define len sizeof(struct lnode)

#define null 0

struct lnode

p1=head;

while(i{p2=p1->next;

p1=p2;

i++;

p2=p1->next;

head=p2;

p1->next=null;

return(head);

void print(struct lnode *head)

{struct lnode *p;

printf("\n輸出鍊錶結果:\n");

p=head;

if(head!=0)

do{printf("%d",p->num);

p=p->next;

while(p!=null);

void main()

intn;

struct lnode  *head;

printf("輸入10個整數:");

head=creat();

print(head);

printf("\n輸入n值<1-10>:");

scanf("%d",&n);

head=move(head,n);

print(head);

printf("輸出鍊錶結果:");

print(head);

程式設計 結構體對齊

1.cpu不會因為你的pack設定而改變自己的訪問方式,你 裡對齊值是多少,cpu並不不知道 2.cpu在訪問對齊資料和沒有對齊的資料的時候會使用不同的方法,不同的方法效率 cpu可以訪問放在奇數字址的4位元組資料,只是效率上與放在4的倍數字址上的4位元組資料不同。效率是指時間和空間上的 3.對齊的...

結構體 C語言程式設計

一 實驗目的 1 學習掌握結構化資料的程式設計使用 二 實驗內容和步驟 1.分析並修改下面程式錯誤,使之能夠正常執行。錯誤 一 程式實現輸出圖書的名字和單價,錯誤 如下 include struct book float price char name 10 名字 int main void str...

程式設計入門14 結構體

有10個學生,每個學生的資料報括學號 姓名 3門課程的成績。讀入這10個學生的資料,要求輸出3門課程的總平均成績,以及個人平均分最高的學生的資料 包括學號 姓名 3門課程成績 平均分數 共有10行,每行包含了乙個學生的學號 整數 名字 長度不超過19的無空格字串 和3門課程的成績 0至100之間的整...