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

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)一基本類型的程序設(shè)計方法(4學(xué)時)一. 實(shí)驗(yàn)類型驗(yàn)證性二. 實(shí)驗(yàn)?zāi)康?. 掌握所用的C語言環(huán)境的基本操作方法。2. 常握編輯、編譯、連接和運(yùn)行C程序。3. 掌握C程序的數(shù)據(jù)類型、運(yùn)算符,表達(dá)式。三. 實(shí)驗(yàn)內(nèi)容和要求1. C語言上機(jī)步驟(1) 開機(jī),啟動 Microsoft Visual C卄 6。(2) 建立工程文件:在“文件”菜單中選擇“新建”命令項(xiàng),在彈出 的“新建”對話框的“工程”選項(xiàng)卡中選擇“Win32 Console Application”選項(xiàng),在工程”框中輸入匚程文件名syl,在空:位置” 下拉框中輸入或選擇文件夾,單擊“確定”;在以下彈出的兩個対話框中 分別單擊命令按鈕“完

2、成”和“確定”。(3) 建立C卄源文件:在“工程”菜單中選擇“添加到工程” 一 “新 建”命令項(xiàng),在彈出的“新建”對話框的“文件”選項(xiàng)卡中選擇“C+ Source Filen ,在右邊的文件”框中輸入文件名syll后單擊確定”。(4) 輸入源程序:在彈出的文件編輯窗口中輸入下面的源程丿宇:ttinclude void main() printf (Hello, World! n,/);(printf(Welcome to the C language world!n);printf(Everyone has been waiting for. n);(5) 編譯:用“編譯”菜單的“編譯”命令項(xiàng)

3、對源文件進(jìn)行編譯,如果程序有語法或語義錯誤,在屏幕下面的窗口會出現(xiàn)錯誤信息;這時候要 修改源程序、保存后重新編譯。直到修改了全部錯誤,屏幕下面的窗口會 出現(xiàn)下面的信息:Configuration: sy1 - Win32 Debug Compilingsy11 .cppsy11.0叮 -0 error(s), 0 warning(s)E入編譯Xi周試查找文件1 查找文件2 4 |表示已通過編譯,生成了目標(biāo)程序。(6)調(diào)試:接下來進(jìn)行調(diào)試,完成調(diào)試后,生成可執(zhí)行程序文件。(7)運(yùn)行:最后用“編譯”菜單的“!執(zhí)行”命令項(xiàng)運(yùn)行可執(zhí)行程序3隅1 Debugsyl .eHeel lo. World?We

4、lcome to the C language vwrld? jEueiwone has been waiting for. Press any key to continue. |n|編譯工具窗口那助彥編譯6I+F7迪件 syl.exe F7 窗重逹全部批構(gòu)件清潔開始調(diào)試 調(diào)試程序遠(yuǎn)程連接執(zhí)行 sy 1. exe Ctrl+F5放置可遠(yuǎn)行配置 配置 邈檔main() char cl,c2:/*第2行*/文件sy. exe。運(yùn)行結(jié)果如下:2. 用同樣的方法,完成下面程序的運(yùn)行1)輸入并運(yùn)行下面的程序,運(yùn)行后記錄并分析結(jié)果。ttinclude printf (%c %cn, cl, c2);在此

5、基礎(chǔ)上:(1)在程序最后增加一個語句,再運(yùn)行,并分析結(jié)果。printf (%d %dn, cl, c2) ;a c 97 98(2)將第2行改為:int cl, c2;再次運(yùn)行,并分析結(jié)果。a c 97 98(3)再將第3行改為:cl=305;c2=340; 1 c 305 340再使之運(yùn)行,分析運(yùn)行結(jié)果。2)輸入并運(yùn)行下面的程序tiinclude main () char cl二a , c2- b,, c3二c, c4二10T , c5二116;printf (a%c b%ctc%ctabcn,z, cl, c2, c3):printf (/,ttb%c%cn, c4, c5);在上機(jī)前先用

6、人工分析程序,寫出應(yīng)得結(jié)果,上機(jī)后將二者對3)上機(jī)調(diào)通以下程序。輸入下面的程序ttinclude main ()int i, j, m, n;i=8;j=10;m二+i;/* 第5行 */n二j+;/* 第6行 */printf (%d, %d, %d, %dn, i, j, m, n);運(yùn)行程序,注意i、j、m、n各變量的值;然后分別作以下改動并運(yùn)(1) 將第5、6行改為如下以后再運(yùn)行:m=i+;n=+j;(2) 將程序改為:ttinclude main () int i, j ;i二8;j二10;printf (%d, %dn, i+, j+) ;/* 第5行 */(3) 在的基礎(chǔ)上,將第

7、5行printf語句改為:printf (%d, %dn, +i, +j);(4) 再將printf語句改為:printf (%d, %d, %d, %dn, i, j, i+, j+);(5) 將程序改為:ttinclude main () int i, j, m=0, n=0;i二8;j二10;m+二i+;n-二一 -j;printf (i=%d, j=%d, m=%d, n=%dn, i, j, m, n);4) 運(yùn)行以下程序,并分析其輸出結(jié)果tiinclude main () short i;i 二-2;printf (n i : dec=%d, oct=%o, hex二x, unsi

8、gned二un, i, i, i, i);【注意】在VC+中,short和int類型的數(shù)據(jù)在內(nèi)存中占用4個字節(jié)。5) 按格式要求輸入、輸出數(shù)據(jù)。tiinclude main () int a, b;f loat x, y;char cl, c2;scanf (,a=%d, b=%d, &a, &b);scanf (,%f, %e, &x, &y);scanf (%c%c%c, &cl, &cl, &c2) ;/* 第8行 */printf (a=%d, b=%d, x=%f, y=%f, cl=%c, c2=%cn, a, b, x, y, cl, c2);運(yùn)行該程序,按如下方式在鍵盤上輸入數(shù)

9、據(jù):a二3, b=785,aA請同學(xué)們寫出輸出的結(jié)果?!舅伎肌砍绦虻?行中,為什么變量cl要輸入兩次6) 運(yùn)行以下程序,并分析其輸出結(jié)果ttinclude main () float f:f二;printfCn %, %, %, %, %n, f, f, f, f, f);7) 運(yùn)行以下程序,并分析其輸出結(jié)果ttinclude main () int a, b:float c, d; char cl, c2;a 二 61 ;b 二62; c二;d二;cl二a ;c2 二A;printf(n);printf (,a=%d, b二%dn, a, b);printf (c=%f, d=%fn, c,

10、 d);printf (,c=%e, d=%en, c, d);printf (cl=%c, %cn, cl, c2);【注意】在VC+中,實(shí)數(shù)的指數(shù)形式是:土土XXX8)以下程序的功能是從鍵盤輸入一個整型數(shù),一個實(shí)型數(shù)和一個字符 型數(shù),并把他們在屏幕上輸出。完成以下填空,并把程序調(diào)通,寫出當(dāng)輸 入為45, A回車時程序的運(yùn)行結(jié)果。ttinclude main () int a; float b; char c;scanf (%d, %f, %c, );pri ntf (a二n, a);printf (,b=n, b);printf (c二n, c);9)指出以下程序的錯誤并改正,并上機(jī)把程序

11、調(diào)通。ttinclude main () int a;scanf (%f, a);printf (,a=%f, a);char c;c二 A;printf c)四. 思考題1. 編寫程序,用getchar函數(shù)讀入兩個字符cl,c2,然后分別用 putchar函數(shù)和printf函數(shù)輸出這兩個字符。并思考以下問題:(1)變量cl,c2應(yīng)定義為字符型或整型還是二者皆可(2)要求輸出cl和c2的ASCII碼,應(yīng)如何處理用putchar函數(shù)還是printf函數(shù)(3)整型變量和字符型變量是否在任何情況下都可以互相代替2. 設(shè)圓半徑r=2,圓柱高h(yuǎn)=3,求圓周長,圓柱底面積,圓柱體積。用 scanf輸入數(shù)據(jù)

12、,用printf輸出計算結(jié)果,輸出時要求有文字說明,取小 數(shù)點(diǎn)后兩位數(shù)字。3. 將5位整數(shù)按逆序輸出,并按位求和。實(shí)驗(yàn)二 程序流程控制(4學(xué)時)一. 實(shí)驗(yàn)類型驗(yàn)證和設(shè)計二. 實(shí)驗(yàn)?zāi)康?. 掌握嵌套if-else語句與辻的比較。2. 掌握for語句與while語句的比較。3. 掌握在設(shè)計條件型循環(huán)結(jié)構(gòu)時,如何正確地設(shè)定循環(huán)條件,以及如 何正確地控制計數(shù)型循環(huán)結(jié)構(gòu)的次數(shù)。4. 熟悉用while語句,do-while語句和for語句實(shí)現(xiàn)循環(huán)的方法。5. 掌握在程序設(shè)計中用循環(huán)的方法實(shí)現(xiàn)各種算法(如窮舉、選代、遞 推等)。6. 掌握選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套。7. 掌握用break語句和continue

13、語句改變循環(huán)狀態(tài)的方法。三. 實(shí)驗(yàn)內(nèi)容和要求1. 已知三個數(shù)a, b, c,找出最大值放在max中。tiinclude main () int a, b, c, max;printfC請輸入3個整數(shù)(中間用逗號分開):);scanf (%d, %d, %d, &a, &b, &c);if(a=b)max=a;elsemax=b;if(cmax) max二c;printf(max=%dn,max);若輸入下列數(shù)據(jù),分析程序的執(zhí)行順序并寫出輸出結(jié)果。序號輸入的3個整數(shù)a、b、c輸出max11,2,321,3,232,1,342,3,153,1,263,2,12.輸入某學(xué)生的成績,經(jīng)處理后給出學(xué)生的

14、等級,等級如下:90分以上(包括90): A8090分(包括80): B7080分(包括70): C6070分(包括60): D60分以下:E方法一:用嵌套的辻語句includemain() int score: char grade;printf (z,請輸入學(xué)生成績:”);scanf&score);if (score1001 | score=90) grade二A;else if (score=80) gradeB ;else if (score=70) grade二C;else if (score=60) gradeD ;else grade二E ;printf (n 成績等級是%cn,

15、z, grade);輸入測試數(shù)據(jù),調(diào)試程序。測試數(shù)據(jù)要覆蓋所有路徑,注意臨界値, 例如此題中100分,60分,0分以及小于0和大于100的數(shù)據(jù)。如果稍不 注意就會出現(xiàn)小的程序缺陷。方法二:用switch語句分析:switch語句是用于處理多分支的語句。注意,case后的表達(dá) 式必須是一個常量表達(dá)式,所以在用switch語句之前,必須把0100之 間的成績分別化成相關(guān)的常量。所有A (除100以外)、B、C、D類的成績 的共同特點(diǎn)是十位數(shù)相同,此外都是E類。則由此可把score除十取整, 化為相應(yīng)的常數(shù)。請同學(xué)們自己根據(jù)分析寫出完整的程序段,并編譯、運(yùn)行、查看結(jié)果。3. 程序分析下面是一個計算e

16、的近似值(使誤差小于給定的6 )的程序。ttinclude main () double e=, x=, y, delta:int i二1;printf(,/請輸入給定的誤差:);scanf(%lf, &delta);y=l/x;while(y=deIta) e二e+y;i+;x二x*i;y=l/x;printf(計算結(jié)果是:%n,e);(1)閱讀上面的程序,寫出程序所依據(jù)的計算公式。(2)當(dāng)輸入的delta是什么值時,能分別使程序按下面的要求運(yùn)行:i不進(jìn)入循環(huán);ii只循環(huán)一次;iii只循環(huán)兩次;iv進(jìn)入死循環(huán)(程序?qū)⒂肋h(yuǎn)循環(huán)下去)。v 為了能知道程序循環(huán)了多少次,應(yīng)該在程序中增加一條什么樣的

17、 語句(3)原程序中while語句中的y二delta ,分別換成 ydelta, y二delta, ydelta, y=detax觀察程序運(yùn)行將會有什么變化。(4)把程序中的while結(jié)構(gòu)改寫成do-while結(jié)構(gòu),再運(yùn)行程序,說 明兩種結(jié)構(gòu)的區(qū)別。(5)將程序改成用for循環(huán)結(jié)構(gòu),計算前50項(xiàng),并運(yùn)行程序,寫出 運(yùn)行結(jié)果。4. 有一數(shù)列:2/1, 3/2, 5/3, 8/5,求出這個數(shù)列的前10項(xiàng)之和。ttinclude main() int n,t;float a=2, b=l,s=0;for(n=l;n=10;n+) s=s+a/b;t 二a;a二a+b;b二 t;停止調(diào)試printf

18、(,%fn,/, s);要求:跟蹤執(zhí)行,觀察s、t、a. b的變化。助倉咼國I O1歸 扇幻區(qū)1匡Stinclude maini() int n,t;Float a=2,b=1,s=8;For(n=1;n=10;n+)printfCWn-jS);方法:使用功能鍵F10單步跟蹤執(zhí)行程序,可以在監(jiān)視窗口設(shè)置要觀 察的變量或表達(dá)式。3計算兩個數(shù)的最大公約數(shù)。算法:(1)輸入兩個整數(shù)m、n,并求m除以n的余數(shù)心(2)當(dāng)kHO,將除數(shù)n作為被除數(shù)m,余數(shù)k作為除數(shù)n,繼續(xù)求m 除以n的余數(shù)k;反復(fù)做第步,直到余數(shù)為0結(jié)束循環(huán)。(3)結(jié)束循環(huán)后,除數(shù)n就是m與n的最大公約數(shù)。請同學(xué)們根據(jù)算法寫出完整的程序

19、,并編譯、運(yùn)行、檢查結(jié)果的正確 性。四. 思考題1. 求整數(shù)N的階乘。2. 求兩個數(shù)的最小公倍數(shù)。3. 從鍵盤上輸入三個實(shí)數(shù),它們分別代表三條線段的長度,請寫一個 判斷這三條線段所組成的三角形屬于什么類型(不等邊,等腰,等邊或不 構(gòu)成三角形)的C程序;如果能構(gòu)成三角形,求出三角形的面積(取小數(shù) 2位)。用下面的數(shù)據(jù)運(yùn)行程序,記錄程序的輸出結(jié)果:abc類型三角形面積【提示】己知三角形邊長a、b、c,計算三角形面積s的公式是:s = Jp(p-a)(p-b)(p-c)共中p =-4. 編寫程序:輸入6名學(xué)生5門課程的成績,分別統(tǒng)計出每個學(xué)生5 門課程的平均成績。五. 注意事項(xiàng)1 if-else語句

20、書寫時應(yīng)采用分層縮進(jìn)的格式;switch語句的句法 格式。2. while語句的句法格式及用法。3. for語句的正確使用方法。注意它的初始值、終止條件及步長的 確定。4. 當(dāng)循環(huán)不能停止(出現(xiàn)死循環(huán)),應(yīng)該用Ctrl+break中斷程序的 運(yùn)行。實(shí)驗(yàn)三指針和數(shù)組(4學(xué)時)一. 實(shí)驗(yàn)類型驗(yàn)證性二. 實(shí)驗(yàn)?zāi)康?. 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;2. 掌握與數(shù)組有關(guān)的算法(特別是排序算法)。3. 了解指針的概念,學(xué)會定義和使用指針變量。4. 掌握指針、變量和數(shù)組的關(guān)系及使用方法。三. 實(shí)驗(yàn)內(nèi)容和要求1. 在鍵盤上輸入N個整數(shù),試編制程序使該數(shù)組中的數(shù)按照從大到 小的次序排列。

21、分析:C中數(shù)組長度必須是確定大小,即指定N的值。ttdefine N 10main ()int aN, i, j, temp;printf(please input %d numbersn, N);for(i=0;iN;i+)scanf&ai);for(i=0;iN-l;i+)for (j=0;jN-l-i;j+)temp二aj;aj二aj+l;aj+l=temp;printf(the array after sort: n,z):for(i=0;iN;i+)printf (%5d, ai);2. 有一個3X4的矩陣,要求輸出其中值最大的元素的值,以及它的 行號和列號。ttinclude ti

22、define M 3ttdef ine N 4main () int max, i, j, r, c;intaMN = 123, 94,-10,218, 3, 9,10, -83, 45, 16, 44, -99;max=a00;for(i=0;iM;i+)for(j=0;jmax) max二aij; r=i: c=j;printf (max二d, row=%d, colum=%dn,) max, r, c);輸入并調(diào)試、運(yùn)行程序,記錄程序的輸出;若將a00改為1230, 程序運(yùn)行結(jié)果有錯,應(yīng)如何修改程序3. 測試、運(yùn)行自己編寫的程序。(1) 編寫程序,將數(shù)組中所有奇數(shù)放在另一個數(shù)組中返回。(

23、2) 輸入若干有序數(shù)放在數(shù)組中。然后輸入一個數(shù),插入到此有序數(shù) 列中,插入后,數(shù)組中的數(shù)仍然有序。請對插在最前、插在最后、插在中 間三種情況運(yùn)行程序,以便驗(yàn)證程序是否正確。(3) 求兩個矩陣之和。4. 以下程序的功能是求數(shù)組num中小于零的數(shù)據(jù)之和,程序中存在錯誤, 請上機(jī)調(diào)試并改正。main () int num20;int sum, i;for(i=0;i=19;i+)scanf ( d,&numi);for(i=0;i=19;i+);if(numi0) sum+二numi;printf( sum二6d ,sum);5. 運(yùn)行下列程序,寫出運(yùn)行結(jié)果。includemain() int a5

24、, *p,j;for(j=0;jn2) swap(pointerl, pointer2);if (nln3) swap(pointerl, pointer3);if (n2n3) swap(pointer2, pointer3);printf (the sorted numbers are :%d, %d, %dnz,, nl, n2, n3);swap(int *pl, int *p2)int p;p二*pl;*pl=*p2;*p2=p;7. 程序填空并調(diào)試:下面的程序可以實(shí)現(xiàn)從10個數(shù)中找出最大數(shù)和最小值的功能,請?zhí)羁?完成并上機(jī)調(diào)試。# include int max, min;find

25、(int *p, int n) int *q;max二min二*p;for (q=; ; q+)i f (_) max二*q;else if () min=*q;main () int i, num10;printf (Input 10 numbers: n);for(i=0;i10;i+)scanf&numi);find(num, 10);printf(max二d, min=%dn, max, min);四. 思考題1. 將一個數(shù)組中的值按逆序重新存放,例如,原來順序?yàn)?, 6, 5, 4, 1,要求改為 1, 4, 5, 6, 8o2. 最常用的排序方法除了冒泡排序外,還有選擇排序。程序設(shè)

26、計思路:設(shè)有10個元素a0a9,將a0與ala比 較,若a0比alla9都小,則不進(jìn)行交換,即無任何操作。若al a9中有一個以上比a0小,則將其中最小的一個(假設(shè)為ai)與a0 交換,此時a0中存放了 10個中最小的數(shù)。第二遍將al與a2a9 比較,將剩下9個數(shù)中的最小者ai與al對換,此時al中存放的是 10個中第2小的數(shù)。依此類推,共進(jìn)行9遍比較,a0到a9就己按由 小到大順序存放。n個數(shù)的選擇排序的N-S圖如下:定義變量、輸入n及數(shù)組a各元素for(i=0;inl;i+)k=ifor(j=i+l;jn;j+)aj akk=j交換ak與ai輸出已排序的n個數(shù)用冒泡排序同樣的主函數(shù),請根據(jù)

27、上面的N-S圖編寫選擇排序函 數(shù)。3. 下面的程序用來實(shí)現(xiàn)將一個3X3的矩陣轉(zhuǎn)置。include ”void tranf (int (*p)3) int t, i, j;for(i=0;i3;i+)for(j=0;ji;j+) t=pij; pi j=pjil;main () int i, j, a3 3;for(i=0;i3;i+)for (j=0;j3;j+) scanf&aij);tranf(a);for(i=0;i3;i+) for (j=0;j3;j+) printf(%3d, aij);將上面程序tranf函數(shù)中的的方括號改成*號的表示形式,調(diào)試并運(yùn) 行程序。程序輸入:1 2 3

28、4 5 6 7 8 9,記錄程序的輸出。4. 用指向指針的方法對n個整數(shù)排序并輸出。要求將排序單獨(dú)寫一 個函數(shù)。n和各個整數(shù)在主函數(shù)中輸入,最后在主函數(shù)中輸出。實(shí)驗(yàn)四函數(shù)調(diào)用和變量存儲類別(4學(xué)時)一. 實(shí)驗(yàn)類型驗(yàn)證和設(shè)計二. 實(shí)驗(yàn)?zāi)康?. 掌握定義函數(shù)的方法;2. 掌握函數(shù)實(shí)參與形參的對應(yīng)關(guān)系以及“值傳遞”的方式;3. 掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法;4. 全局變量和局部變量動態(tài)變量、靜態(tài)變量的概念和使用方法。三. 實(shí)驗(yàn)內(nèi)容和要求1編寫兩個函數(shù),分別求兩個正整數(shù)的最大公約數(shù)和最小公倍數(shù),用主 函數(shù)調(diào)用這兩個函數(shù),并輸出結(jié)果,兩個正整數(shù)由鍵盤輸入?!咎崾尽吭O(shè)有兩個正整數(shù)m和n(1)實(shí)驗(yàn)五介

29、紹了求最大公約數(shù)的算法(2)若最大公約數(shù)為h,則最小公倍數(shù)1二m*n/h。實(shí)驗(yàn)時,完成以下兩個函數(shù)的定義,使之和主程序構(gòu)成完整的程序, 實(shí)現(xiàn)題目的要求。ttinclude int hcf (int m, int n)/*求最大公約數(shù)的函數(shù)*/int lcd(int m, int n, int h) /*求最小公倍數(shù)的函數(shù)*/void main() int m, n, h, 1;printf (,z請輸入兩個正整數(shù)m、n:);scanf&m, &n);h=hcf (m, n);printf (%d和紀(jì)的最大公約數(shù)是:%dn, m, n, h);l=lcd(m, n, h);printf (%d

30、和d 的最大公約數(shù)是:dn, m, n, 1);程序調(diào)試通過后,用m二350、n二125和m二96、n=64兩組數(shù)據(jù)運(yùn)行程序, 記錄程序的輸出。2. 上機(jī)調(diào)試下面的程序,記錄系統(tǒng)給出的出錯信息,并指出錯誤原 因。main () int x,y;printf (%dn, sum(x+y);int sum(a, b); int a, b;return(a+b);3. 編寫求n!的函數(shù)f(int n),在主函數(shù)中輸入兩個整數(shù)m、n,然后 調(diào)用函數(shù)求:Cn 一】山m n!(m-n)!【注意】函數(shù)f的類型應(yīng)用long或double o四. 思考題1. 編寫程序,任意輸入10個整數(shù)的數(shù)列,并按從小到大的順

31、序進(jìn)行排 序,然后在刪除重復(fù)數(shù)。10個整數(shù)用scanf函數(shù)輸入。排序的方法很多,教材P134介紹了冒泡排序法,算法如下: 定義變量,輸入排序數(shù)據(jù)數(shù)n和待排序的n個數(shù)據(jù)。 n個數(shù)排序要進(jìn)行n-l遍。以下是一遍排序(第i遍)的算法: 設(shè)本趟排序中沒有交換,即flag二0。 從下標(biāo)j二1T的元素起,到i+1個元素,比較aj與aj-l: 若 ajaj-l,將 aj與 ajT交換;并置 flag=lo 若沒有交換(flag=0),排序完成,退出循環(huán)。 輸出排序結(jié)果。上述算法的、在main函數(shù)中實(shí)現(xiàn),其余各步調(diào)用sort函數(shù)完成。 主函數(shù)如下:include int a100;/* 外部數(shù)組 */void

32、 main () int i, n;void sort (int) :/*說明被調(diào)函數(shù)*/printf(/z請輸入排序的數(shù)據(jù)個數(shù)n: );scanf&n);printf(z/請輸入要排序的%d個整數(shù)n);for(i=0;in;i+) scanf&ai);sort (n) ;/*調(diào)用sort函數(shù)完成排序*/printf C排序結(jié)果:);for(i=0:i2)請改正程序中的錯誤,使它能得到正確結(jié)果。注意:不得增行或刪行, 也不得更改程序的結(jié)構(gòu)。include :| f A 1 | | 1 | 1fun (n)/%!x*1 %17 z . . J*1*1%!I I 11 | | | 1int c;辻

33、(n二 1 | | n二2)elsec=fun(n-1)+fun(n-2);return (c);void main ()int a, b;printf ( Please input a: n );scanf ( %d”,&a);b二fun (a);printf ( The result is %dn”,b);程序2:下列給定程序中,函數(shù)fun的功能是:通過某種方式實(shí)現(xiàn)兩個 變量值的交換,請改正程序中的錯誤,使它能得到正確結(jié)果。注意:不得 增行或刪行,也不得更改程序的結(jié)構(gòu)。#includeint fun(int *x,int y)/JI J a I I | | 1retu rn(y);void

34、 main () int a 二 3, b = 8 ;printf (%d%dn, a, b)b 二 fun(&a, b);printf (%d%dn, a, b)程序3:下列給定程序中,函數(shù)fun的功能是:求s的值。設(shè)(2b(2k-l)x(2k + i)224262XXX . X1x3 3x5 5x7請改正程序中的錯誤,使它能得到正確結(jié)果。注意:不得增行或刪行, 也不得更改程序的結(jié)構(gòu)。include :Jr (I1 I (I / 1fun (int k,float *s)int n;float w, p, q;n=l;:*!. q J%!%! xl/J II1 1 | | 1while(n=

35、k)w二*n;P二;q 二 w+;*s=*s*w*w/p/q;n+;void main()int a;float result:printf( Please input a:”); scanf ( d”,&a);fun (&resuIt, a);printf ( The resuIt is %lfnM , result);4. 編程(根據(jù)給出的編程要求完成程序的編制及錄入,然后上機(jī)進(jìn)行程丿子的運(yùn)行及調(diào)試)。(1) 編寫一函數(shù)digh(m, k),它將回送整數(shù)m從左邊開始的第k個數(shù)字的值,例如:digh(8542, 3)=5, digh(12, 4)二0。(2) 請編寫函數(shù)fun(n),其功能是

36、:計算并輸出下列多項(xiàng)式值。要求main函數(shù)中函數(shù)調(diào)用使用傳地址的方式來完成。111 11S = 11FH2 3 42n- In(3) 編寫函數(shù)fun(x, n)用遞歸方法求x的n次方,n為不小于0整數(shù)。(4) 用遞歸方法編寫函數(shù)Ack(m, n),對于mNO, nMO, Ack (m, n)定義為:Ack(O, n) =n+lAck (m, 0) =Ack(m-l, 1)Ack (m, n)二Ack (m-1), Ack (m, nl)實(shí)驗(yàn)七字符串(2學(xué)時)一. 實(shí)驗(yàn)類型綜合二. 實(shí)驗(yàn)?zāi)康?. 要求學(xué)生掌握小型庫的設(shè)計方法。2. 要求學(xué)生理解程序設(shè)計對庫的依賴性。三. 實(shí)驗(yàn)內(nèi)容和要求1輸入一串

37、字符,計算其中空格的個數(shù)。ttinclude ”ttinclude main ()char c30;int i, sum=0;gets(c);for(i=0;istrlen(c);i+)if(ci=,)sum二sum+1;printf(The number of spaces is: %dn, sum);2. 測試、運(yùn)行自己編寫的程序。按照下面算法編一個程序,將兩個字符串連接起來,不能用strcat 函數(shù)。(1) 定義整型變量i、j,字符串si、s2(2) 輸入字符串si、s2(3) 當(dāng)字符串si尚未結(jié)束,改變字符串si的下標(biāo),使之到si結(jié)束 處(4) 當(dāng)字符串s2尚未結(jié)束,將字符串s2逐個字

38、符連接到字符串si 的后面(5) 為字符串si添加結(jié)束標(biāo)志(6) 輸出連接后的字符串3. 有一個字符串,內(nèi)有若干個字符,今輸入一個字符,要求程序?qū)?字符串中指定的字符刪去,用外部函數(shù)實(shí)現(xiàn)。整個程序由4個文件組成,這4個文件如下:tiinclude void main() extern void enter_string(char strLl);extern void delete_string(char str,char ch);extern void print_string(char strLJ):/*以上3行聲明在本函數(shù)中要調(diào)用在其他文件中定義的3 個函數(shù)*/char c;char st

39、r 80;enter_string(str);printfC請輸入欲刪除的字符:);scanf(“%c, &c);delete_string (sc);print_string (str);tiinclude void enter_string(char str80)/* 定義外部函數(shù)enter_string */ printfC請輸入字符串:);gets (str) :/*從鍵盤輸入字符串到數(shù)組str */include void delete_string (char str , char ch) /* 定義外部函數(shù) delete_string */ int i,j;for(i=j=0;s

40、tri !二0 ; i+)if(stri !=ch)strj+=stri;strj=,0J ;ttinclude void print_string(char str)/* 定義外部函數(shù)printr_string */ printf (刪除指定字符后的結(jié)果:%sn,z, str) ;建立工程sy64,然后在工程sy64中建立這4個文件,調(diào)試并運(yùn)行程 序:輸入字符串:abcdceccfg輸入要刪去的字符:c記錄運(yùn)行后的輸出結(jié)果。實(shí)驗(yàn)八結(jié)構(gòu)體(2學(xué)時)一實(shí)驗(yàn)類型綜合型二. 實(shí)驗(yàn)?zāi)康?. 掌握結(jié)構(gòu)體類型的概念和定義方法與使用。2. 掌握指向結(jié)構(gòu)體變量的指針變量的概念和應(yīng)用。三. 實(shí)驗(yàn)內(nèi)容和要求1.定義一個結(jié)構(gòu)體類型,其成員包括:學(xué)號(num),姓名(name20), 性別(sex),年齡(age),三門課的成績(score 3)。2按上面的結(jié)構(gòu)體類型定義一個結(jié)構(gòu)體數(shù)

溫馨提示

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

評論

0/150

提交評論