版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一C語言運(yùn)行環(huán)境一、實(shí)驗(yàn)?zāi)康?了解TC環(huán)境的組成。.學(xué)習(xí)TC環(huán)境的使用方法。.了解C語言程序從編輯、編譯、連接到運(yùn)行并得到運(yùn)行結(jié)果的過程。二、實(shí)驗(yàn)內(nèi)容.了解TC環(huán)境的組成。開機(jī)后進(jìn)入WINDOWS系統(tǒng)的〃資源管理器〃,找到TC環(huán)境所在的文件夾。一般情況下,TC環(huán)境都安裝在名為"TC"的子目錄下,具體存于硬盤的哪個分區(qū)請詢問實(shí)驗(yàn)室管理員。查看在TC目錄下的以字母TC開頭的文件,是否包括了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查看INCLUDE>LIB兩個子目錄下的文件。復(fù)習(xí)這些文件的作用。.進(jìn)入、退出和定制TC環(huán)境。運(yùn)行TC目錄下的TC.EXE文件,就可進(jìn)入TC環(huán)境。在WINDOWS環(huán)境下運(yùn)行文件的方法是用鼠標(biāo)雙擊要運(yùn)行的文件名,或在桌面上雙擊快捷圖標(biāo);在DOS環(huán)境下進(jìn)入到TC子目錄,用命令方式運(yùn)行TC.EXE程序。進(jìn)入TC環(huán)境后屏幕上顯示出TC環(huán)境的主畫面。退出TC環(huán)境,可在"FILE"菜單下選擇"QIUT"菜單項(xiàng),或用熱鍵<Alt+X>,計算機(jī)返回到操作系統(tǒng)的控制下。在程序開發(fā)的過程中,有時需要返回到操作系統(tǒng)界面下觀察程序的運(yùn)行情況,但是又要保留運(yùn)行的TC環(huán)境,操作方法是:選擇"File"菜單下的"OSshell”菜單項(xiàng)返到DOS操作 系統(tǒng)界面,用"EXIT”命令可重新進(jìn)入TC環(huán)境;用<Alt>+<空格>鍵返到WINDOWS界面,TC環(huán)境縮小為屏幕下方任務(wù)條上的一圖標(biāo),用鼠標(biāo)單擊該圖標(biāo)重新進(jìn)入TC環(huán)境。注意此時是返到操作系統(tǒng),TC環(huán)境沒有真正退出,如果此時再次運(yùn)行TC.EXE文件,剛才是返到WINDOWS環(huán)境時,會重新打開一個TC窗口,返到DOS環(huán)境時會給出一個錯誤提示:"Programtoobigtofitinmemory”,這是因?yàn)镈OS操作系統(tǒng)只管理640K的內(nèi)存,放不下兩個TC環(huán)境。WINDOWS操作系統(tǒng)對TC環(huán)境是作為一個窗口進(jìn)行管理的,因此WINDOWS窗口的一些屬性也是有效的。從TC環(huán)境返回WINDOWS系統(tǒng)時會出現(xiàn)一個快捷菜單(在任務(wù)條的TC圖標(biāo)上單擊鼠標(biāo)右鍵也可以出現(xiàn)快捷菜單),選擇“屬性”菜單項(xiàng),屏幕出現(xiàn)一個名為"TC屬性”的窗口,在該窗口里選擇“屏幕"一頁,在"用法”一項(xiàng)里選中“屏幕"單選鈕,單擊“應(yīng)用"按鈕,關(guān)閉"TC屬性”的窗口,TC環(huán)境以WINDOWS窗口形式出現(xiàn)。在窗口上方出現(xiàn)工具條,可以對窗口進(jìn)行定制,注意“全屏幕"和“中文"兩個工具鈕的作用。TC環(huán)境下的“Options”菜單下可對TC環(huán)境進(jìn)行設(shè)置,初學(xué)者要了解“Directories”的作用,一般不要改變系統(tǒng)的其它設(shè)置。關(guān)于"Directories”各項(xiàng)的作用和設(shè)置參閱本書關(guān)于TC環(huán)境的介紹,學(xué)會改變輸出文件的目錄。.運(yùn)行演示程序在TC目錄下有一個名為"BGIDEMO.C”的源程序,這本是為TC圖形函數(shù)提供的演示程序,運(yùn)行這個演示程序。在"File"菜單下選"Load”項(xiàng),在屏幕出現(xiàn)的"LoadFileName”窗口里輸入"BGIDEMO.C",該程序被裝入編輯窗口,按<Alt+R>鍵,程序被編譯、連接并運(yùn)行。注意運(yùn)行此程序需要圖形庫文件,一般被裝在TC目錄下,沒有這個圖形庫文件就不能運(yùn)行圖形演示程序。.編寫自己的第一個程序按鍵盤<Alt+E>鍵,激活編輯窗口,錄入如下C源程序:main(){printf("ThisisaCProgram\n")printf("Iamastudent\n");)按<Alt+R>鍵,編譯、連接、運(yùn)行程序。屏幕出現(xiàn)錯誤提示:statementmissing;infunctionmain通過提示,可以知道上面程序第二行的最后漏敲一個分號,改正后程序運(yùn)行。按<Alt>+<F5>鍵觀察輸出結(jié)果。按擊2>鍵,程序存入硬盤,文件名自定(如:testl)。通過資源管理器觀察當(dāng)前目錄下名為testl的幾個文件,它們的擴(kuò)展名分別是什么。改變"Options"菜單下"Directories”項(xiàng)下的輸出文件目錄,用*2>鍵把程序再存一次并運(yùn)行。在新設(shè)定的輸出目錄下觀察名為testl的文件的存儲情況。用“File"菜單下的"Writeto”項(xiàng),把文件存在新設(shè)定的輸出目錄處,文件名仍為testl。錄入如下程序:main(){printf("ThisisanotherCProgram\n");)按*2>鍵并用testl文件名保存,然后運(yùn)行這個程序。按<Alt>+<F3>鍵,屏幕出現(xiàn)剛才操作過的幾個文件的名字,將剛才設(shè)定目錄下的testl.c裝入編輯器后運(yùn)行它,我們觀察到輸出的仍是后來鍵入的程序的內(nèi)容。這是因?yàn)門C編譯系統(tǒng)在接收"RUN"命令后,對testl.c、testl.obj、testl.exe三個文件的建立時間進(jìn)行比較,如果擴(kuò)展名為.c的文件建立時間晚于.exe文件,它就認(rèn)為源文件進(jìn)行了修改,所以對源文件重新進(jìn)行編譯連接,如果.exe文件的時間晚于源文件的建立時間,就直接運(yùn)行這個文件,不再重新編譯連接。因?yàn)槲覀儍纱屋斎氲某绦蛎Q都是test1,新設(shè)定目錄中存放的是第一個程序的test1.c和第二個程序的test1.exe,就出現(xiàn)了現(xiàn)在的情況。.分別編譯、連接、運(yùn)行程序“Run”命令是將編譯、連接、運(yùn)行一次完成,實(shí)際完成了三件工作,下面分別進(jìn)行編譯、連接和運(yùn)行。用<ALT+C>命令打開"Compile”菜單,并選擇"Compiletoobject”命令編譯該源程序文件,然后選擇“Compile"菜單的"LinkEXEfile”命令調(diào)用連接程序連接成可執(zhí)行文件,最后用"Run"菜單的"Run”命令運(yùn)行程序,用“Run"菜單的"Userscreen命令”查看運(yùn)行結(jié)果。由于編譯、連接、運(yùn)行是分別進(jìn)行的,所以編譯系統(tǒng)不再對相關(guān)三個文件的建立時間進(jìn)行比較,我們看到的就是編輯器里當(dāng)前的程序輸出結(jié)果。.編寫程序,實(shí)現(xiàn)求整數(shù)10、20和35的平均值。三、實(shí)驗(yàn)要求.學(xué)習(xí)TC的基本操作,編寫程序。.運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在服務(wù)器的指定文件夾中。實(shí)驗(yàn)二數(shù)據(jù)類型及順序結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康?進(jìn)一步熟悉TC環(huán)境的使用方法。.學(xué)習(xí)C語言賦值語句和基本輸入輸出函數(shù)的使用。.編寫順序結(jié)構(gòu)程序并運(yùn)行。.了解數(shù)據(jù)類型在程序設(shè)計語言中的意義。二、實(shí)驗(yàn)內(nèi)容1.編程序,輸出如下圖形:****&&&&&*****&&&&&&&*******.編寫程序,實(shí)現(xiàn)下面的輸出格式和結(jié)果(表示空格):a=5,b=7,a-b=-2,a/b=71%c1=COMPUTER,c2=COMP,c3=COMPx=31.19,y=-31.2,z=31.1900s=3.11900e+002,t=-3.12e+001TOC\o"1-5"\h\z.編寫程序,輸入變量x值,輸出變量y的值,并分析輸出結(jié)果。⑴y = 2.4 *x - 1 / 2⑵y = x % 2/ 5 - x⑶y = x > 10&& x < 100⑷y = x >=10 || x<=1⑸y=(x-=x*10,x/=10)要求變量x、y是float型。.調(diào)試下列程序,使之能正確輸出3個整數(shù)之和及3個整數(shù)之積。main(){inta,b,c;printf("Pleaseenter3numbers:");scanf("%d,%d,%d",&a,&b,&c);ab=a+b;ac=a*c;printf("a+b+c=%d\n",a+b+c);printf("a*b*c=%d\n",a+c*b);輸入:40,50,60/.運(yùn)行下述程序,分析輸出結(jié)果。main(){inta=10;longintb=10;floatx=10.0;doubley=10.0;printf("a=%d,b=%ld,x=%f,y=%lf\n”,a,b,x,y);printf("a=%ld,b=%d,x=%lf,y=%f\n”,a,b,x,y);printf("x=%f,x=%e,x=%g\n”,x,x,x);)從此題的輸出結(jié)果認(rèn)識各種數(shù)據(jù)類型在內(nèi)存的存儲方式。三、實(shí)驗(yàn)要求.復(fù)習(xí)賦值語句和輸入輸出函數(shù)各種格式符的使用。.復(fù)習(xí)數(shù)據(jù)類型和運(yùn)算符的有關(guān)概念。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在服務(wù)器的指定文件夾中。四、選做題輸入圓半徑(5)和圓心角(600),輸出圓的周長、面積和扇形周長。實(shí)驗(yàn)三選擇結(jié)構(gòu)程序設(shè)計一、實(shí)驗(yàn)?zāi)康?正確使用關(guān)系表達(dá)式和邏輯表達(dá)式表達(dá)條件。.學(xué)習(xí)分支語句if和switch的使用方法。.進(jìn)一步熟悉TC集成環(huán)境的使用方法,學(xué)習(xí)TC環(huán)境提供的調(diào)試工具。二、實(shí)驗(yàn)內(nèi)容1.調(diào)試下列程序,使之具有如下功能:輸入a、b、c三個整數(shù),求最小值。寫出調(diào)試過程。main(){inta,b,c;scanf("%d%d%d”,a,b,c);if((a>b)&&(a>c))if(b<c)printf("min=%d\n”,b);elseprintf("min=%d\n”,c);if((a<b)&&(a<c))printf("min=%d\n”,a);)程序中包含有一些錯誤,按下述步驟進(jìn)行調(diào)試。⑴設(shè)置觀測變量。按<Alt+B>鍵,屏幕彈出“Addwatch”窗口,在窗口中可輸入要觀察的變量或表達(dá)式,此處輸入a,重復(fù)以上操作并分別輸入b、c,在屏幕下方的“message〃窗口顯示變量名a、b、c,且變量名的后面有提示,如a的后面是undefinedsymbol'a',這是因?yàn)槌绦驔]有運(yùn)行,變量沒有登記,所以TC環(huán)境不知道a是什么。⑵單步執(zhí)行程序。按*8>鍵,屏幕上半部“Edit”窗口中的程序第一行程序的文字背景色變?yōu)樘m色,表示此語句將被執(zhí)行。連續(xù)按擊8>鍵,蘭色條一句句下移。⑶通過單步執(zhí)行發(fā)現(xiàn)程序中的錯誤。當(dāng)單步執(zhí)行到scanf()函數(shù)一句時,屏幕自動切換到DOS窗口,等待用戶的輸入,假定我們輸入“123”,變量a、b、c接受后應(yīng)在屏幕信息窗口顯示出來,但是此時我們看到的卻不是我們輸入的數(shù)據(jù)。這時我們就要檢查程序。發(fā)現(xiàn)在調(diào)用scanf()函數(shù)中變量名前面沒有取地址運(yùn)算符“&“。我們輸入的數(shù)據(jù)沒有正確存入到變量中。經(jīng)改正后再單步運(yùn)行,變量a、b、c的值被正確輸入。繼續(xù)單步執(zhí)行,程序正確找到最小值并輸出。⑷通過充分測試發(fā)現(xiàn)程序中的錯誤。雖然程序可以運(yùn)行,并不能說程序就是正確的,因?yàn)榫幾g系統(tǒng)檢查程序沒有語法錯誤就可運(yùn)行了,但是編譯系統(tǒng)不能發(fā)現(xiàn)程序中的邏輯錯誤。一個程序必須通過嚴(yán)格的測試,把可能存在的錯誤都找出來并改正。關(guān)于如何進(jìn)行程序測試不在本書的講述范圍,此處僅對此例進(jìn)行測試的一些原則進(jìn)行介紹。剛才給出的輸入是變量a為最小值,且a、b、c都不相等的情況,可能的合理輸入還有:a為最小值且a、b、c相等,a為最小值且b、c相等,b為最小值且a、b、c互不相等,b為最小值且a、c相等,等等。嚴(yán)格說,在調(diào)試過程中對這些可能的情況都要進(jìn)行測試,才能保證軟件的質(zhì)量。所以程序的調(diào)試、測試是一項(xiàng)非常煩瑣的工作,也是非常重要的工作。對于初學(xué)者來說應(yīng)該建立良好的習(xí)慣,在調(diào)試程序的時候,應(yīng)該盡可能考慮到程序運(yùn)行時各種可能,設(shè)計相應(yīng)的用例。我們再次運(yùn)行程序,輸入為"2,1,3",程序輸出卻是"min=2"。用單步執(zhí)行的方法,馬上發(fā)現(xiàn)變量a、b、c的值是不對的,原因是程序要求輸入數(shù)據(jù)的分隔符是(還允許使用回車或<Tab>鍵。改正輸入后,程序沒有輸出,還是用單步執(zhí)行的方法,監(jiān)視程序的執(zhí)行過程,發(fā)現(xiàn)程序中條件設(shè)計有誤,經(jīng)過改正的程序如下:main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if((a<b)&&(a<c))printf("min=%d\n",a)elseif((b<a)&&(b<c))printf("min=%d\n",b);elseif((c<a)&&(c<b))printf("min=%d\n",c);elseprintf("Nofindminimum\n");)上述程序是按在三個數(shù)中僅有一個最小值時才稱其為最小值進(jìn)行設(shè)計的。另外,注意程序的書寫格式,一定要采用縮進(jìn)格式,即不同層次(分支)的語句左起的空格不同,這樣可以有效地提高程序的可讀性。.編寫程序,求解下列分段函數(shù):.某托兒所收2歲到6歲的孩子,2歲、3歲孩子進(jìn)小班(Lowerclass);4歲孩子進(jìn)中班(Middleclass);5歲、6歲孩子進(jìn)大班(Higherclass)。編寫程序(用switch語句),輸入孩子年齡,輸出年齡及進(jìn)入的班號。如:輸入:3,輸出:age:3,enterLowerclass。三、實(shí)驗(yàn)要求.復(fù)習(xí)關(guān)系表達(dá)式、邏輯表達(dá)式和if語句、switch語句。.學(xué)習(xí)程序的調(diào)試方法。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在軟盤上。四、選做題.自守數(shù)是其平方后尾數(shù)等于該數(shù)自身的自然數(shù)。例如:25*25=62576*76=5776任意輸入一個自然數(shù),判斷是否自守數(shù)并輸出:如:25yes25*25=62511no11*11=121.輸入月號,輸出月份的英文名稱。實(shí)驗(yàn)四循環(huán)結(jié)構(gòu)程序設(shè)計一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)循環(huán)語句for、while和do-while語句的使用方法。.學(xué)習(xí)用循環(huán)語句實(shí)現(xiàn)各種算法,例如窮舉法、迭代法等。.進(jìn)一步熟悉TC集成環(huán)境的使用方法。二、實(shí)驗(yàn)內(nèi)容.下列程序計算SUM的值。調(diào)試該程序,使之能正確地計算SUM。寫出調(diào)試過程。計算公式如下:main(){intt,s,i,n;scanf("%d”,&n);for(i=1;i<=n;i++)t=1/i;s=s+t;printf("s=%f\n”,s);)在調(diào)試過程中,用單步執(zhí)行的方法觀察變量s和t的值的變化,找到程序中存在的問題,加以改正。.下面程序的功能是計算n!。main(){inti,n,s=1;printf("Pleaseentern:");scanf("%d”,&n);for(i=1;i<=n;i++)s=s*i;printf("%d!=%d",n,s);)首次運(yùn)行先輸入n=4,輸出結(jié)果為4!=24,這時正確的。為了檢驗(yàn)程序的正確性,再輸入n=10,輸出為10!=24320,這顯然是錯誤的。為了找到程序的錯誤,可以通過單步執(zhí)行來觀察變量的變化。這次我們在for循環(huán)體中增加一條輸出語句,把變量s每次的運(yùn)算結(jié)果顯示出來。顯示的結(jié)果是:s=1s=2s=6s=24s=120s=720s=5040s=-25216s=-30336s=24320運(yùn)算過程中居然出現(xiàn)的負(fù)值,從顯示看出s=5040是7!,再乘以8應(yīng)是40320,實(shí)際卻是一個負(fù)數(shù)。分析產(chǎn)生這種現(xiàn)象的原因,把程序改正過來,再用n=20進(jìn)行實(shí)驗(yàn),分析所得到的結(jié)果。.北京市體育彩票采用整數(shù)1、2、3、……、36表示36種體育運(yùn)動,一張彩票可選擇7種運(yùn)動。編寫程序,選擇一張彩票的號碼,使得這張彩票的7個號碼之和是105且相鄰兩個號碼之差按順序依次是1、2、3、4、5、6。如果第一個號碼是1,則后續(xù)號碼應(yīng)是2、4、7、11、16、22。.編寫程序?qū)崿F(xiàn)輸入整數(shù)n,輸出如下所示由數(shù)字組成的菱形。(圖中n=5)121TOC\o"1-5"\h\z1 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3211 2 3 4 3 2 11 2 3 2 11211三、實(shí)驗(yàn)要求.復(fù)習(xí)for、while、do-while語句和continue、break語句。.在程序調(diào)試中,要實(shí)現(xiàn)準(zhǔn)備充分的測試用例。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。注意程序的書寫格式。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在服務(wù)器的指定文件夾中。四、選做題已知2001年1月1日是星期一,編寫程序,在屏幕上輸出2000年的年歷。關(guān)于閏年的計算方法:如果某年的年號能被400除盡,或能被4除盡但不能被100除盡,則這一年就是閏年。實(shí)驗(yàn)五數(shù)組一、實(shí)驗(yàn)?zāi)康?掌握數(shù)組的定義、賦值和輸入輸出的方法。.學(xué)習(xí)用數(shù)組實(shí)現(xiàn)相關(guān)的算法(如排序、求最大和最小值、對有序數(shù)組的插入等)。、熟悉TC集成環(huán)境的調(diào)試數(shù)組的方法。二、實(shí)驗(yàn)內(nèi)容1.調(diào)試下列程序,使之具有如下功能:輸入10個整數(shù),按每行3個數(shù)輸出這些整數(shù),最后輸出10個整數(shù)的平均值。寫出調(diào)試過程。main(){inti,n,a[10],av;for(i=0;i<n;i++)scanf("%d",a[i]);for(i=0;i<n;i++){printf("%d",a[i]);if(i%3==0)printf("\n");)for(i=0;i!=n;i++)av+=a[i];printf("av=%f\n”,av);)上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯誤的。調(diào)試時請注意變量的初值問題、輸出格式問題等。請使用前面實(shí)驗(yàn)所掌握的調(diào)試工具,判斷程序中的錯誤并改正。在程序運(yùn)行過程中,可以使用<Ctrl>+<Break>鍵終止程序的運(yùn)行,返回到TC環(huán)境。.編寫程序,任意輸入10個整數(shù)的數(shù)列,先將整數(shù)按照從大到小的順序進(jìn)行排序,然后輸入一個整數(shù)插入到數(shù)列中,使數(shù)列保持從大到小的順序。.輸入4X4的數(shù)組,編寫程序?qū)崿F(xiàn):⑴求出對角線上各元素的和;⑵求出對角線上行、列下標(biāo)均為偶數(shù)的各元素的積;⑶找出對角線上其值最大的元素和它在數(shù)組中的位置。三、實(shí)驗(yàn)要求.復(fù)習(xí)數(shù)組的定義、引用和相關(guān)算法的程序設(shè)計。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在軟盤上。四、選做題.設(shè)某班50人,寫一程序統(tǒng)計某一單科成績各分?jǐn)?shù)段的分布人數(shù),每人的成績隨機(jī)輸入,并要求按下面格式輸出統(tǒng)計結(jié)果;("XX”表示實(shí)際分布人數(shù))0--39XX40--49XX50--59XX????????????90--100XX.有一個n行m列的由整數(shù)組成的矩陣,請對矩陣中的元素重新進(jìn)行排列,使得同行元素中右邊的元素大于左邊的元素,同列元素中下邊的元素大于上邊的元素。實(shí)驗(yàn)六字符數(shù)據(jù)處理一、實(shí)驗(yàn)?zāi)康?掌握C語言中字符數(shù)組和字符串處理函數(shù)的使用。.掌握在字符串中刪除和插入字符的方法。.熟悉TC集成環(huán)境的調(diào)試字符串程序的方法。二、實(shí)驗(yàn)內(nèi)容1.調(diào)試下列程序,使之具有如下功能:任意輸入兩個字符串(如:"abc123"和"china"),并存放在a,b兩個數(shù)組中。然后把較短的字符串放在a數(shù)組,較長的字符串放在b數(shù)組。并輸出。main(){chara[10],b[10];intc,d,k;scanf("%s",&a);scanf("%s",&b);printf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d)for(k=0;k<d;k++){ch=a[k];a[k]=b[k];b[k]=ch;}printf("a=%s\n",a);printf("b=%s\n",b);}程序中的strlen是庫函數(shù),功能是求字符串的長度,它的原型保存在頭文件“string.h”中。調(diào)試時注意庫函數(shù)的調(diào)用方法,不同的字符串輸入方法,通過錯誤提示發(fā)現(xiàn)程序中的錯誤。.編寫程序,輸入若干個字符串,求出每個字符串的長度,并打印最長一個字符串的內(nèi)容。以"stop”作為輸入的最后一個字符串。.編寫程序,輸入任意一個含有空格的字符串(至少10個字符),刪除指定位置的字符后輸出該字符串。如:輸入州£1>11^123”和刪除位置3,則輸出:"BEIING123”。三、實(shí)驗(yàn)要求.復(fù)習(xí)字符串處理函數(shù)和字符數(shù)組的使用、庫函數(shù)的調(diào)用方法。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在軟盤上。四、選做題.編寫程序,輸入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f處插入字符串s2。如:輸入“BEIJING"、"123”和位置3,則輸出:“BEI123JING123”。.編寫程序,將輸入的兩個字符串進(jìn)行合并,合并后的字符串中的字符按照其ASCII碼從小到大的順序排序,在合并后的字符串中相同的字符只出現(xiàn)一次。實(shí)驗(yàn)七函數(shù)(1)一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)C語言中函數(shù)的定義和調(diào)用方法。.掌握通過參數(shù)在函數(shù)間傳遞數(shù)據(jù)的方法。.熟悉TC集成環(huán)境對包含函數(shù)調(diào)用的程序的調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容.調(diào)試下列程序,使之具有如下功能:fun函數(shù)是一個判斷整數(shù)是否為素數(shù)的函數(shù),使用該函數(shù)求1000以內(nèi)的素數(shù)平均值。寫出調(diào)試過程。#include"math.h"main(){inta=0,k;/*a保存素數(shù)之和*/floatav;/*av保存1000以內(nèi)素數(shù)的平均值*/for(k=2;k<=1000;k++)if(fun(k))/*判斷k是否為素數(shù)*/a+=k;av=a/1000;printf("av=%f\n”,av);)fun(intn)/*判斷輸入的整數(shù)是否為素數(shù)*/{inti,y=0;for(i=2;i<n;i++)if(n%i==0)y=1;elsey=0;returny;)本題調(diào)試的重點(diǎn)是如何判斷一個數(shù)是否為素數(shù)。根據(jù)素數(shù)的定義,一個正整數(shù)只能被1和它本身整除,這個數(shù)是素數(shù)。調(diào)試中采用TC環(huán)境提供單步執(zhí)行功能時,注意熱鍵*7>和*8>的區(qū)別。對于一個大型程序,如果僅需要對程序中的某一部分單步執(zhí)行時,可設(shè)置一些斷點(diǎn),用"Run"命令執(zhí)行程序到斷點(diǎn)處,然后再單步執(zhí)行程序。通過本例說明這樣調(diào)試程序的方法。在程序被運(yùn)行前,將屏幕光標(biāo)移到fun函數(shù)的for循環(huán)一句處,按<Ctrl>+<F8>鍵,該句背景色變?yōu)榧t色;用"Run”命令運(yùn)行程序,程序執(zhí)行到此處暫停執(zhí)行,背景色為淡蘭色,再用*7>或*8>單步執(zhí)行下面的程序;當(dāng)不需要單步執(zhí)行時,使用“Run”命令可以連續(xù)執(zhí)行程序,當(dāng)程序再次執(zhí)行到斷點(diǎn)處又會停下等待用戶的指令。將屏幕光標(biāo)移到已設(shè)斷點(diǎn)處,再按<Ctrl>+<F8>鍵,可以取消斷點(diǎn)。.編寫一個求水仙花數(shù)的函數(shù),求3位正整數(shù)的全部水仙花數(shù)中的次大值。所謂水仙花數(shù)是指三位整數(shù)的各位上的數(shù)字的立方和等于該整數(shù)本身。例如:153就是一個水仙花數(shù):153=13+53+33.編寫一個函數(shù),對輸入的整數(shù)k輸出它的全部素數(shù)因子。例如:當(dāng)k=126時,素數(shù)因子為:2,3,3,7。要求按如下格式輸出:126=2*3*3*7。三、實(shí)驗(yàn)要求.復(fù)習(xí)函數(shù)的定義和調(diào)用方法。.學(xué)習(xí)使用設(shè)置斷點(diǎn)的方法調(diào)試程序。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在軟盤上。四、選做題.任意輸入一個4位自然數(shù),調(diào)用函數(shù)輸出該自然數(shù)的各位數(shù)字組成的最大數(shù)。.某人購買的體育彩票猜中了4個號碼,這4個號碼按照從大到小的順序組成一個數(shù)字可被11整除,將其顛倒過來也可被11整除,編寫函數(shù)求符合這樣條件的4個號碼。關(guān)于體育彩票號碼的規(guī)則見實(shí)驗(yàn)四;可被11整除顛倒過來也可被11整除的正整數(shù)例如341,它可被11整除,顛倒過來143也可被11整除。實(shí)驗(yàn)八函數(shù)(2)一、實(shí)驗(yàn)?zāi)康?掌握含多個源文件的程序的編譯、連接和調(diào)試運(yùn)行的方法.學(xué)習(xí)遞歸程序設(shè)計,掌握遞歸函數(shù)的編寫規(guī)律。.熟悉TC集成環(huán)境的調(diào)試函數(shù)程序的方法二、實(shí)驗(yàn)內(nèi)容1、編寫兩個函數(shù),其功能分別為:⑴求N個整數(shù)的次大值和次小值⑵求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)輸入10個整數(shù),調(diào)用函數(shù)求它們的次大值和次小值,及次大值和次小值的最大公約數(shù)和最小公倍數(shù)。要求:這兩個函數(shù)和主函數(shù)分屬3個文件。求最大公約數(shù)和最小公倍數(shù)的方法(以12和8為例):輾轉(zhuǎn)相除法:兩數(shù)相除,若不能整除,則以除數(shù)作為被除數(shù),余數(shù)作為除數(shù),繼續(xù)相除,直到余數(shù)為0時,當(dāng)前除數(shù)就是最大公約數(shù)。而原來兩個數(shù)的積除以最大公約數(shù)的商就是最小公倍數(shù)。12812%8的余數(shù)為48%4的余數(shù)為0則4為最大公約數(shù),12*8/4為最小公倍數(shù)。相減法:兩個數(shù)中的大數(shù)減小數(shù),其差與減數(shù)再進(jìn)行大數(shù)減小數(shù),直到差與減數(shù)相等為止,此時的差或減數(shù)就是最大公約數(shù)。而原來兩個數(shù)的積除以最大公約數(shù)的商就是最小公倍數(shù)。12812-8=48-4=4則4為最大公約數(shù),12*8/4為最小公倍數(shù)。假定保存主函數(shù)的文件名是"file1.c",保存求次大值和次小值函數(shù)的文件名是"file2.c",保存求最大公約數(shù)和最小公倍數(shù)函數(shù)的文件名是"file3.c"?,F(xiàn)在再編輯一個文件,它的內(nèi)容如下:file1.cfile2.cfile3.c保存這個文件為"find.prj"。這是一個項(xiàng)目文件,表示文件中指定的幾個函數(shù)將連接為一個名為"find.exe"的可執(zhí)行文件。我們要將項(xiàng)目文件名通知TC環(huán)境,按<Alt+P>鍵,選擇"Project"菜單的"ProjectName"選項(xiàng),在"ProjectName"窗口輸入項(xiàng)目文件名。編譯系統(tǒng)這時將根據(jù)項(xiàng)目文件指出的源文件名分別進(jìn)行編譯,然后把編譯后的目標(biāo)文件(.obj文件)連接成一個可執(zhí)行文件。.用遞歸的方法求下面函數(shù)f(x)的值:f(x,n)=(n層根號)設(shè)n=5,x=100.編寫一個遞歸函數(shù),實(shí)現(xiàn)將任意的十進(jìn)制正整數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)。三、實(shí)驗(yàn)要求.復(fù)習(xí)遞歸程序設(shè)計和多文件程序的編寫和調(diào)試方法.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在軟盤上。四、選做題.編寫一個遞歸函數(shù),實(shí)現(xiàn)將任意的正整數(shù)按反序輸出。例如,輸入12345,輸出54321。.按下述遞歸定義編寫一個計算阿克曼函數(shù)的遞歸函數(shù):實(shí)驗(yàn)九指針⑴一、實(shí)驗(yàn)?zāi)康?掌握指針變量的定義與引用。.掌握指針與變量、指針與數(shù)組的關(guān)系。.掌握用數(shù)組指針作為函數(shù)參數(shù)的方法。.熟悉TC集成環(huán)境的調(diào)試指針程序的方法。二、實(shí)驗(yàn)內(nèi)容以下均用指針方法編程:.調(diào)試下列程序,使之具有如下功能:用指針法輸入12個數(shù),然后按每行4個數(shù)輸出。寫出調(diào)試過程。main(){intj,k,a[12],*p;for(j=0;j<12;j++)scanf("%d”,p++);for(j=0;j<12;j++){printf("%d”,*p++);if(j%4==0)printf("\n");))調(diào)試此程序時將a設(shè)置為一個"watch",數(shù)組a所有元素的值在一行顯示出來。調(diào)試時注意指針變量指向哪個目標(biāo)變量。.在主函數(shù)中任意輸入10個數(shù)存入一個數(shù)組,然后按照從小到大的順序輸出這10個數(shù),要求數(shù)組中元素按照輸入時的順序不能改變位置。.自己編寫一個比較兩個字符串s和t大小的函數(shù)strcomp(s,t),要求s小于t時返回-1,s等于t時返回0,s大于t時返回1。在主函數(shù)中任意輸入4個字符串,利用該函數(shù)求最小字符串。三、實(shí)驗(yàn)要求.復(fù)習(xí)指針的定義與使用方法。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在服務(wù)器的指定文件夾。四、選做題.在主函數(shù)中任意輸入9個數(shù),調(diào)用函數(shù)求最大值和最小值,在主函數(shù)中按每行3個數(shù)的形式輸出,其中最大值出現(xiàn)在第一行末尾,最小值出現(xiàn)在第3行的開頭。.請編程讀入一個字符串,并檢查其是否為回文(即正讀和反讀都是一樣的)。例如:讀入:MADAMIMADAM.輸出:YES讀入:ABCDBA.輸出:NO實(shí)驗(yàn)十指針⑵一、實(shí)驗(yàn)?zāi)康?掌握C語言中函數(shù)指針的使用方法。.掌握C語言中指針數(shù)組的使用方法。.熟悉TC集成環(huán)境的調(diào)試指針程序的方法。二、實(shí)驗(yàn)內(nèi)容1.調(diào)試下列程序,使之具有如下功能:任意輸入2個數(shù),調(diào)用兩個函數(shù)分別求:⑴2個數(shù)的和,⑵2個數(shù)交換值。要求用函數(shù)指針調(diào)用這兩個函數(shù),結(jié)果在主函數(shù)中輸出。main(){inta,b,c,(*p)();scanf("%d,%d",&a,&b);p=sum;*p(a,b,c);p=swap;*p(a,b);printf("sum=%d\n",c);printf("a=%d,b=%d\n",a,b);)sum(inta,intb,intc){c=a+b;)swap(inta;intb){intt;t=a;a=b;b=t;)調(diào)試程序時注意參數(shù)傳遞的是數(shù)值還是地址。.輸入一個3位數(shù),計算該數(shù)各位上的數(shù)字之和,如果在[1,12]之內(nèi),則輸出與和數(shù)相對應(yīng)的月份的英文名稱,否則輸出***。例如:輸入:123輸出:1+2+3=6fJune輸入:139輸出:1+3+9=13-***用指針數(shù)組記錄各月份英文單詞的首地址。.任意輸入5個字符串,調(diào)用函數(shù)按從大到小順序?qū)ψ址M(jìn)行排序,在主函數(shù)中輸出排序結(jié)果。三、實(shí)驗(yàn)要求.復(fù)習(xí)函數(shù)指針和指針數(shù)組的使用方法。.編寫程序,運(yùn)行程序并記錄運(yùn)行結(jié)果。.將源程序、目標(biāo)文件、可執(zhí)行文件和實(shí)驗(yàn)報告存在服務(wù)器的指定文件夾中。四、選做題.對數(shù)組A中的N(0<N<100)個整數(shù)從小到大進(jìn)行連續(xù)編號,要求不能改變數(shù)組A中元素的順
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版八年級道德與法治上冊聽課評課記錄《7.2服務(wù)社會》
- 2024-2025學(xué)年八年級物理全冊1.3站在巨人的肩膀上練習(xí)含解析新版滬科版
- 技術(shù)員年度工作規(guī)劃
- 公司行政部門個人工作計劃
- 年度幼兒教師個人工作計劃
- 物業(yè)客服部工作計劃范本
- 可調(diào)單價合同范本
- 知識產(chǎn)權(quán)授權(quán)協(xié)議書范本
- 商業(yè)店鋪?zhàn)赓U合同范本
- 紅河衛(wèi)生職業(yè)學(xué)院《物理化學(xué)(II)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報告
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計》課件-1:Python簡介與應(yīng)用領(lǐng)域
- 各類心理量表大全
- 體育概論(第二版)課件第三章體育目的
- DB11T 1481-2024生產(chǎn)經(jīng)營單位生產(chǎn)安全事故應(yīng)急預(yù)案評審規(guī)范
- 《氓》教學(xué)設(shè)計 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊
- 《網(wǎng)店運(yùn)營與管理》第3版 課件全套 白東蕊 第1-11章 網(wǎng)上開店概述- 移動網(wǎng)店運(yùn)營
- 2024年全國國家電網(wǎng)招聘之電網(wǎng)計算機(jī)考試歷年考試題(附答案)
- 化學(xué)元素周期表注音版
評論
0/150
提交評論