請寫出以下C 程式執行之輸出。(25 分)
#include <stdio.h>
int nums1[] = {5, 7, 3, 1, 4, 7}, nums2[] = {5, 7, 3, 1, 4, 7};
void q(int nums[], int p, int r) {
int x = nums[p] ;
int i = p-1 ; int j = r+1 ;
for( int n=p; n <= r ; n++ ) printf("%d ",nums[n]) ;
printf("\n");
while( i < j ) {
do { j-- ; } while( nums[j] > x ) ;
do { i++ ; } while( nums[i] < x ) ;
if( i < j ) {
int tmp = nums[i] ;
nums[i] = nums[j] ;
nums[j] = tmp ;
}
for( int n=p; n <= r ; n++ )
printf("%d ",nums[n]) ;
printf("\np=%d, i=%d, j=%d, r=%d\n",p,i,j,r);
}
}
int main(){
q(nums1,0,5);
q(nums2,0,5);
}
94 年公務人員普通考試第二試試題
科 別: 資訊處理
全一張
(背面)