2017年計算機等級三級資料庫上機題及答案
- 計算機三級
- 關注:4.57K次
備考計算機考試過程中,大家對報考科目知識點是否已經掌握了呢?下面是小編分享的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