深夜成人在线,chinese国产一区二区,欧美精品乱码,日韩欧美在线视频免费观看,国产午夜不卡,日韩av影院在线,五月天婷婷国产精品

軟題庫 移動APP 掃碼下載APP 隨時隨地移動學習 培訓課程
當前位置:信管網 >> 在線考試中心 >> 信息系統項目管理師題庫 >> 試題查看
試卷名稱 2013年下半年程序員考試下午真題試題(案例分析)
考試中心《2013年下半年程序員考試下午真題試題(案例分析)》在線考試
試卷年份2013年下半年
試題題型【分析簡答題】
試題內容

閱讀以下說明和 C   函數,填充函數中的主缺,將解答填入答題紙的對應欄內。
【說明】
下面的函數 sort(int n,int a[])對保存在數在a中的整數序列進行非遞減排序。由于該序列中的元素在一定范圍內重復取值,因此排序方法是先計算出每個元素出現的次數并記錄在數組b中,再從小到大順序地排列各元素即可得到一個非遞減有序序列。例如, 對于序列 6,5,6,9,6,4,8,6,5.  其元素在整數區(qū)間 [4,9]內取值,因此使數組元素 b[0] ~b[5]的下標。0~5分別對應數值4~9. 順序地掃描序列的每一個元素并累計其出現的次數,即將 4的個數記入b[0],5的個數記b[1],依此類推,9的個數記入b[5]最后依次判斷數組b的每個元素值,并將相應個數的數值順序地寫入結果序列即可。
對于上例,所得數組 b 的各個元素值如下:

那么在輸出序列中寫入 1 個 4、2個 5、4個 6、1 個 8、1 個 9,即得4,5,5,6,6,6,6,8,9,從而完成排序處理。
【C 函數】
void sort(int n ,int a[ ])
{    int  *b;
     int i ,k ,number;
int minimum  = a[0] , maximum = a[0];
/* minimum 和 maximum 分別表示數組a的最小、最大元素值*/

     for(i=1;i<n;i++){
         if(  (1) ) minimum=a[j];
         Else
             if( (2) ) maximum=a[i];
     }

     number = maximum - minimum + 1;
     if  (number<=1)   return;
b =  (int *)calloc (number ,sizeof(int)) ;
     if (!b) return;

     for(i=0;i<n;i++){  /*      計算數組a元素值出現的次數并計入數組b */
          k=a[i]-minimum; ++b[k];
}
/*按次序在數組 a 中寫入排好的序列*/
     i=(3)  ;
     for( k=0;  k<number;  k++  )
           for(;  (4)   ; --b[k]   )
                 a [i++]  = minimum  +(5);
}


相關試題

推薦文章
合作網站內容