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