C語言資料結構答案

2023-02-09 17:15:02 字數 3809 閱讀 8176

助人教育qq:707223565

c語言-資料結構綜合測試

一、單項選擇題

1.下列與k=n++完全等價的表示式是 ( c )

a.k= ++ n b.k+ = n+l c.k=n,n=n+1 d.n=n+1,k=n

2.已知int a=5,b=3,*p=&b,*q=&a;下列賦值語句中與b=a;等價的語句是 ( a )

a.*p=*q; b.p=q; c.*p=&q; d.p=*b;

3.已知c語言函式fun()的定義形式為void fun(char ch,float x) 則正確呼叫函式fun()的語句是 ( c )

a.fun(「a」,3.0); b.fun('ab',19.5);

c.t=fun('z',3.6); d.fun(65,32);

4.已知char sr[20];int i;從鍵盤向陣列sr輸入一字串的正確語句是 ( a )

a.gets(srb.gets(sr[20]);

c.for(i=0;i<20;i++)scanf(sr); d.for(i=0;i<20;i++)gets(&sr);

5.執行下列c語言程式段,迴圈結束的條件是 ( c )int n=0,p,sum=0;

dowhile(sum!=126&&n<5);

a.sum的值不等於126或n的值小於5 b.sum的值不等於126且n的值小於5

c.sum的值等於l26或n的值大於等於5 d.sum的值不等於126且n的值大於等於5

6.下列c語言程式的輸出結果是 ( c )

main( )

printf(「%d」,m);}

a.-1 b.0 c.1 d.2

7.已知c語言程式段如下:

struct sa

stu[3]=,,};

struct sa*p;p =stu;

則值為91.5的表示式是 ( b )

a.(*p)·f b.(*++p).f c.(*p++).f d.(p++)->f

8.下列程式是計算兩個矩陣的乘積,其演算法的時間複雜度是 ( d )

void mul—matrix(int n,int[ ][5],int b[ ][5],int c[ ][5])}}

a.o(n) b.o(log3 n) c.o(n2) d.o(n3)

9.若不帶頭節點的單鏈表的頭指標為head,則判定該鍊錶為空的條件是 ( d )

a.head==nullb.head!=null c.head->next= =head d.head->next= =null

10.乙個棧的進棧資料元素序列為l、2、3、4、5,則不可能為棧的出棧序列的是 ( d )

a.2、3、4、1、5 b.1、5、4、3、2 c.2、3、1、4、5 d.5、4、1、3、2

11.一棵二叉樹的先序遍歷序列為abcd,中序遍歷序列為cbad,則後序遍歷序列是( c )

a. bcda b. bcad c. cbda d. abdc

12.在具有n個頂點、e條邊的無向圖的鄰接表中,所有邊的鍊錶中邊節點的總數是 ( c )

a.e/2 b.ec.2e d.2e+n

13.已知乙個有序表為(12,18,24,35,47,50,62,83,90,115,134),用折半查詢法查詢值為90 的元素時,查詢成功所使用的比較次數是 ( b )

a.1 b.2c.3 d.4

14.當待排序序列中記錄的關鍵字基本有序或記錄個數較少時,則最好的排序方法是( d )

a.基數排序 b.氣泡排序 c.直接選擇排序 d.直接插入排序

15.在瀑布模型中,將軟體劃分為若干個階段,軟體專案的需求分析一般屬於 ( b )

a.維護階段 b.開發階段c.執行階段 d.計畫階段

二、填空題

16.數學式「3030&&y<50 :

17.已知int k,x;則語句for(k=0,x=0;k<=9&&x!=10;k++)x+=2;執行後k的值是 5

18.已知int a[10]=,*p=b;printf(「%d,%d\n」,b[6],p[x]);

20.資料結構研究的主要內容包括資料的邏輯結構、物理結構(或儲存結構)以及他們之間的相互運算。

21.迴圈雙鏈表節點結構為

在指標q所指節點前面插入乙個節點t的操作是:

t->prior = q->prior;

t->next=q:

_ q->prior->next=t_,

q->-prior=t;

22.設有乙個10×10的對稱矩陣a,採用下三角壓縮儲存方式,以行序為主,a[0][0]的儲存位址為100,每個元素佔乙個位址空間,則a[3][2]的位址是 108 。

23.在有向圖中,以頂點v為終點的邊的數目稱為v的入度 。

24.將一棵有100個節點的完全二叉樹從根這一層開始,每一層從左到右依次對節點進行編號,根節點的編號為1,則編號為49的節點的左孩子的編號是 98 。

25. 軟體工程包括三個要素,分別為方法、 工具和過程。

三、解答題

26.用盒圖(n—s圖)畫出結構化程式設計的三種基本結構。

27.對於圖g一1

(1)從頂點1出發,按鄰接頂點序號由小到大順序給出廣度優先遍歷的頂點序列。(2)給出用克魯斯卡爾法構造的最小生成樹。

(1)廣度優先遍歷的頂點序列:l 2 5 6 7 3 4

(2)最小生成樹:

28.假設字元a,b,c,d,e,f使用頻率分別是0.07,0.09,0.13,0.21,0.23,0.27,構造哈夫曼編碼樹(權值小的為左子樹,權值大的為右子樹),並根據哈夫曼編碼樹寫出a,b,c,d,e,f的哈夫曼編碼。

(1)哈夫曼編碼樹:(2分)

(2)哈夫曼編碼:a:1110 b:llll c:110 d:00 e:01 f:10

29.已知一數值串行為,請分別寫出按公升序進行排序時,直接選擇排序、直接插入排序第一趟結束後的數值串行。

(1)直接選擇排序8,61,12,75,33,54,41(2分)

(2)直接插人排序33,61,l2,75,8,54,41(2分)

四、程式分析題

30.寫出下列程式的執行結果。

main()

,*p=&a[1];

for(j=1;j<5;j++)

}11 11

13 12

31.寫出下列程式的執行結果。

fun(int a)

main()

9 .11

32.下面程式的功能是:將有l5個資料元素的整型陣列的最大值與末元素對調後輸出,填空完成程式。

main()

x[n]=x[14];

② x[14]=max ;

for(i=0;i<15;i++)

printf(「%d」,x[i]);

}33.下列演算法的功能是:將迴圈佇列隊首元素的值放入變數e後刪除隊首元素,操作成功返回1,否則返回0;queue表示迴圈佇列的資料結構。填空完成演算法。

typedef struct

queue;

le**equeue(queue *q,int *e)

五、程式設計題

34.編寫c語言程式實現:從鍵盤上輸入10個學生某門課的成績,計算平均成績,統計並輸出所有高於平均分的學生成績及人數。

main()

資料結構C語言描述課後答案

第一章緒論 一 問答題 1什麼是資料結構?2敘述四類基本資料結構的名稱與含義。3敘述演算法的定義與特性。4敘述演算法的時間複雜度。5敘述資料型別的概念。6敘述線性結構與非線性結構的差別。7敘述物件導向程式設計語言的特點。8在物件導向程式設計中,類的作用是什麼?9敘述引數傳遞的主要方式及特點。10.敘...

C語言 資料結構 實驗

實驗四 佇列子系統 1 實驗目的 1 掌握佇列的特點及其描述方法。2 用鏈式結構實現乙個佇列。3 掌握佇列的各種基本操作。4 掌握佇列的簡單應用程式。2 實驗內容 1 設計乙個字元型的鏈佇列 2 編寫佇列的進隊 出隊 讀隊頭元素 顯示佇列中全部元素程式 3 設計乙個輸入限制性的雙佇列,要求 輸入只能...

資料結構c語言第1章概論答案

第一章概論自測題答案姓名班級 一 填空題 每空1分,共33分 1.乙個計算機系統包括硬體系統和軟體系統兩大部分。2.一台計算機中全部程式的集合,稱為這台計算機的軟體資源 系統 3.計算機軟體可以分為系統軟體和應用軟體兩大類。科學計算程式包屬於應用軟體 診斷程式屬於系統軟體 工具 4.一種用助憶符號來...