C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc

上傳人:小** 文檔編號(hào):16650811 上傳時(shí)間:2020-10-20 格式:DOC 頁(yè)數(shù):42 大?。?.01MB
收藏 版權(quán)申訴 舉報(bào) 下載
C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc_第1頁(yè)
第1頁(yè) / 共42頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc_第2頁(yè)
第2頁(yè) / 共42頁(yè)
C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言實(shí)驗(yàn)報(bào)告 .doc(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 學(xué) 生 實(shí) 驗(yàn) 報(bào) 告 冊(cè) (理工類(lèi)) 課程名稱(chēng):C語(yǔ)言程序設(shè)計(jì) 專(zhuān)業(yè)班級(jí):13電氣工程及其自動(dòng)化 學(xué)生學(xué)號(hào):1304102013 學(xué)生姓名: 孫健 所屬院部: 機(jī)電工程學(xué)院 指導(dǎo)教師: 胡盈盈 20 13 ——20 14 學(xué)年 第 二 學(xué)期 金陵科技學(xué)院教務(wù)處制 實(shí)驗(yàn)報(bào)告書(shū)寫(xiě)要求 實(shí)驗(yàn)報(bào)告上交電子稿,標(biāo)題采用四號(hào)黑體,正文采用小四號(hào)宋體,單倍行距。 實(shí)驗(yàn)報(bào)告書(shū)寫(xiě)說(shuō)明 實(shí)驗(yàn)報(bào)告中實(shí)驗(yàn)?zāi)康暮鸵蟆?shí)驗(yàn)儀器和設(shè)備、實(shí)驗(yàn)內(nèi)容與過(guò)程、

2、實(shí)驗(yàn)結(jié)果與分析這四項(xiàng)內(nèi)容為必需項(xiàng)。教師可根據(jù)學(xué)科特點(diǎn)和實(shí)驗(yàn)具體要求增加項(xiàng)目。 填寫(xiě)注意事項(xiàng) (1)細(xì)致觀察,及時(shí)、準(zhǔn)確、如實(shí)記錄。 (2)準(zhǔn)確說(shuō)明,層次清晰。 (3)盡量采用專(zhuān)用術(shù)語(yǔ)來(lái)說(shuō)明事物?!? (4)外文、符號(hào)、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號(hào)。 (5)應(yīng)獨(dú)立完成實(shí)驗(yàn)報(bào)告的書(shū)寫(xiě),嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。 實(shí)驗(yàn)報(bào)告批改說(shuō)明 實(shí)驗(yàn)報(bào)告的批改要及時(shí)、認(rèn)真、仔細(xì),一律用紅色筆批改。實(shí)驗(yàn)報(bào)告的批改成績(jī)采用五級(jí)記分制或百分制,按《金陵科技學(xué)院課堂教學(xué)實(shí)施細(xì)則》中作業(yè)批閱成績(jī)?cè)u(píng)定要求執(zhí)行。 金陵科技學(xué)院實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)項(xiàng)目名稱(chēng): 初級(jí)程序設(shè)計(jì) 實(shí)驗(yàn)

3、學(xué)時(shí): 6 同組學(xué)生姓名: 實(shí)驗(yàn)地點(diǎn): A206 實(shí)驗(yàn)日期: 4.10---4.24 實(shí)驗(yàn)成績(jī): 批改教師: 胡盈盈 批改時(shí)間: 實(shí)驗(yàn)1 初級(jí)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)熟悉Visual C++集成環(huán)境,進(jìn)行編輯、保存、編譯、連接及運(yùn)行,并能進(jìn)行簡(jiǎn)單程序調(diào)試; (2)掌握C語(yǔ)言中各種運(yùn)算符的使用; (3)掌握C語(yǔ)言中各種

4、數(shù)據(jù)類(lèi)型的區(qū)別與應(yīng)用; (4)熟練掌握C語(yǔ)言中變量的定義、賦值和使用,表達(dá)式語(yǔ)句、輸入/輸出語(yǔ)句的使用; (5)掌握C語(yǔ)言中輸入/輸出函數(shù)的使用; (6)掌握C語(yǔ)言中控制語(yǔ)句的使用,含if-else、for、while、do-while語(yǔ)句的使用。 二、實(shí)驗(yàn)儀器和設(shè)備 奔騰以上計(jì)算機(jī),裝有windows XP以上版本操作系統(tǒng)和Visual C++ 6.0軟件。 三、實(shí)驗(yàn)內(nèi)容與過(guò)程 1、程序調(diào)試 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p;

5、 printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改錯(cuò) 下面是判斷一個(gè)學(xué)生考試成績(jī)及格與否的程序(成績(jī)A,或B,或C者為及格;成績(jī)?yōu)椋恼卟患案瘢?,調(diào)試并改進(jìn)如下程序使其能滿足上述輸出的需要。

6、 #include main() { char mark=“A”; switch(mark) { case “A”: case “B”: case “C”: printf(“>=60\n”); case “D”: printf(“<60\n”); default: printf(“Error\n”); } } 3、程序設(shè)計(jì) (1)功能:編程實(shí)現(xiàn)使實(shí)型正數(shù)保留2位小數(shù),并對(duì)第三位進(jìn)行四舍五入。 例如:實(shí)型數(shù)為 1234.567,則函數(shù)返回 1234.570000;

7、 實(shí)型數(shù)為 1234.564,則函數(shù)返回 1234.560000。 (2)功能:從鍵盤(pán)輸入一個(gè)大寫(xiě)字母,要求改用小寫(xiě)字母輸出。 (3)功能:編寫(xiě)函數(shù)計(jì)算下列分段函數(shù)的值: (4)功能:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回0。x的值由主函數(shù)從鍵盤(pán)讀入,要求不大于100。 說(shuō)明:所謂“同構(gòu)數(shù)”是指這樣的數(shù),這個(gè)數(shù)出現(xiàn)在它的平方數(shù)的右邊。 例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)。 (5)功能:功能:計(jì)算正整數(shù)n的所有因子(1和n除外)之和并輸出。n的值由鍵盤(pán)輸入。 例如:n=120時(shí),輸出239。 (6)功能:計(jì)算并輸出下

8、列多項(xiàng)式的值 S = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 例如:鍵盤(pán)給n輸入15,則輸出為:s=2.718282。 注意:要求n的值大于1但不大于100。 (7)功能:從低位開(kāi)始取出長(zhǎng)整型變量s奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。 例如:當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:7531。 4、思考題 (1)功能:判斷一個(gè)三位數(shù)是否"水仙花數(shù)"。在main函數(shù)中從鍵盤(pán)輸入一個(gè)三位數(shù),并輸出判斷結(jié)果。 說(shuō)明:所謂"水仙花數(shù)"是指一3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。 例如:153是一個(gè)水仙花數(shù),因?yàn)?53=1+125+27。

9、 (2)功能:計(jì)算并輸出3到n之間所有素?cái)?shù)的平方根之和。 例如:鍵盤(pán)給n輸入100后,輸出為:sum=148.874270。 (3)功能:輸出Fibonacci數(shù)列中大于s的最小的一個(gè)數(shù)。其中Fibonacci數(shù)列F(n)的定義為: F(0)=0,F(xiàn)(1)=1 F(n)=F(n-1)+F(n-2) 例如:鍵盤(pán)輸入s=1000時(shí),輸出1597。 程序清單及流程圖: 2、 #include main() { char mark=A; switch(mark) {caseA: caseB: caseC:prin

10、tf(">=60\n");break; caseD:printf("<60\n");break; default: printf("Error\n"); } } 3(1) #include main() { float n,m; printf("please enter a number"); scanf("%f",&n); m = n*100+0.5; m = (int) m; printf("%f",m/100.0); } 3(2) #include main() { char ch;

11、 printf("press a key and then press Enter:"); ch=getchar(); ch = ch+32; putchar(ch); putchar(\n); } 3(3) #include main() { int x,y,f(x); printf("請(qǐng)輸入x"); scanf ("%d",&x); if (x<0&&x!=-3) { y=x^2+x+6; } else{ if (0<=x<10&&x!=2&&x!=3) { y=x^2-5*x+6;

12、 } else { y=x^2-x-1; } } printf("%d",y); } 3(4) #include main() { int x,m; printf("input x<=100:"); scanf("%d",&x); if ((x^2)%10==x%10) m=1; else m=0; while (m=1) { printf("%d是同構(gòu)數(shù)\n",x) ;break; }; while (m=0) { printf("%d不是同構(gòu)數(shù)\n",x) ;break; }

13、; } 3(5) #include main() { int n,i,sum=0; printf("請(qǐng)輸入一個(gè)正整數(shù):"); scanf("%d",&n); for(i=2;i main() { int n,j,i=1; double sum=0.00; printf("請(qǐng)輸入一個(gè)正整數(shù)n(1

14、j<=n;j++) { i*=j; sum+=1.00/i; } printf("%lf",sum); } 4(1) #include #include void main() { int n,a,b,c; printf("請(qǐng)輸入一個(gè)三位數(shù):"); scanf("%d",&n); if(n<100 || n>999) { printf("輸入有誤!\n"); } else{ a=n/100; b=(n-100*a)/10; c=n%10; } if(n=

15、=a*a*a+b*b*b+c*c*c) { printf("%d是一個(gè)水仙花數(shù)!\n",n); } else printf("%d不是一個(gè)水仙花數(shù)!\n",n); return; } 四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析) 2、 3(1) 3(2) 3(3) 3(4) 3(5) 3(6) 4(1) 五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì)) 1、經(jīng)常把“=”當(dāng)做“= =”; 2、常忘記最后的“}”和“;” 實(shí)驗(yàn)項(xiàng)目名稱(chēng): 中級(jí)程序設(shè)計(jì) 實(shí)驗(yàn)學(xué)時(shí): 8 同組學(xué)生

16、姓名: 實(shí)驗(yàn)地點(diǎn): A206 實(shí)驗(yàn)日期: 5.8---5.22 實(shí)驗(yàn)成績(jī): 批改教師: 胡盈盈 批改時(shí)間: 實(shí)驗(yàn)2 中級(jí)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)掌握函數(shù)的定義、調(diào)用及返回、聲明的應(yīng)用; (2)熟練掌握一維數(shù)組的定義、初始化及使用; (3)掌握二維數(shù)組的定義、初始化及應(yīng)用; (4)熟練掌握向函數(shù)傳遞一維數(shù)組的方法和應(yīng)用; (5)掌握向函數(shù)傳遞一維數(shù)組的方法和應(yīng)用。 二、實(shí)驗(yàn)儀器和設(shè)備 奔騰以上計(jì)算機(jī),

17、裝有windows XP以上版本操作系統(tǒng)和Visual C++ 6.0軟件。 三、實(shí)驗(yàn)內(nèi)容與過(guò)程 1、程序調(diào)試 #include int func(int a,int b) {return(a+b); } main() {int x=3,y=8,z=4,r; r=func(func(x,y),z); printf(“r=%d\n”,r); } 2、程序改錯(cuò) 要求:1、改錯(cuò)時(shí),只允許修改現(xiàn)有語(yǔ)句中的一部分內(nèi)容,不允許添加和刪除語(yǔ)句。 2、提示行下一行為錯(cuò)誤行。 (1) 功能:判斷m是否為素?cái)?shù),若是返回1,否則返回0。 #include

18、tdio.h> /**********FOUND**********/ void fun( int n) { int i,k=1; if(m<=1) k=0; /**********FOUND**********/ for(i=1;i

19、 if(fun(m)==1) { printf("%4d",m);k++; if(k%5==0) printf("\n"); } } (2)功能:在一個(gè)已按升序排列的數(shù)組中插入一個(gè)數(shù),插入后,數(shù)組元素仍按升序排列。 #include #define N 11 main() { int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("please enter an integer to insert in the array:\

20、n"); /**********FOUND**********/ scanf("%d",&number) printf("The original array:\n"); for(i=0;i=0;i--) if(number<=a[i]) /**********FOUND**********/ a[i]=a[i-1

21、]; else { a[i+1]=number; /**********FOUND**********/ exit; } if(number

22、tdio.h" #include "conio.h" main() { int i,j,max,s,t; /**********FOUND**********/ int a[2][]={1,34,23,56,345,7}; clrscr(); /**********FOUND**********/ max=0; s=t=0; for(i=0;i<2;i++) /**********FOUND**********/ for(j=1;j<3;j++) if(a[i][j]>max) {

23、max=a[i][j]; s=i; t=j; } /**********FOUND**********/ printf("max=a[%d][%d]=%d\n",i,j,max); } 3、程序設(shè)計(jì) 說(shuō)明,所有題目均需添加main(),在main()中調(diào)用子函數(shù)并設(shè)計(jì)完整的輸入輸出才可調(diào)試通過(guò)。 (1) 功能:編寫(xiě)函數(shù)float fun(int n),求一分?jǐn)?shù)序列2/1,3/2,5/3,8/5,13/8,21/13…的前n項(xiàng)之和。 說(shuō)明:每一分?jǐn)?shù)的分母是前兩項(xiàng)的分母之和,每一分?jǐn)?shù)的分子是前兩項(xiàng)的分子之和。 例如:求前20項(xiàng)之和的值為32.660259。 (2)完成

24、子函數(shù)int fun(int n),找出一個(gè)大于給定整數(shù)且緊隨這個(gè)整數(shù)的素?cái)?shù),并作為函數(shù)值返回。 (3)功能:編寫(xiě)函數(shù)void fun(int n,int a[]),按順序?qū)⒁粋€(gè)4位的正整數(shù)每一位上的數(shù)字存到一維數(shù)組,然后在主函數(shù)輸出。例如輸入5678,則輸出結(jié)果為 5 6 7 8。 (4)功能:編寫(xiě)函數(shù)void fun(int arr[],int n)將一個(gè)數(shù)組中的值按逆序存放,并在main()函數(shù)中輸出。 例如:原來(lái)存順序?yàn)?,6,5,4,1。要求改為:1,4,5,6,8。 (5) 功能:程序定義了NN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(int a[][N],i

25、nt n),使數(shù)組a左下三角元素中的值乘以n。 例如:若n的值為3,a數(shù)組中的值為 | 1 9 7 | | 3 9 7 | a = | 2 3 8 | 則返回主程序后a數(shù)組中的值應(yīng)為 | 6 9 8 | | 4 5 6 | | 12 15 18| (6)功能:編寫(xiě)函數(shù)void fun(int array[3][3]),實(shí)現(xiàn)矩陣(3行3列)的轉(zhuǎn)置(即行列互換)。 例如:輸入下面的矩陣: 100

26、 200 300 400 500 600 700 800 900 程序輸出: 100 400 700 200 500 800 300 600 900 4、討論、思考題 (1)功能:編寫(xiě)函數(shù)float fun(),利用以簡(jiǎn)單迭代方法Xn+1=cos(Xn)求方程:cos(x)-x=0的一個(gè)實(shí)根。迭代步驟如下: 1)取x1初值為0.0; 2)x0=x1,把x1的值賦給x0; 3)x1=cos(x0),求出一個(gè)新的x1; 4)若x0-x1的絕對(duì)值

27、小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2); 5)所求x1就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。 輸出:程序?qū)⑤敵鼋Y(jié)果Root=0.739085。 (2)功能:編寫(xiě)float fun(float array[],int n),統(tǒng)計(jì)出若干個(gè)學(xué)生的平均成績(jī),最高分以及得最高分的人數(shù)。 例如:輸入10名學(xué)生的成績(jī)分別為92,87,68,56,92,84,67,75,92,66,則輸出平均成績(jī)?yōu)?7.9,最高分為92,得最高分的人數(shù)為3人。 (3)編寫(xiě)函數(shù) int fun(int lim,int aa[MAX]),該函數(shù)的功能是求出小于lim的所有素?cái)?shù)

28、并放在aa數(shù)組中,該函數(shù)返回求出素?cái)?shù)的個(gè)數(shù)。 (4)功能:編寫(xiě)函數(shù)int fun(int a[M][M]),求5行5列矩陣的主、副對(duì)角線上元素之和。注意,兩條對(duì)角線相交的元素只加一次。 (5)功能:請(qǐng)編一個(gè)函數(shù)void fun(int tt[M][N],int pp[N]),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中最小元素,并依次放入pp所指一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予。 程序清單及流程圖: 2.(1) #include int fun (int m) { int i,k=1; if(m<=1) k=0; for(i=2;

29、i #define N 11 main() { int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf("plea

30、se enter an integer to insert in the array:\n"); /**********FOUND**********/ scanf("%5d",&number); printf("The original array:\n"); for(i=0;i0;i--) if(number<=a[i]) /

31、**********FOUND**********/ a[i+1]=a[i]; else { a[i+1]=number; /**********FOUND**********/ break; } if(number

32、tdio.h> #include main() { int i,j,max,s,t; /**********FOUND**********/ int a[2][3]={1,34,23,56,345,7}; /**********FOUND**********/ max=a[0][0]; s=t=0; for(i=0;i<2;i++) /**********FOUND**********/ for(j=0;j<3;j++) if(a[i][j]>max) { max=a[i]

33、[j]; s=i; t=j; } /**********FOUND**********/ printf("max=a[%d][%d]=%d\n",s,t,max); } 3(1) #include float fun(int n) { float w=1.0,x=2.0,y=2.0,z=3.0,k,sum=0.0,p,q; int i; if (n==1) { sum=x/w; return sum; } else if (n==2) { sum=x/w+z/y; return sum; }

34、 else { for(i=3;i<=n;i++) { k=(x+z)/(w+y); sum+=k; p=y;q=z; y=w+y;z=x+z; w=p;x=q; } return sum+3.5; } } main() { int m; printf("請(qǐng)輸入正整數(shù)m"); scanf("%d",&m); printf ("序列前%d項(xiàng)和為%f",m,fun(m)); } 3(2) #include int fun(int n) {

35、 int j,k,l=0; for (j=n+1;;j++) { for (k=2;k #define N 5 fun(int arr[],int n) {

36、 int brr[N],i; for(i=0;i int fun(int array[3][3]) { int i,j,t[3][3]; for(i=0;i<3

37、;i++) { for(j=0;j<3;j++) t[i][j]=array[i][j]; } for(i=0;i<3;i++) { for(j=0;j<3;j++) array[i][j]=t[j][i]; } return array[3][3]; } main() { int a[3][3]={100,200,300,400,500,600,700,800,900},i,j; fun(a); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%5d",

38、a[i][j]); } printf("\n"); } } 四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析) 2.(1) 2(2) 2(3) 3(1) 3(2) 3(4) 3(6) 五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì)) 1、數(shù)組的第一項(xiàng)是a[0]; 2、要注意數(shù)組不能越界; 3、函數(shù)要先定義再使用。 實(shí)驗(yàn)項(xiàng)目名稱(chēng): 高級(jí)程序設(shè)計(jì) 實(shí)驗(yàn)學(xué)時(shí): 6 同組學(xué)生姓名: 實(shí)驗(yàn)地點(diǎn): A206

39、 實(shí)驗(yàn)日期: 5.29---6.12 實(shí)驗(yàn)成績(jī): 批改教師: 批改時(shí)間: 實(shí)驗(yàn)3 高級(jí)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)理解C語(yǔ)言中指針的本質(zhì),區(qū)分指針與指針變量,掌握有關(guān)指針的應(yīng)用; (2)熟練掌握字符串常量和字符串的存儲(chǔ)及字符串處理函數(shù)的使用; (3)掌握字符指針的定義、使用等; (4)掌握向函數(shù)傳遞字符串的方法; 二、實(shí)驗(yàn)儀器和設(shè)備 奔騰以上計(jì)算機(jī),裝有windows XP以上版本操作系統(tǒng)和Visual C++ 6.0軟件。 三、實(shí)驗(yàn)內(nèi)容與過(guò)

40、程 1、程序調(diào)試 (1) main() { int a=10,b=20,x,*pa,*pb; pa=&a;pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); x=*pa;*pa=*pb;*pb=x; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (2) main() { int a=10,b=20,*p,*pa=&a,*pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*p

41、b); p=pa;pa=pb;pb=p; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (3) int *swap(int *a,int *b) { int *p; p=a; a=b; b=p; return(a); } main() {int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(“%d,%d,%d”,x,y,z); } 思考:上面程序中函數(shù)swap()預(yù)將兩個(gè)數(shù)的值相互交換,但結(jié)果為什么沒(méi)有交換? 2、程序改錯(cuò) 要求:1、改錯(cuò)時(shí),只允許修改現(xiàn)有語(yǔ)句

42、中的一部分內(nèi)容,不允許添加和刪除語(yǔ)句。 2、提示行下一行為錯(cuò)誤行。 (1)功能:為一維數(shù)組輸入10個(gè)整數(shù);將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,將最大的數(shù)與最后一個(gè)數(shù)對(duì)換,輸出數(shù)組元素。 #include void input(int *arr,int n) { int *p,i; p=arr; printf("please enter 10 integers:\n"); for(i=0;i

43、in(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p

44、-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf("The changed array is:\n"); /**********ERROR**********/ while(i=0;i

45、_min(a,10); output(a,10); } (2)功能:將s所指字符串的反序和正序進(jìn)行連接形成一個(gè)新串放在t所指的數(shù)組中。 例如:當(dāng)s所指的字符串的內(nèi)容為"ABCD"時(shí),t所指數(shù)組中的內(nèi)容為"DCBAABCD"。 #include #include #include /**********FOUND**********/ void fun (char s, char t) { int i, d; /**********FOUND**********/ d = l

46、en(s); /**********FOUND**********/ for (i = 1; i

47、fun(s, t); printf("\nThe result is: %s\n", t); } 3、程序設(shè)計(jì) 說(shuō)明,所有題目均需添加main(),在main()中調(diào)用子函數(shù)并設(shè)計(jì)完整的輸入輸出才可調(diào)試通過(guò)。 (1) 功能:請(qǐng)編寫(xiě)一個(gè)函數(shù) int fun(int *s, int t, int *k),用來(lái)求出數(shù)組的最大元素在數(shù)組中的下標(biāo), 用k返回。 例如: 輸入如下整數(shù):876 675 896 101 301 401 980 431 451 777 則輸出結(jié)果為: 6, 980 (2) 功能:編寫(xiě)函數(shù)void len_cat(char c1[],char

48、c2[])將第二個(gè)串連接到第一個(gè)串之后,不允許使用strcat函數(shù) (3) 功能:編寫(xiě)函數(shù)long fun ( char *p),將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。 例如:若輸入字符串"-1234",則函數(shù)把它轉(zhuǎn)換為整數(shù)值 -1234。 (4) 功能:編寫(xiě)函數(shù)int fun(char *ptr)過(guò)濾串,即只保留串中的字母字符,并統(tǒng)計(jì)新生成串中包含的字母?jìng)€(gè)數(shù)作為函數(shù)的返回值。 (5)功能:編寫(xiě)函數(shù)void fun(char s[])將一個(gè)由四個(gè)數(shù)字組成的字符串轉(zhuǎn)換為每?jī)蓚€(gè)數(shù)字間有一個(gè)空格的形式輸出。 例如:輸入“4567”,應(yīng)輸出“4□5

49、□6□7”(□表示空格)。 (6) 功能:編寫(xiě)函數(shù)void fun(char s[],char c)從字符串s中刪除指定的字符c。 說(shuō)明:該字符可能多次和連續(xù)出現(xiàn),算法應(yīng)全面考慮。 4、討論、思考題 (1)功能:請(qǐng)編寫(xiě)函數(shù)void fun(char (*s)[N], char *b),將M行N列的二維數(shù)組中的字符數(shù)據(jù)按列的順序依次放到一個(gè)字符串中。 例如:二維數(shù)組中的數(shù)據(jù)為: W W W W S S S S H H H H 則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHWSH。 (2)功能:編寫(xiě)函

50、數(shù)void fun(char str[],int i,int n),從字符串str中刪除第i個(gè)字符開(kāi)始的連續(xù)n個(gè)字符(注意:str[0]代表字符串的第一個(gè)字符)。 (3)功能:編寫(xiě)函數(shù)void fun(char *s,char t[]),將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值也為奇數(shù)的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。 例如:若s所指字符串中的內(nèi)容為:"ABCDEFG12345",其中字符A的ASCII碼值雖為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此必需刪除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其

51、他依此類(lèi)推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:"135"。 (4) 功能:請(qǐng)編寫(xiě)函數(shù)int fun( char *s),統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù)作為函數(shù)值返回。規(guī)定所有單詞由小寫(xiě)字母組成,單詞之間由若干個(gè)空格隔開(kāi),一行的開(kāi)始沒(méi)有空格。 程序清單及流程圖: 2(1) #include void input(int *arr,int n) { int *p,i; p=arr; printf("please enter 10 integers:\n"); for(i=0;i

52、*********/ scanf("%d",p+i); } void max_min(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p*max) max=p; else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********ERROR***

53、*******/ if(max==arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf("The changed array is:\n"); /**********ERROR**********/ for(i=0;i

54、() { int a[10]; input(a,10); max_min(a,10); output(a,10); } 2(2) #include #include #include /**********FOUND**********/ void fun (char s[],char t[]) { int i, d; /**********FOUND**********/ d = strlen(s); /**********FOUND****

55、******/ for (i = 0; i

56、result is: %s\n", t); } 3(1) #include #define N 10 fun(int *s,int t,int *k) { int m,max=s[0],n=0; for (m=1;m<=t-1;m++) { if(s[m]>max) {max=s[m]; n=m; } } k=n; return k; } main() { int i,j,a[N]={876,675,896,101,301,401,980,431,451,777}; i=fun (a,N,&i);

57、printf("%d,%d",i,a[i]); } 3(2) #include #include len_cat(char c1[80],char c2[40]) { int i,j; j=strlen(c1); for(i=0;c2[i]!=\0;i++) c1[i+j]=c2[i]; c1[i+j]=\0; } main() { char str1[80],str2[40]; gets(str1);gets(str2); puts(str1);puts(str2); len_cat(str1

58、,str2); puts(str1); } 3(3) #include long fun ( char *p) { long n=0; int flag=0; while(*p!=\0) { if(*p==-) flag=1; else if (*p==+) flag=0; else n=n*10+(*p-0); p++; } if (flag==1) n=-n; return

59、 n; } main() { char a[7]; long b[6]={0}; scanf("%s",a); b[6] = fun(a); printf("%d",b[6]); } 3(4) include int fun(char *ptr) { int i,j=0; for(i=0;*(ptr+i)!=\0;i++) { if(*(ptr+i)<=z && *(ptr+i)>=a||*(ptr+i)<=Z && *(ptr+i)>=A) { *(ptr+j)=*(ptr+i); j++;

60、 } } return j; } main() { char a[10]; int m,n; scanf("%s",a); n = fun(a); for(m=0;m #include void fun(char s[]) { int i,len; len = strlen(s); for(i=len-1;i>0;i--) {

61、 s[2*i]=s[i]; s[2*i-1]= ; } len=strlen(s); s[len]=\0; for(i=0;i<=len;i++) printf("%c",s[i]); } main() { char a[8]; scanf("%s",a); fun(a); } 3(6) #include #include void fun(char s[],char c); main() { char a[20],b; scanf("%s",a); p

62、rintf("%s\n",a); getchar (); scanf("%c",&b); fun(a,b); } void fun(char s[],char c) { int n,m=0,len; len=strlen(s); for(n=0;n

63、 3(4) 3(5) 3(6) 五、實(shí)驗(yàn)體會(huì)(遇到問(wèn)題及解決辦法,編程后的心得體會(huì)) 1、指針要先定義后使用; 2、沒(méi)有初始化的指針不能使用; 3、函數(shù)引用時(shí)盡可能間接引用; 4、字符注意’\0’。 實(shí)驗(yàn)項(xiàng)目名稱(chēng): 構(gòu)造類(lèi)型程序設(shè)計(jì) 實(shí)驗(yàn)學(xué)時(shí): 4 同組學(xué)生姓名: 實(shí)驗(yàn)地點(diǎn): A202 實(shí)驗(yàn)日期: 6.19—6.26 實(shí)驗(yàn)成績(jī): 批改教師:

64、 批改時(shí)間: 實(shí)驗(yàn)4 構(gòu)造類(lèi)型程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康暮鸵? (1)熟悉結(jié)構(gòu)體和共同體的概念; (2))熟悉并掌握結(jié)構(gòu)體變量、數(shù)組和共同體變量的定義、賦值與使用; (3)掌握結(jié)構(gòu)體指針的定義與引用; (4)掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作; (5)熟悉文件打開(kāi)、關(guān)閉、寫(xiě)入、讀出的方法;學(xué)會(huì)使用文件操作函數(shù)。 二、實(shí)驗(yàn)儀器和設(shè)備 奔騰以上計(jì)算機(jī),裝有windows XP以上版本操作系統(tǒng)和Visual C++ 6.0軟件。 三、實(shí)驗(yàn)內(nèi)容與過(guò)程 1、程序調(diào)試 (1) struct aa {int x,*y;}*p; int a[

65、8]={10,20,30,40,50,60,70,80}; struct aa b[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]}; main() {p=b; printf(″%d″,*++p->y); printf(″%d\n″,++(p->x)); } (2) struc STU { char name[10]; int num; }; void f1(struct STU c) { struct STU b={“LiSiGuo”,2042}; c=b; } void f2(struct STU *c) { str

66、uct STU b={“SunDan”,2044}; *c=b; } main( ) { struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(a) ;f2(&b) ; printf(“%d %d\n”,a.num,b.num); } 2、程序設(shè)計(jì) 說(shuō)明,所有題目均需添加main(),在main()中調(diào)用子函數(shù)并設(shè)計(jì)完整的輸入輸出才可調(diào)試通過(guò)。 (1)(2)兩題的學(xué)生記錄由學(xué)號(hào)和成績(jī)組成,結(jié)構(gòu)體類(lèi)型定義如下: typedef struct { char num[10]; double s; } STREC; (1)功能:a所指向的數(shù)組中有N名學(xué)生的數(shù)據(jù),請(qǐng)編寫(xiě)函數(shù)double fun(STREC *a,STREC *b),把a(bǔ)數(shù)組中分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。分?jǐn)?shù)最高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生人數(shù)。 (2)功能:a所指的數(shù)組中有N名學(xué)生的數(shù)據(jù),請(qǐng)編寫(xiě)函數(shù)double fu

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲