85.已知數(shù)據(jù)文件IN.dat中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)Rdata()把這些數(shù)存入數(shù)組a中,請(qǐng)編寫(xiě)函數(shù)spellNum(),其功能是:把千位數(shù)字和個(gè)位數(shù)字重新組成一個(gè)新的二位數(shù)(新二位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新二位數(shù)的個(gè)位數(shù)字是原四位數(shù)的個(gè)位數(shù)字),以及把百位數(shù)字和十位數(shù)字組成另一個(gè)新的二位數(shù)(新二位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新二位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個(gè)二位數(shù)均是奇數(shù)并且兩個(gè)二位數(shù)中至少有一個(gè)數(shù)能被5整除,同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為0,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)count。最后main()函數(shù)調(diào)用寫(xiě)函數(shù)Wdata(),把結(jié)果count以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。
【答案】
void spellNum()
{ int i, thou, hun, ten, data, j;
int ab, cd;
for (i=0; i<200; i++)
{ thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
if (thou==0 || hun==0)
continue;
ab = 10*thou+data;
cd = 10*hun+ten;
if (ab%2==1 && cd%2==1 && (ab%5==0 || cd%5==0))
{ b[count] = a[i];
count++;
}
}
for (i=0; i for (j=i+1; j if (b[i] < b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } 86.函數(shù)RData()實(shí)現(xiàn)從文件IN.dat中讀取一篇英文文章存入到字符串?dāng)?shù)組str中,請(qǐng)編寫(xiě)ConvertCharA()函數(shù),其功能是:以行為單位把字符串中的所有小寫(xiě)字母改寫(xiě)成該字母的下一個(gè)字母,如果是字母z,則改寫(xiě)成字母a。大寫(xiě)字母仍為大寫(xiě)字母,小寫(xiě)字母仍為小寫(xiě)字母,其他字符不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組str中,最后調(diào)用函數(shù)WData(),把結(jié)果str輸出到OUT.dat文件中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符(含標(biāo)點(diǎn)符號(hào)和空格)。 例如,原文:Adb.Bcdza abck.LLhj 結(jié)果:Aec.Bdeab bcdl.LLik 【答案】 void ConvertCharA(void) { int i, j, str1; for (i=0; i { str1 = strlen(str[i]); for (j=0; j if (str[i][j] == 'z') str[i][j] = 'a'; else if (str[i][j]>='a' && str[i][j]<='y') str[i][j] += 1; } } 87.請(qǐng)補(bǔ)充完整程序,使得程序能實(shí)現(xiàn)以下功能: 從文件IN.dat中讀取200個(gè)整數(shù)至數(shù)組number中,求出奇數(shù)的個(gè)數(shù)cnt1和偶數(shù)的個(gè)數(shù)cnt2,以及數(shù)組number中下標(biāo)為奇數(shù)的元素的算術(shù)平均值ave(保留2位小數(shù))。把結(jié)果cnt1、cnt2、ave輸出到OUT.dat文件中。 變量j的值加1。退出循環(huán)后變量k的值除以j得到數(shù)組number下標(biāo)為奇數(shù)的元素值的算術(shù)平均值,再轉(zhuǎn)換成單精度實(shí)數(shù)賦給變量ave。 【答案】 i = j = k = cnt1 = cnt2 = 0; ave = 0.0; for (i=0; i { if (number[i]%2) cnt1++; else cnt2++; if (i%2) { k += number[i]; j++; } } ave = (float)k/j; 2011計(jì)算機(jī)等級(jí)三級(jí)數(shù)據(jù)庫(kù)考前實(shí)訓(xùn)練習(xí)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |