![北航大一上c語言第四五六七八次作業(yè)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/d7e467d9-eae9-485f-ae60-1eacb9d6cea5/d7e467d9-eae9-485f-ae60-1eacb9d6cea51.gif)
![北航大一上c語言第四五六七八次作業(yè)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/d7e467d9-eae9-485f-ae60-1eacb9d6cea5/d7e467d9-eae9-485f-ae60-1eacb9d6cea52.gif)
![北航大一上c語言第四五六七八次作業(yè)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/d7e467d9-eae9-485f-ae60-1eacb9d6cea5/d7e467d9-eae9-485f-ae60-1eacb9d6cea53.gif)
![北航大一上c語言第四五六七八次作業(yè)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/d7e467d9-eae9-485f-ae60-1eacb9d6cea5/d7e467d9-eae9-485f-ae60-1eacb9d6cea54.gif)
![北航大一上c語言第四五六七八次作業(yè)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/13/d7e467d9-eae9-485f-ae60-1eacb9d6cea5/d7e467d9-eae9-485f-ae60-1eacb9d6cea55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.刪數(shù)問題【問題描述】輸入一個高精度的大正整數(shù)S(S最長可達240位),去掉其中任意N位數(shù)字后剩下的數(shù)字按原次序組成一個新的正整數(shù)S。編程對給定的N和S,尋找一種方案使得剩下的數(shù)字組成的新數(shù)S最小?!据斎胄问健枯斎胗袃尚校?.第一行是大整數(shù)S。其中S最長可達240位。2.第二行是整數(shù)N。S、N均以非0數(shù)字開頭?!据敵鲂问健枯敵鲇幸恍校窃赟中刪除N位后所得的最小數(shù)字S?!緲永斎?】1785434【樣例輸出1】13【樣例輸入2】10021【樣例輸出2】002【樣例說明】樣例1中輸入整數(shù)S=178543,N=4,要求在178543中刪除4位,使剩下的數(shù)字最小。正確答案為S = 13。樣例2中輸
2、入整數(shù)S1002,N1,刪完一位后S = 002,而不是2,即2之前的0也必須輸出?!具\行時限】程序一次運行的最長時間限制在15秒內(nèi),超出則認為程序錯誤。【算法提示】將整數(shù)看作字符串形式讀入;刪數(shù)時,從前往后尋找第一個比后一個數(shù)字大的數(shù)字,然后刪除之,按照這種方法刪除N個數(shù)字即得最小數(shù)字?!驹u分標(biāo)準(zhǔn)】該題要求輸出一個大整數(shù)的各位數(shù)字。結(jié)果完全正確得20分,每個測試點4分。上傳C語言文件名為delete.c。2.擴展字符【問題描述】編寫一函數(shù)expand(s1,s2),用以將字符串s1中的縮記符號在字符串s2中擴展為等價的完整字符,例如將a-d擴展為abcd。該函數(shù)可以處理大小寫字母和數(shù)字,并可
3、以處理a-b-c、a-z0-9與-a-z等類似的情況。在main函數(shù)中測試該函數(shù):從鍵盤輸入包含縮記符號的字符串,然后調(diào)用該函數(shù)進行擴展,輸出擴展結(jié)果。(教材 P63:Exercise 3-3)注意:1. 待擴展字符串中有可能包含空格,例如:a-d x-z應(yīng)擴展成:abcd xyz。所以讀入待擴展字符串時,應(yīng)能夠讀入包含空格的字符串。2. 只要縮記符號-之后的字符比之前的字符的ASCII碼值大,就要將它們之間的所有字符擴展出來,例如:Z-a之間的字符也要擴展出來;3. 特殊情況:a-b-c將被擴展為:abc。a-a將被擴展為:a-a?!据斎胄问健繌逆I盤輸入包含擴展符的字符串【輸出形式】輸出擴展
4、后的字符串【輸入樣例】a-c-u-B【輸出樣例】abcdefghijklmnopqrstu-B【樣例說明】擴展輸入a-c-u為:abcdefghijklmnopqrstu,而B比u值小,所以無法擴展,直接輸出?!驹u分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分,提交程序文件expand.c。3.字母頻率統(tǒng)計【問題描述】編寫程序從標(biāo)準(zhǔn)輸入中讀入一段英文,統(tǒng)計其中小寫字母出現(xiàn)次數(shù),并以柱狀圖的形式顯示其出現(xiàn)次數(shù)?!据斎胄问健吭跇?biāo)準(zhǔn)輸入上輸入一段英文文章(可能有一行,也可能有多行),在新的一行的開頭輸入ctrl+z鍵表示結(jié)束?!据敵鲂问健吭谄聊簧弦来屋敵霰硎久總€小寫字母出現(xiàn)次數(shù)的柱狀圖(以“*”字符表
5、示柱狀圖,空白處用空格字符表示,某個小寫字母出現(xiàn)多少次,就顯示多少“*”字符;柱狀圖的高度以出現(xiàn)最多的字母次數(shù)為準(zhǔn)),在最后一行依次輸出26個小寫字母?!緲永斎搿縏he computing world has undergone arevolution since the publication ofThe C Programming Language in 1978.【樣例輸出】【樣例說明】在輸入的英文短文中,小寫字母a出現(xiàn)了6次,所以其上輸出了6個字符*。出現(xiàn)次數(shù)最多的是字母n,所以柱狀圖的高度為9個字符。字母j沒有出現(xiàn),所以其上都為空格字符?!驹u分標(biāo)準(zhǔn)】該題要求輸出柱狀圖表示的字母出現(xiàn)
6、次數(shù),共有5個測試點。上傳C語言文件名為bar.c。4.矩陣運算【問題描述】對于多個N階矩陣,依次進行加、減運算?!据斎胄问健繌臉?biāo)準(zhǔn)輸入讀取輸入。第一行只有一個整數(shù)N(1N10),代表矩陣的階數(shù)。接下來是一個矩陣,是N行,每行有N個整數(shù)(可能是正、負整數(shù)),是矩陣的所有元素。然后一行只含一個字符“+”或“-”,代表加、減操作。然后用同樣的方式輸入另一個矩陣。后續(xù)仍然是運算符和矩陣。直至運算符為“#”時停止計算,將結(jié)果輸出?!据敵鲂问健肯驑?biāo)準(zhǔn)輸出打印矩陣的操作結(jié)果。輸出N行,每行對應(yīng)矩陣在該行上的所有元素,每一行末均輸出一個回車符。每個元素占5個字符寬度(包括負號),向右對齊,不足部分補以空格。
7、【輸入樣例】31 -2 72 8 -53 6 9+3 5 7-1 2 63 7 10-1 -2 72 8 -53 6 9#【輸出樣例】(下圖中”-”代表空格)#3#5#7#-1#2#6#3#7#10【評分標(biāo)準(zhǔn)】本題不準(zhǔn)使用數(shù)學(xué)庫函數(shù)。運行時限1秒,完全正確20分,每個測試點4分。提交程序文件名為matrix.c。5.文件拷貝2【問題描述】寫一程序?qū)⒁粋€文件fcopy.in拷貝至另一個文件fcopy.out, 其中在所拷貝的文件中, 多個連續(xù)空白符(包括空格符、制表符)只拷貝一個空格符, 其它字符不變。【輸入形式】源文件名和目標(biāo)文件名分別為fcopy.in和fcopy.out,程序?qū)漠?dāng)前目錄下
8、讀取fcopy.in文件。【輸出形式】將fcopy.in文件內(nèi)容拷貝至當(dāng)前目錄下的fcopy.out文件中。在所拷貝的文件中, 多個連續(xù)空白符(包括空格符、制表符)只拷貝一個空格符,若非空白符之間有一個制表符,則該制表符也要替換為空格符,其它字符不變?!据斎霕永考偃缥募copy.in中內(nèi)容如下:Alcatel providesend-to-end solutions.【輸出樣例】輸出文件fcopy.out中內(nèi)容為:Alcatel provides end-to-end solutions.【樣例說明】將文件fcopy.in拷貝到fcopy.out,同時做適當(dāng)?shù)霓D(zhuǎn)換?!驹u分標(biāo)準(zhǔn)】其中在所拷貝
9、的文件中, 多個連續(xù)空白符(包括空格符、制表符)只拷貝一個空格符,其它字符不變,完全符合要求得20分,每個測試點4分。提交程序名為copy.c。6.括號匹配【問題描述】假設(shè)一個輸入字符串中包含圓括號、方括號和花括號三種類型的括號,以及其它一些任意字符。編寫程序,判別串中的括號是否正確匹配,即:1.各種左、右括號的個數(shù)要一致;2.不能先出現(xiàn)右括號;3.其它規(guī)則暫不考慮,例如:( ad ce ) ef 認為是正確的?!据斎胄问健繌漠?dāng)前目錄下correct.in文件中讀入一行字符串。字符串最大長度80,不含空格。【輸出形式】輸出到當(dāng)前目錄下correct.out文件中。輸出只有一個單詞,如果括號匹配
10、則輸出“True”到文件中,否則輸出“False”。在輸出末尾要有一個回車符。【輸入樣例】設(shè)輸入文件內(nèi)容如下:rhe+35(fjej)w-wr3fefefeofds【輸出樣例】輸出文件內(nèi)容為:False【樣例說明】輸入字符串為rhe+35(fjej)w-wr3fefefeofds,在式中“”與“”的個數(shù)不一致,不符合嵌套規(guī)則,故輸出為“False”?!驹u分標(biāo)準(zhǔn)】結(jié)果正確得20分,每個測試點4分,提交程序名為c0802.c。1.凸多邊形面積【問題描述】給出平面上一組頂點的坐標(biāo),計算出它們所圍成的凸多邊形的面積?!据斎胄问健繌臉?biāo)準(zhǔn)輸入讀取頂點坐標(biāo)。格式為:第一行是點的個數(shù)N(3N15),后面緊接著
11、N行,每行兩個數(shù)字 (由空格隔開),分別表示該點的X、Y坐標(biāo)(0X,Y32767)。所有點的坐標(biāo)互不相同,且按順時針次序給出。輸入數(shù)據(jù)確保該多邊形是一個凸多邊形?!据敵鲂问健肯驑?biāo)準(zhǔn)輸出打印一個浮點數(shù),是該多邊形的面積。該浮點數(shù)保留兩位小數(shù)。【輸入樣例】 433301012【輸出樣例】5.00【樣例說明】輸入數(shù)據(jù)表示了如圖所示的四邊形。其面積為5.00。提示:求三角形面積可用海倫公式,求平方根可用頭文件中定義的sqrt函數(shù)。【評分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分。提交程序名為:points.c。2.整數(shù)的N進制字符串表示【問題描述】編寫函數(shù)itob(n,s,b),用于把整數(shù)n轉(zhuǎn)換成以b
12、為基的字符串并存儲到s中. 編寫程序,使用函數(shù)itob(n,s,b)將輸入的整數(shù)n,轉(zhuǎn)換成字符串s,將s輸出.轉(zhuǎn)換后的字符串從最高的非零位開始輸出。如果n為負數(shù),則輸出的字符串的第一個字符為-。b為大于1小于37的任意自然數(shù)值。當(dāng)b=2時,輸出字符只可能是0和1;當(dāng)b=16時,輸出字符串中可能含有字符為0-9,a-f(字母以小寫輸出)。b還可以是其它數(shù)值。比如輸入n=33,b=17,則輸出33的17進制值為1g?!据斎胄问健靠刂婆_輸入整數(shù)n和b,其中n可以為負數(shù)。n和b以空格分隔.【輸出形式】控制臺輸出轉(zhuǎn)化后的字符串s.【樣例輸入】5 2【樣例輸出】101【樣例說明】5的二進制就是101【評分
13、標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分。提交程序名為:itob.c3.求兩組整數(shù)的異或集【問題描述】從標(biāo)準(zhǔn)輸入中輸入兩組整數(shù)(每行不超過20個整數(shù),每組整數(shù)中元素不重復(fù)),合并兩組整數(shù),去掉在兩組整數(shù)中都出現(xiàn)的整數(shù),并按從大到小順序排序輸出(即兩組整數(shù)集“異或”)?!据斎胄问健渴紫容斎氲谝唤M整數(shù),以一個空格分隔各個整數(shù);然后在新的一行上輸入第二組整數(shù),以一個空格分隔,行末有回車換行。【輸出形式】按從大到小順序排序輸出合并后的整數(shù)集(去掉在兩組整數(shù)中都出現(xiàn)的整數(shù),以一個空格分隔各個整數(shù))?!緲永斎搿? 1 4 32 8 7 9 -65 2 87 10 1【樣例輸出】87 32 10 9 8
14、 7 4 2 -6【樣例說明】第一組整數(shù)為5 1 4 32 8 7 9 -6,第二組整數(shù)分別為5 2 87 10 1。將第一組和第二組整數(shù)合并(去掉在兩組整數(shù)中都出現(xiàn)的整數(shù)5和1),并從大到小順序排序后結(jié)果為87 32 10 9 8 7 4 2 -6?!驹u分標(biāo)準(zhǔn)】該題要求輸出兩組整數(shù)的異或集,共有5個測試點,提交程序文件名為xor.c。4.字符串中字符排序【問題描述】編寫一個程序,從鍵盤接收一個字符串,然后按照字符順序從小到大進行排序,并刪除重復(fù)的字符?!据斎胄问健坑脩粼诘谝恍休斎胍粋€字符串?!据敵鲂问健砍绦虬凑兆址?ASCII)順序從小到大排序字符串,并刪除重復(fù)的字符進行輸出?!緲永斎搿縝
15、adacgegfacb【樣例輸出】abcdefg【樣例說明】用戶輸入字符串badacgegfacb,程序?qū)ζ溥M行按從小到大(ASCII)順序排序,并刪除重復(fù)的字符,最后輸出為abcdefg【評分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分。提交源程序名為stringsort.c5.超長正整數(shù)的減法【問題描述】編寫程序?qū)崿F(xiàn)兩個超長正整數(shù)(每個最長80位數(shù)字)的減法運算。【輸入形式】從鍵盤讀入兩個整數(shù),要考慮輸入高位可能為0的情況(如00083)。1.第一行是超長正整數(shù)A;2.第二行是超長正整數(shù)B;【輸出形式】輸出只有一行,是長整數(shù)A減去長整數(shù)B的運算結(jié)果,從高到低依次輸出各位數(shù)字。要求:若結(jié)果為0
16、,則只輸出一個0;否則輸出的結(jié)果的最高位不能為0,并且各位數(shù)字緊密輸出?!据斎霕永?34098134098703578230056【輸出樣例】134098703577995958【樣例說明】進行兩個正整數(shù)減法運算, 234098 134098703578230056 = 134098703577995958?!驹u分標(biāo)準(zhǔn)】完全正確得20分,每個測試點4分,提交程序文件名為subtract.c。6.字符串替換(新)【問題描述】編寫程序?qū)⒁粋€指定文件中某一字符串替換為另一個字符串。要求:(1)被替換字符串若有多個,均要被替換;(2)指定的被替換字符串,大小寫無關(guān)。【輸入形式】給定文件名為filei
17、n.txt。從控制臺輸入兩行字符串(不含空格,行末尾都有回車換行符),分別表示被替換的字符串和替換字符串?!据敵鲂问健繉⑻鎿Q后的結(jié)果輸出到文件fileout.txt中?!緲永斎搿繌目刂婆_輸入兩行字符串:inout文件filein.txt的內(nèi)容為:#include void main()FILE * IN;if(IN=fopen(in.txt,r)=NULL)printf(Cant open in.txt!);return;fclose(IN);【樣例輸出】文件fileout.txt的內(nèi)容應(yīng)為:#outclude void maout()FILE * out;if(out=fopen(out.
18、txt,r)=NULL)prouttf(Cant open out.txt!);return;fclose(out);【樣例說明】輸入的被替換字符串為in,替換字符串為out,即將文件filein.txt中的所有in字符串(包括iN、In、IN字符串)全部替換為out字符串,并輸出保存到文件fileout.txt中。【評分標(biāo)準(zhǔn)】該題要求得到替換后的文件內(nèi)容,共有5個測試點。上傳C語言文件名為replace.c。7.最長升序子串(選做,不計分)【問題描述】輸入一行字符串,該字符串只由小寫英文字母a-z組成,且其中的字符可以重復(fù),最長不超過10000個字符。從該字符串中按順序挑選出若干字符(不一定
19、相鄰)組成一個新串,稱為“子串”。如果子串中每兩個相鄰的字符或者相等,或者后一個比前一個大,則稱為“升序子串”。編程求出輸入字符串的最長升序子串的長度。例如,由輸入字符串a(chǎn)bdbch可以構(gòu)成的升序子串有:abd、abch、bbch、abbch等。其中最長的升序子串是abbch,其長度為5?!据斎胄问健繌臉?biāo)準(zhǔn)輸入讀取一行字符串,該串不含空格,以回車符結(jié)束?!据敵鲂问健肯驑?biāo)準(zhǔn)輸出打印一個正整數(shù),是字符串中最長的升序子串的長度,在行末要輸出一個回車符?!据斎霕永縜bdbch【輸出樣例】5【樣例說明】abdbch中最長子串是abbch,長度是5?!驹u分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分。上傳
20、c語言源程序為up.c。1.合并字符串【問題描述】編寫一個函數(shù)char * str_bin(char* str1, char* str2), str1、str2是兩個有序字符串(其中字符按ASCII碼從小到大排序),將str2合并到字符串str1中,要求合并后的字符串仍是有序的,允許字符重復(fù)。在main函數(shù)中測試該函數(shù):從鍵盤輸入兩個有序字符串,然后調(diào)用該函數(shù),最后輸出合并后的結(jié)果。【輸入形式】分行從鍵盤輸入兩個有序字符串(不超過100個字符)【輸出形式】輸出合并后的有序字符串【輸入樣例】acegbdfh【輸出樣例】abcdefgh【樣例說明】輸入兩個有序字符串a(chǎn)ceg和bdfh,輸出合并后的
21、有序字符串a(chǎn)bcdefgh【評分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分,提交程序文件名為combine.c。2.-刪除子串【問題描述】編寫一個程序,當(dāng)在一個字符串中出現(xiàn)子串時就刪除它?!据斎胄问健坑脩粼诘谝恍休斎胍粋€字符串,用戶在第二行輸入一個子串。【輸出形式】程序在下一行輸出刪除其中所有子串后的字符串。如果字符串不包含子串則輸出原字符串本身?!緲永斎搿縄 am a boy!a【樣例輸出】I m boy!【樣例說明】用戶首先輸入字符串I am a boy!,然后輸出子串a(chǎn),程序會尋找字符串中的子串刪除它,最后 將刪除后的結(jié)果輸出:I#m#boy! #表示空格?!驹u分標(biāo)準(zhǔn)】結(jié)果完全正確得2
22、0分,每個測試點4分。提交程序名為:delsubstring.c。3.小數(shù)形式與科學(xué)計數(shù)法轉(zhuǎn)換(簡)【問題描述】編寫一個程序,將用小數(shù)表示的浮點數(shù),轉(zhuǎn)換成科學(xué)計數(shù)法的形式輸出。輸入的數(shù)據(jù)沒有符號,小數(shù)點前后必有數(shù)字,且全為有效數(shù)據(jù),即小數(shù)點后的末尾數(shù)字不為0;小數(shù)點前若只有一位數(shù)字,可以為0,否則小數(shù)點前的最高位數(shù)字不為0。提示:以字符串形式保存相關(guān)數(shù)據(jù)?!据斎胄问健繌目刂婆_輸入一小數(shù),最后有回車換行符,所有輸入的字符數(shù)不會超過100。【輸出形式】以科學(xué)計數(shù)法形式輸出數(shù)據(jù)。輸出的數(shù)據(jù)由以下幾部分構(gòu)成:1.底數(shù)部分是一個小數(shù)或整數(shù),若為小數(shù),則小數(shù)點前后必有數(shù)字,而且都為有效數(shù)字。即:小數(shù)點前只
23、有一位大于0的數(shù)字,小數(shù)點后的末尾數(shù)字不能為0。若為整數(shù),則只有一位數(shù)字,不帶小數(shù)點。2.必有小寫字母“e”。3.指數(shù)部分是一個整數(shù),若大于等于0,則不帶正號“+”。若小于0,則需要帶負號“-”,且整數(shù)的最高位數(shù)字不為0?!据斎霕永?】0.000000000000002【輸出樣例1】2e-15【輸入樣例2】8.9845623489651700659【輸出樣例2】8.9845623489651700659e0【輸入樣例3】367298599999093453490394859509568659795603.4【輸出樣例3】3.67298599999093453490394859509568659
24、7956034e41【樣例說明】以小數(shù)形式輸入數(shù)據(jù),然后轉(zhuǎn)換成科學(xué)計數(shù)法形式輸出?!驹u分標(biāo)準(zhǔn)】該題要求以科學(xué)計數(shù)法形式輸出數(shù)據(jù),提交程序文件名為notation.c。4.-旋轉(zhuǎn)魔方陣(文件)【問題描述】輸入一個自然數(shù)(2N9),要求輸出如下的魔方陣,即邊長為N*N,元素取值為1至N*N,1在左上角,呈順時針方向依次放置各元素。N=3時: 1 2 3 8 9 4 7 6 5【輸入形式】從標(biāo)準(zhǔn)輸入讀取一個整數(shù)N。【輸出形式】將結(jié)果輸出到文件文件file.out。輸出符合要求的方陣,每個數(shù)字占5個字符寬度,向右對齊,在每一行末均輸出一個回車符?!据斎霕永?【輸出樣例】輸出文件file.out內(nèi)容為
25、: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7【評分標(biāo)準(zhǔn)】本題不準(zhǔn)使用數(shù)學(xué)庫函數(shù)。結(jié)果正確得20分,每個測試點4分,提交程序文件名為magic.c。5.全排列數(shù)的生成【問題描述】輸入整數(shù)N( 1 = N = 10 ),生成從1N所有整數(shù)的全排列。【輸入形式】輸入整數(shù)N。【輸出形式】輸出有N!行,每行都是從1N所有整數(shù)的一個全排列,各整數(shù)之間以空格分隔。各行上的全排列不重復(fù)。輸出各行遵循“小數(shù)優(yōu)先”原則, 在各全排列中,較小的數(shù)盡量靠前輸出。如果將每行上的輸出看成一個數(shù)字,則所有輸出構(gòu)成升序數(shù)列。具體格式見輸出樣例?!緲永斎?】1【樣例輸出1】1【樣例說明1】
26、輸入整數(shù)N=1,其全排列只有一種?!緲永斎?】3【樣例輸出2】1 2 31 3 22 1 32 3 13 1 23 2 1【樣例說明2】輸入整數(shù)N=3,要求整數(shù)1、2、3的所有全排列, 共有N!=6行。且先輸出1開頭的所有排列數(shù),再輸出2開頭的所有排列數(shù),最后輸出3開頭的所有排列數(shù)。在以1開頭的所有全排列中同樣遵循此原則?!緲永斎?】10【樣例輸出3】1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 10 91 2 3 4 5 6 7 9 8 101 2 3 4 5 6 7 9 10 81 2 3 4 5 6 7 10 8 91 2 3 4 5 6 7 10 9 81
27、 2 3 4 5 6 8 7 9 101 2 3 4 5 6 8 7 10 91 2 3 4 5 6 8 9 7 101 2 3 4 5 6 8 9 10 7【樣例說明3】輸入整數(shù)N=10,要求整數(shù)1、2、3、10的所有全排列。上例顯示了輸出的前10行?!具\行時限】要求每次運行時間限制在20秒之內(nèi)。超出該時間則認為程序錯誤。提示:當(dāng)N增大時,運行時間將急劇增加。在編程時要注意盡量優(yōu)化算法,提高運行效率。【評分標(biāo)準(zhǔn)】該題要求輸出若干行整數(shù)。如果你的程序計算的結(jié)果和標(biāo)準(zhǔn)答案完全一致,則該測試點得10分,否則該測試點得分為0。6.-單詞排序(命令行參數(shù))【問題描述】編寫一個程序,從一個文件中讀入單詞
28、(即:以空格分隔的字符串),并對單詞進行排序,刪除重復(fù)出現(xiàn)的單詞,然后將結(jié)果輸出到另一個文件中?!据斎胄问健吭次募湍繕?biāo)文件名在執(zhí)行時作為程序命令行參數(shù)輸入,例如若程序名為sort,源文件名和目標(biāo)文件名分別為sort.in和sort.out,則命令行為:sort sort.in sort.out。程序?qū)漠?dāng)前目錄下sort.in文件中讀入單詞?!据敵鲂问健繉卧~進行排序,刪除重復(fù)出現(xiàn)的單詞,然后將結(jié)果輸出到文件sort.out中?!据斎霕永考偃鐂ort.in文件內(nèi)容如下:rrr sss aaa bbb ccc ddf aaa dd【輸出樣例】sort.out文件內(nèi)容為:aaa bbb cc
29、c dd ddf rrr sss【樣例說明】讀入文件sort.in,做適當(dāng)?shù)呐判?,并刪除重復(fù)出現(xiàn)的單詞,輸出到文件sort.out【評分標(biāo)準(zhǔn)】對單詞進行排序,刪除重復(fù)出現(xiàn)的單詞,符合此要求得20分,每個測試點4分,提交程序名為sortwords.c。1.-文件重排【問題描述】近幾年有人提出了這樣一種算法,它雖然只是單純地對文件進行重排,本身并不壓縮文件。該算法如下:對一個長度為n的字符串S,首先根據(jù)它構(gòu)造n個字符串,其中第i個字符串由將S的前i-1個字符置于末尾得到。然后把這n個字符串按照首字符從小到大排序,如果兩個字符串的首字符相等,則按照它們在S中的位置從小到大排序。排序后的字符串的尾字符
30、可以組成一個新的字符串S,它的長度也是n,并且包含了S中的每一個字符。最后輸出S以及S的首字符在S中的位置p?!据斎胛募枯斎胛募ilezip.in包含兩行,第1行是一個整數(shù)n(1 =n=10000),代表S的長度,第2行是字符串S。【輸出文件】輸出文件filezip.out包含兩行,第1行是S,第2行是整數(shù)p。【輸入樣例】7example【輸出樣例】xelpame7【樣例說明】長度為7的字符串example經(jīng)轉(zhuǎn)換后變?yōu)閤elpame,example的首字符在新字符串中的位置是7?!驹u分標(biāo)準(zhǔn)】如果你的程序輸出正確得20分,每個測試點4分。提交程序名為存file.c。2.-字符串統(tǒng)計排序【問題
31、描述】編寫一個程序,接收用戶輸入的一個字符串(可以包含空格),統(tǒng)計其中所有出現(xiàn)過的所有字符,并按照頻率高低的順序排列輸出。頻率相同的字符按輸入順序輸出。【輸入形式】用戶在第一行輸入一個字符串,以回車結(jié)束輸入?!据敵鲂问健砍绦蚪y(tǒng)計字符串中出現(xiàn)的所有字符,然后按照字符出現(xiàn)頻率大小排序輸出,頻率相同時,按輸入順序輸出。輸出形式規(guī)定為每行輸出4個字符數(shù)據(jù),輸出格式為:字符-出現(xiàn)次數(shù)。每個字符-出現(xiàn)次數(shù)輸出中間用一個空格分隔,每行末尾沒有空格。程序輸出結(jié)尾有一個回車?!緲永斎搿縏he job requires an agile mind.【樣例輸出】#-5 e-4 i-3 r-2a-2 n-2 T-1
32、 h-1j-1 o-1 b-1 q-1u-1 s-1 g-1 l-1m-1 d-1 .-1 #表示空格(在程序請輸出空格,而不是字符#,這里只是表示而已。)【樣例說明】用戶首先輸入字符串The job requires an agile mind. 程序統(tǒng)計完畢之后按照每行4個統(tǒng)計結(jié)果輸出,字符串中有5個空格,所以輸出為#-5,#表示空格。字符b和T出現(xiàn)次數(shù)同為1,因為輸入時b先于T輸入,所以輸出時也先打印b的統(tǒng)計信息?!驹u分標(biāo)準(zhǔn)】結(jié)果完全正確得20分,每個測試點4分。提交程序名為:frequence.c3.-加密文件【問題描述】有一種加密方法為:其使用一個字母串(可以含重復(fù)字母,字母個數(shù)不超
33、過50)作為密鑰。假定密鑰單詞串為feather,則先去掉密鑰單詞中的重復(fù)字母得到單詞串feathr,然后再將字母表中的其它字母以反序追加到feathr的后面:feathrzyxwvusqponmlkjigdcb加密字母的對應(yīng)關(guān)系如下:abcdefghijklmnopqrstuvwxyzfeathrzyxwvusqponmlkjigdcb其中第一行為原始英文字母,第二行為對應(yīng)加密字母。其它字符不進行加密。編寫一個程序,用這種密碼加密文件。假定要加密的文件名為encrypt.txt及加密后的文件名為output.txt,并假定輸入文件中字母全為小寫字母,并且輸入密鑰也全為小寫字母?!据斎胄问健繌?/p>
34、標(biāo)準(zhǔn)輸入中輸入密鑰串,并從文件encrypt.txt中讀入要加密的內(nèi)容?!据敵鲂问健考用芎蠼Y(jié)果輸出到文件output.txt中?!緲永斎搿縡eather和文件encrypt.txt中內(nèi)容,例如被加密的文件encrypt.txt中內(nèi)容為:c language is wonderful.【樣例輸出】加密后output.txt文件中內(nèi)容為:a ufqzjfzh xl gpqthmrju.【樣例說明】首先將給定的密鑰單詞去除重復(fù)字母,然后按照上面的加密對應(yīng)表對encrypt.txt文件內(nèi)容進行加密即可得到加密后的文件,其中只對英文字母進行加密對換,并且假設(shè)encrypt.txt中的英文字母全是小寫字
35、母?!驹u分標(biāo)準(zhǔn)】該題要求對文件進行加密,共有5個測試點。提交程序名為encrypt.c4.-程序相似性比較方法(變量)【問題描述】程序相似性比較方法之一就是將源程序中無關(guān)信息(如變量名、函數(shù)名、空白符及注釋等)刪除后的代碼進行比較。編寫程序?qū)?dāng)前目錄下C源文件input.c中的變量名、空白字符刪除后寫到另一個文件output.c中?!据斎胄问健恳幚淼腃源文件名為input.c,在當(dāng)前目錄下,并假設(shè)該文件符合以下條件:1、程序中只有一個main函數(shù);2、最多只可能出現(xiàn)一個int類型變量列表(也可能沒有),無其它類型變量說明或定義,并且在程序其它地方不會再出現(xiàn)int關(guān)鍵字;3、定義的int類型變
36、量的個數(shù)不超過10個,變量名的長度不超過20個字符;4、源文件中不含注釋;5、程序沒有語法錯誤;6、字符串常量中不會出現(xiàn)與變量名相同的串;7、程序中所有標(biāo)識符均與其它部分有空格分隔(即可用格式串%s讀?。?,且所有標(biāo)識符的長度不超過20個字符?!据敵鲂问健繉⒃闯绦蛭募nput.c處理后的結(jié)果寫入到當(dāng)前目錄下的文件output.c中,輸出要求:1、所有空白字符(包括空格、制表符和回車符)都要刪除;2、定義的int類型變量都要刪除,但不刪除定義時用到的分隔符,;3、語句中所有int類型變量名都要刪除。【樣例輸入】假如input.c文件內(nèi)容如下:#include main () int a , b
37、, sum ; scanf ( %d%d, & a , & b ); sum = a + b ; printf ( %d, sum );【樣例輸出】output.c內(nèi)容應(yīng)為:#includemain()int,;scanf(%d%d,&,&);=+;printf(%d,);【樣例說明】在源文件input.c中,int類型的變量有三個:a,b,sum,將程序中所有空白符(空格、制表符、回車符)和變量名a、b、sum刪除后,就只剩一行字符串(見output.c中內(nèi)容)。提示:1、可以用fscanf(fp,%s,str)函數(shù)將fp文件中的所有內(nèi)容以單詞串的形式讀出,到達文件結(jié)尾時該函數(shù)返回EOF;2
38、、可以用strcmp函數(shù)比較兩個字符串,用strcpy函數(shù)拷貝字符串,這兩個函數(shù)定義在頭文件中;3、可通過查找int定義列表找到要刪除的單詞,即:int單詞后(分號之前)的所有單詞(逗號除外)都是要刪除的變量名?!驹u分標(biāo)準(zhǔn)】該題要求刪除源文件中變量、空白符的內(nèi)容,共有5個測試點。上傳C語言文件名為same.c。5.【問題描述】查找C源程序文件中控制流關(guān)鍵字(while, for, if)的出現(xiàn)位置。按出現(xiàn)順序輸出其出現(xiàn)的位置(用行數(shù)和在該行上第幾個字符表示)。要求字符串常量中出現(xiàn)的關(guān)鍵字不應(yīng)計算,同時該C程序滿足下列規(guī)定:1、該程序符合C語言語法要求。2、雙引號只會用在字符串常量中,其它地方不
39、會出現(xiàn)雙引號字符。3、程序中的所有標(biāo)識符只由字母和數(shù)字組成。4、程序中沒有注釋語句?!据斎胄问健緾源程序從當(dāng)前目錄下的in.c文件中讀入?!据敵鲂问健堪凑粘霈F(xiàn)順序在標(biāo)準(zhǔn)輸出上輸出關(guān)鍵字出現(xiàn)的位置,每行輸出一個關(guān)鍵字的位置。位置的輸出格式是:先輸出關(guān)鍵字,后面緊跟著冒號:,然后是用整數(shù)表示的行數(shù)和在該行上的位置,兩整數(shù)之間用一個逗號,分隔。【輸入樣例1】假如in.c文件中程序為:#include int main()int i , n ;int a100;scanf ( %d , &n );for ( i=0 ; in ; i+ ) scanf ( %d , &ai );return 0;【輸出
40、樣例1】for:7,2【樣例說明1】在in.c程序中有一個for。for關(guān)鍵字位于第七行,前面只有一個制表符,所以輸出的位置為7,2?!据斎霕永?】假如in.c文件中程序為:#include int main()int i,n,sum,mul,if1;int forAndwhile100;sum=0;mul=1;scanf(%d,&n);for(i=0;in;i+) scanf(%d,&forAndwhilei);for(i=0;in;i+)sum+=forAndwhilei;for(i=0;in;i+)mul*=forAndwhilei;i=1;if1=forAndwhile0;while
41、(in) if(if1forAndwhilei) if1=forAndwhilei;printf(The max of for and while is :%dn,if1);return 0;【輸出樣例2】for:9,2for:11,2for:11,38while:15,2if:17,3【樣例說明2】在in.c程序中有三個for、一個while和一個if關(guān)鍵字。其中第一個for關(guān)鍵字位于第九行,前面只有一個制表符,所以輸出的位置為9,2。注意:字符串常量中出現(xiàn)的for和while不是關(guān)鍵字,所以不應(yīng)輸出。同樣,在一些變量名中作為子串出現(xiàn)的if、for和while也不是關(guān)鍵字?!驹u分標(biāo)準(zhǔn)】該題要
42、求按照出現(xiàn)順序輸出關(guān)鍵字出現(xiàn)的位置,共有5個測試點,提交程序文件名為findKeyword.c。6.-輸出文件的末尾行【問題描述】命令 tail用來打印文件中最后n行。命令格式為:tail -n filename,其中:-n :n表示需要打印的行數(shù),省略時n的值為10。filename :給定文件名。如,命令tail -20 example.txt 表示打印文件example.txt的最后20行,用C語言實現(xiàn)該程序。(提示:使用命令行參數(shù))【輸入形式】tail -n filename,其中:-n :n表示需要打印的行數(shù),省略時n的值為10。filename :給定文件名?!据敵鲂问健看蛴∥募
43、ilename的最后n行【輸入樣例】命令:tail -2 ail.in文件內(nèi)容為:Alcatel provides end-to-end solutions.It enables enterprises to deliver content to any type of user.lcatel operates in 130 countries.Alcatel focus on optimizing their service offerings and revenue streams.【輸出樣例】屏幕將顯示:lcatel operates in 130 countries.A
44、lcatel focus on optimizing their service offerings and revenue streams.【樣例說明】使用tail -2 tail.in輸出文件tail.in的最后兩行。注意:文件末尾行有可能沒有回車換行。【評分標(biāo)準(zhǔn)】如果你的程序輸出正確得20分,每個測試點4分。提交程序名為tail.c。1.-統(tǒng)計整數(shù)【問題描述】輸入若干個整數(shù),統(tǒng)計出現(xiàn)次數(shù)最多的那個整數(shù)。如果出現(xiàn)最多的整數(shù)有兩個以上,打印最早輸入的那個整數(shù)?!据斎胄问健繌臉?biāo)準(zhǔn)輸入讀取輸入。第一行只有一個數(shù)字N(1N10000),代表整數(shù)的個數(shù)。以后的N行每行有一個整數(shù)?!据敵鲂问健肯驑?biāo)準(zhǔn)輸
45、出打印出現(xiàn)次數(shù)最多的那個數(shù)字?!据斎霕永?110-1200300【輸出樣例】0【樣例說明】輸入6個整數(shù),其中出現(xiàn)次數(shù)最多的是0,共出現(xiàn)兩次?!驹u分標(biāo)準(zhǔn)】本題不準(zhǔn)使用數(shù)學(xué)庫函數(shù)。運行時限1秒,正確得20分,每個測試點4分,提交程序名為count.c。2.學(xué)生記錄【問題描述】從鍵盤中讀入最多不超過50個學(xué)生的學(xué)生信息(包括空格隔開的姓名、學(xué)號、年齡信息,以學(xué)號從低到高排序)【輸入形式】每次鍵盤讀入最多不超過50個學(xué)生的學(xué)生信息:第一行為學(xué)生人數(shù);后面每一行為空格隔開的學(xué)生學(xué)號、姓名、年齡,其中學(xué)號和年齡都是整數(shù)?!据敵鲂问健糠謩e以姓名順序(從低到高)和年齡順序(從低到高)將學(xué)生信息輸出,每行輸出
46、一位學(xué)生的信息,其中學(xué)號占3位,姓名(英文)占6位,年齡占3位,均為右對齊。年齡相同時按姓名從低到高排序。兩種順序的輸出結(jié)果用一行空行相隔。【輸入樣例】41 aaa 2245 bbb 2354 ddd 20110 ccc 19【輸出樣例】 1 aaa 22 45 bbb 23110 ccc 19 54 ddd 20110 ccc 19 54 ddd 20 1 aaa 22 45 bbb 23【樣例說明】從鍵盤輸入四個學(xué)生記錄,分別按姓名和年齡排序并輸出?!驹u分標(biāo)準(zhǔn)】分別以姓名順序和年齡順序輸出學(xué)生信息,完全正確得20分,每個測試點4分,提交程序名為students.c。3.-電話薄排序【問題描
47、述】編寫一個程序,輸入N個用戶的姓名和電話號碼,按照用戶姓名的詞典順序排列輸出用戶的姓名和電話號碼?!据斎胄问健坑脩羰紫仍诘谝恍休斎胍粋€正整數(shù),該正整數(shù)表示待排序的用戶數(shù)目,然后在下面多行輸入多個用戶的信息,每行的輸入格式為:姓名 電話。以回車結(jié)束每個用戶的輸入?!据敵鲂问健砍绦蜉敵雠判蚝蟮慕Y(jié)果。每行的輸出結(jié)果格式也是: 姓名 電話。姓名和電話字段中間沒有空格,要求用戶姓名不能超過10個字符,超出10個字符時候只取前10個字符作為姓名。電話號碼不能超過10位,超過10位時只按10位處理。輸出姓名、電話字段各占12個字符寬,輸出格式采用默認對齊方式。另外,用戶的數(shù)量要求不超過50個?!緲永斎搿?/p>
48、3amethystic 1234567amethyst 654321wangwei 7645434【樣例輸出】#amethyst#654321#amethystic#1234567#wangwei#7645434【樣例說明】程序根據(jù)用戶姓名的詞典順序排序,最后按照姓名#電話的格式輸出。另外,由于規(guī)定姓名和電話之間用空格分割,所以輸入姓名時請將姓和名一起輸入,中間不要有空格。另外輸出時候程序?qū)⒆詣友a齊12字符寬。程序輸出結(jié)尾有個回車符?!驹u分標(biāo)準(zhǔn)】完全正確為20分,每個測試點4分。提交程序文件名為telsort.c4.-猴子選大王【問題描述】要從n只猴子中選出一位大王。它們決定使用下面的方法:n
49、只猴子圍成一圈,從1到n順序編號。從第q只猴子開始,從1到m報數(shù),凡報到m的猴子退出競選,下一次又從退出的那只猴子的下一只開始從1到m報數(shù),直至剩下的最后一只為大王。請問最后哪只猴子被選為大王。【輸入形式】控制臺輸入三個整數(shù)n,m,q。【輸出形式】輸出最后選為大王的猴子編號。【樣例輸入】7 4 3【樣例輸出】4【樣例說明】輸入整數(shù)n 7,m 4,n 3,輸出4【評分標(biāo)準(zhǔn)】本題要求輸出最后被選為大王的猴子編號,完全正確得20分,每個測試點4分。上傳C語言文件名為monkey.c。5.-多項式相乘【問題描述】編寫一個程序?qū)崿F(xiàn)兩個一元多項式相乘?!据斎胄问健渴紫容斎氲谝粋€多項式中系數(shù)不為0的項的系數(shù)和指數(shù),以一個空格分隔。且該多項式中各項的系數(shù)均為0或正整數(shù),系數(shù)和最高冪次不會超過int類型的表示范圍。對于多項式 anxn+an-1xn-1+ + a1x1+ a0x0的輸入方法如下:an n an-1 n-1 a1 1 a0 0即相鄰兩個整數(shù)分別表示表達式中一項的系數(shù)和指數(shù)。在輸入中只出現(xiàn)系數(shù)不為0的項。最后一項的指數(shù)后沒有空格,只有一個回車換行符。按照上述方式再輸入第二個多項式。【輸出形式】將運算結(jié)果輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球家禽和牛飼料機行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球一次性使用靜脈輸液留置針行業(yè)調(diào)研及趨勢分析報告
- 有機大麥茶項目可行性研究報告申請建議書
- 電氣元件行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年度空心磚節(jié)能環(huán)保產(chǎn)品采購及售后服務(wù)合同
- 2025年度公有住房差價交換合同范本及糾紛解決機制
- 2025年度股票期權(quán)風(fēng)險控制與合規(guī)審查合同
- 2025年公司債券發(fā)行與2024年度智慧農(nóng)業(yè)項目投資合同
- 2025年度辦公場地租賃與租賃期提前續(xù)租合同
- 2025年度進口車銷售區(qū)域代理權(quán)轉(zhuǎn)讓合同
- 護理人文知識培訓(xùn)課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學(xué)七年級下冊教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時)
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測地理試題(含答案)
- 2025年新合同管理工作計劃
- 統(tǒng)編版八年級下冊語文第三單元名著導(dǎo)讀《經(jīng)典常談》閱讀指導(dǎo) 學(xué)案(含練習(xí)題及答案)
- 風(fēng)光儲儲能項目PCS艙、電池艙吊裝方案
- 統(tǒng)編小學(xué)《道德與法治》三年級上下冊教材的解讀
- 產(chǎn)業(yè)鏈競爭關(guān)聯(lián)度
- TTJSFB 002-2024 綠色融資租賃項目評價指南
- 高考地理一輪復(fù)習(xí)學(xué)案+區(qū)域地理填圖+亞洲
評論
0/150
提交評論