2015年9月計算機三級數據庫題庫及答案

已知數據文件中存有200個四位數,並已調用讀函數readDat()把這些數存入數組a中,請考生編制一函數jsVa(),其功能是:把千位數字和十位數字重新組成一個新的含有兩位數字的數ab(新數的十位數字是原四位數的千位數字,新數的個位數字是原四位數的十位數字),以及把個位數字和百位數字組成另一個新的含有兩位數字的數cd(新數的十位數字是原四位數的個位數字,新數的'個位數字是原四位數的百位數字),如果新組成的兩個數ab-cd>=0且<=10且兩個數均是奇數,同時兩個新數的十位數字均不爲零,則將滿足此條件的四位數按從大到小的順序存入數組b中,並要計算滿足上述條件的四位數的個數cnt。最後main()函數調用寫函數writcDat()把結果cnt以及數組b中符合條件的四位數輸出到文件中。

2015年9月計算機三級數據庫題庫及答案

  【參考答案】

【審題關鍵句】千位+十位組合與個位+百位組合,都是奇數,兩數相減結果大於等於0小於等於10,從大到小排序。

【解題思路】

①首先,本題要定義多個變量,包括兩侖循環變量循環i、j;用來存放四位數分解之後各位數的變量qw(千位)、bw(百位)、SW(十位)和gw(個位);兩個用來存放重新組合數字的變量newV1和newV2。

②通過for循環依次對數組中的每個四位數進行分解,每分解一個四位數,根據題目要求,對其各位數進行重新組合,形成兩個新的十位數,組合條件分別是原四位數的千位和十位組成一個十位數,個位和百位組成一個十位數,並將兩個新的十位數分別賦給變量newV1和newV2。

③數字重組完畢之後,再根據題目要求篩選滿足條件的四位數,本題需要考慮多個篩選條件:一是新組合的十位數中,其十位數不能爲0,即原四位數的千位和個位數字不能爲0;二是兩個新組合的十位數之差必須大於等於0小於等於10;三是兩個新組合的數字均爲奇數。

④將同時滿足以上3個條件的四位數賦給數組b[cnt],同時數組下標值加1,當for循環執行完畢後,則將所有滿足條件的四位數全部存放到數組b[cnt]qb。

⑤最後通過兩個for循環,對數組b[cnt]中的元素按從大到小的順序排序,排序過程中,可用newV1或newV2作爲數據交換的中間變量。