C語言運行環境_第1頁
C語言運行環境_第2頁
C語言運行環境_第3頁
C語言運行環境_第4頁
C語言運行環境_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗一C語言運行環境一、實驗目的.了解TC環境的組成。.學習TC環境的使用方法。.了解C語言程序從編輯、編譯、連接到運行并得到運行結果的過程。二、實驗內容.了解TC環境的組成。開機后進入WINDOWS系統的〃資源管理器〃,找到TC環境所在的文件夾。一般情況下,TC環境都安裝在名為"TC"的子目錄下,具體存于硬盤的哪個分區請詢問實驗室管理員。查看在TC目錄下的以字母TC開頭的文件,是否包括了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查看INCLUDE>LIB兩個子目錄下的文件。復習這些文件的作用。.進入、退出和定制TC環境。運行TC目錄下的TC.EXE文件,就可進入TC環境。在WINDOWS環境下運行文件的方法是用鼠標雙擊要運行的文件名,或在桌面上雙擊快捷圖標;在DOS環境下進入到TC子目錄,用命令方式運行TC.EXE程序。進入TC環境后屏幕上顯示出TC環境的主畫面。退出TC環境,可在"FILE"菜單下選擇"QIUT"菜單項,或用熱鍵<Alt+X>,計算機返回到操作系統的控制下。在程序開發的過程中,有時需要返回到操作系統界面下觀察程序的運行情況,但是又要保留運行的TC環境,操作方法是:選擇"File"菜單下的"OSshell”菜單項返到DOS操作 系統界面,用"EXIT”命令可重新進入TC環境;用<Alt>+<空格>鍵返到WINDOWS界面,TC環境縮小為屏幕下方任務條上的一圖標,用鼠標單擊該圖標重新進入TC環境。注意此時是返到操作系統,TC環境沒有真正退出,如果此時再次運行TC.EXE文件,剛才是返到WINDOWS環境時,會重新打開一個TC窗口,返到DOS環境時會給出一個錯誤提示:"Programtoobigtofitinmemory”,這是因為DOS操作系統只管理640K的內存,放不下兩個TC環境。WINDOWS操作系統對TC環境是作為一個窗口進行管理的,因此WINDOWS窗口的一些屬性也是有效的。從TC環境返回WINDOWS系統時會出現一個快捷菜單(在任務條的TC圖標上單擊鼠標右鍵也可以出現快捷菜單),選擇“屬性”菜單項,屏幕出現一個名為"TC屬性”的窗口,在該窗口里選擇“屏幕"一頁,在"用法”一項里選中“屏幕"單選鈕,單擊“應用"按鈕,關閉"TC屬性”的窗口,TC環境以WINDOWS窗口形式出現。在窗口上方出現工具條,可以對窗口進行定制,注意“全屏幕"和“中文"兩個工具鈕的作用。TC環境下的“Options”菜單下可對TC環境進行設置,初學者要了解“Directories”的作用,一般不要改變系統的其它設置。關于"Directories”各項的作用和設置參閱本書關于TC環境的介紹,學會改變輸出文件的目錄。.運行演示程序在TC目錄下有一個名為"BGIDEMO.C”的源程序,這本是為TC圖形函數提供的演示程序,運行這個演示程序。在"File"菜單下選"Load”項,在屏幕出現的"LoadFileName”窗口里輸入"BGIDEMO.C",該程序被裝入編輯窗口,按<Alt+R>鍵,程序被編譯、連接并運行。注意運行此程序需要圖形庫文件,一般被裝在TC目錄下,沒有這個圖形庫文件就不能運行圖形演示程序。.編寫自己的第一個程序按鍵盤<Alt+E>鍵,激活編輯窗口,錄入如下C源程序:main(){printf("ThisisaCProgram\n")printf("Iamastudent\n");)按<Alt+R>鍵,編譯、連接、運行程序。屏幕出現錯誤提示:statementmissing;infunctionmain通過提示,可以知道上面程序第二行的最后漏敲一個分號,改正后程序運行。按<Alt>+<F5>鍵觀察輸出結果。按擊2>鍵,程序存入硬盤,文件名自定(如:testl)。通過資源管理器觀察當前目錄下名為testl的幾個文件,它們的擴展名分別是什么。改變"Options"菜單下"Directories”項下的輸出文件目錄,用*2>鍵把程序再存一次并運行。在新設定的輸出目錄下觀察名為testl的文件的存儲情況。用“File"菜單下的"Writeto”項,把文件存在新設定的輸出目錄處,文件名仍為testl。錄入如下程序:main(){printf("ThisisanotherCProgram\n");)按*2>鍵并用testl文件名保存,然后運行這個程序。按<Alt>+<F3>鍵,屏幕出現剛才操作過的幾個文件的名字,將剛才設定目錄下的testl.c裝入編輯器后運行它,我們觀察到輸出的仍是后來鍵入的程序的內容。這是因為TC編譯系統在接收"RUN"命令后,對testl.c、testl.obj、testl.exe三個文件的建立時間進行比較,如果擴展名為.c的文件建立時間晚于.exe文件,它就認為源文件進行了修改,所以對源文件重新進行編譯連接,如果.exe文件的時間晚于源文件的建立時間,就直接運行這個文件,不再重新編譯連接。因為我們兩次輸入的程序名稱都是test1,新設定目錄中存放的是第一個程序的test1.c和第二個程序的test1.exe,就出現了現在的情況。.分別編譯、連接、運行程序“Run”命令是將編譯、連接、運行一次完成,實際完成了三件工作,下面分別進行編譯、連接和運行。用<ALT+C>命令打開"Compile”菜單,并選擇"Compiletoobject”命令編譯該源程序文件,然后選擇“Compile"菜單的"LinkEXEfile”命令調用連接程序連接成可執行文件,最后用"Run"菜單的"Run”命令運行程序,用“Run"菜單的"Userscreen命令”查看運行結果。由于編譯、連接、運行是分別進行的,所以編譯系統不再對相關三個文件的建立時間進行比較,我們看到的就是編輯器里當前的程序輸出結果。.編寫程序,實現求整數10、20和35的平均值。三、實驗要求.學習TC的基本操作,編寫程序。.運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在服務器的指定文件夾中。實驗二數據類型及順序結構一、實驗目的.進一步熟悉TC環境的使用方法。.學習C語言賦值語句和基本輸入輸出函數的使用。.編寫順序結構程序并運行。.了解數據類型在程序設計語言中的意義。二、實驗內容1.編程序,輸出如下圖形:****&&&&&*****&&&&&&&*******.編寫程序,實現下面的輸出格式和結果(表示空格):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的值,并分析輸出結果。⑴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型。.調試下列程序,使之能正確輸出3個整數之和及3個整數之積。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/.運行下述程序,分析輸出結果。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);)從此題的輸出結果認識各種數據類型在內存的存儲方式。三、實驗要求.復習賦值語句和輸入輸出函數各種格式符的使用。.復習數據類型和運算符的有關概念。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在服務器的指定文件夾中。四、選做題輸入圓半徑(5)和圓心角(600),輸出圓的周長、面積和扇形周長。實驗三選擇結構程序設計一、實驗目的.正確使用關系表達式和邏輯表達式表達條件。.學習分支語句if和switch的使用方法。.進一步熟悉TC集成環境的使用方法,學習TC環境提供的調試工具。二、實驗內容1.調試下列程序,使之具有如下功能:輸入a、b、c三個整數,求最小值。寫出調試過程。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);)程序中包含有一些錯誤,按下述步驟進行調試。⑴設置觀測變量。按<Alt+B>鍵,屏幕彈出“Addwatch”窗口,在窗口中可輸入要觀察的變量或表達式,此處輸入a,重復以上操作并分別輸入b、c,在屏幕下方的“message〃窗口顯示變量名a、b、c,且變量名的后面有提示,如a的后面是undefinedsymbol'a',這是因為程序沒有運行,變量沒有登記,所以TC環境不知道a是什么。⑵單步執行程序。按*8>鍵,屏幕上半部“Edit”窗口中的程序第一行程序的文字背景色變為蘭色,表示此語句將被執行。連續按擊8>鍵,蘭色條一句句下移。⑶通過單步執行發現程序中的錯誤。當單步執行到scanf()函數一句時,屏幕自動切換到DOS窗口,等待用戶的輸入,假定我們輸入“123”,變量a、b、c接受后應在屏幕信息窗口顯示出來,但是此時我們看到的卻不是我們輸入的數據。這時我們就要檢查程序。發現在調用scanf()函數中變量名前面沒有取地址運算符“&“。我們輸入的數據沒有正確存入到變量中。經改正后再單步運行,變量a、b、c的值被正確輸入。繼續單步執行,程序正確找到最小值并輸出。⑷通過充分測試發現程序中的錯誤。雖然程序可以運行,并不能說程序就是正確的,因為編譯系統檢查程序沒有語法錯誤就可運行了,但是編譯系統不能發現程序中的邏輯錯誤。一個程序必須通過嚴格的測試,把可能存在的錯誤都找出來并改正。關于如何進行程序測試不在本書的講述范圍,此處僅對此例進行測試的一些原則進行介紹。剛才給出的輸入是變量a為最小值,且a、b、c都不相等的情況,可能的合理輸入還有:a為最小值且a、b、c相等,a為最小值且b、c相等,b為最小值且a、b、c互不相等,b為最小值且a、c相等,等等。嚴格說,在調試過程中對這些可能的情況都要進行測試,才能保證軟件的質量。所以程序的調試、測試是一項非常煩瑣的工作,也是非常重要的工作。對于初學者來說應該建立良好的習慣,在調試程序的時候,應該盡可能考慮到程序運行時各種可能,設計相應的用例。我們再次運行程序,輸入為"2,1,3",程序輸出卻是"min=2"。用單步執行的方法,馬上發現變量a、b、c的值是不對的,原因是程序要求輸入數據的分隔符是(還允許使用回車或<Tab>鍵。改正輸入后,程序沒有輸出,還是用單步執行的方法,監視程序的執行過程,發現程序中條件設計有誤,經過改正的程序如下: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");)上述程序是按在三個數中僅有一個最小值時才稱其為最小值進行設計的。另外,注意程序的書寫格式,一定要采用縮進格式,即不同層次(分支)的語句左起的空格不同,這樣可以有效地提高程序的可讀性。.編寫程序,求解下列分段函數:.某托兒所收2歲到6歲的孩子,2歲、3歲孩子進小班(Lowerclass);4歲孩子進中班(Middleclass);5歲、6歲孩子進大班(Higherclass)。編寫程序(用switch語句),輸入孩子年齡,輸出年齡及進入的班號。如:輸入:3,輸出:age:3,enterLowerclass。三、實驗要求.復習關系表達式、邏輯表達式和if語句、switch語句。.學習程序的調試方法。.編寫程序,運行程序并記錄運行結果.將源程序、目標文件、可執行文件和實驗報告存在軟盤上。四、選做題.自守數是其平方后尾數等于該數自身的自然數。例如:25*25=62576*76=5776任意輸入一個自然數,判斷是否自守數并輸出:如:25yes25*25=62511no11*11=121.輸入月號,輸出月份的英文名稱。實驗四循環結構程序設計一、實驗目的.學習循環語句for、while和do-while語句的使用方法。.學習用循環語句實現各種算法,例如窮舉法、迭代法等。.進一步熟悉TC集成環境的使用方法。二、實驗內容.下列程序計算SUM的值。調試該程序,使之能正確地計算SUM。寫出調試過程。計算公式如下: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);)在調試過程中,用單步執行的方法觀察變量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);)首次運行先輸入n=4,輸出結果為4!=24,這時正確的。為了檢驗程序的正確性,再輸入n=10,輸出為10!=24320,這顯然是錯誤的。為了找到程序的錯誤,可以通過單步執行來觀察變量的變化。這次我們在for循環體中增加一條輸出語句,把變量s每次的運算結果顯示出來。顯示的結果是:s=1s=2s=6s=24s=120s=720s=5040s=-25216s=-30336s=24320運算過程中居然出現的負值,從顯示看出s=5040是7!,再乘以8應是40320,實際卻是一個負數。分析產生這種現象的原因,把程序改正過來,再用n=20進行實驗,分析所得到的結果。.北京市體育彩票采用整數1、2、3、……、36表示36種體育運動,一張彩票可選擇7種運動。編寫程序,選擇一張彩票的號碼,使得這張彩票的7個號碼之和是105且相鄰兩個號碼之差按順序依次是1、2、3、4、5、6。如果第一個號碼是1,則后續號碼應是2、4、7、11、16、22。.編寫程序實現輸入整數n,輸出如下所示由數字組成的菱形。(圖中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三、實驗要求.復習for、while、do-while語句和continue、break語句。.在程序調試中,要實現準備充分的測試用例。.編寫程序,運行程序并記錄運行結果。注意程序的書寫格式。.將源程序、目標文件、可執行文件和實驗報告存在服務器的指定文件夾中。四、選做題已知2001年1月1日是星期一,編寫程序,在屏幕上輸出2000年的年歷。關于閏年的計算方法:如果某年的年號能被400除盡,或能被4除盡但不能被100除盡,則這一年就是閏年。實驗五數組一、實驗目的.掌握數組的定義、賦值和輸入輸出的方法。.學習用數組實現相關的算法(如排序、求最大和最小值、對有序數組的插入等)。、熟悉TC集成環境的調試數組的方法。二、實驗內容1.調試下列程序,使之具有如下功能:輸入10個整數,按每行3個數輸出這些整數,最后輸出10個整數的平均值。寫出調試過程。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);)上面給出的程序是完全可以運行的,但是運行結果是完全錯誤的。調試時請注意變量的初值問題、輸出格式問題等。請使用前面實驗所掌握的調試工具,判斷程序中的錯誤并改正。在程序運行過程中,可以使用<Ctrl>+<Break>鍵終止程序的運行,返回到TC環境。.編寫程序,任意輸入10個整數的數列,先將整數按照從大到小的順序進行排序,然后輸入一個整數插入到數列中,使數列保持從大到小的順序。.輸入4X4的數組,編寫程序實現:⑴求出對角線上各元素的和;⑵求出對角線上行、列下標均為偶數的各元素的積;⑶找出對角線上其值最大的元素和它在數組中的位置。三、實驗要求.復習數組的定義、引用和相關算法的程序設計。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在軟盤上。四、選做題.設某班50人,寫一程序統計某一單科成績各分數段的分布人數,每人的成績隨機輸入,并要求按下面格式輸出統計結果;("XX”表示實際分布人數)0--39XX40--49XX50--59XX????????????90--100XX.有一個n行m列的由整數組成的矩陣,請對矩陣中的元素重新進行排列,使得同行元素中右邊的元素大于左邊的元素,同列元素中下邊的元素大于上邊的元素。實驗六字符數據處理一、實驗目的.掌握C語言中字符數組和字符串處理函數的使用。.掌握在字符串中刪除和插入字符的方法。.熟悉TC集成環境的調試字符串程序的方法。二、實驗內容1.調試下列程序,使之具有如下功能:任意輸入兩個字符串(如:"abc123"和"china"),并存放在a,b兩個數組中。然后把較短的字符串放在a數組,較長的字符串放在b數組。并輸出。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是庫函數,功能是求字符串的長度,它的原型保存在頭文件“string.h”中。調試時注意庫函數的調用方法,不同的字符串輸入方法,通過錯誤提示發現程序中的錯誤。.編寫程序,輸入若干個字符串,求出每個字符串的長度,并打印最長一個字符串的內容。以"stop”作為輸入的最后一個字符串。.編寫程序,輸入任意一個含有空格的字符串(至少10個字符),刪除指定位置的字符后輸出該字符串。如:輸入州£1>11^123”和刪除位置3,則輸出:"BEIING123”。三、實驗要求.復習字符串處理函數和字符數組的使用、庫函數的調用方法。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在軟盤上。四、選做題.編寫程序,輸入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f處插入字符串s2。如:輸入“BEIJING"、"123”和位置3,則輸出:“BEI123JING123”。.編寫程序,將輸入的兩個字符串進行合并,合并后的字符串中的字符按照其ASCII碼從小到大的順序排序,在合并后的字符串中相同的字符只出現一次。實驗七函數(1)一、實驗目的.學習C語言中函數的定義和調用方法。.掌握通過參數在函數間傳遞數據的方法。.熟悉TC集成環境對包含函數調用的程序的調試方法。二、實驗內容.調試下列程序,使之具有如下功能:fun函數是一個判斷整數是否為素數的函數,使用該函數求1000以內的素數平均值。寫出調試過程。#include"math.h"main(){inta=0,k;/*a保存素數之和*/floatav;/*av保存1000以內素數的平均值*/for(k=2;k<=1000;k++)if(fun(k))/*判斷k是否為素數*/a+=k;av=a/1000;printf("av=%f\n”,av);)fun(intn)/*判斷輸入的整數是否為素數*/{inti,y=0;for(i=2;i<n;i++)if(n%i==0)y=1;elsey=0;returny;)本題調試的重點是如何判斷一個數是否為素數。根據素數的定義,一個正整數只能被1和它本身整除,這個數是素數。調試中采用TC環境提供單步執行功能時,注意熱鍵*7>和*8>的區別。對于一個大型程序,如果僅需要對程序中的某一部分單步執行時,可設置一些斷點,用"Run"命令執行程序到斷點處,然后再單步執行程序。通過本例說明這樣調試程序的方法。在程序被運行前,將屏幕光標移到fun函數的for循環一句處,按<Ctrl>+<F8>鍵,該句背景色變為紅色;用"Run”命令運行程序,程序執行到此處暫停執行,背景色為淡蘭色,再用*7>或*8>單步執行下面的程序;當不需要單步執行時,使用“Run”命令可以連續執行程序,當程序再次執行到斷點處又會停下等待用戶的指令。將屏幕光標移到已設斷點處,再按<Ctrl>+<F8>鍵,可以取消斷點。.編寫一個求水仙花數的函數,求3位正整數的全部水仙花數中的次大值。所謂水仙花數是指三位整數的各位上的數字的立方和等于該整數本身。例如:153就是一個水仙花數:153=13+53+33.編寫一個函數,對輸入的整數k輸出它的全部素數因子。例如:當k=126時,素數因子為:2,3,3,7。要求按如下格式輸出:126=2*3*3*7。三、實驗要求.復習函數的定義和調用方法。.學習使用設置斷點的方法調試程序。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在軟盤上。四、選做題.任意輸入一個4位自然數,調用函數輸出該自然數的各位數字組成的最大數。.某人購買的體育彩票猜中了4個號碼,這4個號碼按照從大到小的順序組成一個數字可被11整除,將其顛倒過來也可被11整除,編寫函數求符合這樣條件的4個號碼。關于體育彩票號碼的規則見實驗四;可被11整除顛倒過來也可被11整除的正整數例如341,它可被11整除,顛倒過來143也可被11整除。實驗八函數(2)一、實驗目的.掌握含多個源文件的程序的編譯、連接和調試運行的方法.學習遞歸程序設計,掌握遞歸函數的編寫規律。.熟悉TC集成環境的調試函數程序的方法二、實驗內容1、編寫兩個函數,其功能分別為:⑴求N個整數的次大值和次小值⑵求兩個整數的最大公約數和最小公倍數輸入10個整數,調用函數求它們的次大值和次小值,及次大值和次小值的最大公約數和最小公倍數。要求:這兩個函數和主函數分屬3個文件。求最大公約數和最小公倍數的方法(以12和8為例):輾轉相除法:兩數相除,若不能整除,則以除數作為被除數,余數作為除數,繼續相除,直到余數為0時,當前除數就是最大公約數。而原來兩個數的積除以最大公約數的商就是最小公倍數。12812%8的余數為48%4的余數為0則4為最大公約數,12*8/4為最小公倍數。相減法:兩個數中的大數減小數,其差與減數再進行大數減小數,直到差與減數相等為止,此時的差或減數就是最大公約數。而原來兩個數的積除以最大公約數的商就是最小公倍數。12812-8=48-4=4則4為最大公約數,12*8/4為最小公倍數。假定保存主函數的文件名是"file1.c",保存求次大值和次小值函數的文件名是"file2.c",保存求最大公約數和最小公倍數函數的文件名是"file3.c"?,F在再編輯一個文件,它的內容如下:file1.cfile2.cfile3.c保存這個文件為"find.prj"。這是一個項目文件,表示文件中指定的幾個函數將連接為一個名為"find.exe"的可執行文件。我們要將項目文件名通知TC環境,按<Alt+P>鍵,選擇"Project"菜單的"ProjectName"選項,在"ProjectName"窗口輸入項目文件名。編譯系統這時將根據項目文件指出的源文件名分別進行編譯,然后把編譯后的目標文件(.obj文件)連接成一個可執行文件。.用遞歸的方法求下面函數f(x)的值:f(x,n)=(n層根號)設n=5,x=100.編寫一個遞歸函數,實現將任意的十進制正整數轉換為八進制數。三、實驗要求.復習遞歸程序設計和多文件程序的編寫和調試方法.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在軟盤上。四、選做題.編寫一個遞歸函數,實現將任意的正整數按反序輸出。例如,輸入12345,輸出54321。.按下述遞歸定義編寫一個計算阿克曼函數的遞歸函數:實驗九指針⑴一、實驗目的.掌握指針變量的定義與引用。.掌握指針與變量、指針與數組的關系。.掌握用數組指針作為函數參數的方法。.熟悉TC集成環境的調試指針程序的方法。二、實驗內容以下均用指針方法編程:.調試下列程序,使之具有如下功能:用指針法輸入12個數,然后按每行4個數輸出。寫出調試過程。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");))調試此程序時將a設置為一個"watch",數組a所有元素的值在一行顯示出來。調試時注意指針變量指向哪個目標變量。.在主函數中任意輸入10個數存入一個數組,然后按照從小到大的順序輸出這10個數,要求數組中元素按照輸入時的順序不能改變位置。.自己編寫一個比較兩個字符串s和t大小的函數strcomp(s,t),要求s小于t時返回-1,s等于t時返回0,s大于t時返回1。在主函數中任意輸入4個字符串,利用該函數求最小字符串。三、實驗要求.復習指針的定義與使用方法。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在服務器的指定文件夾。四、選做題.在主函數中任意輸入9個數,調用函數求最大值和最小值,在主函數中按每行3個數的形式輸出,其中最大值出現在第一行末尾,最小值出現在第3行的開頭。.請編程讀入一個字符串,并檢查其是否為回文(即正讀和反讀都是一樣的)。例如:讀入:MADAMIMADAM.輸出:YES讀入:ABCDBA.輸出:NO實驗十指針⑵一、實驗目的.掌握C語言中函數指針的使用方法。.掌握C語言中指針數組的使用方法。.熟悉TC集成環境的調試指針程序的方法。二、實驗內容1.調試下列程序,使之具有如下功能:任意輸入2個數,調用兩個函數分別求:⑴2個數的和,⑵2個數交換值。要求用函數指針調用這兩個函數,結果在主函數中輸出。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;)調試程序時注意參數傳遞的是數值還是地址。.輸入一個3位數,計算該數各位上的數字之和,如果在[1,12]之內,則輸出與和數相對應的月份的英文名稱,否則輸出***。例如:輸入:123輸出:1+2+3=6fJune輸入:139輸出:1+3+9=13-***用指針數組記錄各月份英文單詞的首地址。.任意輸入5個字符串,調用函數按從大到小順序對字符串進行排序,在主函數中輸出排序結果。三、實驗要求.復習函數指針和指針數組的使用方法。.編寫程序,運行程序并記錄運行結果。.將源程序、目標文件、可執行文件和實驗報告存在服務器的指定文件夾中。四、選做題.對數組A中的N(0<N<100)個整數從小到大進行連續編號,要求不能改變數組A中元素的順

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論