C語言實(shí)驗(yàn)報(bào)告冊-2016.3a_第1頁
C語言實(shí)驗(yàn)報(bào)告冊-2016.3a_第2頁
C語言實(shí)驗(yàn)報(bào)告冊-2016.3a_第3頁
C語言實(shí)驗(yàn)報(bào)告冊-2016.3a_第4頁
C語言實(shí)驗(yàn)報(bào)告冊-2016.3a_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、金陂科扶暑院學(xué)生實(shí)驗(yàn)報(bào)告冊(理工類)課程名稱:C語言程序設(shè)計(jì)實(shí)驗(yàn) 專業(yè)班級:15自動(dòng)化2班學(xué)生學(xué)號:1517011063學(xué)生姓名: 王啟濤所屬院部:智能科學(xué)與控制工程學(xué)院指導(dǎo)教師:王預(yù)2015 20 16學(xué)年第2 學(xué)期金陵科技學(xué)院教務(wù)處制實(shí)驗(yàn)報(bào)告書寫要求實(shí)驗(yàn)報(bào)告上交電子稿, 標(biāo)題采用四號黑體, 正文采用小四號宋體, 單倍行距。實(shí)驗(yàn)報(bào)告書寫說明實(shí)驗(yàn)報(bào)告中實(shí)驗(yàn)?zāi)康暮鸵蟆?實(shí)驗(yàn)儀器和設(shè)備、實(shí)驗(yàn)內(nèi)容與過程、 實(shí)驗(yàn)結(jié)果與分析這四項(xiàng)內(nèi)容為必需項(xiàng)。 教師可根據(jù)學(xué)科特點(diǎn)和實(shí)驗(yàn)具 體要求增加項(xiàng)目。填寫注意事項(xiàng)(1)細(xì)致觀察,及時(shí)、準(zhǔn)確、如實(shí)記錄。(2)準(zhǔn)確說明,層次清晰。(3)盡量采用專用術(shù)語來說明事物。(4

2、)外文、符號、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號。(5)應(yīng)獨(dú)立完成實(shí)驗(yàn)報(bào)告的書寫,嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn), 以零分論處 。實(shí)驗(yàn)報(bào)告批改說明 實(shí)驗(yàn)報(bào)告的批改要及時(shí)、認(rèn)真、仔細(xì),一律用紅色筆批改。實(shí)驗(yàn) 報(bào)告的批改成績采用五級記分制或百分制, 按金陵科技學(xué)院課堂教 學(xué)實(shí)施細(xì)則中作業(yè)批閱成績評定要求執(zhí)行。實(shí)驗(yàn)項(xiàng)目名稱:初級程序設(shè)計(jì)實(shí)驗(yàn)學(xué)時(shí):6同組學(xué)生姓名: 實(shí)驗(yàn)地點(diǎn): 工科樓實(shí)驗(yàn)日期:2016329實(shí)驗(yàn)成績:批改教師:王預(yù)批改時(shí)間:實(shí)驗(yàn) 1 初級程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康暮鸵?1)熟悉Visual C+集成環(huán)境,進(jìn)行編輯、保存、編譯、連接及運(yùn)行,并能進(jìn)行簡單 程序調(diào)試;( 2)掌握 C 語言中各種運(yùn)

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

4、;t,&p);sum=s+t+p;printf(“ sum=%dn”,sum);( 2) #include <stdio.h>main() int k=3;if(k=3) printf(“* ”);else printf(“#”);( 3) #include <stdio.h>main()int k=0;do printf( “k=%d n ”,k);while(k+>0);2、程序改錯(cuò)F面是判斷一個(gè)學(xué)生考試成績及格與否的程序(成績A,或E,或C者為及格;成績?yōu)镈者不及格),調(diào)試并改進(jìn)如下程序使其能滿足上述輸出的需要。 include <stdio.

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

6、() float a,; int b; scanf("%f",&a); b=a*100+0.5; a=b/100.0; printf("a=%7.2f",a);( 2)功能:從鍵盤輸入一個(gè)大寫字母,要求改用小寫字母輸出。 說明:可分別利用格式化及字符專門的輸入輸出函數(shù)兩種方法實(shí)現(xiàn)。( 3)功能:編寫函數(shù)計(jì)算下列分段函數(shù)的值:2xx6x0f(x) x25x60 x 102 xx1其它(4) 假設(shè)工資稅率如下,其中 s 代表工資, r 代表稅率: s<500 r=0% 500<=s<1000 r=5% 1000<=s<2

7、000 r=8% 2000<=s<3000 r=10% 3000<=s r=15% 編一程序?qū)崿F(xiàn)從鍵盤輸入一個(gè)工資數(shù),輸出實(shí)發(fā)工資數(shù)。要求使用switch 語句。(5) 功能:功能:計(jì)算正整數(shù)n的所有因子(1和n除外)之和并輸出。n的值由鍵盤輸入。例如: n=120 時(shí),輸出 239。(6) 功能:計(jì)算并輸出下列多項(xiàng)式的值S = 1 + 1/1! + 1/2! + 1/3! + . + 1/n!例如:鍵盤給n輸入15,則輸出為:s=2.718282。注意:要求n的值大于1但不大于100。(7) 功能:從低位開始取出長整型變量s奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。例如:當(dāng)

8、s 中的數(shù)為: 7654321 時(shí), t 中的數(shù)為: 1357。五、實(shí)驗(yàn)注意事項(xiàng)1、賦值號“ =”與關(guān)系運(yùn)算符“ =”的區(qū)別;2、 if-else語句中 else 后無條件表達(dá)式;3、while 與 do-while 的區(qū)別;4、復(fù)合語句必須用 括起來。六、思考題1、 功能:判斷一個(gè)三位數(shù)是否”水仙花數(shù)”。在main函數(shù)中從鍵盤輸入一個(gè)三位數(shù),并 輸出判斷結(jié)果。說明:所謂 "水仙花數(shù)"是指一3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如: 153是一個(gè)水仙花數(shù),因?yàn)?153=1+125+27。2、功能:計(jì)算并輸出3到n之間所有素?cái)?shù)的平方根之和。例如:鍵盤給n輸入100后,輸出為

9、:sum=148.874270。3、 功能:輸出Fib on acci數(shù)列中大于s的最小的一個(gè)數(shù)。其中 Fibo nacci數(shù)列F(n)的定義 為:F(0)=0, F(1)=1 F(n)=F(n-1)+F(n-2)例如:鍵盤輸入s=1000時(shí),輸出1597。4、 功能:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),輸出"是";否則輸出"不是"。x的值由主函數(shù)從鍵盤讀入,要求不大于100。說明:所謂 “同構(gòu)數(shù) ”是指這樣的數(shù),這個(gè)數(shù)出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù) 5, 5的平方數(shù)是 25, 5是25中右側(cè)的數(shù),所以 5是同構(gòu)數(shù)。程序清單:3(1)#inclu

10、de <stdio.h>main() float a; int b;scanf("%f",&a); b=a*100+0.5; a=b/100.0;printf("a=%7.2f",a);( 2) #include <stdio.h> main() char ch;pintf("press a key and then press enter"); ch=getchar(); if(ch>'A'&&ch<'Z'); ch=ch+32;putcha

11、r(ch);printf( “n ”);( 3) #include <stdio.h> main() float x,y;scanf("%f",&x);if(x<0) y=x*x+x+6;else if(x<10&&x!=2.0&&x!=3.0) y=x*x-5*x+6;else y=x*x-x-1; printf("%f",y);(4)#include <stdio.h>main() int n,s;scanf("%d",&s);if(s<50

12、0)n=1;else if(s<1000)n=2;else if(s<2000)n=3;else if(s<3000)n=4;elsen=5;switch(n)case 1':printf("%d",s); break;case 2': s=s*(1-5%); printf("%d",s); break;case 3':s=s*(1-8%); printf("%d",s); break;case 4': s=s*(1-10%); printf("%d",s); br

13、eak;case 5': s=s*(1-15%); printf("%d",s); break;default : print("invalid operator!n");四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)1 (1) 輸入 1 2 2 Sum=5(2)*(3)k=0五、實(shí)驗(yàn)體會(huì)(遇到問題及解決辦法,編程后的心得體會(huì))實(shí)驗(yàn)項(xiàng)目名稱:中級程序設(shè)計(jì)實(shí)驗(yàn)學(xué)時(shí):8同組學(xué)生姓名:'實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:批改教師:批改時(shí)間:實(shí)驗(yàn) 2 中級程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康暮鸵螅?)掌握函數(shù)的定義、調(diào)用及返回、聲明的應(yīng)用;(2)熟練掌握一維數(shù)組的定義

14、、初始化及使用;(3)掌握二維數(shù)組的定義、初始化及應(yīng)用;(4)熟練掌握向函數(shù)傳遞一維數(shù)組的方法和應(yīng)用;(5)掌握向函數(shù)傳遞一維數(shù)組的方法和應(yīng)用。二、實(shí)驗(yàn)儀器和設(shè)備軟件。奔騰以上計(jì)算機(jī),裝有 windows XP 以上版本操作系統(tǒng)和 Visual C+ 6.0三、實(shí)驗(yàn)內(nèi)容與過程1、程序調(diào)試#include <stdio.h>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)有語句中的一部分內(nèi)容

15、,不允許添加和刪除語句。2、提示行下一行為錯(cuò)誤行。(1)功能:判斷m是否為素?cái)?shù),若是返回1,否則返回0。#include <stdio.h>/*FOUND*/void fun( int n)int i,k=1;if(m<=1) k=0;/*FOUND*/for(i=1;i<m;i+)/*FOUND*/if(m%i=0) k=0;* *FOUND* *return m; void main() int m,k=0;for(m=1;m<100;m+) if(fun(m)=1) printf("%4d",m);k+; if(k%5=0) printf

16、("n");(2) 功能:在一個(gè)已按升序排列的數(shù)組中插入一個(gè)數(shù),插入后,數(shù)組元素仍按升序排 列。#include <stdio.h>#define N 11main() int i,number,aN=1,2,4,6,8,9,12,15,149,156;printf("please enter an integer to insert in the array:n");* *FOUND* *scanf("%d",&number)printf("The original array:n");for

17、(i=0;i<N-1;i+)printf("%5d",ai); printf("n");* *FOUND* *for(i=N-1;i>=0;i-) if(number<=ai)* *FOUND* *ai=ai-1;elseai+1=number;* *FOUND *continue; if(number<a0) a0=number;printf("The result array:n");for(i=0;i<N;i+)printf("%5d",ai);printf("n&qu

18、ot;);(3) 找出一個(gè)二行三列二維數(shù)組中的最大值,輸出該最大值及其行列下標(biāo),建議二維數(shù) 組值由初始化給出。#include "stdio.h"#include "conio.h" main()int i,j,max,s,t;* *FOUND* *int a2=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(aij>max) max=aij; s=i; t=j; * *FOUND* *print

19、f("max=a%d%d=%dn",i,j,max);3、程序設(shè)計(jì)說明,所有題目均需添加main (),在 main ()中調(diào)用子函數(shù)并設(shè)計(jì)完整的輸入輸出才可調(diào)試通過 。 功能:編寫函數(shù) float fun(intn),求一分?jǐn)?shù)序列 2/1 , 3/2 , 5/3 ,8/5 ,13/8 ,21/13 的前n項(xiàng)之和。說明:每一分?jǐn)?shù)的分母是前兩項(xiàng)的分母之和,每一分?jǐn)?shù)的分子是前兩項(xiàng)的分子之和。例如:求前 20項(xiàng)之和的值為 32.660259 。(2) 完成子函數(shù) int fun(int n) ,找出一個(gè)大于給定整數(shù)且緊隨這個(gè)整數(shù)的素?cái)?shù),并作 為函數(shù)值返回。說明,以下四個(gè)關(guān)于數(shù)組的

20、題目,可以先用一個(gè)main ()函數(shù)實(shí)現(xiàn),然后相關(guān)內(nèi)容學(xué)習(xí)后再利用數(shù)組作函數(shù)參數(shù)的子函數(shù)和ma in ()函數(shù)共同實(shí)現(xiàn)。3)功能:編寫函數(shù) void fun(int n,int a),按順序?qū)⒁粋€(gè) 4 位的正整數(shù)每一位上的數(shù)字存到一維數(shù)組,然后在主函數(shù)輸出。例如輸入( 4)功能:編寫函數(shù) void fun(int arr,int n) 在main()函數(shù)中輸出。5918,則輸出結(jié)果為 5 9 1 8。將一個(gè)數(shù)組中的值按逆序存放,并例如:原來存順序?yàn)?18,2,50,43,69 。要求改為:(5) 功能:程序定義了 NX N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請編寫函數(shù)voidfun(int aN

21、,int n)例如:若n的值為2,| 1 9 7 | a = | 2 3 8 | 4 5 6 |69,43,50,2,18。,使數(shù)組a左下三角元素中的值乘以任意整數(shù) a數(shù)組中的值為| 2 9 7 |則返回主程序后a數(shù)組中的值應(yīng)為| 4 6 8 | 8 10 12|n。,實(shí)現(xiàn)矩陣( 3行3列)的轉(zhuǎn)置(即行列(6) 功能:編寫函數(shù) void fun(int array33) 互換)。例如:輸入下面的矩陣:100 200 300400 500 600700 800 900程序輸出:100 400 700200 500 800300 600 900五、實(shí)驗(yàn)注意事項(xiàng)(1) 調(diào)用系統(tǒng)庫函數(shù)要包含相應(yīng)頭文件

22、;(2) 函數(shù)可以嵌套調(diào)用,但不可以嵌套定義;(3)注意數(shù)組的越界問題;(4) 找最大值(最小值)的算法:先將第一個(gè)值認(rèn)為是最大(小)的,檢索以后的值, 判斷如果當(dāng)前數(shù)組元素值比保留在變量中的最大(小)值大(小) ,則用當(dāng)前數(shù)組元素值替 換該變量中的值。六、討論、思考題1、功能:編寫函數(shù) float fun() ,利用以簡單迭代方法 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 的絕對值小于 0.0

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

24、有素 數(shù)并放在 aa 數(shù)組中,該函數(shù)返回求出素?cái)?shù)的個(gè)數(shù)。4、功能:編寫函數(shù) int fun(int aMM) ,求 5 行 5 列矩陣的主、副對角線上元素之 和。注意,兩條對角線相交的元素只加一次。5、功能:請編一個(gè)函數(shù)void fun(int ttMN,int ppN), tt指向一個(gè) M行N列的二維數(shù)組,求出二維數(shù)組每列中最小元素,并依次放入 pp 所指一維數(shù)組中。二維數(shù)組中的 數(shù)已在主函數(shù)中賦予。程序清單及流程圖:四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)五、實(shí)驗(yàn)體會(huì)(遇到問題及解決辦法,編程后的心得體會(huì))實(shí)驗(yàn)項(xiàng)目名稱:咼級程序設(shè)計(jì)實(shí)驗(yàn)學(xué)時(shí):6同組學(xué)生姓名:實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期:實(shí)驗(yàn)成績:

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

26、;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,*pb);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,&am

27、p;y),&z);printf( “ %d,%d,%”d ,x,y,z);思考:上面程序中函數(shù) swap() 預(yù)將兩個(gè)數(shù)的值相互交換 ,但結(jié)果為什么沒有交換 ?2、程序改錯(cuò)要求:1 、改錯(cuò)時(shí),只允許修改現(xiàn)有語句中的一部分內(nèi)容,不允許添加和刪除語句。2、提示行下一行為錯(cuò)誤行。( 1)功能:為一維數(shù)組輸入 10個(gè)整數(shù);將其中最小的數(shù)與第一個(gè)數(shù)對換,將最大的數(shù) 與最后一個(gè)數(shù)對換,輸出數(shù)組元素。#include <stdio.h>void input(int *arr,int n) int *p,i;p=arr;printf("please enter 10 intege

28、rs:n");for(i=0;i<n;i+)* ERROR* *scanf("%d",p);void max_min(int *arr,int n)int *min,*max,*p,t; min=max=arr;for(p=arr+1;p<arr+n;p+)* ERROR* *if(*p<*max)max=p;else if(*p<*min) min=p;t=*arr;*arr=*min;*min=t;* ERROR* *if(max=arr) max=min;t=*(arr+n-1);*(arr+n-1)=*max;*max=t;void

29、 output(int *arr,int n) int *p,i;p=arr;printf("The changed array is:n");* ERROR* *while(i=0;i<n;i+) printf("%3d",*p+);printf("n");main()int a10; input(a,10);max_min(a,10);output(a,10);( 2)功能:將 s 所指字符串的反序和正序進(jìn)行連接形成一個(gè)新串放在t 所指的數(shù)組中。例如:當(dāng)s所指的字符串的內(nèi)容為"ABCD"時(shí),t所指數(shù)組中的

30、內(nèi)容為"DCBAABCD。#include <conio.h>#include <stdio.h>#include <string.h>* *FOUND* *void fun (char s, char t) int i, d;* *FOUND* *d = len(s);* *FOUND* *for (i = 1; i<d; i+)ti = sd - 1 - i ; for (i = 0; i<d; i+)t d + i = si;* *FOUND* *t2*d = '/0'main()char s100, t100;

31、printf("nPlease enter string S:"); scanf("%s", s);fun(s, t);printf("nThe result is: %sn", t); 3、程序設(shè)計(jì)說明,所有要求子函數(shù)的題目均需添加main (),在main ()中調(diào)用子函數(shù)并設(shè)計(jì)完整的輸入輸出才可調(diào)試通過 。 編寫一 main()函數(shù),要求利用指針,實(shí)現(xiàn)從鍵盤輸入三個(gè)數(shù),然后按照由小到大的 順序輸出此三個(gè)數(shù)。(2)功能:編寫函數(shù)float fun ( float *a , int n ),用來計(jì)算n門課程的平均分,結(jié)果作為函數(shù)值返

32、回。其中數(shù)組a中保存了 n門課程的分?jǐn)?shù)。例如:若有 5門課程的成績是:90.5,72,80,61.5,55,則函數(shù)的值為:71.80。(3) 功能:請編寫一個(gè)函數(shù) void fun(int *s, int n, int *k),用來求出數(shù)組 s 中的最大元素在數(shù)組中的下標(biāo),用k帶回。其中n為主函數(shù)數(shù)組中的數(shù)據(jù)個(gè)數(shù)。例如:在主函數(shù)中輸入如下整數(shù) :876 675 896 101 301 401 980 431 451 777則在主函數(shù)中輸出結(jié)果為: 6, 980將第二個(gè)串連接到第一個(gè)(4) 功能:編寫函數(shù) void len_cat(char c1,char c2) 串之后,不允許使用 strca

33、t 函數(shù)。(5) 功能: 編寫函數(shù) void fun(char *str,char ch) 從字符串 str 中刪除指定的字符 ch。 要求: 本問題要求用兩種算法分別實(shí)現(xiàn),一是直接刪除算法即查找符合刪除條件的并逐次前移實(shí)現(xiàn); 二是間接刪除算法即查找不符合刪除條件的并保留下來, 而保留的方法可以采 用利用本數(shù)組和引入臨時(shí)數(shù)組兩種實(shí)現(xiàn)。說明 : 該字符可能多次和連續(xù)出現(xiàn),算法應(yīng)全面考慮。(6) 功能:編寫函數(shù) long fun ( char *p) ,將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù) ( 不得 調(diào)用C語言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如:若輸入字符串 "-1234" ,則

34、函數(shù)把它轉(zhuǎn)換為整數(shù)值 -1234 。五、實(shí)驗(yàn)注意事項(xiàng)1、對計(jì)算機(jī)執(zhí)行程序過程中分配存儲空間及地址的理解;2、變量的直接引用與間接引用的區(qū)別;3、 字符串的結(jié)束標(biāo)志是'0',通常以此作為控制循環(huán)的條件。六、討論、思考題 功能:請編寫函數(shù) void fun(char (*s)N, char *b),將M亍N列的二維數(shù)組中的字符數(shù)據(jù)按列的順序依次放到一個(gè)字符串中。例如:二維數(shù)組中的數(shù)據(jù)為:W W W WS S S SH H H H則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHWSH(2) 功能:編寫函數(shù) void fun(char str,int i,int n),從字符串 str 中刪除

35、第 i 個(gè)字符開始的連續(xù) n 個(gè)字符(注意 :str0 代表字符串的第一個(gè)字符)。(3) 功能:編寫函數(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)刪除,其他依此類推。最后t 所指的數(shù)組中的內(nèi)容應(yīng)是:"13

36、5" 。(4) 功能:請編寫函數(shù) int fun( char *s),統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù)作為函數(shù)值返回。 規(guī)定所有單詞由小寫字母組成, 單詞之間由若干個(gè)空格隔開, 一行的開始沒有空格。(5) 功能:編寫函數(shù) void fun(char s) 將一個(gè)由四個(gè)數(shù)字組成的字符串轉(zhuǎn)換為每兩個(gè) 數(shù)字間有一個(gè)空格的形式輸出。例如:輸入4567”,應(yīng)輸出4 5口 6 7”( 表示空格)。程序清單及流程圖:四、實(shí)驗(yàn)結(jié)果與分析(程序運(yùn)行結(jié)果及其分析)五、實(shí)驗(yàn)體會(huì)(遇到問題及解決辦法,編程后的心得體會(huì))實(shí)驗(yàn)項(xiàng)目名稱: 構(gòu)造類型程序設(shè)計(jì) 實(shí)驗(yàn)學(xué)時(shí): 4同組學(xué)生姓名: 實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)日期: 實(shí)驗(yàn)成績:

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

38、 60, 70, 80;structaa b 4 = 100, &a 1 , 200, &a 3,10,&a 5,main()P= b;printf(% d", * + p- > y);printf( % dn",+ (p- >x);(2) struc STU char name10;int num;void f1(struct STU c) struct STU b=“LiSiGuo ”,2042;c=b;void f2(struct STU *c) struct 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ì)( 1)學(xué)生記錄由學(xué)號和成績組成,結(jié)構(gòu)體類型定義如下:typedef struct char num10; double s; STREC;功能:a所指向的數(shù)組中有N名學(xué)生的數(shù)據(jù),

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論