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