民國113年 初等考試 統計 資料處理大意
第10題
現有一C 語言函數Fun 如下所示,如輸入陣列a[]= {8,6,4,1,3,5}及n=6,執行後a[]陣列為下列何者?Fun(int a[],int n){i…
題目
現有一C 語言函數Fun 如下所示,如輸入陣列a[]= {8,6,4,1,3,5}及n=6,執行後a[]陣列為下列何者?Fun(int a[],int n){int i, j,t;for(i = n-1; i > 0; i--)for(j = 0; j < i; j++)if (a[j] < a[j+1]){t = a[j]; a[j] = a[j+1]; a[j+1] = t;}} A. {1,3,4,5,6,8} B. {8,6,5,4,3,1} C. {8,6,4,1,3,5} D. {5,3,1,4,6,8}
官方答案
- 答案:B. {8,6,5,4,3,1}
解析
此函數是氣泡排序(bubble sort),但交換條件為 a[j]<a[j+1],也就是後者較大時才交換,等於把較大的元素往左推,因此結果是「由大到小」排列。外層 i 由 n-1 遞減、內層 j 由 0 跑到 i-1,每一趟會把當前最小的元素送到尾端。以 {8,6,4,1,3,5} 為例,第一趟結束後 1 被移到最後,逐趟完成後得 {8,6,5,4,3,1}。選項 A 是將條件改為 a[j]>a[j+1] 時的遞增結果,C 則是未經排序的原陣列。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。