C語言程序設計實驗手冊_第1頁
C語言程序設計實驗手冊_第2頁
C語言程序設計實驗手冊_第3頁
C語言程序設計實驗手冊_第4頁
C語言程序設計實驗手冊_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計實驗手冊C語言程序設計實驗手冊/C語言程序設計實驗手冊實驗手冊使用與要求實驗操作是教學過程中理論聯(lián)系實際的重要環(huán)節(jié),而實驗報告的撰寫又是知識系統(tǒng)化的吸收和升華過程,因此,實驗報告應該體現(xiàn)完整性、規(guī)范性、正確性、有效性?,F(xiàn)將實驗報告撰寫的有關(guān)內(nèi)容說明如下:實驗前按實驗要求手寫程序或程序填空,并走查代碼,有疑問處標記,上機時在C語言集成開發(fā)環(huán)境下輸入并調(diào)試手寫程序,分析運行結(jié)果。實驗結(jié)束后填寫通過后的源程序和對實驗的總結(jié)。通過后的源程序可以手寫也可以打印粘貼。實驗項目一覽表序號實驗項目實驗性質(zhì)學時實驗一熟悉C語言編程環(huán)境驗證性2實驗二用C語言編寫簡單程序驗證性2實驗三分支結(jié)構(gòu)程序設計驗證性2實驗四循環(huán)結(jié)構(gòu)程序設計驗證性4實驗五函數(shù)程序設計驗證性4實驗六數(shù)組程序設計驗證性2實驗七指針程序設計驗證性4實驗八結(jié)構(gòu)體程序設計驗證性2實驗九程序設計進階綜合性2實驗十文件程序設計綜合性4

學號:姓名:成績:實驗一熟悉C語言編程環(huán)境實驗目的:1.熟悉C語言編程環(huán)境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序調(diào)試的思想,能找出并改正C程序中的錯誤實驗內(nèi)容:建立自己的文件夾:在磁盤上建立一個文件夾,用于存放自己的C程序1.2編程示例在屏幕上顯示一個短句“ProgramminginCisfun!”(教師示例,學生模仿并創(chuàng)新,如輸出漢字、特除字符等。學會使用編程環(huán)境VC++,啟動、編輯、編譯、運行、保存、關(guān)閉、打開)1.3編程在屏幕上顯示如下網(wǎng)格。+++||||||+++1.4調(diào)試示例改正下列程序中的錯誤,在屏幕上顯示“WelcometoYou!”。(掌握找錯、改錯的方法)源程序:#include<stdio.h>intmian(void){printf(WelcometoYou!\n")getchar();return0;}注:需要修改的語句直接在程序上標注并修改實驗總結(jié):

學號:姓名:成績:實驗二用C語言編寫簡單程序?qū)嶒災康模?.掌握算術(shù)表達式和賦值表達式的使用2.掌握基本輸出函數(shù)的使用3.能夠自己編程實現(xiàn)簡單的數(shù)據(jù)處理4.熟練掌握簡單if語句使用5.熟練掌握for語句的使用6.掌握簡單C程序的查錯方法、單步調(diào)試實驗內(nèi)容:調(diào)試以下程序,求華氏溫度對應的攝氏溫度。計算公式為:C=5*(f-32)/9#include<stdoi.h>intmain(void){intcelsius;fahr; scanf("%d",fahr);celsius=5*(fahr-32)/9;printf("fahr=d,celsius=%d\n",fahr,celsius);return0;}注:需要修改的語句直接在程序上標注并修改編寫程序計算定期存款本利之和:設銀行定期存款的年利率rate為2.25%,并已知存款期為n年,存款本金為capital元,試編程計算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入,輸出時保留兩位小數(shù)。計算公式為:deposit=capital(1+rate)n計算身體質(zhì)量指數(shù)一個稱為“身體質(zhì)量指數(shù)”(BMI)的量用來計算與體重有關(guān)的健康問題的危險程度。BMI按下面的公式計算:BMI=w/h2其中w是以千克為單位的體重。h是以米為單位的身高。大約20至25的BMI的值被認為是“正常的”,編寫一個應用程序,輸入體重和身高,輸出BMI,并判斷是否正常。水仙花數(shù)判斷輸入一個三位數(shù),判斷是否是水仙花數(shù),水仙花數(shù)是3位數(shù),數(shù)本身的值恰好等于各位數(shù)字的立方和如:153=13+53+33實驗總結(jié):

學號:姓名:成績:實驗三分支結(jié)構(gòu)程序設計實驗目的:1.熟悉掌握關(guān)系表達式和邏輯表達式的使用2.熟練掌握用嵌套的if語句和switch語句實現(xiàn)多分支結(jié)構(gòu)程序設計3.掌握使用斷點調(diào)試程序的方法實驗內(nèi)容:3.1按要求調(diào)試程序輸入?yún)?shù)a,b,c,求一元二次方程ax2+bx+c=0的根。include<stdio.h>#include<math.h>intmain(void){ doublea,b,c,d; printf("Entera,b,c\n"); scanf("%lf%lf%lf",&a,&b,&c); d=b*b-4*a*c; if(a==0){ if(b=0){ if(c==0) printf("參數(shù)都為零,方程無意義!\n");/*調(diào)試時設置斷點*/ else printf("a和b為0,c不為0,方程不成立\n"); } else printf("x=%0.2f\n",-c/b); } else if(d>=0){/*調(diào)試時設置斷點*/ printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a)); printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a)); } else{ printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a)); printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a)); }return0;/*調(diào)試時設置斷點*/}注:調(diào)試時按注釋位置設置三個斷點,單擊Go按鈕,輸入2.18.93.5,觀察變量值的情況。第一次斷點:a,b,c的值分別是:第二次斷點:d的值是:第三次斷點:運行窗口顯示:3.2求三角形的面積和周長輸入三角形的三條邊a,b,c,如果能構(gòu)成一個三角形,輸出面積area和周長perimeter(保留2位小數(shù));否則,輸出“Thesesidesdonotcorrespondtoavalidtriangle”。在一個三角形中,任意兩邊之和大于第三邊。三角形的面積計算公式:其中:s=(a+b+c)/23.3計算個人所得稅輸入一個職工的月薪salary,輸出應交的個人所得稅tax(保留2位小數(shù))。tax=rate*(salary-3500)-deduction當salary<=3500時,rate=0,deduction=0;當3500<salary<=5000時,rate=3%,deduction=0;當8000<salary<=12500時,rate=20%,deduction=555;當12500<salary<=38500時,rate=25%,deduction=1005;當38500<salary<=58500時,rate=30%,deduction=2755;當58500<salary<=83500時,rate=35%,deduction=5505;當83500<salary時,rate=45%,deduction=13505;3.4計算出租車費某市不同品牌出租車價格為:捷達5元起價,1公里內(nèi)收起步價,1公里外按1.4元/公里收??;速騰7元起價,1公里內(nèi)收起步價,1公里外按1.4元/公里收??;紅旗10元起價,1公里內(nèi)收起步價,1公里外按1.5元/公里收取。編寫程序,從鍵盤輸入乘車車型和乘車公里數(shù),輸出應付的車費。(采用switch語句實現(xiàn)車型選擇)實驗總結(jié):

學號:姓名:成績:實驗四循環(huán)結(jié)構(gòu)程序設計實驗目的:1.熟練掌握for、while、和do…while語句實現(xiàn)循環(huán)程序設計2.理解循環(huán)條件和循環(huán)體,以與三種循環(huán)語句的相同和不同之處3.熟練掌握break、continue語句的使用4.掌握使用“Debug”菜單調(diào)試程序的方法實驗內(nèi)容:4.1按要求調(diào)試程序改正下列程序中的錯誤,輸入2個正整數(shù)m和n,輸出它們的最小公倍數(shù)和最大公約數(shù)。#include<stdio.h>intmain(void){intm,n,j,k;/*j表示最小公倍數(shù),k表示最大公約數(shù)*/do{printf("Inputm:");scanf("%d",&m);printf("Inputn:");scanf("%d",&n);}while(m<0||n<0); j=m;while(j%n!=0)/*調(diào)試時設置斷點*/j=j+m; k=(m*n)/j;/*調(diào)試時設置斷點*/printf("最小公倍數(shù)是%d\n最大公約數(shù)是%d\n",j,k);return0;}注:調(diào)試時按注釋位置設置二個斷點,單擊Go按鈕,輸入37,觀察變量值的情況。第一次斷點:m,n的值分別是:第二次斷點:j的值是:若結(jié)果不對,停止調(diào)試,改正錯誤后,取消第一個斷點,單擊Go,到斷點處,此時j的值是:4.2編寫程序輸入一批正整數(shù)(以0或負數(shù)為結(jié)束標志),求其中的偶數(shù)和。4.3編寫程序給一個不多于5位的正整數(shù),要求:a.求出它是幾位數(shù);b.分別輸出每一位數(shù)字;c.按逆序輸出各位數(shù)字,例如原數(shù)為321,應輸出1234.4統(tǒng)計素數(shù)并求和輸入2個正整數(shù)m和n(1<=m,n<=500),統(tǒng)計并輸出m和n之間的素數(shù)的個數(shù)以與這些素數(shù)的和(素數(shù)就是只能被1和自身整除的正整數(shù),1不是素數(shù),2是素數(shù))。4.5編寫程序用一張一元票換1分、2分和5分的硬幣(至少各一枚),問有哪幾種換法?各幾枚?4.6猜數(shù)游戲先由計算機“想”一個1~100之間的數(shù)請人猜,如果人猜對了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜”的水平;否則計算機給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,結(jié)束游戲?!舅伎肌咳绻胹canf輸入用戶猜測的數(shù)據(jù)時,如果用戶不小心輸入了非法字符,如字符a,那么程序運行就會出錯,用什么方法可以避免這樣的錯誤發(fā)生呢?請編寫程序驗證方法的有效性。實驗總結(jié):

學號:姓名:成績:實驗五函數(shù)程序設計實驗目的:1.熟練掌握函數(shù)的定義和調(diào)用2.熟練掌握使用函數(shù)編寫程序3.掌握函數(shù)的實參、形參和返回值的概念和使用4.掌握單步調(diào)試進入函數(shù)和跳出函數(shù)的方法實驗內(nèi)容:5.1改錯改正下列程序中的錯誤,計算1!+2!+3!+4!+…+10!的值,要求定義并調(diào)用函數(shù)fact(n),計算n!,函數(shù)類型是double。#include<stdio.h>doublefact(intn)intmain(void){inti;doublesum;for(i=1;i<10;i++)sum=sum+fact(i);/*設置斷點*/printf("1!+2!+…+10!=%f\n",sum);return0;}doublefact(intn);{inti;doubleresult;for(i=1;i<=n;i++)fact(n)=fact(n)*i;returnresult;}注:1.需要修改的語句直接在程序上標注并修改2.設置斷點,單步進入函數(shù)和從函數(shù)返回主調(diào)函數(shù)5.2求a+aa+aaa+aa?a輸入2個正整數(shù)a和n,求a+aa+aaa+aa?a(n個a)之和。要求定義并調(diào)用函數(shù)fn(a,n),它的功能是返回aa?a(n個a)。例如,fn(3,2)的返回值是33。。5.3統(tǒng)計一個整數(shù)中數(shù)字的個數(shù)要求定義并調(diào)用函數(shù)countdigit(number,digit),它的功能是統(tǒng)計整數(shù)number中數(shù)字digit的個數(shù)。例如,countdigit(10090,0)的返回值是35.4判斷素數(shù)輸入一個正整數(shù)n,如果它是素數(shù),輸出"YES",否則,輸出"NO"(素數(shù)就是只能被1和自身整除的正整數(shù),1不是素數(shù),2是素數(shù))。要求定義并調(diào)用函數(shù)prime(m)判斷m是否為素數(shù)。5.5輸出Fibonacci序列輸入2個正整數(shù)m和n(1<=m,n<=10000),輸出m和n之間所有的Fibonacci數(shù)。Fibonacci序列(第1項起):1123581321要求定義并調(diào)用函數(shù)fib(n),它的功能是返回第n項Fibonacci數(shù)。例如,fib(7)的返回值是13。例:括號內(nèi)是說明輸入:20100(m=20,n=100)輸出:21345589(20到100之間的Fibonacci數(shù))實驗總結(jié):

學號:姓名:成績:實驗六數(shù)組程序設計實驗目的:1.熟練掌握一維數(shù)組、二維數(shù)組編程方法2.熟練掌握字符串的存儲和操作方法3.熟練掌握排序算法實驗內(nèi)容:6.1改錯改正下列程序中的錯誤,輸入一個正整數(shù)n(0<n<9)和一組(n個)有序的整數(shù),再輸入一個整數(shù)x,把x插入到這組數(shù)據(jù)中,使該組數(shù)據(jù)仍然有序。#include<stdio.h>intmain(){inti,j,n,x,a[n]; printf("輸入數(shù)據(jù)的個數(shù)n:");scanf("%d",&n);printf("輸入%d個整數(shù):",n);for(i=0;i<n;i++) scanf("%d",&a[i]);printf("輸入要插入的整數(shù):");scanf("%d",&x);for(i=0;i<n;i++){ if(x>a[i])continue; j=n-1; while(j>=i){/*調(diào)試時設置斷點*/ a[j]=a[j+1]; j++; }/*調(diào)試時設置斷點*/a[i]=x;break;}if(i==n)a[n]=x;for(i=0;i<n+1;i++)printf("%d",a[i]);putchar('\n');return0;}6.2求平均值輸入一個正整數(shù)n(1<n<=10),再輸入n個整數(shù),輸出平均值(保留2位小數(shù))。6.3交換最小值和最大值輸入一個正整數(shù)n(1<n<=10),再輸入n個整數(shù),將最小值與第一個數(shù)交換,最大值與最后一個數(shù)交換,然后輸出交換后的n個數(shù)。6.4排序輸入一個正整數(shù)n(1<n<=10),再輸入n個整數(shù),將它們從大到小排序后輸出。6.5改錯改正下列程序中的錯誤,輸入2個正整數(shù)m和n(m>=1,n<=6),然后輸入該m行n列二維數(shù)組a中的元素,分別求出各行元素之和并輸出。#include<stdio.h>intmain(){inta[6][6],i,j,m,n,sum;printf("inputm,n:");scanf("%d%d",&m,&n);printf("inputarray:\n");for(i=0;i<m;i++)/*調(diào)試時設置斷點*/for(j=0;i<n;j++) scanf("%d",&a[i][j]);sum=0;for(i=0;i<m;i++){ for(j=0;j<n;j++) sum=sum+a[i][j]; printf("sumofrow%dis%d\n",i,sum);/*調(diào)試時設置斷點*/}return0;}6.6編程找鞍點輸入1個正整數(shù)n(1≤n≤6)和n階方陣a中的元素,如果找到a的鞍點(鞍點的元素值在該行上最大,在該列上最?。?就輸出它的下標,否則,輸出"NO"(設a最多有1個鞍點)。6.7改錯改正下列程序中的錯誤,輸入一個以回車結(jié)束的字符串(少于80個字符),將它的內(nèi)容逆序輸出。如“ABCD”輸出為“DCBA”。#include<stdio.h>intmain(){inti,k,temp;charstr[]; printf("inputastring:");i=0;while((str[i]=getchar())!='\n')i++;str[i]='\0';k=i-1;for(i=0;i<k;i++){/*調(diào)試時設置斷點*/temp=str[i]; str[i]=str[k]; str[k]=temp; k++;}/*調(diào)試時設置斷點*/for(i=0;str[i]!='\0';i++)putchar(str[i]);return0;}6.8統(tǒng)計大寫輔音字母個數(shù)輸入一個以回車結(jié)束的字符串(少于80個字符),統(tǒng)計并輸出其中大寫輔音字母的個數(shù)(除A、E、I、O、U以外的大寫字母)。實驗總結(jié):

學號:姓名:成績:實驗七指針程序設計實驗目的:1.理解指針、地址和數(shù)組間的關(guān)系2.掌握通過指針操作數(shù)組元素的方法3.掌握數(shù)組名作為函數(shù)參數(shù)的編程方式4.掌握通過指針操作字符串的方法實驗內(nèi)容:7.1改錯改正下面程序中的錯誤。有n個整數(shù),使前面各數(shù)順序循環(huán)移動m個位置(m<n)。編寫一個函數(shù)實現(xiàn)以上功能,在主函數(shù)中輸入n個整數(shù)并輸出調(diào)整后的n個整數(shù)。#include<stdio.h>voidmov(int*,int,int);intmain(){intm,n,i,a[80],*p;printf("Inputn,m:");scanf("%d%d",&n,&m);for(p=a,i=0;i<n;i++)scanf("%d",&p++);mov(a,n,m);printf("Aftermove:");for(i=0;i<n;i++)printf("%5d",a[i]);return0;}voidmov(int*x,intn,intm){inti,j;for(i=0;i<m;i++){for(j=n-1;j>0;j--) x[j]=x[j-1]; /*調(diào)試時設置斷點*/ x[0]=x[n-1];}}7.2查找整數(shù)定義一個函數(shù)search(intlist[],intn,intx),在數(shù)組list中查找元素x,若找到則返回相應下標,否則返回-1。在main函數(shù)中調(diào)用search。補充程序完成search功能。#include<stdio.h>intsearch(intlist[],intn,intx);intmain(){inti,x,a[10],res;for(i=0;i<10;i++)scanf("%d",&a[i]);scanf("%d",&x);res=search(a,10,x);printf("%d",res);return0;}intsearch(intlist[],intn,intx){}7.3排序定義函數(shù)voidsort(inta[],intn),用選擇法對數(shù)組a中的元素排序。自己定義main函數(shù),并在其中調(diào)用sort函數(shù)。7.4改錯改正下面程序中的錯誤。輸入5個字符串,輸出其中最大的字符串。#include<stdio.h>#include<string.h>intmain(){inti;charstr[80],max[80];printf("Input5strings:\n");scanf("%s",str);max=str;for(i=1;i<5;i++){scanf("%s",str); if(max<str)/*調(diào)試時設置斷點*/ max=str;}printf("Maxis:%s\n",max);return0;}7.5字符串復制分別用字符數(shù)組和字符指針定義函數(shù)strmcpy(s,t,m),將字符串t中從m個字符開始的全部字符復制到字符串s中去。實驗總結(jié):

學號:姓名:成績:實驗八結(jié)構(gòu)程序設計實驗目的:1.掌握結(jié)構(gòu)體變量的基本使用方法2.掌握結(jié)構(gòu)體數(shù)組的基本使用方法3.掌握結(jié)構(gòu)體指針的概念,以與結(jié)構(gòu)指針作為函數(shù)參數(shù)的編程方法實驗內(nèi)容:8.1調(diào)試調(diào)試下面的程序,查看運行結(jié)果是否和題目要求相符。輸入一個正整數(shù)n(3<=n<=10),再輸入n個雇員的信息(如下表所示),輸出每人的姓名和實發(fā)工資(基本工資+浮動工資-支出)。工資表姓名基本工資浮動工資支出Zhang1200500100Wang35001000500Zhao2400800200#include<stdio.h>intmain(void){inti,n;structemp{charname[10];floatjbg; floatfdg; floatzc;}s[10];printf("n=");scanf("%d",&n);for(i=0;i<n;i++)scanf("%s%f%f%f",s[i].name,&s[i].jbg,&s[i].fdg,&s[i].zc);for(i=0;i<n;i++)/*調(diào)試時設置斷點*/printf("%5s,實發(fā)工資:%7.2f\n",s[i].name,s[i].jbg+s[i].fdg-s[i].zc);return0;}/*調(diào)試時設置斷點*/和題目要求是否相符?8.2日期換算定義一個關(guān)于年、月、日的結(jié)構(gòu),并編寫一函數(shù)計算某日是該年中的第幾天?注意閏年問題。8.3成績處理輸入一個正整數(shù)n,再輸入n個學生的學號和數(shù)學、英語、計算機成績,要求(1)計算每一個學生的平均成績。(2)計算每門課程的平均成績。(3)輸出平均成績最高的學生的記錄。(4)按平均成績從高到低輸出學生的成績單(學號、數(shù)學、英語、計算機成績和平均成績)實驗總結(jié):

學號:姓名:成績:實驗九程序設計進階實驗目的:1.了解結(jié)構(gòu)化程序設計的基本思想2.掌握使用工程組織多個程序文件的方法3.掌握函數(shù)嵌套、函數(shù)遞歸的編程方法4.理解指針與函數(shù)間的關(guān)系實驗內(nèi)容:9.1按要求調(diào)試程序編寫一個簡單加、減運算的計算器,輸入計算式的格式為整數(shù)常量運算符整數(shù)常量先分別編寫3個源程序文件,然后用建立工程的方法將這些文件組織起來。源程序1#include<stdio.h> intmain(void) {externintAdd(inta,intb); externintSub(inta,intb); intx,y,z; charch; scanf("%d%c

溫馨提示

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

評論

0/150

提交評論