糯米文學吧

位置:首頁 > 計算機 > 計算機三級

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;

}

}

}