程序設(shè)計(jì)語言實(shí)驗(yàn)指導(dǎo)書_第1頁
程序設(shè)計(jì)語言實(shí)驗(yàn)指導(dǎo)書_第2頁
程序設(shè)計(jì)語言實(shí)驗(yàn)指導(dǎo)書_第3頁
程序設(shè)計(jì)語言實(shí)驗(yàn)指導(dǎo)書_第4頁
程序設(shè)計(jì)語言實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程序設(shè)計(jì)語言C實(shí)驗(yàn)指導(dǎo)書適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 軟件工程上海應(yīng)用技術(shù)學(xué)院2009-2-20I / 17目錄I / 17實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì)1實(shí)驗(yàn)二 分支結(jié)構(gòu)程序設(shè)計(jì)2實(shí)驗(yàn)三 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一3實(shí)驗(yàn)四(1) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)二4實(shí)驗(yàn)四(2) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)三5實(shí)驗(yàn)五 數(shù)組6實(shí)驗(yàn)六 數(shù)組和字符串7實(shí)驗(yàn)七 函數(shù)8實(shí)驗(yàn)八 函數(shù)9實(shí)驗(yàn)九 指針10實(shí)驗(yàn)十 結(jié)構(gòu)體11實(shí)驗(yàn)十一 文件12實(shí)驗(yàn)十二 綜合1315 / 17實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 掌握C語言程序結(jié)構(gòu)。2. 掌握變量的定義和使用。3. 掌握輸入輸出函數(shù)的使用。4. 掌握賦值語句的使用。內(nèi)容:1. 從鍵盤輸入兩個(gè)數(shù),計(jì)算兩個(gè)

2、數(shù)的和,然后輸出。A123B456SUM=A+B=123+456=579注意:帶下劃線的內(nèi)容表示是從鍵盤輸入的,實(shí)際上機(jī)時(shí)并不顯示下劃線,其余的內(nèi)容是程序輸出的。2. 從鍵盤輸入一個(gè)華氏溫度,請轉(zhuǎn)換成攝氏溫度后輸出。請輸入一個(gè)華氏溫度:12.34和華氏溫度 12.34 度相對(duì)應(yīng)的攝氏溫度為 -10.92 度3. 電路圖如下所示,從鍵盤輸入5個(gè)電阻的電阻值,計(jì)算并輸出總的電阻值。請輸入r1、r2、r3、r4和r5(使用空格分隔):1.1 2.2 3.3 4.4 5.5總電阻 R= 0.89 歐姆R1R2R3R4R51 / 17實(shí)驗(yàn)二 分支結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 掌握邏輯表達(dá)式的使用方法。2.

3、 掌握if和switch語句的使用方法。3. 掌握一些簡單的算法。內(nèi)容:1. 有下列函數(shù),寫一段程序,輸入x的值,輸出y的值 x (x<1)y= 2x-1 (1<=x<10) 3x-11 (x>=10)X40Y109X10Y19X5Y9X1Y1X-3Y-32. 輸入一個(gè)不超過6位的正整數(shù),輸出該數(shù)的最高位和最低位,如果該數(shù)是一位數(shù),則輸出該數(shù)。然后再輸出該數(shù)是幾位數(shù)。程序需要對(duì)輸入的數(shù)進(jìn)行合法性檢查,對(duì)小于0和大于6位的數(shù)要有提示。X1234567ErrorN>6X2ErrorX<0X22N1X1231,3N33. 輸入一個(gè)0到100的百分制成績,轉(zhuǎn)換成五級(jí)

4、制A、B、C、D和E。程序中首先需要對(duì)輸入的數(shù)進(jìn)行合法性檢查,對(duì)小于0和大于100的數(shù)要有提示,然后轉(zhuǎn)換部分使用switch語句實(shí)現(xiàn)。分?jǐn)?shù)120分?jǐn)?shù)大于100,非法!分?jǐn)?shù)-5分?jǐn)?shù)小于0,非法!分?jǐn)?shù)85等級(jí)B2 / 17實(shí)驗(yàn)三 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一實(shí)驗(yàn)?zāi)康模?. 掌握循環(huán)結(jié)構(gòu)的使用方法。2. 掌握while和for語句的使用方法。3. 掌握程序單步調(diào)試的方法。4. 掌握一些簡單的算法。內(nèi)容:1. 公式的計(jì)算 x=N!2. 輸入最多10個(gè)整數(shù),找出最大值、最小值,并計(jì)算平均值。N5n11n23n35n47n59Max=9Min=1Avg=53. 輸入一個(gè)不超過6位的正整數(shù),分別輸出該數(shù)的每一位,并用

5、逗號(hào)分隔,如果該數(shù)是一位數(shù),則輸出該數(shù)。然后再輸出該數(shù)是幾位數(shù)。程序需要對(duì)輸入的數(shù)進(jìn)行合法性檢查,對(duì)小于0和大于6位的數(shù)要有提示。X1234567ErrorN>6X2ErrorX<0X22N1X1231,2,3N33 / 17實(shí)驗(yàn)四(1) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)二實(shí)驗(yàn)?zāi)康模?. 掌握單重循環(huán)和多重循環(huán)結(jié)構(gòu)的使用方法。2. 掌握程序單步調(diào)試的方法。3. 掌握一些簡單的算法。內(nèi)容:1. 輸入N,計(jì)算公式 的值。N=5sum=(1+2)+(2+3)   +(3+4)+(4+5)   +(5+6)   =3

6、52. 輸入一個(gè)正整數(shù)n(1n200),輸出所有的整數(shù)對(duì),其相乘的積等于n。N=300ErrorN=201*20=202*10=204*5=20N=0Error3. 編程打印數(shù)字金字塔。N=5.1.121.12321.1234321.123454321N=3.1.121.123214 / 17實(shí)驗(yàn)四(2) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)三實(shí)驗(yàn)?zāi)康模?. 掌握單重循環(huán)和多重循環(huán)結(jié)構(gòu)的使用方法。2. 掌握程序單步調(diào)試的方法。3. 掌握一些簡單的算法。內(nèi)容:1. 輸入N,計(jì)算公式 的值,其中N>0。N=4sum=1   +2+3   +3+4+5&

7、#160;  +4+5+6+7    =402. 每個(gè)大于1的數(shù)的立方都可以表示成一連續(xù)奇數(shù)之和,試證實(shí)2到10的數(shù)都滿足這樣的規(guī)律。2(3)=8 3+5=83(3)=27 7+9+11=274(3)=64 1+3+5+7+9+11+13+15=645(3)=125 21+23+25+27+29=1253. 用牛頓迭代法求方程在下面方程在1.5附近的根: xn=1.5x=nnn.nnny=f(nnn.nnn)=nnn5 / 17實(shí)驗(yàn)五 數(shù)組實(shí)驗(yàn)?zāi)康模?. 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的使用方法。2. 掌握與數(shù)組有關(guān)的算法。內(nèi)容:

8、1. 輸入n及n個(gè)整數(shù)(n<20),然后按奇數(shù)升序、偶數(shù)降序排列輸出。N=6n1=1n2=90n3=85n4=2n5=10n6=18odd = 1 85Even= 90 18 10 22. 輸入一個(gè)日期,計(jì)算該天是該年的第幾天。Year=2007Month=1Day=15The day is 15th day of Year 2007.3. 依次輸入某個(gè)班級(jí)n個(gè)學(xué)生的數(shù)學(xué)、物理和化學(xué)課程的成績,計(jì)算平均成績后輸出成績列表,同時(shí)還要輸出每個(gè)學(xué)生的平均成績是否高于班級(jí)的平均成績。N=4S1=60 80 90S2=70 78 87S3=95 66 89S4=67 89 90No MAT PHY

9、 CHM AVG Y/N 1 60 80 90 77 2 70 78 87 78 3 95 66 89 83 Y4 67 89 90 82 Y6 / 17實(shí)驗(yàn)六 數(shù)組和字符串實(shí)驗(yàn)?zāi)康模?. 掌握一維數(shù)組、二維數(shù)組和字符數(shù)組的定義、賦值和輸入輸出的使用方法。2. 掌握與數(shù)組有關(guān)的算法。內(nèi)容:1. 輸入S1和S2兩個(gè)字符串,將長的字符串拼接在短的字符串后面并輸出,如果長度相等,S1接在S2后面。假設(shè)兩個(gè)字符串的長度相加不超過80。(不能使用strcat等函數(shù))S1=abcdefS2=1234Length of S1=6Length of S2=4S2+S1=1234abcdefS1=abcS2=1

10、23456Length of S1=3Length of S2=6S1+S2=abc1234562. 輸入兩個(gè)日期,計(jì)算兩日期的天數(shù)差,并顯示兩日期的順序。假設(shè)兩個(gè)日期在同一年份。(思考:任意給兩個(gè)日期,求天數(shù)差。)(需要考慮兩個(gè)日期不再同一年份,但不考慮1700、1800等不是閏年的年份)Date1:2007 2 15Date2:2007 1 15Days between Date1 and Date2 is 31.And Date1>Date2.3. 依次輸入某個(gè)班級(jí)n個(gè)學(xué)生的姓名、數(shù)學(xué)、物理和化學(xué)課程的成績,在輸入姓名時(shí)直接回車表示輸入結(jié)束,計(jì)算平均成績后按姓名的字典順序輸出成績列

11、表,同時(shí)還要輸出每個(gè)學(xué)生的平均成績是否高于班級(jí)的平均成績。(注意:輸出時(shí),姓名的首字母大寫。)7 / 17S1 Name=wangScore=60 80 90S2=ZHANGScore=70 78 87S3=LiScore=95 66 89S4=yANGScore=67 89 90S5=No Name MAT PHY CHM AVG Y/N 3   Li    95 66 89 83 Y1   Wang  60 80 90 77 4   Yang

12、  67 89 90 82 Y2   Zhang 70 78 87 78 實(shí)驗(yàn)七 函數(shù)實(shí)驗(yàn)?zāi)康模?. 掌握函數(shù)定義的方法。2. 掌握函數(shù)調(diào)用、實(shí)參和形參的傳遞方法。3. 掌握變量作用域和變量類型的使用方法。內(nèi)容:1. 從鍵盤輸入數(shù)行數(shù)據(jù),每行三個(gè)正整數(shù)n1、n2和n3,三個(gè)0表示輸入結(jié)束。每輸入完一行,輸出n1和n2之間(包括n1和n2)能被n3整除的數(shù)的個(gè)數(shù)。要求用一個(gè)函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)整除數(shù)個(gè)數(shù)的功能,其首部為: int aliquot(int n1, int n2, int n3)1 2 302 10 250 0 02. 求組合數(shù)。

13、計(jì)算 其中計(jì)算 C(m,n)的函數(shù)首部為: int cmn(int m, int n)計(jì)算階乘的函數(shù)首部為: int fac(int n)并用cmn函數(shù)打印楊輝三角形。8 / 173. 從鍵盤輸入最多50個(gè)整數(shù),0表示結(jié)束。將該批數(shù)據(jù)存入一個(gè)數(shù)組中,然后調(diào)用ReverseAndCount函數(shù)將數(shù)據(jù)在數(shù)組中的存放次序顛倒并統(tǒng)計(jì)出大于平均數(shù)的個(gè)數(shù),輸出結(jié)果。ReverseAndCount函數(shù)的功能為顛倒數(shù)據(jù)存放的次序和統(tǒng)計(jì)大于平均數(shù)的個(gè)數(shù),其首部為:int ReverseAndCount(int n, int s)如果為了程序的結(jié)構(gòu),你還可以添加其他的子程序。如,可以編寫計(jì)算數(shù)組中數(shù)據(jù)的平均值的函

14、數(shù),還可將ReverseAndCount函數(shù)分成兩個(gè)子程序?qū)崿F(xiàn)等。1 2 3 4 5 05 numbers inputted.Reverse: 5 4 3 2 1Count: 29 / 17實(shí)驗(yàn)八 函數(shù)實(shí)驗(yàn)?zāi)康模?. 掌握函數(shù)調(diào)用、實(shí)參和形參的傳遞方法。2. 掌握變量作用域和變量類型的使用方法。3. 掌握遞歸子程序的編寫和使用方法。內(nèi)容:1. 從鍵盤輸入數(shù)行數(shù)據(jù),每行最多20個(gè)正整數(shù),每行最后用0表示行結(jié)束。一個(gè)以0開始的行表示輸入結(jié)束。每輸入完一行,輸出該行數(shù)據(jù)的個(gè)數(shù)、平均值和有幾個(gè)數(shù)據(jù)大于該行的平均值。用一個(gè)函數(shù)實(shí)現(xiàn)數(shù)據(jù)輸入的功能,其首部為: int input(int s) input的

15、參數(shù)為輸入的數(shù)據(jù),函數(shù)返回值大于0表示該行輸入的數(shù)據(jù)個(gè)數(shù),0表示輸入結(jié)束。用一個(gè)函數(shù)實(shí)現(xiàn)求平均值的功能,首部為: int Average(int n, int s) Average的參數(shù)是n個(gè)數(shù)的數(shù)組,函數(shù)返回值為平均值。用一個(gè)函數(shù)實(shí)現(xiàn)統(tǒng)計(jì)大于平均值的數(shù)據(jù)個(gè)數(shù),首部為: int Count(int avg, int n, int s)1 2 3 4 5 05 3 211 12 13 14 04 12 202. 組合問題,由組合的基本性質(zhì)可知: (1)C(m,n)=C(n-m,n) (2)C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一個(gè)遞歸公式,一直到滿足C(1,n)=n為止。當(dāng)

16、n<2*m時(shí),可先用公式(1)進(jìn)行簡化。使用遞歸求C(m,n)。3. 用遞歸實(shí)現(xiàn)將輸入小于32768的正整數(shù)按逆序輸出。10 / 17實(shí)驗(yàn)九 指針實(shí)驗(yàn)?zāi)康模?. 掌握指針的概念、定義指針和使用指針的方法。2. 掌握和理解指針和數(shù)組的關(guān)系和使用方法。3. 掌握指針和字符串的關(guān)系和使用方法。注意:本次實(shí)驗(yàn)需要使用指針進(jìn)行編程。內(nèi)容:1. 從鍵盤輸入若干數(shù)據(jù)整數(shù)(零表示結(jié)束),統(tǒng)計(jì)出數(shù)據(jù)個(gè)數(shù),以及最大值、最小值和平均值。用一個(gè)函數(shù)實(shí)現(xiàn)數(shù)據(jù)輸入的功能,其首部為: int input(int s) input的參數(shù)為輸入的數(shù)據(jù),函數(shù)返回值大于0表示該行輸入的數(shù)據(jù)個(gè)數(shù),0表示輸入結(jié)束。用一個(gè)函數(shù)實(shí)現(xiàn)

17、求最大值、最小值和平均值的功能,首部為: void statistics(int n, int s, int *max, int *min, float *avg)1 2 3 4 5 0Max=5Min=1Avg=3.0002. 編寫函數(shù),通過指針一個(gè)將字符串反向。 函數(shù)首部為: void ReverseString(char *s) abcABC123321CBAcba3. 編寫一個(gè)Insert(插入)函數(shù),將一個(gè)字符串插入另一個(gè)字符串中指定位置。 函數(shù)首部為: int Insert(char *dest, char *src, int pos) 函數(shù)的返回值為插入后的字符串長度。dest:

18、abcdefgsrc:12345pos:3output:abc12345defg:1411 / 17實(shí)驗(yàn)十 結(jié)構(gòu)體實(shí)驗(yàn)?zāi)康模?. 掌握結(jié)構(gòu)體類型變量的定義和使用。2. 掌握結(jié)構(gòu)體類型數(shù)組的概念和使用方法。3. 掌握鏈表的概念和初步的使用方法。內(nèi)容:struct CIRCLE float r; struct POINT center;struct POINT float x; float y;1. 現(xiàn)有如下定義一個(gè)點(diǎn)和圓的結(jié)構(gòu)體:用一個(gè)函數(shù)來實(shí)現(xiàn)判斷某個(gè)圓是否包含坐標(biāo)原點(diǎn),其首部為: int HavingOrigin(struct CIRCLE c) X:10.2Y:3.3R:5.0Not Ha

19、ving Origin.Avg=3.000返回1表示包含,0表示不包含。 主程序輸入圓的參數(shù),然后調(diào)用函數(shù)判斷,并輸出判斷結(jié)果。X:1.2Y:3.3R:5.0Having Origin.Avg=3.000每個(gè)學(xué)生有學(xué)號(hào)、姓名、語文、數(shù)學(xué)、外語和平均成績。建立一個(gè)最多保存五個(gè)學(xué)生成績的結(jié)構(gòu)體類型數(shù)組。Input函數(shù)輸入學(xué)生的學(xué)號(hào)、姓名和三門課的成績,并計(jì)算平均成績,函數(shù)首部為: Input(int n, struct STUDENT s)主程序調(diào)用Input函數(shù)輸入學(xué)生成績,然后輸出學(xué)生的信息。struct Tstudent char No5;char Name20;int Chinese;in

20、t Math;int FL;int Average;N=31 Zhang 60 70 802 Wang 70 80 903 Li 30 50 801 Zhang 60 70 80 702 Wang  70 80 90 803 Li    30 50 80 532. (本題使用鏈表)從鍵盤輸入若干個(gè)大于0的整數(shù),0表示輸入結(jié)束。建立一個(gè)鏈表,鏈表節(jié)點(diǎn)的值為輸入的數(shù),節(jié)點(diǎn)次序和輸入次序相同。然后復(fù)制該鏈表,但次序相反,并輸出。input:2 4 6 8 1 3 5 7 0output:7 5 3 1 8 6 4 2 12 / 17實(shí)驗(yàn)十一 文件實(shí)驗(yàn)?zāi)康模?. 掌握文件的定義和使用。2. 掌握文件的打開、關(guān)閉和讀寫等使用方法。內(nèi)容:1. 先利用Notepad在D:MyDoc目錄中建立一個(gè)名為MyNew.txt的文本文件,在其中任意輸入數(shù)行內(nèi)容,然后編寫一個(gè)C語言程序,讀出MyNew.txt文件的內(nèi)容并在屏幕上顯示。2. 編寫C語言程序,在D:MyDoc目錄中建立一個(gè)名為MyText.txt的文本文件,在其中寫入兩行內(nèi)容,你的學(xué)號(hào)和你的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論