第一篇:C語言程序設計實驗安排
C語言實驗指導
實驗一 順序結構程序設計(2學時)
一、實驗目的熟悉在VC運行環境下,編輯調試C語言程序的一般步驟。掌握順序結構程序設計的基本思想和基本方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴ 程序功能描述。
⑵ 程序版本號、創作日期。
⑶ 作者信息描述:班級、學號、姓名。
⑷ 問題分析描述。
⑸ 算法設計描述。
⑹ 關鍵語句注釋說明。
⑺ 調試運行過程中出現的錯誤及改正方法。
⑻ 輸入數據樣例。
⑼ 輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
你知道淄博到北京的地面距離是多少千米嗎,淄博到紐約的地面距離又是多少千米呢?說不上來了吧。還是讓我們編一個程序來計算一下吧。
1.已知地球的平均半徑為6371千米,假設在地球的同一緯度上,有兩個處于不同經度的城市A、B,編程序求出這兩個城市之間的地面距離。
輸入數據樣例:例如,欲求北緯30度上東經10度到東經50度的距離,輸入格式應為:30 10 50
參考測試數據:
輸入:0 0 180 輸出:20015.08
輸入:30 0 90 輸出:8397.7
2輸入:60 0 45 輸出:2453.20
2.地球的平均半徑為6371千米,已知地球上兩個城市A、B的經度和緯度,編程序求出這兩個城市之間的地面距離。
提示:球面上兩點之間的最短距離,等于過這兩點以球心為圓心的圓上,這兩點之間劣弧的長度。(即這兩點與球心之間的連線構成的夾角所對球面劣弧的長度)。
建議你自己一步步推導出公式,而不要照搬網上的現成公式。
四、常見問題
疑問1:這分明是兩道數學題啊,能否將數學公式提供給我們呢,我們的主要任務不是編寫程序嗎?
答:建立數學模型也是編程序的一部分。學會分析解決現實中遇到的問題,是我們學習的重要目標。
疑問2:這個問題好像屬于球面幾何的范疇,用平面幾何可以求解嗎?
答:這個問題的確涉及到球面幾何,但是也的確可以利用投影以及平面幾何方法來求解。
實驗二 選擇結構程序設計(2學時)
一、實驗目的
掌握選擇結構程序設計的一般方法及選擇結構程序的調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
你知道你生日那天是星期幾嗎,還有你知道你爸爸生日那天是星期幾嗎?你可能會說:可以查萬年歷啊。那么,不查萬年歷你能計算出來嗎?
以下兩題,任選其一解答。
1.編程序實現:輸入一個年份y,求出從公元1年1月1日到y年1月1日,總共有多少天,并求出y年的1月1日是星期幾。
2.編程序實現:輸入任意一個日期的年、月、日的值,求出從公元1年1月1日到這一天總共有多少天,并求出這一天是星期幾。
四、常見問題
疑問1:閏年的規律是不是四年一閏?
答:四年一閏是儒略歷(儒略也就是凱撒大帝)的置閏規則。我們現在使用的是格里高利歷,置閏規則是每400年97閏。
疑問2:公元1年1月1日是星期幾呢?
答:星期一。
疑問3:據說從儒略歷改為格里高利歷時,將1582年10月4日的下一天定為格里高利歷的10月15日,中間銷去了10天,這會不會影響星期幾的計算?
答:這個調整是對儒略歷誤差的糾正,并不會影響總天數和星期幾的計算。
疑問4:這里計算總天數,好像要用到循環程序吧?
答:其實根據閏年的置閏規則,不使用循環也可以計算出來總天數。當然,你想使用循環編寫該程序也是可以的。
實驗三 循環結構程序設計(2學時)
一、實驗目的掌握循環結構程序設計的一般方法及循環結構程序的調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個月,還款方式為等額本金還款法(即貸款期限內每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。
2. 若還款方式采用等額本息還款法(即貸款期限內每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。
四、常見問題
疑問1:等額本息還款法每個月的還款額怎么計算,應該有個公式吧,要不然怎么計算出來每個月應還的利息與本金?
答:的確有一個計算公式。當然你可以自己推導出來(這樣你會很有成就感?。?,要不然就從網上搜索出來。
實驗四 循環程序綜合應用(4學時)
一、實驗目的:
掌握循環結構程序設計的一般方法及循環結構程序的調試方法,能夠綜合運用順序、選擇和循環結構解決一般難度的實際應用問題。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1.編程序實現如下功能:輸入任意一個年份和月份,按以下格式輸出該月份的公歷日歷。
要求由程序計算出來該月份的1日是星期幾,并用循環控制打印。打印樣例如下:
2012年日歷
==========
9月
---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30-------------------------
2.編程序實現如下功能:輸入任意一個年份,按以下格式輸出該年份全年的公歷日歷。要求由程序計算出來每個月份的1日是星期幾,并用循環控制打印。
四、常見問題
疑問1:如何控制某個月1日的打印位置?
答:先由程序計算出來該月份的1日是星期幾,然后控制在打印“1”之前打印相應個數的空格。
疑問2:如何控制每周和每月的打印換行?
答:可以根據當前這一天的打印位置控制每周的打印換行,并根據該月份的天數控制每月的打印換行。
實驗五 字符串處理綜合應用(4學時)
一、實驗目的
掌握字符串處理的一般方法及字符串處理應用程序的調試方法,能夠綜合運用選擇、循環結構和數組、指針解決一般難度的實際應用問題。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容: ⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1.編程實現,輸入一個整數的小寫金額值(即不考慮角和分),轉化為大寫金額值并輸出。先實現基本功能,如輸入1002300,可以輸出“壹佰零拾零萬貳仟叁佰零拾零元整”。
2.編程實現,輸入一個小寫金額值,轉化為大寫金額值輸出。要求實現相對完善的功能,如輸入1002300.90,應該輸出“壹佰萬貳仟叁佰元零玖角整”。
四、常見問題
疑問1:如何才能分離出整數中的每一位數字?
答:可以利用整數的求余數和除法運算實現數字的分離,同時將分離出的數字存入到一個事先定義好的數組中,每個數組元素只存儲一位數字。
疑問2:若不能確定整數的實際位數,如何控制分離過程?
答:可以通過循環控制數字的分離過程,每循環一次分離出來當前的最末一位,然后去掉最末一位,直至分離出所有的位。
疑問3:如何控制給某位數字添加合適的數量單位,如萬、仟、佰、拾、元?
答:可以根據該數字在原小寫數值中的位置進行控制,如第0位單位為“元”,第1位單位為“拾”,依此類推。
實驗六 文件應用程序設計(2學時)
一、實驗目的掌握文件應用程序設計的一般方法及其調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個月,還款方式為等額本金還款法(即貸款期限內每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。要求將輸出結果寫入到數據文件中。
2. 若還款方式采用等額本息還款法(即貸款期限內每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。要求將輸出結果寫入到數據文件中。
第二篇:C語言程序設計實驗四(本站推薦)
C語言程序設計實驗
(四)[實驗1] scanf()、printf()函數的使用。
1.實驗題目
輸入1個學生學號和4門課程成績,輸出這個學生的學號、4門課程成績和平均成績。
2.實驗要求
(1)按表格的形式輸出,以行內輸出一個學生的信息。
(2)學號用長整型,各科成績用單精度型。
3.實驗目標
(1)掌握實現人機對話形式的方法,scanf()輸入。
(2)體會根據需要控制輸出格式的方法,printf()輸出。
4.實驗指導
利用格式的數據寬度控制數據的對位輸出。輸出如下格式:
The number and score of a student is:
|---|
|number | score1 | score2 | score3 | sco re4 | average |
|---|
|10011| 67.5|88.0 |93.5 |78.0|81.75 |
|---|
[實驗2] getchar()、putchar()函數的使用
1.實驗題目
用getchar()函數讀入a~v之間的一個字母,用putchar()函數輸出一個5行5列的矩陣,該矩陣第一行為讀入的字母,下一行為緊跟該字母后的字母,依此類推。如輸入a,則輸出的矩陣為:
aaaaa
bbbbb
ccccc
ddddd
eeeee
2.實驗要求
(1)運用getchar()進行字符輸入。
(2)運用putchar()進行字符輸出。
3.實驗目標
(1)體會根據需要控制輸出格式的方法。
[實驗3] 3.6 下面程序運行時在鍵盤上如何輸入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,請寫出對應每個scanf函數的輸入情況。
main()
{ int a,b;float x,y;char c1,c2;
scanf(“a=%d□b=%d”,&a,&b);
scanf(“□%f %e”,&x,&y);
scanf(“□%c %c”,&c1,&c2);
}
3.7編一程序,從鍵盤輸入一個圓半徑值,求圓周長、圓面積、圓球表面積、圓球體積。輸出結果時,要求有文字說明,保留2位小數。
提示:設圓半徑為r,則圓周長=2πr,圓面積=πr2,圓球表面積=4πr2,圓球體積= 4πr3/3。
第三篇:《C語言程序設計》實驗四
電子科技大學 計算機 學院
標 準 實 驗 報 告
(實驗)課程名稱
C語言程序設計
電子科技大學教務處制表
電 子 科 技 大 學 實
驗
報
告
四
學生姓名:
學 號:
指導教師:劉 勇 實驗地點: 計算機學院軟件306室
實驗日期:
****年**月**日
一、實驗室名稱:
軟件實驗室
二、實驗項目名稱:函數的應用及預處理
三、實驗學時:2
四、實驗原理:
使用Turbo C軟件(簡稱TC),在微型計算機上,對其程序進行編輯、編譯、連接與運行。Turbo C是一個集成環境,它具有方便、直觀、易用的界面和豐富的庫函數。通過上機練習掌握在TC環境下編輯、編譯、連接、和運行C程序的方法和過程。
五、實驗目的
1. 掌握C語言中定義函數的方法; 2. 掌握函數傳值調用的方法; 3. 掌握函數傳址調用的方法; 4. 掌握遞歸函數的設計方法; 5. 掌握命令行參數的使用方法;
6. 掌握函數在不同文件中的編譯、鏈接方法。
六、實驗內容
編程實驗,完成以下上機內容,調試運行程序并完成報告 1)、教材第七章習題7.4;
2)、編寫一個實現冒泡法排序的函數,并在主函數中從鍵盤上輸入6個數后進行排序輸出;
3)、教材第七章習題7.11; 4)、教材第七章習題7.15; 5)、教材第七章習題7.24; 6)、求解漢渃塔(tower of Hanoi)問題。在一塊平板上立有3根立柱,從左到右分別標記為A,B,C。最初在A柱上放有6個大小不等的圓盤,并且大盤在下面,小盤在上面。要求將這些盤從A移到C(可以借助B柱)。條件是:每次只能移動一個盤,并且不允許把大盤放在小盤的上面。(提示:利用函數的遞歸調用);
七、實驗器材(設備、元器件):
pc硬件要求:CPU PII 以上,64M 內存,1OOM 硬盤空間即可。
軟件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。
八、實驗步驟: 實驗編程與運行結果
⑴ 編寫一個求兩個整數的最小公倍數的函數,兩個整數由鍵盤輸入,用主函數調用這個函數,并輸出結果。
程序文件名為7_4.c,源程序清單如下:
#include
運行結果:
⑵ 編寫一個實現冒泡法排序的函數,并在主函數中從鍵盤上輸入6個數后進行排序輸出。
程序文件名為testf3.c,源程序清單如下:
main(){ int i,j,a[7];int temp;clrscr();for(i=1;i<7;i++){ printf(“nInput a[%d]=”,i);scanf(“%d”,&a[i]);} for(i=1;i<6;i++)for(j=1;j<7;j++){ if(a[j] temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i<7;i++){ printf(“n%5d”,a[i]);} }_ 運行結果: ⑶ 編寫一個通過函數調用把輸入的小寫字符串變為大寫字符串的程序。 程序文件名為7_11.c,源程序清單如下: #include