第一篇:C語(yǔ)言實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)一 C程序的運(yùn)行環(huán)境和運(yùn)行C程序的辦法
1.實(shí)驗(yàn)?zāi)康?/p>
(1)了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。(2)了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。(3)通過(guò)運(yùn)行簡(jiǎn)單的C程序,初步了解C源程序的特點(diǎn)。(2)進(jìn)入所用的集成環(huán)境。
(3)熟悉集成環(huán)境的界面和有關(guān)菜單的使用方法。(4)輸入并運(yùn)行一個(gè)簡(jiǎn)單的、正確的程序。
①根據(jù)本書介紹的方法對(duì)源程序進(jìn)行編譯,觀察屏幕上顯示的編譯信息。若出錯(cuò)則返回修改,無(wú)錯(cuò)則連接。② 編譯連接無(wú)錯(cuò),運(yùn)行程序,觀察分析運(yùn)行結(jié)果。(5)輸入并編譯一個(gè)有錯(cuò)誤的C程序。
(6)輸入并運(yùn)行一個(gè)需要在運(yùn)行時(shí)輸入數(shù)據(jù)的程序。(7)運(yùn)行一個(gè)自己編寫的程序
心得體會(huì):了解了C程序的運(yùn)行環(huán)境和運(yùn)行C程序的辦法。在學(xué)校機(jī)房選用的是Turbo C。
實(shí)驗(yàn)二 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式
1.實(shí)驗(yàn)?zāi)康?/p>
(1)掌握C語(yǔ)言數(shù)據(jù)類型、熟悉如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對(duì)他們的賦值方法。(2)掌握不同數(shù)據(jù)類型之間的賦值規(guī)律。
(3)學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(++)和自減(--)運(yùn)算符的使用。(4)進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過(guò)程。2.實(shí)驗(yàn)內(nèi)容和步驟(1)輸入并運(yùn)行下面程序: #include
②在上面printf語(yǔ)句下面再增加一個(gè)printf語(yǔ)句: printf(“%d %dn”,c1,c2);再運(yùn)行,并分析結(jié)果,結(jié)果為97 98 ③將第三行改為 int c1,c2;再使之運(yùn)行,并觀察結(jié)果,結(jié)果為97 98 ④再將第4、5行改為;c1=a;c2=b;再使之運(yùn)行,并觀察結(jié)果,結(jié)果為運(yùn)行出錯(cuò)。⑤再將第4、5行改為:
(1)檢查所用計(jì)算機(jī)系統(tǒng)是否已安裝了C編譯系統(tǒng)并確定它所在的子目錄。
c1=”a”;c2=”b”;再使之運(yùn)行,并觀察結(jié)果,結(jié)果為404 406 ⑥再將第4、5行改為: c1=300;c2=400;再使之運(yùn)行,并觀察結(jié)果,結(jié)果為300 400;
心得體會(huì):在編寫C程序時(shí),有些細(xì)小的錯(cuò)誤會(huì)影響結(jié)果的正確性。所以編寫的時(shí)候要仔細(xì)小心。初步編寫完成要回過(guò)頭來(lái)再檢查一遍
實(shí)驗(yàn)三 最簡(jiǎn)單的C程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)掌握C語(yǔ)言中使用最多的一種語(yǔ)句——賦值語(yǔ)句的使用方法。(2)掌握各種類型數(shù)據(jù)的輸入輸出方法,能正確使用各種格式轉(zhuǎn)換符。2.實(shí)驗(yàn)內(nèi)容和步驟
(1)通過(guò)下面的程序掌握各種格式轉(zhuǎn)換符的正確使用方法。①輸入以下程序 #include
c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000 運(yùn)行程序,分析結(jié)果a=-15536,b=5536 c1==,c2=> d=3157.89,e= 0.12 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=50000,q=5536 ④改用scanf函數(shù)輸入程序而不用賦值語(yǔ)句,scanf函數(shù)如下
scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q)輸入的數(shù)據(jù)如下:
61,62,a,b,3.56,-6.87,3157,89.121,0.123456789,50000,-60000,37678,40000 運(yùn)行結(jié)果如下:
61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000 a=61,b=62 c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=37678,q=40000 ⑤在④的基礎(chǔ)上將printf改為:printf(“a=%d,b=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);printf(“f=%f,g=%fnm=%d,n=%dnp=%d,q=%n”,f,g,m,n,p,q);a=61,b=62 c1=a,c2=b d= 3.560000,e=-6.869999885559 f=3157.890121,g=0.123457 m=-15536,n=0 p=5536,q=-1
⑥將p,q改用%o格式符輸出a=61,b=62 c1=a,c2=b d= 3.560000,e=-6.869999885559 f=3157.890121,g=0.123457 m=-15536,n=0 p=12640,q=177777
⑦將scanf函數(shù)中的%lf和%ld改為%f和%d,運(yùn)行程序分析結(jié)果: c1=a,c2=b d= 3.560000,e=-6.869999885559 f=0.000000,g=0.000000
m=-15536,n=1824 p=5536,q=1983(2)按習(xí)題4.8要求編寫程序,并上機(jī)運(yùn)行。題目為:設(shè)半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出結(jié)果。輸出時(shí)要有文字說(shuō)明,取小數(shù)點(diǎn)后兩位數(shù)字。#include
上機(jī)運(yùn)行程序,比較用printf和putchar函數(shù)輸出字符的特點(diǎn)。代碼:#include
心得體會(huì):如何在代碼中使用不同的函數(shù)從而簡(jiǎn)化代碼,優(yōu)化代碼需要我們多加練習(xí),多加體會(huì)。
實(shí)驗(yàn)四 邏輯結(jié)構(gòu)程序設(shè)計(jì)
1.實(shí)驗(yàn)?zāi)康?/p>
(1)了解C語(yǔ)言表示邏輯量的方法(以0代表“假”,以非0代表“真”)。
(2)學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。(3)熟練掌握if語(yǔ)句和switch語(yǔ)句。(4)結(jié)合程序掌握一些簡(jiǎn)單的算法。(5)學(xué)習(xí)調(diào)試程序。2.實(shí)驗(yàn)內(nèi)容
(1)習(xí)題5.5。有一函數(shù): y=x
(x<1)y=2x-1
(1≦x<10)y=3x-11(x≥10)用scanf函數(shù)輸入x的值,求y的值。
運(yùn)行程序,輸入的x(分別為x<1,1~10,x≥10這3中情況),檢查輸出值的準(zhǔn)確性。# include
} } 運(yùn)行結(jié)果:x: ⑵ 給出一個(gè)百分制績(jī),要求輸入成績(jī)ABCDE。90分以上的為A,81~89分為B,70~79分為C,60~69分為D,60分以下的為E。① 實(shí)現(xiàn)編號(hào)程序,要求分別用IF和switch語(yǔ)句來(lái)實(shí)現(xiàn)。運(yùn)行結(jié)果,并檢查結(jié)果。
② 在運(yùn)行一次,輸入值為負(fù)值,這顯然時(shí)輸入錯(cuò)誤,修改程序,是只能正確處理結(jié)果,當(dāng)輸入數(shù)據(jù)>100或<0是,通知用戶輸入錯(cuò)誤,程序結(jié)束。# include
case 70:grade='C';break;case 60:grade='D';break;case 50: case 40: case 30: case 20: case 10: case 00:grade='E';break;} printf(“score is %5.1fthe grade is %cn”,score,grade);getch();}(3)給一個(gè)不多于5為的正整數(shù),要求1:起哦出他是幾位數(shù),2:粉筆輸出每一位數(shù)字3;按逆順序輸出各個(gè)數(shù)字,例如原數(shù)321,應(yīng)輸出123,·要處理的數(shù)為1位正整數(shù); ·要處理的數(shù)為2位正整數(shù); ·要處理的數(shù)為3位正整數(shù); ·要處理的數(shù)為4位正整數(shù); ·要處理的數(shù)為5位正整數(shù)。
除此之外,程序還應(yīng)當(dāng)對(duì)不合法的輸入作必要的處理,例如: ·輸入負(fù)數(shù);
·輸入的數(shù)超過(guò)5位(如123456)代碼:#include
結(jié)果:與預(yù)期相符。
(4)輸入4個(gè)整數(shù),要求按由小到大順序輸出。
在得到正確結(jié)果后,修改程序使之按由大到小順序輸出。代碼1:#include 實(shí)驗(yàn)五 循環(huán)控制 1.實(shí)驗(yàn)?zāi)康?/p> (1)熟悉掌握用while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。 (2)掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。(3)進(jìn)一步學(xué)習(xí)調(diào)試程序。2.實(shí)驗(yàn)內(nèi)容 編程序并上機(jī)調(diào)試運(yùn)行。 (1)輸入兩個(gè)正整數(shù)m和n,求他們的最大公約數(shù)和最小公倍數(shù) 在運(yùn)行時(shí),輸入的值m>n,觀察結(jié)果是否正確。 再輸入時(shí),使m 修改程序,不論m和n為何值,都能得到正確結(jié)果。代碼:#include (2)輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。 在得到正確結(jié)果后,請(qǐng)修改程序使之能分別統(tǒng)計(jì)大小寫字母、空格、數(shù)字和其他字符的個(gè)數(shù)。代碼:#include (3)用牛頓迭代法求方程2x3-4x2+3x=6在1.5附近的根。 在得到正確結(jié)果后。請(qǐng)修改程序使所設(shè)的x初始值由1.5改變?yōu)?00、1000、10000,在運(yùn)行,觀察結(jié)果,分析不同的x處置對(duì)結(jié)果有沒(méi)有影響,為什么? 修改程序,使之能輸出迭代的次數(shù)和每次迭代的結(jié)果,分析不同的x初始值對(duì)迭代的次數(shù)有無(wú)影響。代碼:#include (4)猴子吃桃問(wèn)題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉了一半,又多吃了一個(gè)。以后每天早上都吃了前天剩下的一半零一個(gè)。到第10天早上再想吃時(shí),見(jiàn)只剩一個(gè)桃子了。求第一天共摘了多少桃子。在得到正確結(jié)果后,修改題目,改為猴子每天吃了前一天的一半后,再吃兩個(gè)。請(qǐng)修改程序并運(yùn)行,檢查結(jié)果是否正確。代碼:#include 代碼:#include 實(shí)驗(yàn)六 數(shù)組 1.實(shí)驗(yàn)?zāi)康?/p> (1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;(2)掌握字符數(shù)組和字符串函數(shù)的使用;(3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。2.實(shí)驗(yàn)內(nèi)容 編程序并上機(jī)調(diào)試運(yùn)行 (1)用選擇法對(duì)10個(gè)整數(shù)排序。10個(gè)整數(shù)用scanf函數(shù)輸入 代碼:#include (1)有15個(gè)數(shù)存放在一個(gè)數(shù)組中,輸入一個(gè)數(shù),要求用折半查找法找出該數(shù)組是數(shù)組中第幾個(gè)元素的值。如果該數(shù)不在數(shù)組中,則輸出“無(wú)此數(shù)”。以15個(gè)數(shù)用賦初值的方法在程序中給出。要找的數(shù)用scanf函數(shù)輸入。代碼:#include void main(){int a[15],i,x,min,max,sign,loca,mid;for(i=0;i<15;i++)scanf(“%d”,&a[i]);for(i=0;i<15;i++)printf(“%3d”,a[i]);scanf(“%d”,&x);max=14;min=0;sign=0;if(xa[14])loca=-1;while((!sign)&&(min<=max)){mid=(max+min)/2;if(x==a[mid]){loca=mid;printf(“%d”,loca+1);sign=1;} else if(x (2)將兩個(gè)字符串連接起來(lái),不要用strcat函數(shù)。代碼:#include