當前位置:學者齋 >

計算機 >計算機三級 >

2017年計算機等級三級資料庫上機題及答案

2017年計算機等級三級資料庫上機題及答案

備考計算機考試過程中,大家對報考科目知識點是否已經掌握了呢?下面是小編分享的2017年計算機等級級數據庫上機題及答案,歡迎大家練習!

2017年計算機等級三級資料庫上機題及答案

1.呼叫函式rwdata(),從檔案中讀取10組資料(m和k值),並巢狀呼叫primenum函式分別得出array[]陣列。請編寫函式primenum(int m,int k,int array[]),該函式的功能是:將緊靠m的k個素數存入陣列array並在螢幕上顯示。最後把結果輸出到檔案中。

例如,若輸入3 9,則應輸出5 7 11 13 17 19 23 29 31。

注意:部分程式已經給出。請勿改動主函式main()和輸出資料函式rwdata()的.內容。

【答案】

void primenum(int m, int k, int array[])

{ int value = m+1;

int half, n = 0, i;

while(1)

{ half = value/2;

for (i=2; i<=half; i++)

if (value%i == 0)

break;

if (i > half)

{ array[n] = value;

n++;

}

if (n >= k)

break;

value++;

}

}

2.在檔案中有200個正整數,且每個數均在1000~9999之間。函式RData()讀取這200個數存放到陣列original中。請編寫函式numAscend(),其功能是:要求按每個數的後3位的大小進行升序排列,然後取出滿足此條件的前10個數依次存入陣列result中,如果後3位的數值相等,則按原先的數值進行降序排列。最後呼叫函式WData(),把結果result輸出到檔案中。

例如,處理前:6012 5099 9012 7025 8088

處理後:9012 6012 7025 8088 5099

【答案】

void numascend()

{ int i, j, data;

for (i=0; i<199; i++)

for (j=i+1; j<200; j++)

{ if (original[i]00 > original[j]00)

{ data = original[i];

original[i] = original[j];

original[j] = data;

}

else if (original[i]00 == original[j]00)

{ if (original[i] < original[j])

{ data = original[i];

original[i] = original[j];

original[j] = data;

}

}

}

for (i=0; i<10; i++)

result[i] = original[i];

}

3.已知檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼code(字元型4位)、產品名稱name(字元型10位)、單價uprice(整型)、數量amount(整型)、金額sum(長整型)5部分組成。其中:金額=單價×數量。函式RData()讀取這100個銷售記錄並存入結構陣列sell中。請編寫函式DescSort(),其功能要求:按產品程式碼從大到小進行排列,若產品程式碼相同,則按金額從大到小進行排列,最終排列結果仍存入結構陣列sell中,最後呼叫函式WData(),把結果輸出到檔案中。

【答案】

void DescSort()

{ int i, j;

PRO temp;

for (i=0; i<99; i++)

for (j=i+1; j<100; j++)

if (strcmp(sell[i], sell[j]) < 0)

{ temp = sell[i];

sell[i] = sell[j];

sell[j] = temp;

}

else if (strcmp(sell[i], sell[j]) == 0)

{ if (sell[i] < sell[j])

{ temp = sell[i];

sell[i] = sell[j];

sell[j] = temp;

}

}

}

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-tw/jsj/sanji/rde5g2.html