【4.92】將一個(gè)數(shù)的數(shù)碼倒過(guò)來(lái)所得到的新數(shù),叫作原數(shù)的反序數(shù),如果一個(gè)數(shù)等于它的反序數(shù),則稱它為對(duì)稱數(shù)。編寫程序,采用遞歸算法求不超過(guò)1993的最大的二進(jìn)制的對(duì)稱數(shù)。
【4.93】從1到n(n<1000)個(gè)自然數(shù)中選出r個(gè)數(shù)進(jìn)行組合,并按指定的格式輸出組合的結(jié)果。例如:n=5,r=3時(shí),共有10種組合,運(yùn)行程序,要按下面的格式輸出:
123
4
5
34
5
45
234
5
45
345
請(qǐng)用遞歸算法實(shí)現(xiàn)。
【4.94】從鍵盤輸入十個(gè)整數(shù),用合并排序法對(duì)輸入的數(shù)據(jù)按照從小到大的順序進(jìn)行排序,將排序后的結(jié)果輸出。
【4.95】編寫程序,讀入一個(gè)以符號(hào)"."結(jié)束的長(zhǎng)度小于20字節(jié)的英文句子,檢查其是否為回文(即正讀和反讀都是一樣的,不考慮空格和標(biāo)點(diǎn)符號(hào))。例如:
讀入句子:MADAM I'M ADAM. 它是回文,所以輸出:YES
讀入句子:ABCDBA). 它不是回文,所以輸出:NO
【4.96】編寫程序,其中包括一個(gè)函數(shù),此函數(shù)的功能是:對(duì)一個(gè)長(zhǎng)度為N 的字符串從其第K個(gè)字符起,刪去M個(gè)字符,組成長(zhǎng)度為N-M的新字符串(其中N、M<=80,K<=N)。例如輸入字符串"We are poor students.",利用此函數(shù)進(jìn)行刪除"poor"的處理,輸出處理后的字符串是"We are students."。
【4.97】編寫函數(shù),通過(guò)指針將一個(gè)字符串反向。
【4.98】編寫一個(gè)函數(shù)insert(s1,s2,ch),實(shí)現(xiàn)在字符串s1中的指定字符ch位置處插入字符串s2。
【4.99】編寫程序?qū)⑤斎氲膬尚凶址B接后,將串中全部空格移到串首后輸出。
【4.100】編寫程序,輸入字符串,分別統(tǒng)計(jì)字符串中所包含的各個(gè)不同的字符及其各自字符的數(shù)量。如:輸入字符串: abcedabcdcd
則輸出:a=2 b=2 c=3 d=3 e=1。
【4.101】利用結(jié)構(gòu):struct complx
{ int real;
int im;
};
編寫求兩個(gè)復(fù)數(shù)之積的函數(shù)cmult,并利用該函數(shù)求下列復(fù)數(shù)之積:
、 (3+4i)×(5+6i) ⑵ (10+20i)×(30+40i
【4.102】編寫成績(jī)排序程序。按學(xué)生的序號(hào)輸入學(xué)生的成績(jī),按照分?jǐn)?shù)由高到低的順序輸出學(xué)生的名次、該名次的分?jǐn)?shù)、相同名次的人數(shù)和學(xué)號(hào);同名次的學(xué)號(hào)輸出在同一行中,一行最多輸出10個(gè)學(xué)號(hào)。
【4.103】編寫程序,實(shí)現(xiàn)輸入的時(shí)間屏幕顯示一秒后的時(shí)間。顯示格式為HH:MM:SS。程序需要處理以下三種特殊情況:
、 若秒數(shù)加1后為60,則秒數(shù)恢復(fù)到0,分鐘數(shù)增加1;
、 若分鐘數(shù)加1后為60,則分鐘數(shù)恢復(fù)到0,小時(shí)數(shù)增加1;
、 若小時(shí)數(shù)加1后為24,則小時(shí)數(shù)恢復(fù)到0。
【4.104】編寫程序,從鍵盤輸入3個(gè)學(xué)生的數(shù)據(jù),將它們存入文件student;然后再?gòu)奈募凶x出數(shù)據(jù),顯示在屏幕上。
【4.105】編寫程序,從鍵盤輸入一行字符串,將其中的小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個(gè)磁盤文件"test"中保存。
【4.106】編寫程序,讀入磁盤上C語(yǔ)言源程序文件"test8.c",刪去程序中的注釋后顯示。