Examly題庫立即開始練習
2 類科共用卷
普考-電信工程普考-電子工程
計算機概要10434單選題

有關下列兩個 C 語言程式片段的敘述,何者正確? 程式片段 P1: int A[100]; n = 100; void sort1 () { int i, j, t; for( i=1; i<n; i++){ for( j=0; j<n-i; j++) { if ( A[j] > A[j+1] ) { t = A[j]; A[j] = A[j+1]; A[j+1] = t; } } } } 程式片段 P2: int A[100]; n = 100; void sort2 () { int i, j, t; for( i=1; i<n; i++){ for( j=0; j<n; j++ ) { if ( A[j] > A[j+1] ) { t = A[j]; A[j] = A[j+1]; A[j+1] = t; } } } }

A兩者用的排序法都是氣泡排序法正確答案
B程式片段 P1 用的是氣泡排序法,程式片段 P2 用的是選擇排序法
C程式片段 P1 用的是選擇排序法,程式片段 P2 用的是氣泡排序法
D兩者用的排序法都是選擇排序法
答案與詳解
A
正確答案
兩段都是相鄰元素比較交換的氣泡排序,P2 只是多比一次會越界而已。

為什麼答案是 A

正解。兩者核心都是「相鄰兩元素比較後交換」(A[j] vs A[j+1]),這就是氣泡排序的定義。P2 僅是內迴圈邊界沒縮減 (j<n 而非 j<n-i),會多做無效比較甚至越界,但排序法種類仍是氣泡。

考點:氣泡排序特徵考點:選擇排序辨識考點:標準氣泡寫法考點:選擇排序定義
載入中…

計算機概要 相關題目

想練更多計算機概要考古題?

Examly 收錄 38 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Download on theApp Store即將推出Google Play
黑皮