c語言實驗報告冊答案.doc
《c語言實驗報告冊答案.doc》由會員分享,可在線閱讀,更多相關(guān)《c語言實驗報告冊答案.doc(55頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗1簡單判定性問題求解一、實驗學(xué)時完成本實驗需4學(xué)時。二、實驗?zāi)康?、閱讀程序題(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個整型、字符型的變量,以及對它們賦值的方法;(2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律;(3)掌握數(shù)據(jù)在內(nèi)存中的存儲方式;(4)學(xué)會輸入、輸出函數(shù)的基本格式和使用方法;(5)學(xué)會使用有關(guān)算術(shù)運算符、邏輯運算符、關(guān)系運算符,以及包含這些運算符的表達式。2、編程題(1)如何運用if-else判定性結(jié)構(gòu)進行程序設(shè)計;(2)如何運用switch判定性結(jié)構(gòu)進行程序設(shè)計。3、調(diào)試題(1)熟悉C程序的編輯、編譯、連接和運行的過程。三、實驗指導(dǎo)為了達到最佳的實驗效果,以下提供幾條適于編程的指導(dǎo)
2、意見,可供參考。1、閱讀程序題應(yīng)先運用自己在課堂所學(xué)的知識,推導(dǎo)出結(jié)果,在上機時輸入計算機,印證自己推導(dǎo)的結(jié)果,注意觀察數(shù)據(jù)在內(nèi)存中的存儲方式、含不同種運算符表達式的輸出結(jié)果。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計的正確性,完成程序的設(shè)計。要注意簡單判定性問題的結(jié)構(gòu)選擇。3、調(diào)試題應(yīng)明確程序的調(diào)試、測試是一項非常煩瑣的工作,也是非常重要的工作。對于初學(xué)者來說應(yīng)該建立良好的習(xí)慣,在調(diào)試程序的時候,應(yīng)該盡可能考慮到程序運行時各種可能情況。四、實驗內(nèi)容1、閱讀程序題(1)main( ) /*定義字符型變量*/ char c1,c2; /*向字符變量賦以整數(shù)*/ c1=97; c2=98
3、; printf(%c %cn,c1,c2); /*以字符形式輸出*/ printf(%d %dn,c1,c2); /*以整數(shù)形式輸出*/該程序的輸出結(jié)果是 a b(換行)97 98 。思考:可否改成int c1,c2;輸出結(jié)果是? 相同(2)main() int a=7,b=5; printf(%dn,b=b/a);該程序的輸出結(jié)果是 0 。思考:若將printf語句中%d變?yōu)?f,可否輸出分式的值? 可以(3)main() int a=9; a+=a-=a+a; /*包含復(fù)合的賦值運算符的賦值表達式*/ printf(%dn,a);該程序的輸出結(jié)果是 -18 。思考:賦值表達式aaaa的求
4、解步驟?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main() int k=-1; printf(%d,%un,k,k);該程序的輸出結(jié)果是 -1 4294967295 。思考:1在內(nèi)存中的存儲形式? 取反加一 11111111111111111111111111111111(32個)(5)main() unsigned x1; int b=-1; x1=b; /*有符號數(shù)據(jù)傳送給無符號變量*/ printf(%u,x1);該程序的輸出結(jié)果是 4294967295 。思考:不同類型的整型數(shù)據(jù)相互賦值時,規(guī)則是什么?http:/ int a=3,b=4,c=5; printf
5、(%dn,(!(ab)&(c=c+1); printf(%d,c);該程序的輸出結(jié)果是 0(換行)5 。思考:若將第一個printf語句中&變?yōu)閨 ,結(jié)果將如何?1(換行)6(7)main() int a=1,b=2,c=3;if(c=a) ; printf(%dn,c);else printf(%dn,b);該程序的輸出結(jié)果是 1 。2、編程序并上機調(diào)試運行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1)將一個百分制成績轉(zhuǎn)換成等級制成績,百分制與等級制的對應(yīng)關(guān)系如下表:百分制90-10080-8970-7960-6960等級制優(yōu)良中差劣具體要求如下:1) 用switch語句實現(xiàn)該功
6、能;2) 用鍵盤輸入百分制成績,輸入前要有提示信息,對于不合理的數(shù)據(jù)應(yīng)輸出錯誤信息;3) 輸出結(jié)果應(yīng)包含百分制成績和成績等級;4) 分別輸入成績-10,30,60,68,75,83,95,102,查看記錄運行結(jié)果。#include#includevoid main()float score;int level;printf(請輸入成績:n);scanf(%f,&score);if (score100|score0)printf(成績輸入錯誤!n);elselevel=(int)(score-50)/10);switch(level)case 5: printf(優(yōu)n);break;case 4
7、: printf(優(yōu)n);break;case 3: printf(良n);break;case 2: printf(中n);break;case 1: printf(差n);break;default: printf(劣n);break;程序代碼流程圖見下頁測試數(shù)據(jù):100,50,-20輸出結(jié)果:優(yōu),劣,成績輸入錯誤(2)銀行整存整取存款不同期限的月息利率分別為:月息利率 程序代碼輸入存款的本金和年限,求到期時能從銀行得到的利息與本金的合計。(利息的計算公式為:利息本金月息利率12 存款年限。#include#includevoid main()int year;double input,o
8、ut;printf(輸入存儲年份:n);scanf(%d,&year);printf(輸入本金數(shù)額:n);scanf(%lf,&input);if (inputb)&(ac)if(bc)printf(min=%dn,b);elseprintf(min=%dn,c);if(ab)&(ac)printf(min=%dn,a);程序中包含有一些錯誤,按下述步驟進行調(diào)試。1)設(shè)置斷點。2)通過單步執(zhí)行,觀測變量,發(fā)現(xiàn)程序中的錯誤。程序調(diào)試記錄1、程序出現(xiàn)的錯誤及改正第四行,abc前都加&,在%d%d%d中兩個%d之間加空格; 括住六到九行;把第十行if改成else if;2、程序的改進1.每個后加一個
9、=;2.在程序末尾添加如下指令else if(a=c)|(a=b)&(a=c)if (b=c)printf(min=%dn,b);elseprintf(min=%dn,c);- 8 -實驗2 循環(huán)結(jié)構(gòu)及其應(yīng)用一、實驗學(xué)時完成本實驗需4學(xué)時。二、實驗?zāi)康?、熟練掌握while,dowhile,for語句實現(xiàn)循環(huán)的方法,包括如何正確地設(shè)定循環(huán)條件,如何控制循環(huán)的次數(shù)。2、掌握break語句與continue語句的使用方法。3、熟悉循環(huán)的嵌套以及從循環(huán)體內(nèi)退出循環(huán)的處理。4、理解什么是循環(huán)程序結(jié)構(gòu)。三、實驗指導(dǎo)為了達到最佳的實驗效果,以下提供幾條適于模塊化編程的指導(dǎo)意見,可供參考。1、閱讀程序題應(yīng)先
10、運用自己在課堂所學(xué)的知識,推導(dǎo)出結(jié)果,在上機時輸入計算機,印證自己推導(dǎo)的結(jié)果,注意循環(huán)語句的一般使用方法,以及復(fù)合運算符的使用。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計的正確性,以面向過程的、模塊化設(shè)計方法完成程序設(shè)計?!纠}解析】編寫一個程序,輸出半徑為1到10的圓的面積,若面積在40到90之間則予以輸出,否則,不予輸出。1)解題分析:解決問題的關(guān)鍵算法為求圓的面積并按要求輸出。循環(huán)求圓的面積area,若area90,則用break語句跳出循環(huán)。2)算法流程圖如圖2-1:3)綜合分析需要從循環(huán)體中提前跳出循環(huán),或者在滿足某種條件下,不執(zhí)行循環(huán)中剩下的語句而立即從頭開始新的一輪循環(huán)
11、,這時就要用到break和continue語句。開始r=1輸出area結(jié)束是ir11?否否否r=r+1是area=3.14*r*rarea90.0?圖2-1 輸出半徑為1到10且面積在40 到90之間的圓面積的流程圖4)程序代碼#include main (void) float area=0.0,pi=3.14; int r;for(r=1;r11;r+) area=pi*r*r; if (area90) break; printf(area=%5.2fn,area); 四、實驗內(nèi)容1、閱讀程序題。(1)#includemain( ) int x=-1; do x=x*x; while(!x
12、); printf(%x=n,x);該程序的輸出結(jié)果是 1= 。(2)#include main( ) int num=0; while(num=2) num+; printf(%dn,num); 該程序的輸出結(jié)果是 1(換行)2(換行)3 。(3)#includemain( ) int a,b; for (a=1,b=1 ; a=20) break; if (b%3=1) b+=3 ; continue ; b-=5; printf(“%dn”,a);該程序的輸出結(jié)果是 8 。(4)#includemain( ) int y=2,a=1; while (y-!=-1) do a*=y ; a
13、+ ; while (y-) ; printf(“%d,%dn”,a,y);該程序的輸出結(jié)果是 1,-2 。#include#includevoid main() int i=1,n=1;double result;printf(請輸入n(0n=20):n);scanf(%d,&n);if (n20)printf(輸入錯誤n);elsewhile (i=n)result*=i;i+;printf(%dn,result);2、編程序并上機調(diào)試運行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1) 輸入整數(shù)n,求 n!(1n20)。流程圖程序代碼(2) 打印出所有“水仙花數(shù)”。所謂“水仙花
14、數(shù)”是指一個三位數(shù),其各位數(shù)字的立方之和正好等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因為153=13+53+33【提示】根據(jù)題目要求只要分別求出一個三位數(shù)的個位、十位、百位上的數(shù)字,然后判斷是否滿足(某一三位數(shù)a=a的百位的立方+a的十位的立方+a的個位的立方)這個公式,滿足這個條件的三位數(shù)就是“水仙花數(shù)”。流程圖程序代碼#include#includevoid main() int n=100,a,b,c;while (n=1000)a=n/100;b=(n-a*100)/10;c=(n-a*100-b*10);if (n=a*a*a+b*b*b+c*c*c)printf(%dn,n)
15、;n+;(3) 一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?【提示】在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。流程圖程序代碼#include#include#includevoid main() double n=0,a,b;int a1,b1;while (n=1000000)a=n+100;b=n+168;a1=(int)sqrt(a);b1=(int)sqrt(b);if (a1*a1=a&b1*b1=b) printf(%10.0fln,n);n+;3、程序選做題第二題
16、#include#includevoid main() int a=0,b=0,c=0,d;while (a=15)for(b=0;b=25;b+)d=14*a+8*b;c=100-a-b;if (d=200)printf(%d,%d,%dn,a,b,c);elsecontinue;a+;(1) 猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃掉了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的總數(shù)一半零一個。到第10天早上想再吃時,見只剩一個桃子了。求第一天共摘了多少桃子。【提示】 使用逆向推導(dǎo)的方式,設(shè)后一天的桃子為N個,則其前面一
17、天的桃子為(N+1)*2個,以此類推。(2) “百錢買百雞”問題:公雞每只5元,母雞每只3元,小雞每3只1元;用100元買100只雞,問公雞,母雞,小雞各買多少只?【提示】設(shè)公雞x只,母雞y只,小雞z只;則有1=x=18,1=y=31,1=z=98,且同時滿足5x+3y+z/3=100,x+y+z=100,z%3=0這三個條件。通過數(shù)學(xué)運算可改變條件,從而可用不同的方法來解決此問題,請嘗試不同的循環(huán)次數(shù)解決該問題。五、程序調(diào)試記錄要求:寫出題號,并編寫順序號。如四(1)出現(xiàn)的錯誤(1)(2)1、程序出現(xiàn)的錯誤及改正2、程序的改進- 15 -實驗3模塊化設(shè)計與應(yīng)用一、實驗學(xué)時完成本實驗需要4學(xué)時
18、。二、實驗?zāi)康?、閱讀程序題(1) 掌握函數(shù)實參和形參的對應(yīng)關(guān)系以及“值傳遞”的方式;(2) 理解函數(shù)調(diào)用的過程以及函數(shù)的返回值;(3) 弄清楚帶參函數(shù)和帶參的宏之間的異同。2、編程題(1) 深刻理解模塊化程序設(shè)計的思想及如何進行模塊劃分;(2) 掌握定義函數(shù)的方法以及函數(shù)原型的聲明;(3) 靈活運用函數(shù)調(diào)用(有參函數(shù)和無參函數(shù)、有返回值的函數(shù)和無返回值的函數(shù))。三、實驗指導(dǎo)為了達到最佳的實驗效果,下面提出幾點指導(dǎo)意見或要求以供參考:1、閱讀程序題應(yīng)先運用自己在課堂所學(xué)的知識,推導(dǎo)出結(jié)果。上機時輸入計算機,驗證自己推導(dǎo)的結(jié)果是否正確。若不正確,應(yīng)分析原因。2、編程題注意事項:(1) 一個模塊(
19、或函數(shù))應(yīng)有一個入口點和一個退出點。(2) 一般每個模塊(或函數(shù))只執(zhí)行一個任務(wù)。不要將無關(guān)的任務(wù)放于同一模塊中,只將完成同一任務(wù)的語句組合在一起。(3) 先畫流程圖,后寫程序代碼;(4) 變量和函數(shù)標示符盡量“見名知義”;(5) 程序中應(yīng)有適當(dāng)注釋。3、應(yīng)記錄調(diào)試程序時出現(xiàn)的錯誤,以便經(jīng)驗的積累。四、實驗內(nèi)容1、閱讀程序題(1) 下面程序的輸出結(jié)果是 5,8 。- 22 -#include int f(int m) int k=2; k+;return k+m;void main( ) int s;s=f(2);printf(%d, %dn, s, f(s);(2) 下面程序的輸出結(jié)果是 7
20、77 。#include int f( int a ) int b=0;int c=3;b=b+1;c=c+1;return(a+b+c);void main() int a=2,i;for( i =0;i 3;i+)printf(%d,f(a);(3) 下面程序的輸出結(jié)果是 3 (空格)5 。#include void swap(int *a, int *b) int *t;t=a;a=b;b=t;void main() int x=3,y=5,*p=&x,*q=&y;swap(p,q);printf(%d %dn,*p,*q);(4) 下面程序的輸出結(jié)果是 12 。#include #de
21、fine M(x,y,z) x*y+zvoid main() int a=1,b=2,c=3;printf(%dn, M(a+b,b+c,c+a); (5) 下面程序的輸出結(jié)果是 19 。#include int M(int x, int y, int z) int p;p=x*y+z;return(p);void main() int a=1,b=2,c=3;printf(%dn, M(a+b,b+c,c+a); 2、編程序并上機調(diào)試運行。(1) 請設(shè)計一個函數(shù)fun(),它的功能是:判斷pm是否是素數(shù)。若pm是素數(shù),返回1;若不是素數(shù),返回0。pm的值由主函數(shù)從鍵盤讀入。函數(shù)fun():程
22、序代碼流程圖int fun(int pm)int i=2,x;while (ipm)x=pm/i;if (x*i=pm) return (0);break;elsei+;continue;return (1);主函數(shù)main():程序代碼流程圖#include #include void main()int pm;printf(請輸入要檢測的數(shù)字:n);scanf(%d,&pm);printf(%dn,fun(pm);測試數(shù)據(jù)及輸出結(jié)果:33 037 1(2) 請設(shè)計一個函數(shù)fun(),它的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c
23、數(shù)的千位和十位上, b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。例如,當(dāng)a45,b=12。調(diào)用該函數(shù)后,c=4152。函數(shù)fun():程序代碼流程圖int fun(int x,int y)int c;c=x*100+y;return (c);#include #include void main()int a,b;printf(請輸入要組合的數(shù)字(都為二位數(shù)):n);scanf(%d %d,&a,&b);if (a99)|(b99)printf(輸入數(shù)字錯誤!n);else printf(%dn,fun(a,b);主函數(shù)main():流程圖程序代碼 測試數(shù)據(jù)及輸出結(jié)果:9 21 輸入數(shù)字錯誤
24、!21 23 2123 (3) 請設(shè)計兩個函數(shù)MaxCommonFactor()和MinCommonMultiple(),它們的功能是:前者用于求兩個正整數(shù)的最大公約數(shù),后者用于求兩個正整數(shù)的最小公倍數(shù)。函數(shù)MaxCommonFactor():流程圖程序代碼int MaxCommonFactor(int x,int y)int i=1,nHelp1,nHelp2,c;while (i=x)nHelp1=x/i;nHelp2=y/i;if (i*nHelp1=x)&(i*nHelp2=y)c=i;i+;return (c);函數(shù)MinCommonMultiple():流程圖程序代碼int Min
25、CommonMultiple(int x,int y)int i,nHelp,c;for (i=1;i=y;i+)nHelp=i*x/y;if (nHelp*y=i*x)c=i*x;return (c);函數(shù)main():#include #include void main()int a,b;printf(請輸入兩個正整數(shù)n);scanf(%d %d,&a,&b);if (a0|b=0&chi=9;i+=2) s=10*s+chi-0; printf(%dn,s); 該程序的輸出結(jié)果是 6 。 (2)#define MAX 5 main()int aMAX,i; for(i=0;i5;i+)
26、 ai=i; printf(n*a*n); for(i=0;i5;i+) printf( a%d=,i); printf(%dn,ai); *a* a0=0 a1=1 a2=2 a3=3 a4=4 該程序的輸出結(jié)果是 。(3) #include stdio.h#define N 10main()int i,j,temp;int aN+1;int count=0; printf( input %d data : n,N);for (i=1;i=N;i+)scanf(%d,&ai);printf(*sort course*n);for(i=1;i=N;i+) count+; for(j=1;jaj
27、+1) temp=aj;aj=aj+1;aj+1=temp; printf(%3d:,count); for(j=1;j=N;j+) printf( %d,aj); printf(n); printf(the result is:n); for(i=1;i=N;i+) printf(%d,ai); 該程序的輸出結(jié)果是 冒泡排序顯示過程,并最終把輸入的十個數(shù)字由小到大無空格排列 。(4)#include stdio.h#define N 20 main() int fN,i; f0=1; f1=1; for(i=2;iN;i+) fi=fi-1+fi-2; printf(n-Fibonacci-
28、n); for(i=0;iN;i+) if(i%4=0) printf(nn); printf(f%-2d=%-5d ,i,fi); -Fibonacci-f0 =1 f1 =1 f2 =2 f3 =3 f4 =5 f5=8 f6 =13 f7 =21f8 =34 f9=55 f10=89 f11=144f12=233 f13=377 f14=610 f15=987 f16=1597 f17=2584 f18=4181 f19=6765 該程序的運行結(jié)果為 。(5)#include stdio.hmain() int i,j, temp;int a33=11,12,13,21,22,23,31
29、,32,33;printf(-matrix a-n); for(i=0;i3;i+) for(j=0;j3;j+) printf(%3d,aij); printf(nn); for(i=0;i3;i+) for(j=0;ji;j+) temp=aij; aij=aji;aji=temp; printf(-matrix a changed-n); for(i=0;i3;i+) for(j=0;j=a&si=A&si=Z) si=si+32; printf(%c,si); #include stdio.hmain() int s34;int i=0,j=0,nHelp;printf(請按順序輸入1
30、2個數(shù)字,以空格或回車分隔:n);while (i=2)for (j=0;j=3;j+)scanf(%d,&sij);i+; printf(n);for(i=0;i=2;i+)for(j=0;j=3;j+)printf( %d,sij);printf(n);printf(nn);for(i=0;i3;i+)for(j=1;jsi0)nHelp=si0;si0=sij;sij=nHelp;for(i=0;i=2;i+)for(j=0;j=3;j+)printf( %d,sij);printf(n); 該程序的運行結(jié)果為 將輸入大寫字母轉(zhuǎn)變?yōu)樾?,小寫字母轉(zhuǎn)變?yōu)榇髮?。2、編程序并上機調(diào)試運行(包
31、括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1)編寫一個3*4矩陣,找出每行中最大元素并與第一列元素交換。具體要求如下:(a)使用二維數(shù)組存放該3*4矩陣;(b)定義并初始化該二維數(shù)組;(c)輸出原矩陣和變換后的矩陣進行比較;(d)有必要的提示信息。程序代碼流程圖見下頁(2)編程實現(xiàn)如下功能:將字符數(shù)組str1中的全部字符拷貝到字符數(shù)組str2中,具體要求如下:(a)不能使用字符串拷貝函數(shù)strcpy();(b)必須將str1中的字符串結(jié)束標志0一起拷貝,但其后的字符不拷貝;(c)str1的長度不超過80,str2的長度必須足夠大;程序代碼(d)有必要的提示信息。#include #in
32、clude void main()char str180,str290;int i;printf(輸入字符串:n);gets(str1);printf(n);for(i=0;str1i!=0;i+) str2i=str1i;str2i=0;puts(str2);流程圖(3)設(shè)某班共有10名學(xué)生,為了平定某門課程的獎學(xué)金,按照規(guī)定超過全班平均成績10%者發(fā)給一等獎,超過全班平均成績5%者發(fā)給二等獎。編寫程序,輸出學(xué)生學(xué)號、成績和獎學(xué)金等級。#include #include void main()double nArr102,AverS=0;int i,j;printf(請按照學(xué)號、成績的順序依
33、次輸入數(shù)據(jù):n);for(i=0;i10;i+)for(j=0;j2;j+)scanf(%lfn,&nArrij);for(i=0;i10;i+)AverS+=nArri1;AverS=AverS/10;printf(學(xué)號 成績 獎學(xué)金等級n);for(i=0;iAverS*1.1)printf(%lf %lf 一等獎n,nArri0,nArri1);else if (nArri0AverS*1.05)&(nArri0AverS*1.1)printf(%lf %lf 二等獎n,nArri0,nArri1);流程圖程序代碼見下頁主函數(shù)中調(diào)用代碼:無五、程序調(diào)試記錄(1)調(diào)試下面程序。#defin
34、e N 10main() int i,num,data=12,15,23,29,30,31,34,45,56,70; /* num存放被查找的整數(shù),數(shù)組data存放有序數(shù)列*/ int low=0,high=N-1,mid; /*low、high和mid分別標記查找區(qū)間的下界和上界及中間位置*/ printf(nplease input num :n); scanf(%d,&num); /*輸入要查找的整數(shù)*/ printf(the sorted numbers are:n); for(i=1;iN;i+) printf(%d ,datai); /*輸出有序數(shù)列*/ while(lowdata
35、mid) low=mid+1; /*若num小于中間位置的數(shù)據(jù),low等于mid-1*/ else high=mid-1; /*若num大于中間位置的數(shù)據(jù),low等于mid+1*/ if(lowhigh) printf(n %d is not in data,num);/*若low大于high,則查找失敗*/程序中包含有一些錯誤,按下述步驟進行調(diào)試。程序調(diào)試記錄1、程序出現(xiàn)的錯誤及改正1.用把十四十五行括起來2.第十行i=1改成i=0;2、程序的改進1.把七八九三行與十十一兩行換一下位置,方便用戶操作;- 31 -實驗5 深入模塊化設(shè)計與應(yīng)用一、實驗學(xué)時完成本實驗需4學(xué)時。二、實驗?zāi)康?、閱讀
36、程序題(1)學(xué)會使用函數(shù)嵌套調(diào)用的使用方法(2)學(xué)會使用一維數(shù)組做為函數(shù)參數(shù)(3)遞歸調(diào)用的設(shè)計與使用(4)學(xué)會使用指針做為函數(shù)的參數(shù)2、編程題(1)如何運用指針進行程序設(shè)計(2)如何以一維數(shù)組、二維數(shù)組做為函數(shù)參數(shù)進行程序設(shè)計(3)冒泡排序、選擇排序的靈活應(yīng)用三、實驗指導(dǎo)為了達到最佳的實驗效果,以下提供幾條適于模塊化編程的指導(dǎo)意見,可供參考。1、閱讀程序題應(yīng)先運用自己在課堂所學(xué)的知識,推導(dǎo)出結(jié)果,在上機時輸入計算機,印證自己推導(dǎo)的結(jié)果,注意觀察函數(shù)嵌套調(diào)用、一維數(shù)組做為函數(shù)參數(shù)、指針做為函數(shù)的參數(shù)、遞歸調(diào)用的使用方法。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計的正確性,以面向過程的
37、、模塊化設(shè)計方法完成程序設(shè)計。要注意變量設(shè)置、函數(shù)參數(shù)及返回值在數(shù)據(jù)傳遞或共享中的重要作用。四、實驗內(nèi)容1、閱讀程序題(1)int func(int a, int b) return (a+b); void main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r);該程序的輸出結(jié)果是 15 。 (2)int f(int b, int n) int i,r; r=1; for(i=0;i2) return(fib(n-1)+fib(n-2);else return(2);void main() printf(“%dn”,fib(
38、3); 該程序的輸出結(jié)果是 4 。 (4)int f(char *s) int k=0; while(*s) k=k*10+*s+-0; return(k);以f(“1234”)方式調(diào)用該函數(shù),結(jié)果 1234 。(5)void sort(int *b,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(*(b+j)*(b+k) k=j; if(k!=i) t=*(b+i);*(b+i)=*(b+k);*(b+k)=t;void main()int *p,i,a10;p=a;for(i=0;i10;i+)scanf(“%d”
39、,p+); p=a;sort(p,10);for(p=a,i=0;i10;i+,p+)printf(“%d”,*p);printf(“n”);該程序的輸出結(jié)果是 將輸入數(shù)字按照從小到大順序排列后組成一個新數(shù)字 。2、編程序并上機調(diào)試運行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1)編寫一個函數(shù)fun(char *s),函數(shù)的功能是把字符串中的內(nèi)容逆置。例如,字符串中原有的內(nèi)容為abcdefg,則調(diào)用該函數(shù)后,字符串中的內(nèi)容為gfedcba。程序代碼流程圖#include #include main()char s100,nTemp;int i,j;printf(請輸入:n);gets(s);j=strlen(s)-1;for(i=0;i/j=0;i+)nTemp=si;si=
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。