80 likes | 232 Views
HKCEE Paper II Q1b. (b) 下圖顯示以一表來貯存一正數 鏈表 {n1,n2,n3,n4,n5,n6,n7} 的方法。. (i) 下列各項有什麼目的? -999 -888. 鏈表開頭 list head. 鏈表結尾. (ii) 就下列各 獨立 情況,在各空格填上 正確數字 , 以示 更新 後的鏈表如何在表中貯存。. HKCEE Paper II Q2 NDATE 是一程序,此程序接受 1993 年的一個日期,然後把該日期的 n 日後的日期輸出,其中 n 是小於 365 的正整數。(注意: 1993 及 1994 年二月份均有 28 日。).
E N D
HKCEE Paper II Q1b (b) 下圖顯示以一表來貯存一正數鏈表{n1,n2,n3,n4,n5,n6,n7} 的方法。 (i) 下列各項有什麼目的? -999 -888 鏈表開頭 list head 鏈表結尾
(ii) 就下列各獨立情況,在各空格填上正確數字, 以示更新後的鏈表如何在表中貯存。
HKCEE Paper II Q2 NDATE是一程序,此程序接受1993年的一個日期,然後把該日期的n日後的日期輸出,其中n是小於365的正整數。(注意:1993及1994年二月份均有28日。)
N = 0,1,…,6個顧客 1,2,…,M 行列 A B Q3 上圖表示一間小型超級市場。 框A是貨品陳列地點,B是出納員。 這超級市場僱一位出納員, 顧客須排單行輪候付款。 假設下列三個觀察是正確的:
現要編寫一個程序,用來模擬此超級市場內的輪候情況。這程序印出每個時間單元完結時行內顧客的數目,如下列輸出樣本所示:現要編寫一個程序,用來模擬此超級市場內的輪候情況。這程序印出每個時間單元完結時行內顧客的數目,如下列輸出樣本所示: 當行列內顧客的數目在連續的兩個時間單元均為零,或已過了2 000個時間單元時,程序便會自動終止。 這程序包括子程序 tUnit、cusGen及serve。程序的基本結構如下所示:
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);
主程序 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)