程序設(shè)計(jì)基礎(chǔ)C實(shí)驗(yàn)教程及完整答案_第1頁
程序設(shè)計(jì)基礎(chǔ)C實(shí)驗(yàn)教程及完整答案_第2頁
程序設(shè)計(jì)基礎(chǔ)C實(shí)驗(yàn)教程及完整答案_第3頁
程序設(shè)計(jì)基礎(chǔ)C實(shí)驗(yàn)教程及完整答案_第4頁
程序設(shè)計(jì)基礎(chǔ)C實(shí)驗(yàn)教程及完整答案_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程 對于從事計(jì)算機(jī)行業(yè)的人員來說,設(shè)計(jì)能力是最主要的基本功之一。入門課程程序設(shè)計(jì)基礎(chǔ)的學(xué)習(xí)效果將直接關(guān)系到編程能力的掌握和提高以及后續(xù)課程的學(xué)習(xí)。然而,實(shí)踐證明,許多初學(xué)者在學(xué)習(xí)這門課程時的效果并不理想。對初學(xué)者來說,如何學(xué)好本課程?首先,要理解教材中所給出的語法描述,并學(xué)會按語法規(guī)定去編寫指定問題的求解程序。經(jīng)過這樣的多次反復(fù),初學(xué)者就可以找到編程的感覺。除了要學(xué)好理論知識外,更重要的一點(diǎn)是要到計(jì)算機(jī)上去驗(yàn)證,因?yàn)橹挥袑?shí)踐才是檢驗(yàn)真理的標(biāo)準(zhǔn)。只有通過到計(jì)算機(jī)上去實(shí)踐,才能發(fā)現(xiàn)學(xué)習(xí)中存在的問題,鞏固所學(xué)知識,加強(qiáng)解決實(shí)際問題的能力,增強(qiáng)信心。因此,程序設(shè)計(jì)基礎(chǔ)課程的上機(jī)實(shí)驗(yàn)是

2、本課程必不可少的實(shí)踐環(huán)節(jié),必須加以重視。 本課程上機(jī)實(shí)驗(yàn)的目的是使學(xué)生熟悉用高級語言解決實(shí)際問題的全過程,加深對語言的理解,得到程序設(shè)計(jì)基本方法和能力的訓(xùn)練。在獨(dú)立編寫程序、獨(dú)立上機(jī)調(diào)試程序的同時,真正能用高級語言這個工具去解決實(shí)際問題,對計(jì)算機(jī)學(xué)科的相關(guān)知識有所了解,從而為后續(xù)課程的學(xué)習(xí)奠定良好的基礎(chǔ)。 本實(shí)驗(yàn)指導(dǎo)所用環(huán)境是Visual C+ 6.0及以上版本??紤]到本課程的內(nèi)容和特點(diǎn),設(shè)置了十四個實(shí)驗(yàn),每次實(shí)驗(yàn)需要兩至三小時,分別側(cè)重于教材中的一個方面,其中標(biāo)有“*”號的習(xí)題的綜合性較強(qiáng),可供學(xué)有余力的學(xué)生選擇。實(shí)驗(yàn)時也可根據(jù)具體情況做適當(dāng)調(diào)整。雖然可能由于課時和機(jī)時限制等原因而不能在實(shí)驗(yàn)

3、課時內(nèi)全部得到安排,但還是建議學(xué)生能將其中的每個實(shí)驗(yàn)都能認(rèn)真做一遍,因?yàn)檫@些實(shí)驗(yàn)都是學(xué)習(xí)本課程所必需的。 學(xué)生在做實(shí)驗(yàn)之前應(yīng)仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書,初步掌握實(shí)驗(yàn)的基本要求和實(shí)驗(yàn)方法。在實(shí)驗(yàn)過程中,學(xué)生應(yīng)該有意識的培養(yǎng)自己調(diào)試程序的能力,積累發(fā)現(xiàn)問題、解決問題的經(jīng)驗(yàn),靈活主動的學(xué)習(xí)。對于分析運(yùn)行結(jié)果的實(shí)驗(yàn)習(xí)題,上機(jī)前先進(jìn)行用人工分析,寫出運(yùn)行結(jié)果,與上機(jī)調(diào)試得到的結(jié)果進(jìn)行對照,如有差異,分析其原因。對于程序編制的實(shí)驗(yàn)習(xí)題,上機(jī)前應(yīng)考慮出較成熟的編程思路,有意識提供出多種方案,以靈活運(yùn)用所學(xué)知識和技巧。如此,可充分利用有限的上機(jī)時間,有目的的增強(qiáng)調(diào)試程序、解決各種實(shí)際問題的能力。每個實(shí)驗(yàn)完成后需要寫

4、實(shí)驗(yàn)報告。 76 / 1 實(shí)驗(yàn) Visual C+ 集成開發(fā)環(huán)境 1. 實(shí)驗(yàn)?zāi)康囊?(1) 熟悉和掌握Visual C+ 的集成開發(fā)環(huán)境(簡稱為IDE)的部分功能。 熟悉和掌握建立控制臺應(yīng)用程序 2) (掌握用IDE)(3 編輯、編譯和運(yùn)行簡單程序的基本過程。 掌握程序調(diào)試的基本方法,包括程序斷點(diǎn)的設(shè)置與去除,程序的跟蹤以及運(yùn)行期間) (4變量數(shù)值的觀察。 2. 實(shí)驗(yàn)內(nèi)容 (1) 了解Visual C+可視化集成開發(fā)環(huán)境 Visual C+是微軟公司推出的目前使用極為廣泛的基于Windows平臺的可視化集成開發(fā)環(huán)境,它和Visual Basic、Visual Foxpro、Visual J+

5、等其它軟件構(gòu)成了Visual Studio(又名Developer Studio)程序設(shè)計(jì)軟件包。Developer Studio是一個通用的應(yīng)用程序集成開發(fā)環(huán)境,包含了一個文本編輯器、資源編輯器、工程編譯工具、一個增量連接器、源代碼瀏覽器、集成調(diào)試工具,以及一套聯(lián)機(jī)文檔。使用Developer Studio,可以完成創(chuàng)建、調(diào)試、修改應(yīng)用程序等的各種操作。 Visual C+分為學(xué)習(xí)版、專業(yè)版和企業(yè)版。VC提供了一種控制臺操作方式,初學(xué)者使用它應(yīng)該從這里開始。Win32控制臺程序(Win32 Console Application)是一類Windows程序,它不使用復(fù)雜的圖形用戶界面,程序與用

6、戶交互時通過一個標(biāo)準(zhǔn)的正文窗口,通過幾個標(biāo)準(zhǔn)的輸入輸出流(I/O Streams)進(jìn)行。下面我們將對使用VC編寫簡單的控制臺程序作一個最初步的介紹。這里的介紹不包含C+運(yùn)行環(huán)境(尤其是Windows環(huán)境)下進(jìn)行開發(fā)的內(nèi)容,有關(guān)這方面的內(nèi)容請參閱相應(yīng)開發(fā)手冊。另外,Visual C+包含豐富的函數(shù)庫和類庫,學(xué)生在設(shè)計(jì)程序時可以使用有關(guān)的內(nèi)容,這方面的內(nèi)容也請自行參閱相應(yīng)的開發(fā)指南類書籍。 實(shí)驗(yàn)操作步驟如下: 安裝Visual C+ :運(yùn)行Visual Studio軟件中的setup.exe程序,選擇安裝Visual C+ 6.0,然后按照安裝程序的指導(dǎo)完成安裝過程。 啟動Visual C+ :安

7、裝完成后,在開始菜單的程序選單中有Microsoft Visual Studio 6.0圖標(biāo),其中又有Microsoft Visual C+ 6.0即可運(yùn)行(也可在Window桌面上建立一個快捷方式,以后可雙擊運(yùn)行)。Visual C+ 6.0開發(fā)環(huán)境見圖0-1。 建立控制臺工程: 進(jìn)入Visual C+ 環(huán)境后,選擇菜單“File | New”,在彈出的對話框中單擊上方的選項(xiàng)卡“Projects”,選擇“Win32 Console Application”工程類型,在“Project name”一欄中填寫工程名例如MyFirst,在“Location”一欄中填寫工程路徑(目錄)例如:D: M

8、yProjectMyFirst,見圖0-2,然后按“OK”繼續(xù)。 76 / 2 Mircosoft Visual C+ 6.0啟動圖0-1 創(chuàng)建控制臺工程圖0-2 An “對話框后,Win32 Console ApplicationStep 1 of 1選擇所示的屏幕上出現(xiàn)如圖0-3 按鈕繼續(xù),F(xiàn)inishempty project”項(xiàng),然后按76 / 3 對話框0-3 Win32 Console ApplicationStep 1 of 1圖 OK按鈕完成工程創(chuàng)建。所示的出現(xiàn)如圖0-4New Project Information 對話框后,按 對話框0-4 New Project Info

9、rmation 圖76 / 4 編輯C+程序: 選擇菜單“Project | Add to Project | New”,為工程添加新的C+源文件。如圖0-5所示。 0-5 選擇菜單為工程添加新源文件圖 C+ Source File0-6 加入新的圖 76 / 5 在出現(xiàn)如圖0-6所示的對話框后,選擇“File”選項(xiàng)卡,選定“C+ Source File”項(xiàng),在“File Name”欄填入新添加的源文件名,如MyFirst.cpp,“Location”一欄指定文件路徑,按按鈕“OK”完成C+源程序的系統(tǒng)新建操作,如圖0-6所示。 在文件編輯區(qū)輸入源程序,存盤,如圖0-7所示。 源程序編輯0-7

10、 MyFirst.cpp圖編譯源程序: 選擇Build | Build菜單(F7為快捷鍵),系統(tǒng)將會在Output窗口給出所有的錯誤信息和警告信息。當(dāng)所有錯誤修正之后,系統(tǒng)將會生成擴(kuò)展名為.exe的可執(zhí)行文件。對于Output窗口給出的錯誤信息,雙擊可以使輸入焦點(diǎn)跳轉(zhuǎn)到引起錯誤的源代碼處以進(jìn)行修改。 執(zhí)行程序: 選擇Build | Execute菜單項(xiàng)(Ctrl + F5為快捷鍵),執(zhí)行程序,將會出現(xiàn)一個DOS窗口,按照程序輸入要求正確輸入數(shù)據(jù)后,程序即正確執(zhí)行。如圖0-8所示。 調(diào)試程序: 在編寫較長的程序時,能夠一次成功而不含有任何錯誤決非易事,這需要進(jìn)行長期大量的練習(xí)。編寫的程序若已沒有

11、編譯錯誤,可以成功運(yùn)行。對于程序中的錯誤,VC提供了易用且有效的調(diào)試手段。 在工具欄上單擊鼠標(biāo)右鍵,在彈出的菜單中選中“Debug”項(xiàng)。在程序調(diào)試狀態(tài)下,可以進(jìn)行單步執(zhí)行調(diào)試程序。其中,單步跟蹤進(jìn)入子函數(shù)(Step Into,F(xiàn)11),每按一次F11鍵,程序執(zhí)行一條無法再進(jìn)行分解的程序行;單步跟蹤跳過子函數(shù)(Step Over,F(xiàn)10),每按一次F10鍵,程序執(zhí)行一行;Watch窗口可以顯示變量名及其當(dāng)前值,在單步執(zhí)行的過程中,可以在Watch窗口中加入所需觀察的變量,輔助加以進(jìn)行監(jiān)視,隨時了解變量當(dāng)前的情況;同時,為方便較大規(guī)模程序的跟蹤,可以設(shè)置斷點(diǎn)(F9為快捷鍵),斷點(diǎn)處所在的程序行的左

12、側(cè)會出現(xiàn)一個紅色圓點(diǎn)。選擇Build | Start Debug | Go時,程序執(zhí)行到斷點(diǎn)處程序?qū)和?zhí)行,可方便用戶進(jìn)行變量觀察。取消斷點(diǎn)只需在代碼處再次按F9即可。還有運(yùn)行至當(dāng)前函數(shù)的末尾(Step Out)等都是很有效的調(diào)試工具,這里不再做一一介紹。 76 / 6 程序運(yùn)行結(jié)果圖0-8 0-9 MSDN圖 有關(guān)聯(lián)機(jī)幫助:菜單下”Help用戶通過選擇集成開發(fā)環(huán)境中的Visual C+6.0提供了詳細(xì)的幫助信息,“76 / 7 ”命令就可以進(jìn)入幫助系統(tǒng)。在源文件編輯器中把光標(biāo)定位在一個需要查詢的的“Contents所示。用戶要使C+6.0的幫助系統(tǒng)。如圖0-9單詞處,然后按F1鍵也可以進(jìn)入

13、Visual Visual C+6.0的幫助系統(tǒng)可以獲得幾乎所有的MSDN用幫助必須安裝。用戶通過Visual Visual C+作為一個非常友好的開發(fā)環(huán)境所具有的一個特色。C+6.0的技術(shù)信息,這也是 3. 分析與思考除了通過創(chuàng)建項(xiàng)目文件的實(shí)驗(yàn),總結(jié)一下創(chuàng)建一個控制臺應(yīng)用項(xiàng)目的一般方法和經(jīng)驗(yàn)。 已經(jīng)介紹過的調(diào)試方法,可以嘗試集成開發(fā)環(huán)境提供的其它功能。 面向過程的簡單程序設(shè)計(jì)實(shí)驗(yàn)一 1.實(shí)驗(yàn)?zāi)康囊缶幾g到運(yùn)行的全過程,程序從編輯、C+使用語言編寫簡單的計(jì)算機(jī)程序,掌握C+(1) 程序的特點(diǎn)。初步了解C+、運(yùn)語言的數(shù)據(jù)類型(包括對各種數(shù)據(jù)類型變量的定義、初始化、賦值等) 掌握C+(2 算符和表

14、達(dá)式的使用。 掌握賦值語句的使用。3) ( 掌握數(shù)據(jù)的輸入輸出方法。4) ( 2.實(shí)驗(yàn)內(nèi)容 (1)設(shè)計(jì)簡單程序,分別計(jì)算下列表達(dá)式,式中變量由鍵盤輸入,輸出表達(dá)式的值。b?a1?x-1?1X sinX+cosX+tan 1dc?x1x? 222ba?x1?x-yx+yba? log+(1+) +e e10a?表示取不大于a (其中的最大整數(shù))。 解: cinabcd; #include coutenter xx; coutesultx+(a+b)/(c-d)en int main() dl; float x; return 0; float a,b,c,d; coutenter a,b,c,d

15、endl; 76 / 8 #include #include #include #include using namespace std; using namespace std; int main() int main() float x; float sum; float x,y; coutenter xendl; coutenter xx; cinx; sum=1+1/(x+1/(x+1); y=sin(x)+cos(x)+pow(tan(x),-1); coutpow(x,1.2)endl; coutyendl; return 0; return 0; #include #includ

16、e #include #include using namespace std; using namespace std; int main() int main() float x; float x,y; coutenter xendl; coutenter x,yx; cinxy; coutlog10(1+pow(1+x*x,1/2)en coutexp(x+y)+exp(x-y)endl; dl; return 0; return 0; #include double a,b; #include coutenter a,bab; coutfabs(a*a-b*b)+int(a-b)end

17、l; int main() 2()閱讀下列程序,寫出(由指定的輸入)所產(chǎn)生的運(yùn)行結(jié)果,并指出其功能。76 / 9 #include void main() char ch; cin ch ; ch = ( ch = A & ch = a & ch = z ) ? ( ch 32 ) : ch ; cout ch endl; 解:輸入A,輸出A;輸入a,輸出A。 功能:將輸入的字母轉(zhuǎn)換成對應(yīng)的大寫字母并輸出。 #include void main() int m; float x; bool bi,br; cout m; bi = m 1000; cout x; br = x = 1e3; co

18、ut bi , br endl; 分別輸入100 40,2000 3000,1000 1000,2000 300,100 4000 運(yùn)行。 解:結(jié)果依次是:0,1 1,0 0,1 1,1 0,0 功能:判斷第一個數(shù)是否大于1000,第二個數(shù)是否小于等于1000。 #include void main() int n; cin n ; if ( n + 10 ) cout n endl ; 76 / 10 else cout n - endl ; 3。解:輸入2,輸出n n是使用n后其數(shù)值增加1,n+功能:將輸入的數(shù)字增加1后輸出。是使用 的值。后n,其數(shù)值等于執(zhí)行n+n 后其數(shù)值減1,上面這個

19、程序最終是要輸出 )編寫程序?qū)崿F(xiàn)下列問題的求解。(3 根據(jù)隨機(jī)從鍵盤輸入的圓半徑值,求圓的周長和半徑并輸出。 存放c存放c的值,c,交換它們中的數(shù),使a存放b的值,bb 讀入三個整數(shù)a、 的值。a對任意輸入的四位整數(shù),分別求出其各位數(shù)字,并按從后到前的順序依次輸出。例 ,1。時,輸出結(jié)果為4,3,2如,輸入為1234 解:endl; 潣瑵?輸入園的半徑#include cinr; using namespace std; 的園的周長半徑為 r 潣瑵? 2*PAI*rendl; /*const float PAI=3.14159; 為 return 0; int main() float r;

20、cendl; #include using namespace std; temp=a; int main() a=b; b=c; c=temp; float a,b,c; 潣瑵?float temp; 交換后endl; couta= a b= 依次輸入 潣瑵?a,b,cendl; b c= cabc; c= b= a couta= b 76 / 11 n/=10; #include using namespace std; coutn_x0010_endl; int main() return 0; int n; 數(shù)整數(shù)的四 潣瑵?輸入一個位 n; for(int i=1;i=3;i+) c

21、outn_x0010_,; 分析與思考3.要求輸出分別求出其各位數(shù)字并輸出。的并且只有3位尾數(shù)的實(shí)數(shù),* 對任意輸入的小于1 0 3 6 8。的各數(shù)字之間要空2格。例如,輸入為0.368時,輸出結(jié)果為解:coutint(n*100)_x0010_ ; #include coutint(n*1000)_x0010_endl; using namespace std; return 0; int main() float n; 位的并且只有3 潣瑵?輸入的小于1n; cout; coutint(n) ; coutint(n*10) ; 實(shí)驗(yàn)二 控制結(jié)構(gòu)程序設(shè)計(jì) 1.實(shí)驗(yàn)?zāi)康囊?理解基本的解題技巧

22、,掌握用自頂向下、逐步求精的過程設(shè)計(jì)算法。)(1 語句和switch語句的使用。熟練掌握)(2 if/else 語句的使用以及區(qū)別。語句、whiledo/while語句和)(3 for熟練掌握 程序控制語句的使用。 )(4和掌握breakcontinue76 / 12 2.實(shí)驗(yàn)內(nèi)容 (1)閱讀下列程序,寫出(由指定的輸入)所產(chǎn)生的運(yùn)行結(jié)果,并指出其功能。 #include void main() int m,n; m = 1000; n = 850; cout “n(“ m , n n ) m = m n ; cout ( m , n ); while ( m n ) n = n m ; co

23、ut ( m , n ); cout “n” m ; 解:輸出結(jié)果為 (1000,850)(150,850)(150,700)(150,550)(150,400)(150,250)(150,100)(50,100)(50, 50)50 功能:不斷執(zhí)行m=m-n,直到m=n時為止,并將每次得到的結(jié)果輸出 #include void main() int m,n,k ; m = 1000 ; n = 45 ; cout “n(“ m : n =n ) m = m n ; 76 / 13 k = k + 1 ; cout k “-” m endl ; 解:輸出結(jié)果(1000:45)22-10 功能:

24、計(jì)算1000減去多少個45小于45 #include void main() int i; for ( i = 1 ; i = 5 ; i + ) if ( i % 2 ) cout *; else continue; cout # ; cout “$n” ; 解:*8992*8992*8992$ 功能:for循環(huán)中當(dāng)i為奇數(shù)時,輸出*,不是就繼續(xù)執(zhí)行 #include void main() int a = 1,b = 10; do b -= a ; a + ; while ( b - = 0 ) ; cout “a=” a “b=” b endl ; 解:輸出a=2b=8 功能:循環(huán)執(zhí)行b

25、=b-a,a+直到b-=0為止,并將此時a,b的值輸出。 76 / 14 )編寫程序?qū)崿F(xiàn)下列問題的求解。(2 求解下面函數(shù)的值。 x+y x0,y0 e10 x+y z= ln(x+y) 1|x+y|+1 log其它情況 10 編程求解下列各計(jì)算式: 100?i 1) 1?i7?i!! 2) i?1 3) 3572n?1XXXXn+1-6 4) Y=X(-1)的值,精確到10。 3!5!7!(2n?1)! 打印下面圖形。 1 1 3 1 1 3 5 3 1 1 3 5 7 5 3 1 1 3 5 7 9 7 5 3 1 1 3 21 3 1 編程產(chǎn)生出1到10以內(nèi)的所有數(shù)對并輸出,其中ij。

26、編程求出10000以內(nèi)的所有符合如下條件的數(shù):其高位數(shù)字小于低位數(shù)字。如12,238,3578等。但21,548不符合條件。 求任一整數(shù)N的標(biāo)準(zhǔn)分解式,即素?cái)?shù)因子之積。例如16=2*2*2*2, 15=3*5。 解: #include else #include z=log10(abs(x+y)+1); using namespace std; coutzendl; int main() return 0; int x,y; float z; coutenter x,yxy; if(x0 & y0) z=exp(x+y); else if(1=(x+y) & (x+y)10) z=log(x+

27、y); 76 / 15 coutsumendl; 1)#include using namespace std; return 0; int main() int n=100; int sum=0; for(int i=1;i=n;i+) sum+=i; s*=j; 2)#include sum+=s; using namespace std; +7!=sumendl; cout!+2!+int main() return 0; int n=7; int sum=0; for(int i=1;i=n;i+) int s=1; for(int j=1;j=i;j+) 40=sumendl; 3)

28、#include using namespace std; return 0; int main() int sum=0; for(int i=1;i=39;i+=2) sum+=i*(i+1); 6+394+52+3cout int main() 4)#include #include float x,y=0; using namespace std; coutenter xx; float f(int x,int n) for(int i=1;i+=2;) y+=pow(-1,i+1)*f(x,i); int s=1; if(f(x,i)1e-6) break; for(int i=1;i

29、=n;i+) s*=i; return pow(x,n)/s; coutyendl; 76 / 16 return 0; cout ; #include for(j=1;j=2*i-1;j+) #include coutsetw(3)2*i-1-abs(i-j)*2; #include coutendl; int main() return 0; for(int i=1;i=11;i+) for(int j=1;j=11-i;j+) #include couti,j; using namespace std; coutendl; int main() return 0; for(int i=1

30、;i=10;i+) for(int j=1;ji;j+) #include int main() using namespace std; 76 / 17 a=b; for(int i=1;i=10000;i+) while(n!=0); int a=i_x0010_,b,n=i; if(n=0) couti ; do n/=10; cout=a) break; n/=i; #include for(i=2;i=n;i+) using namespace std; while(n%i=0) cout*i; int main() n/=i; int n; coutn; return 0; cou

31、tn=; for(int i=2;i=n;i+) if(n%i=0) couti; break; 分析與思考3. * 編程求出數(shù)列的所有升或降的最大子序列。如下面數(shù)列的解為如下: 1,20,30,12,3,5,7,4,6,100,11,8 。 (1,20,30),(30,12,3),(3,5,7),(7,4),(4,6,100),(100,11,8)100 的末三位數(shù)。12* 編程求解:using namespace std; #include 76 / 18 break; const int num=12; cout),(; int main() coutb) static int n=2;

32、 cout,a; if(n=num) break; cinb; cinb; while(1) n+; cout(a; if(n=num) while(ab) cout); cout,b; break; a=b; if(n=num) break; coutb; n+; if(n=num) cout); #include using namespace std; coutaendl; return 0; int main() int a=1; for(int i=1;i=100;i+) a=a*12; a=a_x0010_00; 組 數(shù) 實(shí)驗(yàn)三 實(shí)驗(yàn)?zāi)康囊?. 掌握一維數(shù)組和二維數(shù)組的定義、初始

33、化賦值、元素引用的方法。)(1 初步了解數(shù)組名與地址的關(guān)系。(2) 掌握字符數(shù)組和字符串函數(shù)的使用。)(3 76 / 19 (4) 掌握與數(shù)組有關(guān)的算法(特別是排序和查找算法)。 2.實(shí)驗(yàn)內(nèi)容 (1)閱讀下列程序,寫出其運(yùn)行結(jié)果,并指出其功能。 #include #define N 10 void main() int aN; int s,i,j,t; for ( i = 0 ; i N ; i + ) if ( i % 2 ) a i = i * i ; else a i = 100 - ( i / 2 ) * ( i / 2 ) ; for ( i = 0 ; i N ; i + ) co

34、ut a i ; cout endl ; s = 0 ; for( i = 0 ; i N ; i + ) s = s + a i ; cout “sum of a = ” s ; for( i = 0 ; i = 0 & t a j ) a j + 1 = a j ; j - ; a j + 1 = t ; for( i = 0 ; i N ; i + ) cout a i ; cout endl ; 解:輸出1001999962591498481 Sum of a =6351009996918481492591 76 / 20 功能:第一個for循環(huán)內(nèi),當(dāng)i取奇數(shù)時,數(shù)組a中第i個數(shù)就為i

35、的平方,否則,數(shù)組a中第i個數(shù)為100-(i/2)*(i/2) ,此循環(huán)后輸出為1001999962591498481,也就是最終輸出的第一行。第二個for循環(huán)內(nèi),求的是數(shù)組a內(nèi)各元素之和。 輸出為sum of a =635。第三個for 循環(huán)內(nèi)嵌套一個while循環(huán),顯得比較復(fù)雜,描述困難,輸出為1009996918481492591 。 #include #include void main( ) char a 20 = ”TER” , b 20 = ”COMP” ; int i = 0 ; strcat( a , b ) ; while (a i + != 0 ) b i = a i ;

36、 cout b ; 解:輸出CERCOMPP 功能:程序讀入字符數(shù)組a和b內(nèi)的字符,并拼接,得到a字符數(shù)組內(nèi)容為TERCOMP, 在while循環(huán)內(nèi),第一次起條件便滿足,由于i為先引用后自增的關(guān)系,得到 b數(shù)組第一個為C剩下的為拼接后a數(shù)組T后的字母,最后輸出b為CERCOMP #include void main( ) int i = 0 , base , n , j , num 20 ; cin n base ; do i +; num i = n % base ; n = n / base ; while ( n != 0 ); for ( j = i ; j = 1 ; j-) cou

37、t num j ; 解:輸入4,輸出100。 功能:把十進(jìn)制數(shù)轉(zhuǎn)化為任意進(jìn)制的數(shù)。 (2)編寫程序?qū)崿F(xiàn)下列問題的求解。 76 / 21 編程產(chǎn)生下列數(shù)組,并輸出。 一維數(shù)組 1) (1 4 9 16 25 36 49 64 81 100) 2) (1 3 6 10 15 21 28 36 45 55) (1 2 3 5 8 13 21 34 55 89) 3) 二維數(shù)組 1) 1 2 3 4 5 6 2) 1 2 3 .n-1 0 2 3 4 5 6 0 2 3 4 . 0 1 3 4 5 6 0 1 3 4 5 . 1 2 4 5 6 0 1 2 . 5 6 0 1 2 3 n-1 0 1

38、.n-3 n-2 6 0 1 2 3 4 0 1 2 .n-2 n-1 3) 1 2 3 4 5 6 4) A B C D E F 2 1 2 3 4 5 B C E H L Q 3 2 1 2 3 4 C D F I M R 4 3 2 1 2 3 D E G J N S 5 4 3 2 1 2 E F H K O T 6 5 4 3 2 1 編程實(shí)現(xiàn)數(shù)組的排序:將有15個元素的整型數(shù)組按從小到大的次序排序。 編程求一組整數(shù)的最大公因子和最小公倍數(shù)。 隨機(jī)輸入一組數(shù)組元素值,利用題使一個數(shù)組有序。然后隨機(jī)輸入一個數(shù),用折半查找法在數(shù)組中查找,如在數(shù)組中,則輸出元素在數(shù)組中的位置;如不在,則輸

39、出提示。 將兩個字符串連接起來,不要用strcat。 解: (1)1)#include for(i=0;in;i+) coutai ; using namespace std; cout)endl; const int n=10; return 0; int main() int an; for(int i=0;in;i+) ai=(i+1)*(i+1); cout(; 2)#include int i=1,a10; using namespace std; a0=1; int main() 76 / 22 for(i=1;i10;i+) ai=ai-1+i+1; for(i=0;i10;i+

40、) coutai ; coutendl; return 0; for(i=0;in;i+) coutai ; 3)#include cout)endl; using namespace std; return 0; const int n=10; int main() int an; a0=1;a1=2; i=2;in;i+) for(int ai=ai-1+ai-2; cout(; (2) coutaij ; 1)#include coutendl; using namespace std; return 0; const int n=6; int main() int ann; for(i

41、nt i=0;in;i+) j=0;jn;j+) for(int aij=(i+j+1)%7; for(i=0;in;i+) j=0;jn;j+) for(int int *a=new int*n; 2)#include ai=new using namespace std; for(int i=0;in;i+) intn; int main() for(i=0;in;i+) int n; j=0;jn;j+) for(int nn; 76 / 23 for(i=0;in;i+) j=0;jn;j+) for(int coutaij ; coutendl; for(i=0;in;i+) delete ai; delete a; 3)#include for(i=0;in;i

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論