Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
HKCEE Paper II Q1b PowerPoint Presentation
Download Presentation
HKCEE Paper II Q1b

HKCEE Paper II Q1b

148 Vues Download Presentation
Télécharger la présentation

HKCEE Paper II Q1b

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. HKCEE Paper II Q1b (b) 下圖顯示以一表來貯存一正數鏈表{n1,n2,n3,n4,n5,n6,n7} 的方法。 (i) 下列各項有什麼目的? -999 -888 鏈表開頭 list head 鏈表結尾

  2. (ii) 就下列各獨立情況,在各空格填上正確數字, 以示更新後的鏈表如何在表中貯存。

  3. HKCEE Paper II Q2 NDATE是一程序,此程序接受1993年的一個日期,然後把該日期的n日後的日期輸出,其中n是小於365的正整數。(注意:1993及1994年二月份均有28日。)

  4. N = 0,1,…,6個顧客 1,2,…,M 行列 A B Q3 上圖表示一間小型超級市場。 框A是貨品陳列地點,B是出納員。 這超級市場僱一位出納員, 顧客須排單行輪候付款。 假設下列三個觀察是正確的:

  5. 現要編寫一個程序,用來模擬此超級市場內的輪候情況。這程序印出每個時間單元完結時行內顧客的數目,如下列輸出樣本所示:現要編寫一個程序,用來模擬此超級市場內的輪候情況。這程序印出每個時間單元完結時行內顧客的數目,如下列輸出樣本所示: 當行列內顧客的數目在連續的兩個時間單元均為零,或已過了2 000個時間單元時,程序便會自動終止。 這程序包括子程序 tUnit、cusGen及serve。程序的基本結構如下所示:

  6. void tUnit(){ } 試以C編寫程序的下列各部分: (a) 子程序tUNIT,此子程序包含10 000次空循環,用來模擬一個時間單元的消逝: // _sleep(1000) ; for (i=0; i<10000; i++) ; int cusGen (){ } (b) 子程序cusGEN,此子程序產生一個0與6間 (包括0及6)的隨機整數, 然後將行列內顧客的數目加上該數,並傳回: return (rand()%7) ; 子程序serve,此子程序根據觀察II把行列內顧客的數目減 0、1、2或3。 int serve (int num){ } if (num>=5) return(3); else if (num>=2) return(2); else if (num==1) return(1); if (pnum>=5) return(3); if (pnum>=2) and (pnum<5) return(2); if (pnum ==1) return(1);

  7. 主程序 main(){ int m, y, t; * m = 行列內顧客的數目(現在) */ /* y = 計數器 */ /* t = 行列內顧客的數目(之前) */ srand(time(NULL)); m=t=y=0; printf ("時間單元 y顧客數目m\n"); do{ // random# 0-6 // _sleep(1000); printf ("%i\t%i\n", y, m); }while ( ); } t = m; m = m+cusGen(); m = m-serve(m); tUnit(); y++; y<2000 && !(t==0 && m==0)