函數與預處理
實習4 函數與預處理
1.實驗目的
(1)熟悉定義函數的方法、函數實參與形參的對應關係以及「值傳遞」的方式。
(2)熟悉函數的嵌套調用和遞歸調用的方法。
(3)熟悉全局變數、局部變數概念和使用方法。
(4)熟悉編譯預處理的應用。
(5)掌握多文件的程序的編譯和運行的方法。
2.實驗內容
事先編好程序,然後上機調試運行。
(1)寫一個判別素數的函數,在主函數輸入一個整數,輸出是否為素數的信息。
程序應當至少準備以下測試數據:17,34,2,1,。分別運行並檢查結果是否正確。
(2)寫一個函數驗證哥德巴赫猜想,一個不小於6的偶數可以表示為兩個素數之和,如6=3+3,8=3+5,10=3+7……在主函數中輸入一個不小於6的偶數n,然後調用函數goldbach,在goldbach函數中再調用prime函數,prime函數的作用是判別一個數是否為素數。在goldbach函數中輸出以下形式的結果:
34=3+31
運行時輸入該偶數的值為6,12,20,458,分析運行結果。如果輸入2,4,會出現什麼情況?修改程序,使之能輸出相應的信息。
(3)解Hanoi(漢諾)塔問題。古代有一個梵塔,塔內有3個座A,B,C,開始時A座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個老和尚想把這64個盤子從A座移到C座,但每次只允許移動一個盤子,而且在移動的過程中在3個座上都始終保持大盤在下,小盤在上。在移動過程中可以利用B座,要求編寫程序顯示出移動的步驟。
在運行時分別指定盤子數為3,5,7。並統計在不同盤子數的情況下,移動盤子多少次。請試一下如果盤子數為16,在你所用的計算機上要運行多少時間。設想一下,如果盤子數為64,會出現什麼情況。
(4)輸入一個字母字元,設置條件編譯,使之能根據需要將小寫字母改為大寫字母輸出,或將大寫字母改為小寫字母輸出。
(5)求a×b和am的值,其中b的值在程序中給出,a和m的值由鍵盤輸入,寫一個power函數求am的值,在主函數中求a×b,並調用power函數得到am的值。要求將主函數和power函數分別寫成兩個文件file1.cpp和file2.cpp,用extern將外部變數的作用域擴展到其他文件。建立一個項目文件,包含file1.cpp和file2.cpp,按照對包含多文件的程序的處理方法,對包含多文件的程序進行編譯、連接和運行。
通過這個簡單的程序,初步掌握處理包含多文件的程序的方法。
3.預習內容
(1)《4.7內置函數》、《4.8函數的重載》、《4.9函數模板》、《4.10有默認參數的函數》和《4.16頭文件》
(2)《15.7怎樣編輯和運行一個包含多文件的程序》
點擊展開全文
TAG:tonghui |