點擊查看:2015計算機三級《數(shù)據(jù)庫》上機試題及答案匯總
1.已知數(shù)據(jù)文件in.dat中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVa(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一個新的含有兩位數(shù)字的數(shù)ab(新數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的含有兩位數(shù)字的數(shù)cd(新數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),如果新組成的兩個數(shù)ab-cd>=0且ab.cd<=10且兩個數(shù)均是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)cnt。最后main()函數(shù)調(diào)用寫函數(shù)writcDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到文件0ut.dat中。
【審題關(guān)鍵句】千位+十位組合與個位+百位組合,都是奇數(shù),兩數(shù)相減結(jié)果大于等于0小于等于10,從大到小排序。
【解題思路】
、偈紫,本題要定義多個變量,包括兩侖循環(huán)變量循環(huán)i、j;用來存放四位數(shù)分解之后各位數(shù)的變量qw(千位)、bw(百位)、SW(十位)和gw(個位);兩個用來存放重新組合數(shù)字的變量newV1和newV2。
、谕ㄟ^for循環(huán)依次對數(shù)組中的每個四位數(shù)進行分解,每分解一個四位數(shù),根據(jù)題目要求,對其各位數(shù)進行重新組合,形成兩個新的十位數(shù),組合條件分別是原四位數(shù)的千位和十位組成一個十位數(shù),個位和百位組成一個十位數(shù),并將兩個新的十位數(shù)分別賦給變量newV1和newV2。
、蹟(shù)字重組完畢之后,再根據(jù)題目要求篩選滿足條件的四位數(shù),本題需要考慮多個篩選條件:一是新組合的十位數(shù)中,其十位數(shù)不能為0,即原四位數(shù)的千位和個位數(shù)字不能為0;二是兩個新組合的十位數(shù)之差必須大于等于0小于等于10;三是兩個新組合的數(shù)字均為奇數(shù)。
、軐⑼瑫r滿足以上3個條件的四位數(shù)賦給數(shù)組b[cnt],同時數(shù)組下標(biāo)值加1,當(dāng)for循環(huán)執(zhí)行完畢后,則將所有滿足條件的四位數(shù)全部存放到數(shù)組b[cnt]qb。
、葑詈笸ㄟ^兩個for循環(huán),對數(shù)組b[cnt]中的元素按從大到小的順序排序,排序過程中,可用newV1或newV2作為數(shù)據(jù)交換的中間變量。
【參考答案】
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |