閱讀以下說(shuō)明和C函數(shù),將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明1】
函數(shù)Counter(int n, int w[])的功能是計(jì)算整數(shù)n的二進(jìn)制表示形式中1的個(gè)數(shù),同時(shí)用數(shù)組w記錄該二進(jìn)制數(shù)中1所在位置的權(quán)。
例如,十進(jìn)制數(shù)22的二進(jìn)制表示為10110。對(duì)于該二進(jìn)制數(shù),1的個(gè)數(shù)為3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。
【C函數(shù)1】
int Counter(int n, int w[])
{ int i=0, k=1;
while( (1) ){
if (n%2) w[i++]=k;
n=n/2; (2) ;
}
return I;
}
【說(shuō)明2】
函數(shù)Smove(int A[], int n)的功能是將數(shù)組中所有的奇數(shù)都放到所有偶數(shù)之前。其過(guò)程為:設(shè)置數(shù)組元素下標(biāo)索引i(初值為0)和j(初值為n-1),從數(shù)組的兩端開(kāi)始檢查元素的奇偶性。若A[i]、A[j]都是奇數(shù),則從前往后找出一個(gè)偶數(shù),再與A[j]進(jìn)行交換;若A[i],A[j]都是偶數(shù),則從后往前找出一個(gè)奇數(shù),再與A[i]進(jìn)行交換;若A[i]是偶數(shù)而A[j]是奇數(shù),則交換兩者,直到將所有的奇數(shù)都排在所有偶數(shù)之前為止。
【C函數(shù)2】
void Smove(int A[],int n)
{ int temp, i=0, j=n-1;
if(n<2)return;
while(i<j){
if(A[i]%2==1&&A[j]%2==1){ (3) ;}
else if(A[i]%2==0&&A[j]%2==0){ (4) ;}
else{
if( (5) ){
temp=A[i];A[i]=A[j];A[j]=temp;
}
i++,j--;
}
}
}