问题

试题二(共 15分)

阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明 1】

函数Counter(int n, int w[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。

例如,十进制数22的二进制表示为10110。对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。

【C函数 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;

}

【说明 2】

函数 Smove(int A[], int n)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若 A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与 A[j]进行交换;

若 A[i]、A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若 A[i]是偶数而A[j]是奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。

【C函数 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--;

}

}

}

参考答案
您可能感兴趣的试题
  • 试题三(共 15分)阅读以下说明、C函数和问题,将解答写入答题纸的对应栏内。【说明 1】函数test_f1(int m, int n)对整数 m、n进行某种运算后返回一个整数值。【C函数 1】int
  • 试题四(共 15分)阅读以下说明和C函数,将解答填入答题纸的对应栏内。【说明】函数del_substr(S,T)的功能是从头至尾扫描字符串 S, 删除其中与字符串T相同的所有子串,其处理过程为:首先从
  • 试题五(共 15分)阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastEl
  • 试题六(共 15分)阅读以下说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastE
  • 【问题1】(8分)请填写host1的Internet协议属性参数。IP地址: (1) ;子网掩码: (2) ;默认网关: (3) ;其中,host1 默认网关为图中接口 (4) 处的 IP地址。
  • 【问题2】(3分)若host1要访问Internet,根据默认路由,数据报文经IP地址为 (5) 的接口发送到IP地址为 (6) 的网关。
相关内容