软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2009年下半年程序员考试下午真题试题(案例分析)
考试中心《2009年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2009年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和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--;
     }
    }
}


相关试题

推荐文章
合作网站内容