c語言實驗報告1_第1頁
c語言實驗報告1_第2頁
c語言實驗報告1_第3頁
c語言實驗報告1_第4頁
c語言實驗報告1_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗名稱:熟悉C程序的運行環(huán)境一、 實驗目的和要求了解TurboC++3.0的基本操作方法,學會獨立使用該系統(tǒng)編輯、編譯、連接和運行一個C程序通過運行簡單的C程序,初步了解C源程序的特點二、 實驗內(nèi)容和原理輸入并運行一個簡單、正確的程序include<stdio.h>voidmain(){printf("Thisisacprogram\n");}輸入一個有錯誤的程序,修改錯誤,直到程序能正確運行,分析程序運行結(jié)果。include<stdio.h>voidmain(){inta,b,suma=123;b=456;sum=a+bprintf("sumis%d\n",sum);}輸入并運行一個需要在運行時輸入數(shù)據(jù)的程序,輸入數(shù)據(jù),觀察運行結(jié)果。#include<stdio.h>voidmain(){intmax(intx,inty);inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d”,c);}intmax(intx,inty){intz;z=y;if(x>y)z=x;return(z);}三、 實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。四、 算法描述及實驗步驟內(nèi)容1啟動TC++3.0,新建一個C文件;輸入程序1;(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功,再次保存文件;(5)連接程序、運行程序,觀察運行結(jié)果。內(nèi)容2(1) 啟動TC++3.0,新建一個C文件;(2) 輸入程序2;(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序,觀察運行結(jié)果。內(nèi)容3(1) 啟動TC++3.0,新建一個C文件;(2) 輸入程序2;(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序;(6) 輸入數(shù)據(jù),觀察運行結(jié)果。五、調(diào)試過程1?輸入后,按Alt+F9編譯,出現(xiàn)如下信息:Linescompiled:WarningsLinescompiled:Warnings:Errors:成功編譯。2.輸入后,按Alt+F9編譯,出現(xiàn)如下信息:ErrorC:XJMSOFTXCLfiNGU?lXTCXS¥ll.C4:DeclarationsyntaxerrorinfunctionmaEarningC:\JMSOFTXCLANGU~lXTC\Syil.C6:PossibleuseofbeforedefinitionErrorC:\JMSOFT\CLANGU~1XTC\S¥11.C6:Statementmissing;infunctionmainIJarningC=\JMgQFT\CLANGUEl\TC\gY:L:L-C'sum'isHssignedavaluewhichisne經(jīng)分析是由于inta,b,sum與sum=a+b倆句未加;導致。3.輸入后,按Alt+F9編譯,出現(xiàn)如下信息:ErrorC:\PEOGRA~1XCLANGU~1XTC\SHI¥AN1.CPP7:Statementmissing;infunctionUarningC:XPROGRAXCLANGUXTC\SHIYAN1.CPP8:'c'isassignedaualueuhich經(jīng)分析是由于inta,b,c句未加;導致。修改后編譯結(jié)果如下:IUarnings:0Errors:0六、實驗結(jié)果1.Thisisacprogram2.3.輸入123,654運行結(jié)果如下:輸入1989,1988運行結(jié)果如下:1989,1988max=1989七、總結(jié)經(jīng)過本次上機實驗,我基本了解TurboC++3.0的操作方法,學會在該系統(tǒng)上編輯、編譯、連接和運行一個C程序。同時也明白在編譯過程中應留心一些細節(jié)問題(如一個語句結(jié)束要加“;”),也學會通過編譯錯誤信息找出錯誤,并修正錯誤。實驗名稱:數(shù)據(jù)類型、函數(shù)和表達式八、 實驗目的和要求掌握C語言數(shù)據(jù)類型,熟悉如何定義整型、字符型和實型變量并賦值掌握不同類型數(shù)據(jù)之間賦值的規(guī)律學會使用C的有關(guān)算法運算符及表達式,特別是自加(++)和自減(--)運算符的使用進一步熟悉C程序的編輯、編譯、連接和運行的過程九、 實驗內(nèi)容和原理輸入并運行下面程序,分析運行結(jié)果。include<stdio.h>voidmain()(charcl,c2;c1='a';c2='b';printf("%c%c",c1,c2)}輸入并運行下面程序,分析運行結(jié)果。include<stdio.h>voidmain(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c%c”,c4,c5);}輸入并運行下面程序,分析運行結(jié)果。include<stdio.h>voidmain(){inta,b;unsignedc,d;longe,f;a=100; b=-100;e=50000;f=32767;c=a; d=b;printf("%d,%d\n",a,b);printf("%u,%u\n”,a,b);printf("%u,%u\n”,c,d);c=a=e;d=b=f;printf("%d,%d\n”,a,b);printf("%u,%u\n”,c,d);}輸入并運行下面程序,分析運行結(jié)果。include<stdio.h>voidmain(){inti,j,m,n;i=8; j=10;m=++i; n=j++;

printf("%d,%d,%d,%d”,i,j,m,n);}十、實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。十一、算法描述及實驗步驟(1) 啟動TC++3.0,新建一個C文件;(2) 輸入程序;(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序,觀察分析運行結(jié)果。十二、 調(diào)試過程1.經(jīng)分析錯誤是由于printf("%c%c",cl,c2)后未加;導致。修改后運行如下:2.成功運行3.ErrorC:XJMSOFTXCLANGU^lXTCXNONfiME.C10:Functioncallmissing〉infunction12200printf("%u,%u\n"a,b);改成printf("%u,%u\n",a,b);成功運行4.12200Linescompiled:221Uarnings:0Errors:0成功運行。十三、 實驗結(jié)果.100,-100100,65436100,65436-15536,3276750000,327674.十四、總結(jié)通過這次上機實驗我掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型和實型變量并對它們賦值的方法,學會使用C的有關(guān)算法運算符及表達式,特別是自加(++)和自減(--)運算符。并進一步熟悉C程序的編輯,編譯,連接和運行的過程。實驗名稱:順序結(jié)構(gòu)程序設計十五、實驗目的和要求十五、實驗目的和要求十六、6.輸入并運行下面程序,#include<stdio.h>voidmain()(inta,b;floatd,e;charc1,c2;doublef,g;十六、6.輸入并運行下面程序,#include<stdio.h>voidmain()(inta,b;floatd,e;charc1,c2;doublef,g;longm,n;unsignedintp,q;a=61;c1=’a’;d=3.56;f=3157.890121;m=50000;p=32768;分析運行結(jié)果。b=62;c2=’b’;e=-6.87;g=0.123456789;n=-60000;q=40000;7.8.9.十七、printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n”,a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n”,f,g,m,n,p,q);}編程序求一個圓的周長、面積,圓球表面積和圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果。輸出時要有文字說明,取小數(shù)點后兩位數(shù)字。編程序,用getchar函數(shù)讀入兩個字符給cl、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。(選作)有自學或有興趣同學可以編寫程序判斷一個年份是否為閏年。實驗環(huán)境掌握賦值語句的使用方法掌握各種類型數(shù)據(jù)的輸入輸出方法,能正確使用各種格式控制符實驗內(nèi)容和原理計算機及TurboC++3.0。十八、算法描述及實驗步驟1.(1)啟動TC++3.0,新建一個C文件;(2) 輸入程序1;(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序,觀察分析運行結(jié)果。2.(1)啟動TC++3.0,新建一個C文件;(2) 輸入事先設計好的程序(見附錄);(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序;(6) 輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。

3.(1)啟動TC++3.0,新建一個C文件;(2)輸入事先設計好的程序(見附錄);(3) 保存文件;(4) 編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;(5) 連接程序、運行程序;(6) 輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。十九、 調(diào)試過程1.ErrorC:\JMSOFTXCLANGU~1XTC\NONAME.C14:UndefinedsymbolJpJinfunctionmaiEpfopC:XJMSOFTXCLfiNGU^lXTCXNONfiME.C14:UndefinedsymbolJqJinfunctionmaiErrorC:XJMSOFTXCLANGU^lXTCXNONAME.C15:UnterminatedstringopcliaractepconErrorC:\JMSOFT\CLfiNGU~l\TC\NONfiME.C15:Functioncallmissing〉infunctionUarningC:\JMSOFT\CLANGU~1\TC\NONAME.C16:JnJisassignedavaluewhichisnUaFningC=\JMgOFT\CLnNGUei\TC\NONAME.CIM'm'isassignedaumluewhichisnlongm,n后加;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n,a,b,c1,c2,d,e);少了無錯誤,成功運行。2.ErrorC:\JMSOFT\CLANGU~1XTC\SHI¥AN32.C11:ExpressionsyntaxinfunctionmainWarningC:\JnSOFT\CLANGUzi\TC\SHIYAN32-C12:Pctssihleuseof'result'heFciFE經(jīng)分析為定義常量時使用=錯誤導致,修改后成功運行。3.無錯誤,成功運行。2200Linescompiled:Warnings:Errors2200二十、 實驗結(jié)果1.6Lh=62=a,c2=b,g=0.1234567890003.56,e=—6.87,g=0.1234567890003157.89012150000,n=-6000032768,q=400002.輸入123,456,結(jié)果如下:PleaseinputFj.li:123,456circlezhouchang=772.83|cirelemianji=47529.16ballbiaomianji=190116.62balltiji=7794781.50^hutitiji=21673294.00輸入2,6,結(jié)果如下:Please_inputr,h:cirelezhouchang=12.57cirelemianji=12.57ballbiaomianji=50.27balltiji=33.51shutitiji=75.40Pleaseinputtwochar:acPutchapresult:acPrintfresult:ac1^一、總結(jié)經(jīng)過本次上機實驗,我已基本掌握賦值語句的使用方法,也掌握各種類型數(shù)據(jù)的輸入輸出方法,能正確使用各種格式轉(zhuǎn)換符,同時更進一步了解。程序的運行環(huán)境。附錄:2.#definepi3.141592653#include<stdio.h>voidmain(){floatr,h;floatresult;printf("Pleaseinputr,h:\n");scanf("%f,%f”,&r,&h);result=2*pi*r;printf("circlezhouchang=%6.2f\n”,result);result=pi*r*r;printf("circlemianji=%6.2f\n",result);result=4*pi*r*r;printf("ballbiaomianji=%6.2f\n",result);result=4*pi*r*r*r/3;printf("balltiji=%6.2f\n”,result);result=pi*r*r*h;printf("zhutitiji=%6.2f\n",result);}3.#include<stdio.h>voidmain(){charc1,c2;printf("Pleaseinputtwochar:\n");c1=getchar();c2=getchar();printf("Putcharresult:\n");putchar(c1);putchar(c2);printf("\nPrintfresult:\n");printf("%c\n”,c1);printf("%c\n”,c2);實驗四:邏輯結(jié)構(gòu)程序設計二十二、實驗日的和要求了解C語言表示邏輯量的方法正確使用邏輯運算符和邏輯表達式,掌握if語句和switch語句結(jié)合程序掌握一些簡單算法,并學習調(diào)試程序二十三、實驗內(nèi)容和原理有一函數(shù):,-x (xV1)y= -,、2x-1 (Kx<10)...3x-11 (x310)寫一程序,用scanf函數(shù)輸入乂,輸出y值。編程實現(xiàn):給出一個百分制成績,要求輸出成績等級A、B、C、D、E。90分以上為A,81~89分為B,70~79分為C,60~69分為D,60分以下為E。給一個不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別打印出每一位數(shù)字;③按逆序打印出各位數(shù)字,例如原數(shù)為321,應輸出123。二十四、實驗環(huán)境硬件:PC機;軟件:Windows2000、TurboC++3.0。二十五、算法描述及實驗步驟(1)啟動TC++3.0,新建一個C文件;(2)輸入事先設計好的程序(見附錄);保存文件;編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;連接程序、運行程序;輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。(1)啟動TC++3.0,新建一個C文件;(2)輸入事先設計好的程序(見附錄);保存文件;編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;連接程序、運行程序;輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。(1)啟動TC++3.0,新建一個C文件;(2)輸入事先設計好的程序(見附錄);保存文件;編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;連接程序、運行程序;輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。(1)啟動TC++3.0,新建一個C文件;輸入事先設計好的程序(見附錄);保存文件;編譯源程序,觀察屏幕上顯示的編譯信息,修改出現(xiàn)的錯誤,直到編譯成功;

連接程序、運行程序;輸入測試數(shù)據(jù),檢查程序執(zhí)行結(jié)果是否正確。二十六、調(diào)試過程1.無錯誤,出現(xiàn)如下信息:Linescompiled:231Uarnings:0Errors:02.Linescompiled:240Uarnings:0Errors:02310024000‘inaiu"indiuJindiuJfindiuJfindiuJfindiuJCCCCC33333CCCCCCCCCCTTTTT4680222233netorebeforebeforebeforebeforebeforenetinitdefinitidefinitidefinitidefinitidefiniti沒有給indiv先定義,修改后成功運行。二十七、實驗結(jié)果1.輸入0,運行結(jié)果如下:輸入5,運行結(jié)果如下:輸入13,運行結(jié)果如下:2.2310024000‘inaiu"indiuJindiuJfindiuJfindiuJfindiuJCCCCC33333CCCCCCCCCCTTTTT4680222233netorebeforebeforebeforebeforebeforenetinitdefinitidefinitidefinitidefinitidefiniti沒有給indiv先定義,修改后成功運行。二十七、實驗結(jié)果1.輸入0,運行結(jié)果如下:輸入5,運行結(jié)果如下:輸入13,運行結(jié)果如下:2.輸入94,運行結(jié)果如下:輸入86,運行結(jié)果如下:輸入74,運行結(jié)果如下:pleaseinputscoresscore:74.0,grade:C輸入61,運行結(jié)果如下:leaseinputscores:61core:61.0,grade:D輸入52,運行結(jié)果如下:輸入-70時結(jié)果:pleaseinputanumber:1Uplace=5Eachnumber:1,8,7,9,5Changednumber:5,9,7,8,1二十八、總結(jié)通過本次上機實驗我了解C語言表示邏輯量的方法,能正確使用邏輯運算符和邏輯表達式,基本掌握了if語句和switch語句和一些簡單的算法,并大體上學會了調(diào)試程序。附錄:1.#include<stdio.h>voidmain(){inta,b;printf("Pleaseinputa:\n");scanf("%d”,&a);if(a<1)printf("b=%d”,a);elseif(1<=a<10){b=2*a-1;printf("b=%d”,b);}elseif(a>=10){b=3*a-11;printf("b=%d”,b);}}2.#include<stdio.h>voidmain(){floatscore;chargrade;printf("pleaseinputscores:");scanf("%f”,&score);while(score>100||score<0){printf("\nWrong!");scanf("%f”,&score);}switch((int)(score/10)){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;case5:case4:case3:case2:case1:case0:grade='E';}printf("score:%5.1f,grade:%c\n",score,grade);}3.#include<stdio.h>#include<math.h>voidmain()(longintnum;intindiv,ten,hundred,thousand,ten_thousand,place;printf("pleaseinputanumber:");scanf("%ld”,&num);if(num>9999)place=5;elseif(num>999) place=4;elseif(num>99) place=3;elseif(num>9) place=2;elseplace=1;printf("place=%d\n”,place);printf("Eachnumber:");ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;switch(place)(case5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);break;case4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);break;case3:printf("%d,%d,%d",hundred,ten,indiv);printf("\nChangednumber:");printf("%d,%d,%d\n",indiv,ten,hundred);break;case2:printf("%d,%d",ten,indiv);printf("\nChangednumber:");printf("%d,%d\n",indiv,ten);break;case1:printf("%d”,indiv);printf("\nChangednumber:");printf("%d\n",indiv);break;}}實驗名稱:循環(huán)結(jié)構(gòu)程序設計二十九、實驗日的和要求熟悉掌握用while語句、do-while語句和for語句實現(xiàn)循環(huán)的方法掌握在程序設計中用循環(huán)方法實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)進一步學習調(diào)試程序三十、 實驗內(nèi)容和原理輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其他字符的個數(shù)。猴子吃桃問題。猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,就只剩一個桃子了。求第一天共摘多少桃子。三十一、實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。三十二、算法描述及實驗步驟見附錄三十三、調(diào)試過程沒有給“P”定義Errore:61.c11:Undefinedsymbol'p'infunctionmain< 改為〈沒有加“””和“;”ti:Unterminatedstringorcharacterconstantmfunctionmain6:Functioncallmissing)infunctionmain改為printf("pleaseinputaline:\n");|無錯誤,見附錄。三十四、實驗結(jié)果1.臥坷puttwonumbers:12,8pieaseinputtuonumbers£勝M君? Thebig:4thesmall-24 thesmall:24pleaseinputtuonumbers:5,7Thebig:lthesmall:352.pleaseinputaline:MyteacherJsaddressis,Rttl23BeijingRoad,Shanghai"letter:38space:6digit:3other:63.total=1534三十五、總結(jié)通過本次上機實驗,我基本熟悉掌握while語句,do-while語句和for語句實循環(huán)的方法,掌握在程序設計中用循環(huán)的方法實現(xiàn)一些常用算法,并進一步學習調(diào)試程序。但是總是忘記對變量進行定義和添加符號(如“;”)。實驗1:#include<stdio.h>voidmain()(intp,r,n,m,temp;printf("pleaseinputtwonumbers:");scanf("%d,%d,",&n,&m);if(n<m)(temp=n;n=m;m=temp;}p=n*m;while(m!=0)(r=n%m;n=m;m=r;}printf("Thebig:%d\n",n);printf("thesmall:%d\n",p/n);}實驗2:#include<stdio.h>voidmain()(charc;intletters=0,space=0,digit=0,other=0;printf("pleaseinputaline:\n");while((c=getchar())!='\n')(if(c>='a'&&cv='z'llc>='A'&&cv='Z')letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;elseother++;}printf("letter:%d\nspace:%d\ndigit:%d\nother:%d\n”,letters,space,digit,other);}實驗3:#include<stdio.h>voidmain(){intday,x1,x2;x1=1;for(day=9;day>0;day—){x2=(x1+1)*2;x1=x2;printf("total=%d”,x2);}實驗名稱:數(shù)組三十六、實驗日的和要求掌握一維數(shù)組、二維數(shù)組的定義、賦值和輸入輸出掌握字符數(shù)組和字符串函數(shù)的使用結(jié)合程序掌握一些簡單算法三十七、實驗內(nèi)容和原理用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入。有15個數(shù)存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)是數(shù)組中的第幾個元素的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。(選做)找出一個二維數(shù)組中的鞍點,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點。將兩個字符串連接起來,不要用strcat函數(shù)。三十八、實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。三十九、算法描述及實驗步驟見附錄四十、 調(diào)試過程數(shù)組符號為“[]”,錯寫成“{}”71.c8:Functioncallmissing)infunctionmaingnF( 改為wean日 ,&經(jīng)過查找發(fā)現(xiàn)是voidmain()誤輸入為voinmain()c3:Declarationsyntaxerror忘記添加一對單引號^t73.c13:Illegalcharacter,(0k5c)infunctionmains1[i]=\0;改為》[i]=:四十一、實驗結(jié)果1.enterdatea[l]=32a[2]=16a[3]=la[4]=67a[5]=92"61=46a[?]=58a[8]=9"91=106a[10]=150Theorginal32 16numbers:1 679246589106150Thesorted1 9numbers:16 32465867921061502.data1*et1*etn262627628685thisdataagain:169121622263237465258667885inputnumbertolookfor:52Hasfound52,itspositionisll4.Ipleaseinputstringl:fashionpleaseinputstring2:ableTheneustringis:fashionable四十二、總結(jié)通過本次上機實驗我大體上掌握了數(shù)組的定義,賦值和輸入方法,也掌握了字符數(shù)組和字符串函數(shù)的使用,并能結(jié)合一些簡單程序了解與數(shù)組有關(guān)的算法。但是剛接觸數(shù)組對其符號用得不是很應手,還有輸入時總出現(xiàn)一些簡單錯誤,所以自己應該多進行上機實驗。實驗1:#include<stdio.h>voidmain(){inti,j,min,temp,a[11];printf("enterdate:\n");for(i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d”,&a[i]);}printf(〃\n〃);printf("Theorginalnumbers:\n");for(i=1;i<=10;i++)printf("%5d”,a[i]);printf(〃\n〃);for(i=1;i<=9;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]>a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThesortednumbers:\n");for(i=1;i<=10;i++)printf("%5d”,a[i]);printf(〃\n〃);}實驗2:include<stdio.h>defineN15voinmain(){inti,number,top,bott,mid,loca,a[N],flag=1,sign;charc;printf("enterdata:\n");scanf("%d”,&a[0]);i=1;while(i<N){scanf("%d”,&a[i]);if(a[i]>=a[i-1])i++;elseprintf("enterthisdataagain:\n");}printf(〃\n〃);for(i=0;i<N;i++)printf("%d”,a[i]);printf(〃\n〃);while(flag){printf("inputnumbertolookfor:");scanf("%d”,&number);sign=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(number==a[mid]){loca=mid;printf("Hasfound%d,itspositionis%d\n”,number,loca+1);sign=1;}elseif(number<a[mid])bott=mid-1;elsetop=mid+1;}}}實驗3:#include<stdio.h>voidmain(){chars1[80],s2[40];inti=0,j=0;printf("\npleaseinputstring1:");scanf("%s”,s1);printf("\npleaseinputstring2:");scanf("%s”,s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')si[i++]=s2[j++];si[i]=,\05;實驗名稱:函數(shù)四十三、實驗日的和要求掌握定義函數(shù)的方法掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法掌握全局變量和局部變量的概念和使用方法四十四、實驗內(nèi)容和原理寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。用全局變量的方法,分別用兩個函數(shù)求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù),但其值不由函數(shù)帶回。將最大公約數(shù)和最小公倍數(shù)都設為全局變量,在主函數(shù)調(diào)中輸出它們的值,兩個整數(shù)由鍵盤輸入。輸入10個學生5門課的成績,分別用函數(shù)求:①每個學生平均分;②每門課的平均分;③找出最高的分數(shù)所對應的學生和課程。寫一函數(shù),用“起泡法”對輸入的10個字符按由小到大順序排列。求方程ax2+bx+c=0的根,用3個函數(shù)分別求當b2-4ac大于0、等于0和小于0時的根并輸出結(jié)果。從主函數(shù)輸入a、b、c的值。用遞歸調(diào)用的方法求寫一個求n!的函數(shù),在主函數(shù)中輸入一個整數(shù),輸出該數(shù)的階乘。四十五、實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。四十六、算法描述及實驗步驟見附錄四十七、調(diào)試過程編譯時無出現(xiàn)錯誤、警告信息:Mainfile:E:TLU1.C1a1502T300Compiling:EDITOR■+TLU1.C1a1502T300Linescompiled:Warnings:Errors:Availablemeinoi'v:1942K定義變量時,變量輸入有誤I 調(diào)試為I 調(diào)試為inti<int,int,int>編譯程序較復雜時“{}”范圍搞亂,在第46行后再加一個“}”c47:Unreachablecodeinfunctionhighestc47:Espressionsyntaxinfunctionhighestc70:Compoundstatementmissing}infunctionhighest編譯時出現(xiàn)錯誤、警告信息:"9: 巧誠密error,原因是沒加主函數(shù)voidmain()第18行的“elseif”之間少了空格而錯寫成“elseif”19:Statementmissing;infunctionmain

函數(shù)y=fac(n)后忘記加“;”ErrorE:\T6.C9:Statementmissingf;WarningE:\T6.C10:ryrisassignedaualuethatisneuerusedactnJactnJprintf< ,n,y>;改為四十八、實驗結(jié)果1.2.3.(ma:最大公約數(shù)mi:最小公倍數(shù))-M--M--M-_M~-M--M--M-_M~-M--M4086868200F5240122327e8888888687ua-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M5 P1382043032U9888889798oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M4 P3011114465U8898898588oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M3 P3179495450U8877877677oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M2 P9126627273U7787777667oc-M--M--M-_M~-M--M--M-_M~-M--M--M--M--K--M--K--M1 P1565875695U9988888687oc1234567890■1o NooooooooooNNNNNNNNNNIauerage: 84.70 73.50 76.70 81.60 84.60higest: 95.00No.2course14.inputstring:reputationstringsorted:aeinoprttuinputstring:fashinablestringsorted:aabefhilns5.4.00*x+1.00=0x2=-4.707107inputa,b,c:2,4,1equation: 2.00*x*x+root:fcl=-3.2928932.00*x+1.00=0inputa,b,cequation: 1.00*x*x+n?oot:xl=-l.000000inputa,b,c:2,4,3equation: 2.00*x*x+n?oot:Eel=-l.000000+0.707107ix2=-l.000000-0.70710714.00*x+3.00=06.intputanumber:1010?= 3628800intputanumber:-10fi<0,Wrong*-10*=-NAN四十九、總結(jié)通過這次上機實驗我已基本掌握定義函數(shù)的方法,了解函數(shù)實參與形參的對應關(guān)系以及“值傳遞”的方式,并掌握函數(shù)的嵌套調(diào)用的方法,也掌握了全局變量和局部變量的概念和使用方法以及學會對多文件的程序的編譯和運行。但是一些可避免的細微錯誤仍存在,所以在編程序時應細心。附錄:實驗1#include<stdio.h>voidmain(){intprime(int);intn;printf("\ninputaninteger:");scanf("%d”,&n);if(prime(n))printf("\n%disaprime.\n”,n);elseprintf("\n%disnotaprime.\n”,n);}intprime(intn){intflag=1,i;for(i=2;i<n/2&&flag==1;i++)if(n%i==0)flag=0;return(flag);}實驗2#include<stdio.h>voidmain(){inta(int,int);inti(int,int,int);intu,v,ma,mi;scanf("%d,%d,",&u,&v);ma=a(u,v);printf("ma=%d\n”,ma);mi=i(u,v,ma);printf("mi=%d\n”,mi);}inta(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}inti(intu,intv,inth){return(u*v/h);}實驗3#include<stdio.h>#defineN10#defineM5floatscore[N][M];floata_stu[N],a_cour[M];intr,c;voidinput_stu(void){inti,j;for(i=0;i<N;i++){printf("\ninputscoreofstudent%2d:\n”,i+1);for(j=0;j<M;j++)scanf("%f”,&score[i][j]);}}voidaver_stu(void){inti,j;floats;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/5.0;}}voidaver_cour(void){inti,j;floats;for(j=0;j<M;j++){s=0;for(i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;}}floathighest(){floathigh;inti,j;high=score[0][0];for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];r=i+1;c=j+1;}return(high);}voidmain(){inti,j;floath;input_stu();aver_stu();aver_cour();printf("\nNo.courlcour2cour3cour4cour5aver\n");for(i=0;i<N;i++){printf("No.%2d”,i+1);for(j=0;j<M;j++)printf("%8.2f”,score[i][j]);printf("%8.2f\n”,a_stu[i]);}printf("\naverage:");for(j=0;j<M;j++)printf("%8.2f”,a_cour[j]);printf("\n");h=highest();printf("higest:%7.2fNo.%2dcourse%2d\n”,h,r,c);}實驗4#include<stdio.h>#include<string.h>#defineN10#include<conio.h>charstr[N];voidmain(){voidsort(char[]);inti;printf("inputstring:\n");scanf("%s”,&str);sort(str);printf("stringsorted:\n");for(i=0;i<N;i++)printf("%c”,str[i]);printf("\n");}voidsort(charstr[]){inti,j;chart;for(j=1;j<N;j++)for(i=0;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}實驗5#include<stdio.h>#include<math.h>floatx1,x2,disc,p,q;voidmain(){voidbig_than_zero(float,float);voidequal_to_zero(float,float);voidsmall_than_zero(float,float);floata,b,c;printf("\ninputa,b,c:");scanf("%f,%f,%f”,&a,&b,&c);printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n”,a,b,c);disc=b*b-4*a*c;printf("root:\n");if(disc>0){big_than_zero(a,b);printf("x1=%f\t\tx2=%f\n”,x1,x2);}elseif(disc==0){equal_to_zero(a,b);printf("x1=%f\t\tx2=%f\n”,x1,x2);}else{small_than_zero(a,b);printf("x1=%f+%fi\tx2=%f-%fi\n”,p,q,p,q);}}voidbig_than_zero(floata,floatb){x1=(-b+sqrt(disc)/(2*a));x2=(-b-sqrt(disc)/(2*a));}voidequal_to_zero(floata,floatb){x1=x2=(-b)/(2*a);}voidsmall_than_zero(floata,floatb){p=-b/(2*a);q=sqrt(-disc)/(2*a);}實驗6#include<stdio.h>voidmain(){floatfac(intn);intn;floaty;printf("intputanumber:");scanf("%d”,&n);y=fac(n);printf("%d!=%10.0f\n”,n,y);}floatfac(intn){floatf;if(n<0){printf("n<0,Wrong!”);}elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}實驗名稱:指針五十、 實驗日的和要求學會定義和使用指針變量能正確使用數(shù)組的指針和指向數(shù)組的指針能正確使用字符串的指針和指向字符串的指針變量五十一、實驗內(nèi)容和原理輸入3個整數(shù),按由小到大的順序輸出。輸入3個字符串,按由小到大的順序輸出。輸入10個整數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。寫3個函數(shù):①輸入10個數(shù);②進行處理;③輸出10個數(shù)。有n個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面m個數(shù),寫一函數(shù)實現(xiàn)以上功能,在主函數(shù)中輸入n個整數(shù)和輸出調(diào)整后的n個數(shù)。在主函數(shù)中輸入10個等長的字符串。用另一函數(shù)對它們排序。然后在主函數(shù)輸出這10個已排好序的字符串。五十二、實驗環(huán)境硬件:PC機;軟件:Windows操作系統(tǒng)、TurboC++3.0。五十三、算法描述及實驗步驟見附錄五十四、調(diào)試過程沒給*p2定義為整型<uoidsuap<int*<uoidsuap<int*pl,*p2>;改為在使用字符串函數(shù)時沒有包含頭文件“string.h”,盡管能運行但是實驗不會成功。所以調(diào)試時在程序開頭添加“#include<string.h>”。輸入時誤把輸出函數(shù)“printf”寫成“print”4.c21:DeclarationsyirtaxerrorErrorE:\T83.C29:Function*printJ4.c21:Declarationsyirtaxerror原因是定義一個函數(shù)不用像聲明一個函數(shù)后面要加“;”,所以調(diào)試時應5.[uoid 由十叫[20]語句后面”去掉。5.[uoid 由十叫[20]語句后面”去掉。c6:Sizeofstructureorarraynotknowninfunctionmain因二維數(shù)組定義方法不對導致這錯誤。charstr[18,6];charstr[18,6];改為charstr[1Q][6];五十五、實驗結(jié)果1.leaseinputthreenumbers:32,66,98heordernumbersis:32,66,98leaseinputthreenumbers:-1,-6,6heordernumbersis:-6,-1,6leaseinputthreenumbers:3,6,3heordernumbersis:3,3,62.pleaseinputthreelineNicetomeetyou-IIamastudent.Hello!Theorderlineis:Hello*Iamastudent.Nicetomeetyau.3.4.howmangnumbers:10Ipleaseinputnumbers-23361059998667524437houmanppositionyouuantmoue:5theneuarrangeis:866752443723361059995.ChinaJapanKoreaEgyptNepalBurmaGhanaSudanItalyLibyaThenewarrangeisBurmaChinaEgyptGhanaItalyJapanKoreaLibijaNepalSudan五十六、總結(jié)在了解了指針概念的基礎上通過本次上機實驗,我更進一步學會定義和使用指針變量,也基本能使用數(shù)組的指針和指向數(shù)組的指針變量,以及使用字符串的指針和指向字符串的指針變量。從這次實驗中我也知道自己對函數(shù)的定義和聲明的區(qū)別還不是很熟悉,還有實驗的一些錯誤細節(jié)沒有避免掉,今后還應加強程序的書寫和上機實驗。附錄:實驗1:#include<stdio.h>voidmain(){voidswap(int*p1,int*p2);inta,b,c;int*p1,*p2,*

溫馨提示

  • 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

提交評論