




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗手冊使用及要求實驗操作是教學過程中理論聯系實際的重要環節,而實驗報告的撰寫又是知識系統化的吸收和升華過程,因此,實驗報告應該體現完整性、規范性、正確性、有效性?,F將實驗報告撰寫的有關內容說明如下:1、 實驗前按實驗要求手寫程序或程序填空,并走查代碼,有疑問處標記,上機時在C語言集成開發環境下輸入并調試手寫程序,分析運行結果。2、 實驗結束后填寫通過后的源程序和對實驗的總結。3、 通過后的源程序可以手寫也可以打印粘貼。實驗項目一覽表序 號實驗項目實驗性質學 時實驗一熟悉C語言編程環境驗證性2實驗二用C語言編寫簡單程序驗證性2實驗三分支結構程序設計 驗證性2實驗四循環結構程序設計驗證性4實驗五
2、函數程序設計驗證性4實驗六數組程序設計驗證性2實驗七指針程序設計驗證性4實驗八結構體程序設計驗證性2實驗九程序設計進階綜合性2實驗十文件程序設計綜合性4學號: 姓名: 成績: 實驗一 熟悉C語言編程環境實驗目的:1熟悉C語言編程環境(VC+、Cfree、Turboc2.0等)2了解C程序的基本框架3理解程序調試的思想,能找出并改正C程序中的錯誤實驗內容:1.1 建立自己的文件夾:在磁盤上建立一個文件夾,用于存放自己的C程序1.2 編程示例在屏幕上顯示一個短句“Programming in C is fun!”(教師示例,學生模仿并創新,如輸出漢字、特除字符等。學會使用編程環境VC+,啟動、編輯
3、、編譯、運行、保存、關閉、打開)1.3 編程在屏幕上顯示如下網格。+-+-+| | | | |+-+-+1.4 調試示例改正下列程序中的錯誤,在屏幕上顯示“Welcome to You !”。(掌握找錯、改錯的方法)源程序:# include <stdio.h> int mian(void) printf(Welcome to You! n") getchar(); return 0;注:需要修改的語句直接在程序上標注并修改實驗總結:學號: 姓名: 成績: 實驗二 用C語言編寫簡單程序實驗目的:1掌握算術表達式和賦值表達式的使用2掌握基本輸出函數的使用3能夠自己編程實現簡
4、單的數據處理4. 熟練掌握簡單if語句使用5. 熟練掌握for語句的使用6. 掌握簡單C程序的查錯方法、單步調試實驗內容:2.1 調試以下程序,求華氏溫度對應的攝氏溫度。計算公式為:C=5*(f-32)/9#include <stdoi.h>int main(void) int celsius; fahr; scanf("%d ",fahr); celsius = 5 * (fahr - 32) / 9; printf("fahr = d, celsius = %dn", fahr, celsius); return 0; 注:需要修改的語句
5、直接在程序上標注并修改2.2 編寫程序計算定期存款本利之和:設銀行定期存款的年利率rate為2.25%,并已知存款期為n年,存款本金為capital元,試編程計算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入,輸出時保留兩位小數。計算公式為:deposit=capital(1+rate)n2.3 計算身體質量指數一個稱為“身體質量指數”(BMI)的量用來計算與體重有關的健康問題的危險程度。BMI按下面的公式計算: BMI=w/h2其中w是以千克為單位的體重。h是以米為單位的身高。大約20至25的BMI的值被認為是“正常的”,編寫一個應
6、用程序,輸入體重和身高,輸出BMI,并判斷是否正常。2.4 水仙花數判斷輸入一個三位數,判斷是否是水仙花數,水仙花數是3位數,數本身的值恰好等于各位數字的立方和 如:153=13+53+33實驗總結: 學號: 姓名: 成績: 實驗三 分支結構程序設計實驗目的:1熟悉掌握關系表達式和邏輯表達式的使用2熟練掌握用嵌套的if語句和switch語句實現多分支結構程序設計3掌握使用斷點調試程序的方法實驗內容:3.1 按要求調試程序輸入參數a,b,c,求一元二次方程ax2+bx+c=0的根。include <stdio.h>#include <math.h>int main(voi
7、d)double a, b, c,d;printf("Enter a, 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("參數都為零,方程無意義!n"); /*調試時設置斷點*/elseprintf("a和b為0,c不為0,方程不成立n");elseprintf("x = %0.2fn", -c/b);elseif(d >= 0
8、) /*調試時設置斷點*/printf("x1=%0.2fn", (-b+sqrt(d)/(2*a);printf("x2=%0.2fn", (-b-sqrt(d)/(2*a);elseprintf("x1=%0.2f+%0.2fin", -b/(2*a), sqrt(-d)/(2*a);printf("x2=%0.2f-%0.2fin", -b/(2*a), sqrt(-d)/(2*a); return 0; /*調試時設置斷點*/注:調試時按注釋位置設置三個斷點,單擊Go按鈕,輸入2.1 8.9 3.5 ,觀察
9、變量值的情況。第一次斷點:a,b,c的值分別是:第二次斷點:d的值是:第三次斷點:運行窗口顯示:3.2 求三角形的面積和周長輸入三角形的三條邊 a, b, c,如果能構成一個三角形,輸出面積area 和周長perimeter(保留2 位小數);否則,輸出“These sides do not correspond to a valid triangle”。在一個三角形中,任意兩邊之和大于第三邊。三角形的面積計算公式: 其中:s = (a+b+c)/23.3 計算個人所得稅輸入一個職工的月薪 salary,輸出應交的個人所得稅tax(保留2 位小數)。tax = rate * (salary-3
10、500) - 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 < sa
11、lary <= 83500 時,rate =35%,deduction=5505;當 83500 < salary 時,rate =45%,deduction=13505;3.4 計算出租車費某市不同品牌出租車價格為:捷達5元起價,1公里內收起步價,1公里外按1.4元/公里收?。凰衮v7元起價,1公里內收起步價,1公里外按1.4元/公里收??;紅旗10元起價,1公里內收起步價,1公里外按1.5元/公里收取。編寫程序,從鍵盤輸入乘車車型和乘車公里數,輸出應付的車費。(采用switch語句實現車型選擇)實驗總結:學號: 姓名: 成績: 實驗四 循環結構程序設計實驗目的:1熟練掌握for、w
12、hile、和dowhile語句實現循環程序設計2. 理解循環條件和循環體,以及三種循環語句的相同和不同之處3熟練掌握break、continue語句的使用4掌握使用“Debug”菜單調試程序的方法實驗內容:4.1 按要求調試程序改正下列程序中的錯誤,輸入2個正整數m和n,輸出它們的最小公倍數和最大公約數。#include <stdio.h>int main(void) int m, n, j, k; /* j表示最小公倍數,k表示最大公約數 */ do printf("Input m: "); scanf("%d", &m); pri
13、ntf("Input n: "); scanf("%d", &n); while(m<0|n<0);j = m; while(j % n != 0) /* 調試時設置斷點 */ j = j + m;k = (m * n) / j; /* 調試時設置斷點 */ printf("最小公倍數是%d n最大公約數是%dn ", j, k); return 0;注:調試時按注釋位置設置二個斷點,單擊Go按鈕,輸入3 7 ,觀察變量值的情況。第一次斷點:m,n的值分別是:第二次斷點:j的值是:若結果不對,停止調試,改正錯誤后,
14、取消第一個斷點,單擊Go,到斷點處,此時j的值是:4.2 編寫程序輸入一批正整數(以0或負數為結束標志),求其中的偶數和。4.3編寫程序給一個不多于5位的正整數,要求:a. 求出它是幾位數;b. 分別輸出每一位數字;c. 按逆序輸出各位數字,例如原數為321,應輸出1234.4 統計素數并求和輸入 2 個正整數m 和n(1<=m,n<=500),統計并輸出m 和n 之間的素數的個數以及這些素數的和(素數就是只能被1 和自身整除的正整數,1 不是素數,2 是素數)。4.5 編寫程序用一張一元票換1分、2分和5分的硬幣(至少各一枚),問有哪幾種換法?各幾枚?4.6 猜數游戲先由計算機“
15、想”一個1100之間的數請人猜,如果人猜對了,則結束游戲,并在屏幕上輸出人猜了多少次才猜對此數,以此來反映猜數者“猜”的水平;否則計算機給出提示,告訴人所猜的數是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,結束游戲?!舅伎肌咳绻胹canf輸入用戶猜測的數據時,如果用戶不小心輸入了非法字符,如字符a,那么程序運行就會出錯,用什么方法可以避免這樣的錯誤發生呢?請編寫程序驗證方法的有效性。實驗總結:學號: 姓名: 成績: 實驗五 函數程序設計實驗目的:1熟練掌握函數的定義和調用2熟練掌握使用函數編寫程序3掌握函數的實參、形參和返回值的概念和使用4. 掌握單步調試進入函數和跳出函數的
16、方法實驗內容:5.1 改錯改正下列程序中的錯誤,計算1!+2!+3!+4!+10!的值,要求定義并調用函數fact(n),計算n!,函數類型是double。#include <stdio.h>double fact(int n)int main(void ) int i; double sum; for (i = 1 ; i < 10; i+) sum = sum + fact(i); /*設置斷點*/ printf("1!+2!+10!= %fn", sum); return 0;double fact(int n); int i; double res
17、ult; for (i = 1 ; i <=n; i+) fact(n)=fact(n)*i; return result;注:1. 需要修改的語句直接在程序上標注并修改 2. 設置斷點,單步進入函數和從函數返回主調函數5.2 求aaaaaaaaa輸入 2 個正整數a 和n, 求a+aa+aaa+aaa(n 個a)之和。要求定義并調用函數 fn(a,n),它的功能是返回aaa(n 個a)。例如,fn(3,2)的返回值是33。5.3 統計一個整數中數字的個數要求定義并調用函數 countdigit(number,digit),它的功能是統計整數number 中數字digit的個數。例如,c
18、ountdigit(10090,0)的返回值是35.4 判斷素數輸入一個正整數 n,如果它是素數,輸出"YES",否則,輸出"NO"(素數就是只能被1 和自身整除的正整數,1 不是素數,2 是素數)。要求定義并調用函數 prime(m)判斷m 是否為素數。5.5 輸出 Fibonacci 序列輸入 2 個正整數m 和n(1<=m,n<=10000),輸出m 和n 之間所有的Fibonacci 數。Fibonacci 序列(第1 項起):1 1 2 3 5 8 13 21 .要求定義并調用函數fib(n),它的功能是返回第n 項Fibonacc
19、i 數。例如,fib(7)的返回值是13。例:括號內是說明輸入:20 100 (m=20, n=100)輸出:21 34 55 89 (20 到100 之間的Fibonacci 數)實驗總結:學號: 姓名: 成績: 實驗六 數組程序設計實驗目的:1熟練掌握一維數組、二維數組編程方法2. 熟練掌握字符串的存儲和操作方法3熟練掌握排序算法實驗內容:6.1改錯改正下列程序中的錯誤,輸入一個正整數n(0<n<9)和一組(n個)有序的整數,再輸入一個整數x,把x插入到這組數據中,使該組數據仍然有序。#include <stdio.h>int main( ) int i, j, n
20、, x, an; printf("輸入數據的個數n:"); scanf("%d", &n); printf("輸入%d個整數:", n); for(i = 0; i < n; i+)scanf("%d", &ai); printf("輸入要插入的整數:"); scanf("%d", &x); for(i = 0; i < n; i+)if(x > ai) continue; j = n - 1;while(j >= i) /*
21、調試時設置斷點 */ aj = aj+1; j+; /* 調試時設置斷點 */ ai = x; break; if(i = n) an=x; for(i = 0; i < n + 1; i+) printf("%d ", ai); putchar('n'); return 0;6.2 求平均值輸入一個正整數 n (1<n<=10),再輸入n 個整數,輸出平均值(保留2 位小數)。6.3 交換最小值和最大值輸入一個正整數 n (1<n<=10),再輸入n 個整數,將最小值與第一個數交換,最大值與最后一個數交換,然后輸出交換后的n
22、個數。6.4 排序輸入一個正整數 n (1<n<=10),再輸入n 個整數,將它們從大到小排序后輸出。6.5 改錯改正下列程序中的錯誤,輸入2個正整數m和n(m>=1,n<=6),然后輸入該m行n列二維數組a中的元素,分別求出各行元素之和并輸出。 #include <stdio.h> int main( ) int a66, i, j, m, n, sum; printf("input m, n:"); scanf("%d%d",&m,&n); printf("input array:n&qu
23、ot;); for(i=0;i<m;i+) /* 調試時設置斷點 */ for(j=0;i<n;j+) scanf("%d",&aij); sum=0; for(i=0;i<m;i+) for(j=0;j<n;j+) sum=sum+aij; printf("sum of row %d is %dn",i,sum); /* 調試時設置斷點 */ return 0;6.6 編程找鞍點輸入 1 個正整數 n(1n6)和n 階方陣a 中的元素,如果找到a 的鞍點(鞍點的元素值在該行上最大, 在該列上最?。? 就輸出它的下標, 否
24、則,輸出"NO"(設a 最多有1 個鞍點)。6.7 改錯改正下列程序中的錯誤,輸入一個以回車結束的字符串(少于80個字符),將它的內容逆序輸出。如“ABCD”輸出為“DCBA”。#include <stdio.h> int main( ) int i, k, temp; char str; printf("input a string: "); i = 0; while(stri = getchar( ) != 'n') i+; stri = '0' k = i - 1; for(i = 0; i < k
25、; i+) /* 調試時設置斷點 */ temp = stri; stri = strk; strk = temp;k+; /* 調試時設置斷點 */ for(i = 0; stri != '0' i+) putchar(stri); return 0;6.8 統計大寫輔音字母個數輸入一個以回車結束的字符串(少于80個字符),統計并輸出其中大寫輔音字母的個數(除A、E、I、O、U以外的大寫字母)。實驗總結:學號: 姓名: 成績: 實驗七 指針程序設計實驗目的:1理解指針、地址和數組間的關系2. 掌握通過指針操作數組元素的方法3掌握數組名作為函數參數的編程方式4. 掌握通過指針操
26、作字符串的方法實驗內容:7.1 改錯改正下面程序中的錯誤。有n個整數,使前面各數順序循環移動m個位置(m<n)。編寫一個函數實現以上功能,在主函數中輸入n個整數并輸出調整后的n個整數。#include <stdio.h>void mov(int *, int, int);int main() int m, n, i, a80, *p; printf("Input n, m:"); scanf("%d%d",&n,&m); for(p=a,i=0;i<n;i+) scanf("%d",&p
27、+); mov(a,n,m); printf("After move: "); for(i=0;i<n;i+) printf("%5d",ai); return 0;void mov(int *x, int n, int m) int i,j; for(i=0;i<m;i+) for(j=n-1;j>0;j-) xj=xj-1; /* 調試時設置斷點 */ x0=xn-1; 7.2 查找整數定義一個函數 search(int list,int n,int x),在數組list中查找元素x,若找到則返回相應下標,否則返回-1。在main函
28、數中調用search。補充程序完成search功能。#include <stdio.h>int search(int list,int n,int x);int main()int i, x, a10, res;for(i=0; i<10; i+)scanf("%d", &ai);scanf("%d", &x);res = search(a, 10, x);printf("%d ", res);return 0;int search(int list,int n,int x)7.3 排序定義函數voi
29、d sort(int a,int n),用選擇法對數組a中的元素排序。自己定義main函數,并在其中調用sort函數。7.4 改錯改正下面程序中的錯誤。輸入5個字符串,輸出其中最大的字符串。#include <stdio.h>#include <string.h>int main( ) int i; char str80, max80; printf("Input 5 strings:n"); scanf("%s",str); max=str; for(i=1; i<5; i+) scanf("%s",s
30、tr);if (max<str) /* 調試時設置斷點 */ max=str; printf("Max is: %s n", max); return 0; 7.5 字符串復制分別用字符數組和字符指針定義函數strmcpy(s,t,m),將字符串t中從m個字符開始的全部字符復制到字符串s中去。實驗總結:學號: 姓名: 成績: 實驗八 結構程序設計實驗目的:1掌握結構體變量的基本使用方法2. 掌握結構體數組的基本使用方法3掌握結構體指針的概念,以及結構指針作為函數參數的編程方法實驗內容:8.1 調試調試下面的程序,查看運行結果是否和題目要求相符。輸入一個正整數n(3&l
31、t;=n<=10),再輸入n個雇員的信息(如下表所示),輸出每人的姓名和實發工資(基本工資+浮動工資-支出)。工資表姓名基本工資浮動工資支出Zhang1200500100Wang35001000500Zhao2400800200#include <stdio.h>int main (void ) int i, n; struct emp char name10; float jbg; float fdg; float zc; s10; printf("n="); scanf("%d", &n); for (i = 0; i &l
32、t; n; i+) scanf("%s%f%f%f", , &si.jbg, &si.fdg, &si.zc); for (i = 0; i < n; i+) /* 調試時設置斷點 */ printf ("%5s,實發工資:%7.2fn", , si.jbg+si.fdg-si.zc); return 0; /* 調試時設置斷點 */和題目要求是否相符?8.2 日期換算定義一個關于年、月、日的結構,并編寫一函數計算某日是該年中的第幾天?注意閏年問題。8.3 成績處理輸入一個正整數n,再輸入n 個學
33、生的學號和數學、英語、計算機成績,要求(1) 計算每一個學生的平均成績。(2) 計算每門課程的平均成績。(3) 輸出平均成績最高的學生的記錄。(4) 按平均成績從高到低輸出學生的成績單(學號、數學、英語、計算機成績和平均成績)實驗總結:學號: 姓名: 成績: 實驗九 程序設計進階實驗目的:1了解結構化程序設計的基本思想2. 掌握使用工程組織多個程序文件的方法3掌握函數嵌套、函數遞歸的編程方法4. 理解指針與函數間的關系實驗內容:9.1 按要求調試程序編寫一個簡單加、減運算的計算器,輸入計算式的格式為整數常量 運算符 整數常量先分別編寫3個源程序文件,然后用建立工程的方法將這些文件組織起來。源程序1#include <stdio.h>int main(void) extern int Add(int a, int b); e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甜品中秋活動方案
- 生態教育延伸活動方案
- 生日會公司內部活動方案
- 生活自立教育活動方案
- 生物實踐活動方案
- 生鮮營銷比賽活動方案
- 爸爸電臺活動方案
- 理論故事活動方案
- 燒烤patry活動方案
- 猜燈謎形式活動方案
- 電影音樂欣賞智慧樹知到期末考試答案章節答案2024年華南農業大學
- lemontree中英文對照打印版
- DB44∕T 721-2010 通信鋼管塔(鐵塔)高處作業安全防護技術規范
- nm1系列塑料外殼式斷路器樣本
- 課程實施與課程評價課件(PPT 40頁)
- TSG Z7002-2022 特種設備檢測機構核準規則
- 數學建模試卷分析
- 河南某高速公路日常養護工程施工組織設計方案
- 高一物理學案(必修1)
- 保密工作臺賬實用表格
- 餐廳設備檢查表
評論
0/150
提交評論