GCC入門必做的題_第1頁
GCC入門必做的題_第2頁
GCC入門必做的題_第3頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、GCC入門必做的題給定等式ABCDEDFG+DFGXYZDE其中每個(gè)字母代表一個(gè)數(shù)字,且不同數(shù)字對應(yīng)不同字母。編程求出這些數(shù)字并且打出這個(gè)數(shù)字的算術(shù)計(jì)算豎式。G=0,F=5,X=A+1;A!=9,A:18B:79C:09D:09E:09intb10=0;/bi用于記錄數(shù)字i是否被用for(a=1;a<=8;i+)1. A、B、C、D、E五名學(xué)生有可能參加計(jì)算機(jī)競賽,根據(jù)下列條件判斷哪些人參加了競賽:(1) A參加時(shí),B也參加;(2) B和C只有一個(gè)人參加;(3) C和D或者都參加,或者都不參加;(4) D和E中至少有一個(gè)人參加;(5) 如果E參加,那么A和D也都參加。打印一個(gè)N*N的方陣

2、,N為每邊字符的個(gè)數(shù)(3VNV20=,要求最外一層為”T”,第二層為"J”,從第三層起每層依次打印數(shù)字1,2,3,(右圖以N為15為例)N=15打印出下面圖形TJJJJJJJJJJJJJTTJ11111111111JTTJ12222222221JTTJ12333333321JTTJ12344444321JTTJ12345554321JTTJ12345654321JTTJ12345554321JTTJ11111111111JTTJJJJJJJJJJJJJT*nc-udeAsfdp'hvinfmain(void)互LM;prm-f(二珊善>scanf(=%d=QOn)for

3、(ll's?An二+)foranpAn二+)=honll.-on=j-?1nll.-?1nJI.)Prmff(-T-)Qse=h(1nll.=1n=j-?2nll.-?2nll.)prmff(=J=);Qse=h(A=jQOQOAn'.)prmff(=%d=T-1)QseaAiQOQOArH)prmff(=%d=j,1)QseMvj)器(V5.)prmff(=%d=n,2'.HQseM=h(Aj)QOQO(vnrH)prmff(=%d=n,2*prmff(-vr)r*m0;13rJIIIII25242322111111n1nn11Ii11nnnnl,J:3 T4 T5

4、T6 T7 TST9 T10 T11 T12 T13 T在N行N列的數(shù)陣中,數(shù)K(1=K=N)在每行和每列中出現(xiàn)且僅出現(xiàn)一次,這樣的數(shù)陣叫N階拉丁方陣。例如下圖就是一個(gè)五階拉丁方陣。編一程序,從鍵盤輸入N值后,打印出所有不同的N階拉丁方陣,并統(tǒng)計(jì)個(gè)數(shù)。1 23452 34513 45124 51231234for(i=0;i<n;i+)2. for(j=0;j<n;j+)aij=i+j+1;輸入一個(gè)十進(jìn)數(shù),將其轉(zhuǎn)換成N進(jìn)制數(shù)(0<N<=16)o?scanf(%d%d”,&x,&n);y=0;while(x)(y=y*10+(x%n);3. x/=n;矩陣

5、中填數(shù).當(dāng)給出N*N的矩陣,要求用程序填入下列形式的數(shù):倒填,例如N=5蛇形填數(shù)回轉(zhuǎn)填數(shù)IIIIIIIIII211341011116151413201918171625912192172423121514131211681318203182522111098767141721244192021101516222325(I,j)if(i-1>0)If(j-1<n)4. 讀入一行文本,包含若干個(gè)單詞(以空格間隔,結(jié)尾)。將其中以A開頭的單詞與以N結(jié)尾的單詞,用頭尾交換的辦法予以置換。5. 輸入兩個(gè)正整數(shù)X,Y,將X,Y化為二進(jìn)制數(shù),然后將這兩個(gè)二進(jìn)制數(shù)作二進(jìn)制加法運(yùn)算,再將結(jié)果化為十進(jìn)

6、制數(shù)輸出。intxb=0,yb=0;while(x)xb=xb*四人玩火柴棍游戲,每一次都是三個(gè)人贏,一個(gè)人輸。輸?shù)娜艘蹿A者手中的火柴數(shù)進(jìn)行賠償,即贏者手中有多少根火柴棍,輸者就賠償多少根?,F(xiàn)知道玩過四次后,每人恰好輸過一次,而且每人手中都正好有16根火柴。問此四人做游戲前手中各有多少根火柴?編程解決此問題。6. 如圖1所示(圖中共10*10格,編程假定是n*n格),編寫程序計(jì)算大大小小正方形共有多少?當(dāng)最小正方行邊長為1時(shí),它們的總面積共為多少?a11=1;for(i=2;i<=n;i+)aii=ai-1i-1+(i-1)*(i-1)+2*i-1;巧排數(shù)字。將1、2、.、20這20個(gè)

7、數(shù)排成一排,使得相鄰的兩個(gè)數(shù)之和為一個(gè)素?cái)?shù),且首尾兩數(shù)字之和也為一個(gè)素?cái)?shù)。編程打印出所有的排法。7. 下圖是一個(gè)集裝箱倉庫,陰影部分表示有集裝箱存放不能通過,無陰影處為臨時(shí)通道。當(dāng)有人要從入口處到達(dá)出口處時(shí),必須尋找可通過路線,請你找出可完成這個(gè)過程的最方便(即用最短路線)到達(dá)出口處的路徑。III有N個(gè)硬幣(N為偶數(shù))正面朝上排成一排,每次將N-1個(gè)硬幣翻過來放在原位置,不斷地重復(fù)上述過程,直到最后全部硬幣翻成反面朝上為止。編程讓計(jì)算機(jī)把翻幣的最簡過程及翻幣次數(shù)打印出來(用*代表正面,O代表反面)。有黑白棋子各有N個(gè)(分別用*和0代替),按下圖方式排列大大大*000.000N個(gè)黑棋N個(gè)白棋如果

8、每個(gè)步驟只交換一黑一白,問至少需要多少步才能換成一黑一白間隔排列?真?zhèn)斡矌诺膮^(qū)別僅是重設(shè)有8枚硬幣a,b,c,d,e,f,g,h,其中有一枚硬幣是偽造的量不同,可能重,可能輕。今要求以天平為工具,用最少的比較次數(shù)挑出偽造硬幣,并鑒定它是重還是輕。編寫一個(gè)程序,當(dāng)輸入不超過60個(gè)字符組成的英文文字時(shí),計(jì)算機(jī)將這個(gè)句子中的字母按英文字典字母順序重新排列,排列后的單詞的長度要與原始句子中的長度相同。例如:輸入:THEPRICEOFBREADIS¥P0UND輸出:ABCDDEEEEFHIINOOP¥125PPRRRSTU并且要求只對A到Z的字母重新排列,其它字符保持原來的狀態(tài)。在一

9、線性七個(gè)格位置的圖上有兩種不同顏色的棋子A,B.排列如下圖所示,中間格的位置為空。要求將A,B的現(xiàn)行位置交換,形成下圖中的排列:IA|A|A|11111111移動棋子的條件:(1) 每個(gè)格中只準(zhǔn)放一個(gè)棋子。(2) 任意一個(gè)棋子均可移動一格放入空格內(nèi)。(3) 一方的棋子均可跳過另一方的一個(gè)棋子進(jìn)入空格。(4)任何棋子不得跳躍兩個(gè)或兩個(gè)以上棋子(無論顏色同異)(5)任何一個(gè)顏色棋子只能向前跳,不準(zhǔn)向后跳。16. 編程完成有關(guān)的移動,并且完成具有2N+1個(gè)格子的情形.其中兩種顏色各有N個(gè)棋子,且中間為空格(背包問題)有N件物品di,dN,每件物品重量為W1,,WN(Wi>0),每件物品價(jià)值為V

10、1,VN(Vi>0)。用這N件物品的某個(gè)子集填空背包,使得所取物品的總重量<=TOTAL,并設(shè)法使得背包中物品的價(jià)值盡可能高。(N皇后)在國際象棋的棋盤上放置N個(gè)皇后,使其不能互相攻擊,即任意兩個(gè)皇后不能處在棋盤的同一行,同一列,同一斜線上,試問共有多少種擺法?允許將相鄰兩個(gè)棋子互換位置,最后使隊(duì)形成黑白交替排列,試編程實(shí)現(xiàn)該操作。請?jiān)O(shè)計(jì)一個(gè)程序,由計(jì)算機(jī)把1.8的八個(gè)自然數(shù)填入圖中,使得橫、豎、對角任何兩個(gè)相鄰的小方格中的兩個(gè)數(shù)是不連續(xù)的。(下圖右側(cè)的4個(gè)圖為禁止的情形).III1I1I48!III1III57IIII1111III!17. 1II1I6|,IIII1I211|7

11、1_在一個(gè)4*4的小方格(如圖所示)中放置8個(gè)*號,使得每行每列放且僅放兩個(gè)*號。*|*|III*|"III"I*IIIII*I*11求出所有的基本解。(覆蓋問題)有邊長為N(N為偶數(shù))的正方形,請你用NA2/2個(gè)長為2,寬為1的長方形,將它全部覆蓋。編程打印出所有覆蓋方法。如:N=411111224|112211111113341111111I|334411111156681111111I5566111111111577811111778825. (量水)用存水為M,N升的兩個(gè)罐子,量出A升水(八數(shù)碼問題)8個(gè)編有數(shù)碼18的滑牌,能在3*3的井字格中滑動。井字格中有一格是

12、空格,用0表示,因而空格周圍的數(shù)碼滑牌都可能滑到空格中去下圖是數(shù)碼滑牌在井字格中的兩種狀態(tài):1211183|111213111111614|>11801411711101115I11171161151初始狀態(tài)目標(biāo)狀態(tài)以左圖為初始狀態(tài),右圖為目標(biāo)狀態(tài),請找出從初始狀態(tài)到目標(biāo)狀態(tài)的滑牌移步序列,具體要求:(1)輸入初始狀態(tài)和目標(biāo)狀態(tài)的數(shù)據(jù);a、分別用兩行輸入上述兩項(xiàng)數(shù)據(jù):例:Entertheinitialstate:283164705Enterthefinalstate:123804765b、對輸入數(shù)據(jù)應(yīng)有查錯(cuò)和示錯(cuò)功能;(2) 實(shí)現(xiàn)從初始狀態(tài)到目標(biāo)狀態(tài)的轉(zhuǎn)換(如不能實(shí)現(xiàn),程序應(yīng)輸出不能實(shí)現(xiàn)

13、的提示信息);(3) 輸出結(jié)果,每移動一步都必須在屏幕上顯示:a、移動每一步時(shí)的序號,最后一步的序號即為移動總步數(shù);b、每一步移動后以3*3表格形式顯示狀態(tài)。要求能使移動步數(shù)盡可能少;給出一個(gè)有8個(gè)格子的表格,除3個(gè)格子外,每個(gè)格子中可放入一個(gè)數(shù)字,這些數(shù)字取自自然數(shù)1到5,放入格子中的數(shù)字不得相同,剩余的3個(gè)格子是空格(用0表示)。圖1是一個(gè)放數(shù)字與空格的特例?,F(xiàn)要求編程實(shí)現(xiàn)從初始表格狀態(tài)變化到目標(biāo)表格狀態(tài)。初始狀態(tài)和目標(biāo)狀態(tài)都是可變的(圖1,圖2所示的狀態(tài)僅是一個(gè)特例),由鍵盤輸入格子中的數(shù)字(0一5)。移動規(guī)則:每一個(gè)數(shù)字只可以通過虛線移入相鄰空格。如圖1中,允許“2”左移入空格,而不能

14、上移進(jìn)入上面空格。(1) 只允許水平移動或垂直移動,不允許斜移。(2) 移動后,該數(shù)字原先所在的格子變成空格。實(shí)現(xiàn)目標(biāo):(1) 輸入初始表格狀態(tài)和目標(biāo)表格狀態(tài)的數(shù)據(jù)。 分別在一行內(nèi)輸入上述兩項(xiàng)數(shù)據(jù); 對輸入的數(shù)據(jù)應(yīng)有查錯(cuò)和報(bào)錯(cuò)功能;(2)實(shí)現(xiàn)從初始狀態(tài)到目標(biāo)狀態(tài)的轉(zhuǎn)換(如不能實(shí)現(xiàn)也應(yīng)給出必要的說明)(3)顯示結(jié)果:每移動一步都應(yīng)在屏幕上有如下信息:顯示每一步移動的序號。所以最后一步的序號就是移動的總步數(shù)。顯示每一步移動前后的表格狀態(tài)。(4)以最少的移動步數(shù)達(dá)到目標(biāo)。ITTII0I0I0IIHII|12345|圖102目標(biāo)狀態(tài)BI111I3|4|0|IIHI01025|111111圖101初始狀

15、態(tài)An枚銀幣C1,C2,-,Cn,其中有一塊不合格,不合格的銀幣比正常的要重?,F(xiàn)用一天平找出不合格的一塊,要求在最壞的情況下,用的天平次數(shù)最少。把一段文章按要求排版。文章的輸入方式為:由鍵盤輸入一段以回車符結(jié)束的文章(最大長度2000個(gè)字符)。排版時(shí)以單詞為基本單位。單詞由不含空格的任意字符組成,是長度小于20個(gè)字符的串??崭穹欠指魡卧~的唯一字符,在輸入時(shí)連續(xù)的空格符在處理時(shí)應(yīng)先化簡為單個(gè)空格符。在排版前應(yīng)先輸入,排版后每行的字符數(shù)為N,排版后將整理好的文章按行輸出。輸出時(shí)不能將一個(gè)完整的單詞截?cái)?,并要求輸出的總行?shù)最小。將每個(gè)不足N個(gè)字符的行用空格補(bǔ)足,填充空格符的方式有以下三種。1)將填

16、充的空格符置于每行的末尾,并要求每行的起始為單詞。2)將填充的空格符置于每行的開始,并要求每行的末尾為單詞。3)將填充的空格符平均分配在每行中,并保證行的起始和末尾均為單詞。某機(jī)要部門安裝了電子鎖。M個(gè)工作人員每人發(fā)一張磁卡,卡上有開鎖的密碼特征。為了確保安全,規(guī)定至少要有N個(gè)人同時(shí)使用各自的磁卡才能將鎖打開。問電子鎖上至少要有多少種特征?每個(gè)人的磁卡上至少要有多少特征?如果特征的編號以小寫英文字母表示,將每個(gè)人的磁卡的特征編號打印出來,要求輸出的電子鎖的總特征數(shù)最少。設(shè)3<=M<=7,1<=N<=4,M與N由鍵盤輸入,工作人員編號用1#,2#,表示.已知6個(gè)城市,用c

17、i,j表示從1城市到城市j是否有單向的直達(dá)汽車(1=<1=6,1=j=6,ci,j=1表示城市i到城市j有單向直達(dá)汽車;否則ci,j=0.試編制程序,對于給出的城市代號1,打印出從該城市出發(fā)乘車(包括轉(zhuǎn)車)可以到達(dá)的所有城市。一個(gè)人所取的枚數(shù),也所有棋子都取走。對各個(gè)N,是否存在一26. 甲乙兩人從24枚棋子中輪流取子,甲先取,規(guī)定每次所取的枚數(shù)不能多于上不可不取。(1) 甲第一次取多少枚才能保證甲取得最后一枚,當(dāng)然,他也不能第一次就把(2)討論棋子總數(shù)N(一定是偶數(shù))從6到30的各種情況。討論內(nèi)容包括:個(gè)小于N的枚數(shù)M,甲第一次取M枚后就能保證甲如果策略正確,一定能取到最后一枚棋子不能

18、走動,走至0后,若(走棋)一個(gè)4*4的方陣如圖。有一個(gè)小卒從上往下走。走至格子1后就下方為1,則向左或向右走,下方為0,則向下走。求所有走法(野人與傳教士)設(shè)有三個(gè)傳教士和三個(gè)野人來到河邊,打算乘一只船從右岸渡到左岸去。該船最大負(fù)載能力為兩人,在任何時(shí)候,如果野人人數(shù)超過傳教士人數(shù),那么野人就會把傳教士吃掉。他們怎樣才能用這條船安全地把所有人都渡過河去呢?(取棋子)設(shè)有N顆棋子,由人和計(jì)算機(jī)輪流從中取走若干顆。每方每次最多取K顆,最少取1顆(K值不能超過總數(shù)的一半,也不能小于1)。試編寫一程序使計(jì)算機(jī)有較多的獲勝機(jī)會。屏幕輸入提示:(1) 輸入競賽規(guī)則:A.取最后一顆棋子的那一方為敗.B.取最

19、后一顆棋子的那一方為勝.(2) 總共有多少顆棋子?(3) 一次最多取幾顆?(4) 誰先???(5) 每個(gè)回合都應(yīng)顯示:A.你取幾顆?B.我取走顆,還剩顆.(6) 競賽過程中發(fā)生違例時(shí),打印出:競賽無法進(jìn)行下去!(7) 競賽結(jié)束后打?。篒win!(我勝!)或Youwin!(你勝!)。(Grundy博弈)在兩位選手面前放著一堆銅幣。第一位選手把原堆分成不相等的兩堆。然后每個(gè)選手輪流地這樣做,即當(dāng)輪到某一方分時(shí),他把已被分開的任一堆再分成不相等的兩堆。博弈這樣一直進(jìn)行下去,直到每一堆都只剩下一個(gè)或兩個(gè)銅幣為止,這時(shí)博弈結(jié)束。規(guī)定首先遇到這種情況的選手為輸。GCC入門題部分題目解答?Postedbyad

20、min?2007年06月13日以下程序在VC6.0環(huán)境下測試通過若出現(xiàn)程序編譯不了,或需要注釋的,可以加Q634419082/1.給定等式ABCDE其中每個(gè)字母代表一個(gè)數(shù)字,且不同數(shù)字對應(yīng)不/DFG同字母。編程求出這些數(shù)字并且打出這個(gè)數(shù)字的/+DFG算術(shù)計(jì)算豎式。/XYZDE/(DE+FG+FG)%100=DE->FG=50/Z=(C+D+D+1)%10/Y=(C+D+D+1)/10+B)%10&&Y!=0&&Z!=0/->B=9&&C+D+D+1>20->C>=5&&D>=5/X!=A->

21、;X=A+1/E=45-(A+9+C+D+E+5+0+X+Y+Z)=31-A-C-D-E-X-Y-Z/#include"stdio.h"voidmain()(unsignedinta,c,d,e,x,y,z;printf("%10sn","ABCDE");printf("%10sn","DFG");printf("+%9sn","DFG");printf("%10sn","");printf("%10snn

22、n","XYZDE");for(a=1;a<9;a+)(if(a=5)continue;for(c=5;c<9;c+)(if(c=a)continue;for(d=5;d<9;d+)(if(d=a|d=c)continue;x=a+1;y=(c+2*d+1)/10+9)%10;z=(c+2*d+1)%10;e=31-a-c-d-x-y-z;if(x!=a&&y!=a&&z!=a&&e!=a&&x!=9&&y!=9&&z!=9&&e!=9

23、&&x!=c&&y!=c&&z!=c&&e!=c&&x!=d&&y!=d&&z!=d&&e!=d&&x!=5&&y!=5&&z!=5&&e!=5&&x!=0&&y!=0&&z!=0&&e!=0&&x!=y&&x!=z&&x!=e&&y!=z&&y!=e&&

24、amp;z!=e&&10000*a+9000+100*c+10*d+e+2*(100*d+50)=10000*x+1000*y+100*z+10*d+e)(printf("%2d%2d%2d%2d%2dn",a,9,c,d,e);printf("%*d%2d%2dn”,6,d,5,0);printf("+%*d%2d%2dn",5,d,5,0);printf("%10sn","");printf("%2d%2d%2d%2d%2dn",x,y,z,d,e);)/2.A、B

25、、C、D、E五名學(xué)生有可能參加計(jì)算機(jī)競賽,根據(jù)下列條件判斷哪些/人參加了競賽:/(1)A參加時(shí),B也參加;/(2)B和C只有一個(gè)人參加;/(3)C和D或者都參加,或者都不參加;/(4)D和E中至少有一個(gè)人參加;/(5)如果E參加,那么A和D也都參加。/(4)&&(5)=>D=1(6)/(3)&&(6)=>C=1(7)/(7)&&(2)=>B=0(8)/設(shè)(A=1)則=>B=1但是(8)=>B=0因此假設(shè)(A=1)不成立,故A=0(9)/設(shè)(E=1)則(5)=>A=1但是(9)=>A=0因此假設(shè)(E=1)不

26、成立,故E=0(10)綜上可得:A=0,B=0,C=1,D=1,E=0#include<stdio.h>intmain()printf("A=0,B=0,C=1,D=1,E=0”);return0;/3.打印一個(gè)N*N的方陣,N為每邊N=15打印出下面圖形/字符的個(gè)數(shù)(3<N<20),要求最/外一層為"T”,第二層為"J”,從第三層TJJJJJJJJJJJJJT/起每層依次打印數(shù)字1,2,3,-TJ11111111111JT/TJ12333333321JT/TJ12344444321JT/TJ12345554321JT/TJ12345654

27、321JT/TJ12345554321JT/TJ12344444321JT/TJ12333333321JT/TJ12222222221JT/TJ11111111111JT/(右圖以N為15為例)TJ12222222221JT/TJJJJJJJJJJJJJT/TTTTTTTTTTTTTTT/#include<stdio.h>#defineN15voidmain()staticcharaNN,i,j,num;intstart=0,end=N-1;charstr="TJ12345678",ch;for(intt=0;t<=N/2;t+,start+,end:i+

28、,j+)ch=*(str+t);for(i=start;i<end;i+)aij=ch;for(j=start;j<end;j+)aij=ch;for(i=end;i>start;i)aij=ch;for(j=end;j>start;j)aij=ch;if(start=end)astartend=ch;for(i=0;i<N;i+)for(j=0;j<N;j+)printf("%c",aij);printf("n");/4.在N行N列的數(shù)陣中,數(shù)K(1<=K<=N)在每行和每列中出現(xiàn)且僅/出現(xiàn)一次,這樣的數(shù)

29、陣叫N階拉丁方陣。例如下圖就是一個(gè)五階拉丁方陣。/編一程序,從鍵盤輸入N值后,打印出所有不同的N階拉丁方陣,并統(tǒng)計(jì)個(gè)數(shù)。/12345/23451/34512/45123/51234/#include"stdio.h"#defineN4staticintaNN,count;boollegal(introw,intcol)inti;for(i=0;i<row;i+)if(aicol=arowcol)returnfalse;for(i=0;i<col;i+)if(arowi=arowcol)returnfalse;returntrue;voidtrial(introw

30、,intcol,FILE*fp)inti,j;if(row=N)printf("*%d*n",+count);fprintf(fp,n*%d*n",count);for(i=0;i<N;i+)for(j=0;j<N;j+)(printf("%5d”,aij);fprintf(fp,"%5d”,aij);)putchar(10);fputc(10,fp);)for(i=1;i<=N;+i)(arowcol=i;if(legal(row,col)trial(row*N+col+1)/N,(row*N+col+1)%N,fp);)v

31、oidmain()(FILE*fp=fopen("latin.txt”,"w”);trial(0,0,fp);)/5.輸入一個(gè)十進(jìn)數(shù),將其轉(zhuǎn)換成N進(jìn)制數(shù)(0<N<=16)/只能是整數(shù)型#include"iostream.h"#include"assert.h"voidconvert(int,int);voidmain()(intnum,carry;cout<<"inputthedecimalnumberandcarry:"cin>>num>>carry;assert(

32、carry<=17);convert(num,carry);voidconvert(intnum,intcarry)(int*a=newint100;inti=0;cout<<"decimalvalue"<<num<<"converttothevaluebythecarryas"<<carry<<"is:while(num)(*(a+i)=num%carry;num/=carry;i+;while(4>=0)(*(a+i)<10)?cout<<*(a+i)

33、:cout<<(char)(55+*(a+i);cout<<endl;/6.矩陣中填數(shù).當(dāng)給出N*N的矩陣,要求用程序填入下列形式的數(shù):/倒填,例如N=5蛇形填數(shù)回轉(zhuǎn)填數(shù)/I11111/2524232221|1341011|116151413/IIIIIIIIIIIIIIIIII/20191817162591219217242312/IIIIIIIIIIIIIIIIII/151413121168131820318252211/IIIIIIIIIIIIIIIIII/109876714172124|419202110/IIIIIIIIIIIIIIIIII/54321|151

34、6222325|56789/6.1#include"stdio.h"voidmain()intn,i,j;scanf("%d”,&n);intt=n*n;for(i=n;i>0;i>(for(j=n;j>0;j)printf("%5d",t;printf("n");/6.2#include"stdio.h"#defineN15voidmain()(intsum,j,t=1,start,end;staticintaNN;for(sum=0;sum<2*N-1;sum+)(st

35、art=(sum<N)?0:sum-(N-1);end=(sum<N)?sum:(N-1);for(j=start;j<=end;j+)(sum%2)?(ajsum-j=t+):(asum-jj=t+);/(sum%2)控制環(huán)繞方向for(sum=0;sum<N;sum+)(for(j=0;j<N;j+)printf("%5d",asumj);printf("n");/6.3#include<stdio.h>#defineelemaij/用于控制方向,若改為aji,則方向相反#defineN10voidmain(

36、)(staticintaNN,i,j,num;intstart=0,end=N-1;for(intt=0;t<=N/2;t+,start+,end:i+,j+)(for(i=start;i<end;i+)aij=+num;for(j=start;j<end;j+)aij=+num;for(i=end;i>start;i)aij=+num;for(j=end;j>start;j)aij=+num;if(start=end)astartend=+num;for(i=0;i<N;i+)(for(j=0;j<N;j+)printf("%4d”,ele

37、m);printf("n");/7.讀入一行文本,包含若干個(gè)單詞(以空格間隔,結(jié)尾)。將其中以A開頭的/單詞與以N結(jié)尾的單詞,用頭尾交換的辦法予以置換。/iamastudentwhataboutyouregioncodemodern%/imaastudentwhattbouayounegiorcodenoderm%/#include"stdio.h"voidmain()(charstr="iamastudentwhataboutyouregioncodemodern%"char*p,*q,temp;p=q=str;while(*p!=

38、'%')(if(*p='')while(*p='')printf("%c”,*p+);q=p;while(*p!=''&&*p!='%')p+;if(*q='a'|*(p-1)='n')(temp=*q;*q=*(p-1);*(p-1)=temp;while(q!=p)printf("%c",*q+);/8.輸入兩個(gè)正整數(shù)X,Y,將X,Y化為二進(jìn)制數(shù),然后將這兩個(gè)二進(jìn)制數(shù)作二進(jìn)/制加法運(yùn)算,再將結(jié)果化為十進(jìn)制數(shù)輸出。/#include&q

39、uot;stdio.h"#include"math.h"#defineN18voiddtob(unsignedint,int*,char*);unsignedintbtod(int*);voidbadd(int*,int*,int*);voidshow(int*,char*);voidmain()(unsignedintx,y;staticintxbN,ybN,resultbN,i;printf("inputthedecimalvalueXandY:");scanf("%d%d",&x,&y);dtob(x,

40、xb,"X");dtob(y,yb,"Y");badd(xb,yb,resultb);printf("nResultconverttobedecimalis:%4dn",btod(resultb);voiddtob(unsignedintn,int*nb,char*s)inti=N;while(n)nbT=n&1;n>>=1;nbT=-1;show(nb,s);voidbadd(int*xb,int*yb,int*resultb)inti=0;while(xbi!=-1&&ybi!=-1)i+;re

41、sultbi+=-1;for(;i<N;i+)if(xbi=-1)resultbi=ybi;elseif(ybi=-1)resultbi=xbi;elseresultbi=xbi+ybi;for(i=N;resultbi!=-1;i)if(resultbi>1)resultbi%=2;if(resultbi-1=-1)(resultbi-1=1;resultbi-2=-1;)elseresultbi-1+=1;)show(resultb,"Result");)unsignedintbtod(int*nb)(staticunsignedinti,sum;for(;

42、nbi!=-1;i+);for(+i;i<N;i+)sum+=nbi*(int)pow(2,N-1-i);returnsum;)voidshow(int*nb,char*s)(inti;printf("n%st=",s);for(i=0;nbi!=-1;i+);for(+i;i<N;i+)printf("%d",nbi);)/9.四人玩火柴棍游戲,每一次都是三個(gè)人贏,一個(gè)人輸。輸?shù)娜艘蹿A者手中的火柴/數(shù)進(jìn)行賠償,即贏者手中有多少根火柴棍,輸者就賠償多少根。現(xiàn)知道玩過四次后,/每人恰好輸過一次,而且每人手中都正好有16根火柴。問此四人做游戲前

43、手中各有/多少根火柴?編程解決此問題。/#include"iostream.h#include"iomanip.h"voidmain()(inta4=16,16,16,16);inti,j;for(i=0;i<4;i+)for(j=0;j<4;j+)if(j!=i)aj/=2;ai+=aj;)cout<<"Inthebegining:"<<endl;for(i=0;i<4;i+)cout<<(char)(65+i)<<"has"<<setw(3)&

44、lt;<ai<<"matches,andlostatround"<<4-i<<endl;)/10.如圖1所示,編寫程序計(jì)算/大大小小正方形共有多少?當(dāng)最小/正方行邊長為1時(shí),它們的總面積/共為多少?/#include"stdio.h"#defineN10voidmain()(staticintaNN;inti,j,k,num,count=0,area=0;for(i=0;i<N;i+)(for(j=0,num=0;j<N;j+)(aij=(num>N-i-1)?num:+num;printf(&

45、quot;%4d”,aij);count+=aij;for(k=1;k<=aij;k+)area+=k*k;putchar('n');printf("count=%d,totalarea=%dn",count,area);/11.巧排數(shù)字。將1、2、.、20這20個(gè)數(shù)排成一排,使得相鄰的兩個(gè)數(shù)之/和為一個(gè)素?cái)?shù),且首尾兩數(shù)字之和也為一個(gè)素?cái)?shù)。編程打印出所有的排法。/#include"stdio.h"#include"math.h"staticused21,link21;boolisprime(inta)(for(i

46、nti=2;i<=sqrt(a);i+)(if(!(a%i)returnfalse;)returntrue;)voidtrace(intnode)(inti;if(node=21)&&isprime(link20+link1)(for(i=1;i<21;i+)printf("%4d”,linki);putchar(10);)for(i=1;i<=20;i+)(if(!usedi)(linknode=i;usedi=1;if(isprime(linknode+linknode-1)trace(node+1);usedi=0;)voidmain()(tr

47、ace(1);)/13.有N個(gè)硬幣(N為偶數(shù))正面朝上排成一排,每次將N-1個(gè)硬幣翻過來放在原位/置,不斷地重復(fù)上述過程,直到最后全部硬幣翻成反面朝上為止。編程讓計(jì)算機(jī)把/翻幣的最簡過程及翻幣次數(shù)打印出來(用*代表正面,O代表反面)。/#include"stdio.h"#include"assert.h#include"string.h"#defineN10voidmain()(assert(!(N%2);boolsN;inti,j;for(j=0;j<N;j+)(sj=true;printf("%3c”,'*'

48、);printf("n");for(i=0;i<N;i+)(for(j=0;j<N;j+)(if(j!=i)sj=即;printf("%3c",sj?'*':'0');printf("n");/14.有黑白棋子各有N個(gè)(分別用*和O代替),按下圖方式排列/*.*OOO.OOO/N個(gè)黑棋N個(gè)白棋/允許將相鄰兩個(gè)棋子互換位置,最后使隊(duì)形成黑白交替排列,試編程實(shí)現(xiàn)該操作。/#include"stdio.h"#defineN5voidmain()(char*str=newchar

49、2*N,temp;inti,start,end;for(i=0;i<N;i+)stri='*'for(;i<2*N;i+)stri='o'printf("%sn",str);for(start=N-1,end=2*N-2;start<end;start,end-=2)(for(i=start;i<end;i+)(temp=stri;stri=stri+1;stri+1=temp;printf("%sn",str);deletestr;/15.已知6個(gè)城市,用ci,j表示從i城市到城市j是否有單向的直

50、達(dá)汽車/(1=<i=6,1=j=6),ci,j=1表示城市i到城市j有單向直達(dá)汽/車;否則ci,j=0.試編制程序,對于給出的城市代號1,打印出從該城市出/發(fā)乘車(包括轉(zhuǎn)車)可以到達(dá)的所有城市。/#include<stdlib.h>#include<stdio.h>#include<time.h>#include<assert.h>#defineN6intvisitedN=0;voidvisit(intcN,inti)(if(!visitedi)(visitedi=1;for(intj=0;j<N;j+)if(cij&&!visitedj)visit(c,j);voidmain(void)(intcNN,i,j,n;srand(unsigned)time(NULL);for(i=0;i<N;i+)(for(j=0;j<N;j+)(c

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論