




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、語言程序設計課程實驗指導書第一部分 前言一、實驗的目的學習程序設計課程不能滿足于“懂得了” ,滿足于能看懂書上的程序,而應當熟練地 掌握程序設計的全過程,即獨立編寫源程序、獨立上機調試、獨立運行程序和分析結果。 上機實驗的目的, 絕不僅僅是為了驗證教材和講課的內容, 或者驗證自己所編寫的程序的正 確與否。程序設計課程上機實驗的目的是: 1加深對講授內容的理解,尤其是一些語法規(guī)定。通過實驗來掌握語法規(guī)則是行之有效的方法。2熟悉所用的操作系統(tǒng)。3學會上機調試程序。通過反復調試程序掌握根據出錯信息修改程序的方法。 4通過調試完善程序。二、實驗前的準備工作1了解所用的計算機系統(tǒng)(包括編譯系統(tǒng))的性能和
2、使用方法。 2復習和掌握與本實驗有關的教學內容。3準備好上機所需的程序,切忌不編程或抄別人的程序去上機。 4對程序中出現的問題應事先估計,對程序中自己有疑問的地方應先作上記號,以便上機 時給予注意。5準備好調試程序和運行程序所需的數據。三、實驗的步驟上機實驗應一人一組,獨立實驗。上機過程中出現的問題,除了是系統(tǒng)的問題以外,不 要輕易舉手問老師。尤其對“出錯信息” ,應善于分析判斷,找出出錯的行,然后檢查該行 或其上一行。上機實驗一般應包括以下幾個步驟: 1雙擊桌面 Visual C+ 快捷方式進入 Visual C+, 或通過執(zhí)行“開始 =程序 =Microsoft Visual Studio
3、 6.0= Microsoft Visual C+6.0”或執(zhí)行文件 C:ProgramFilesMicrosoft Visual StudioCOMMONMSDev98BinMSDEV.EXE。2單擊“文件”菜單的“新建”命令。3在打開的“新建”對話框中選擇“文件”標簽。4選擇 C+ Source File, 選擇文件保存位置,然后在文件輸入欄中輸入文件名。如圖所示:5輸入源程序。6編譯程序:按“ Ctrl+F7 ”或通過“編譯”菜單中的“編譯”命令,或使用工具欄中的相 應工具進行編譯 編譯 連接 運行若程序有錯則找到出錯行修改程序。7連接:若程序沒有語法錯誤,則可按功能鍵或執(zhí)行“編譯”菜單
4、中的“構件”命令 或通過工具欄中的相關工具(編譯工具右邊工具) ,進行連接生成可執(zhí)行文件。8運行程序:按組合鍵“ Ctrl+F5 ”,或通過“編譯”菜單中的執(zhí)行命令,或通過工具欄中 的“ !”工具運行程序。四、寫好實驗報告 實驗報告應包括以下內容: 1實驗目的。2實驗內容。3程序清單。4運行結果。5對運行結果的分析,以及本次調試程序所取得的經驗。五、實驗任務與時間安排實驗序號實驗內容擬實驗時間實驗 形式1C 程序的運行環(huán)境及運行一個 C程序2驗證性2數據類型、運算符和表達式2驗證性3最簡單的 C 程序設計2驗證性4選擇結構程序設計2驗證性5循環(huán)控制4驗證性6數組4驗證性7函數2驗證性8編譯預處
5、理2驗證性9指針2驗證性10結構體、共用體6設計性11位運算2驗證性12文件2驗證性六、教材C 程序設計(第三版) 潭浩強著 清華大學出版社第二部分 實驗內容實驗一 程序的運行環(huán)境和運行一個程序的方法一、實驗目的 1了解所用的計算機系統(tǒng)。2了解在該系統(tǒng)上如何進行編輯、編譯、連接和運行一個程序。3通過運行簡單的程序了解程序的特點。二、實驗內容和步驟熟悉所用的系統(tǒng)。了解 Windows 資源管理器的使用方法:文件的查看、復制、運行等方 法, Visual C+ 所在目錄,文本文件的建立方法。2進入 Visual C+ ,并新建一個 C+源程序文件。3熟悉 Visual C+ 的集成環(huán)境,了解各菜單
6、項有哪些子菜單。4輸入下面的程序(教材中的例 . ),注意區(qū)分大小寫。 #include void main()printf(This is a C program.n);編譯并運行程序。5關閉工作區(qū), 新建一個程序, 然后對教材中的例 . 重復中的操作(即只將程序改為 例 1.2 中的程序,其它操作步驟相同) 。6關閉工作區(qū),新建一個程序,然后輸入并運行一個需要在運行時輸入數據的程序 #include void main()int a,b,c;int max(int x,int y); printf(input a and b:); scanf(%d,%d,&a,&b); c=max(a,b
7、); printf(nmax=%d,c);int max(int x,int y)int z;if(xy) z=x;else z=y;return(z);(1)運行程序,若程序有錯,則修改錯誤后繼續(xù)運行程序,當沒有錯誤信息時輸入:2, 5并按 Enter 鍵,查看運行結果。( 2)將程序的第三行改為: int a;b;c; 然后按 F9 看結果如何,將其修改為 int a,b,c; 將 子程序 max的第 3,4 行合并為一行 , 運行程序,看結果是否相同。7運行一個自己編寫的程序 , 程序的功能是輸出兩行文字。實驗二 數據類型、運算符和表達式一、實驗目的掌握語言數據類型,熟悉如何定義一個整型
8、、字符型和實型的變量, 以及對它們賦值 的方法。2掌握不同數據類型之間賦值的規(guī)律。 3學會使用的有關算術運算符,以及包含這些運算符的表達式,特別是自加()和 自減()運算符的使用。4進一步熟悉程序的編輯、編譯、連接和運行的過程。 二、實驗內容和步驟 輸入并運行下面的程序#includevoid main()char c1 , c2;c1=a;c2=b;printf(%c %c,c1 , c2);()運行此程序 ()加入下面的一個語句作為“ ”前的最后一個語句: printf(%d,%dn,c1 , c2);()將第行改為:int c1 , c2; 然后再運行程序,并觀察結果是否相同。 ()將第
9、行改為 int c1 , c2; 將第 4,行依次改為: c1=a;c2=b;c1=a;c2=b c1=300;c2=400; 每改為一次后運行程序,觀察結果。2分析教材第章習題 3.6 中的程序的運行結果,然后輸入該程序并運行,將運行結果與前面分析的結果對比。3輸入并運行下面的程序#includevoid main()int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d,%dn,a,b);printf(%u,%un,a,b);printf(%u,%un,c,d);c=a=e;d=b=f;pri
10、ntf(%d,%dn,a,b);printf(%u,%un,c,d);請對照程序和運行結果分析:() 將一個負整數賦給一個無符號的變量, 會得到什么結果。 畫出它們在內存中的表示形 式。() 將一個大于 32767 的長整數賦給一個整型變量, 會得到什么結果。 畫出它們在內存中 的表示形式。()將一個長整數賦給無符號的變量,會得到什么結果。畫出它們在內存中的表示形式。 4輸入習題 3.10()運行程序,注意 i,j,m,n 的值。()將第 4,5 行改為:m=i+;n=+j;再運行。()將程序改為:#includevoid main()int i,j;i=8;j=10;printf(%d,%d
11、n,+i,+j);i=8;j=10;printf(%d,%dn,i+,j+);i=8;j=10;printf(%d,%dn,+i,i);i=8;j=10;printf(%d,%dn,i+,i);運行程序并分析運行結果。5按習題 3.7 的要求編程并上機運行:要將“ China ”譯成密碼, 密碼規(guī)律是:用原來的字母后面第 4個字母代替原來的字母。 例如,字母“ A”后面第 4個字母是 “E”,用“E”代替“A”,因此,“China”應譯為“Glmre”。 請編一程序,用賦初值的方法使 c、 c2、c3、c4、c5 這 5 個變量的值分別為 C,h, i,n, a, 經過計算, 使 c、c2、c
12、3 、c4、c5 分別變?yōu)椋?G,l,m,r,e,并輸出 .程序提示: main 函數算法如下:定義 char 型變量 c , c2, c3,c4,c5; 給字符型變量賦值c1=c1+4; c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;輸出 c, c2,c3, c4,c5實驗三 最簡單的程序設計一、實驗目的 1掌握語言中使用最多的一種語句賦值語句的使用方法。 2掌握各種類型數據的輸入輸出方法,能正確使用各種格式輸出符。二、實驗內容和步驟 掌握各種格式輸出符的使用方法。#includevoid main()int a,b;float d,e; char c1 , c2;doub
13、le f,g;long n,m; unsigned p,q;a=61;b=62; c1=a;c2=b;d=3.56; e=-6.87; f=3156 ;g=0.;m=50000;n=-60000; p=32768;q=40000;printf(a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn,a,b,c1, c2 ,d,e);printf(f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un,f,g,m,n,p,q);(1)運行此程序并分析運行結果。(2) 在此基礎上,修改程序的第行:a=61;b=62; c1=a;c2=b; f=31
14、56 , ;g=0.;d=f;e=g;p=a=m=50000;q=b=n=-60000; 運行程序,分析運行結果。(3)將行改為以下的 scanf 語句,即用 scanf 函數接收從鍵盤輸入的數據: scanf(%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u,&a,&b,&c1, &c2,&d,&e,&f,&g,&m,&n,&p,&q);運行程序(無錯誤的情況下)輸入數據如下:61,62 ,a,b,3.56,-6.87 , 3156, 0.,50000,-60000,32768 , 400002按習題 38 的要求編寫程序并運行:設圓半徑 r=1.5 ,圓柱高
15、h=3,求圓周長、圓面積,圓球表面積、圓球體積、圓柱體體積。用 scanf 輸入數據,輸出計算結果,輸出時要有文字說明,取小數后 2 位數字。 程序提示:#define PI 3.14159main 算法如下定義 float 型變量 r,h,L,s1 , s2,v1 ,v2;用 scanf 語句輸入圓半徑和圓柱高 求圓周長、面積、圓球表面積、圓柱體體積 輸出圓周長、圓面積、圓球表面積、圓球體體積程序中的 用 PI 代替。3編寫程序,用 getchar 函數讀入兩個字符給 c1 ,c2,然后分別用 putchar 函數和 printf 函數輸出這兩個字符。實驗四 選擇結構程序設計一、實驗目的1了
16、解語言表示邏輯值的方法。2學會正確使用邏輯運算符和邏輯表達式的方法。3熟悉 if 語句和 switch 語句。4結合程序掌握一些簡單的算法。5學習調試程序的方法。二、實驗內容 本實驗要求編程解決以下問題,然后上機調試運行程序。x x 11 y 2x 1 1 x 103x 11 x 10用 scanf 函數輸入 x 的值,求 y 的值。程序提示 :main 函數結構如下:定義實型變量 x 與 y使用 scanf 函數輸入 x 的值if x1y=xelseif x=90grade=Aelse if score=80grade=Belse if score=70 grade=C else if sc
17、ore=60 grade=D else grade=E 輸出百分制成績和等級。( 2)使用 switch 語句的 main 函數結構如下: 定義 float 型變量 score , char 型變量 grade 輸入百分制成績賦給 score switch(int(score/10)case 10:case 9: grade=A;break;case 8: grade=B;break;case 7: grade=C;break;case 6: grade=D;break;default: grade=E;break; 輸出百分制成績和等級3編程實現:輸入一個不多于位的正整數,要求:()輸出它是
18、幾位數, ()分別輸出每一位數字, ()按逆序輸出各位數字,如原數為, 則應輸出。應準備以下測試數據要處理的數為位正整數;要處理的數為位正整數;要處理的數為位正整數;要處理的數為位正整數; 要處理的數為位正整數; 除此之外,程序還應當對不合法的輸出作必要的處理。例如: 輸入負數;輸入的數超過位; 程序提示 : main 函數結構如下: 定義 long 型變量 num, int 型變量 c1,c2,c3,c4,c5 輸入一個不超過 5 位的正整數賦給 num if num99999輸出:輸入的數超過 5 位 else if num0)printf(n%ld 是一個 5 位數 n,num); pr
19、intf( 其各位分別為: %1d,%1d,%1d,%1d,%1dn,c1 , c2,c3, c4, c5); printf( 逆序輸出為: %1d%1d%1d%1d%1dn,c5 ,c4, c3,c2, c1); else if(c20) 是 4 位數,輸出其各位,格式與 5 位數類似else if(c30) 是 3 位數,輸出其各位,格式與 5 位數類似else if(c40) 是 2 位數,輸出其各位,格式與 5 位數類似else if(c50) 是 1 位數,輸出其各位,格式與 5 位數類似 4編程實現:輸入個整數,要求按由小到大的順序輸出。得到正確結果后,修改程序使 之按由大到小的順
20、序輸出。main 函數結構如下:int a,b,c,d,t;輸入 4 個整數 :賦給 a,b,c,d;if(ab) 交換 a,bif(ac) 交換 a,cif(ad) 交換 a,d if(bc) 交換 b,c if(bd) 交換 b,d if(cd) 交換 c,d 輸出 a,b,c,d實驗五 循環(huán)控制一、實驗目的熟悉使用 while 語句 ,do-while 語句和 for 語句實現循環(huán)的方法。 掌握在程序設計中用 循環(huán)的方法實現一些常用算法(如窮舉、迭代、遞推等) 。二、實驗內容上機完成習題 6.1 :輸入兩個正整數 m和 n,求出它們的最大公約數和最小公倍數。輸入時,使 mn,觀察結果是否
21、正確; 修改程序使對任何的整數都能得到正確的結果。程序提示 : main 結構如下:int m,n,r,tm,tn;輸入兩個正整數賦給 m,ntm=m;tn=n;if(m=1e-7)e=e+t;i+;p=p*i;t=1.0/p; 輸出 e 的值 3編程求 1到 n中能被 3或 7整除的數之和。分別用 for 循環(huán)語句和 while 循環(huán)語句完成 本題。程序提示 :for 循環(huán)語句的主要算法如下:for(i=1;i=n;i+)if i 能被 3 或 7 整除 sum=sum+iwhile 循環(huán)語句的主要算法如下:while(i=1;i-)x=2*x+1 實驗六 數組 一、實驗目的 1掌握一維數組
22、與二維數組的定義、賦值及輸入輸出方法。 2掌握字符數組和字符串函數的使用。 3掌握與數組有關的算法(特別是排序算法) 二、實驗內容用選擇法對個整數排序。個整數用 scanf 函數輸入。 程序提示 :輸入 10個整數存放到數組 a的a1 到 a10 中 輸出 10 個數for(i=1;i10;i+)min=i; for(j=i+1;jaj) min=j;交換 ai 與 amin 輸出排序后的 10 個數 2有個數存放在一個數組中,輸入一個數要求用折半查找法找出該數是數組中的第幾 個元素的值,如果該數不在數組中,則輸出無此數 , 要找的數用 scanf 函數輸入。 程序提示 :用循環(huán)語句輸入 15
23、 個數 調用排序算法對其進行排序 while(flag) 輸入要查找的數 loca=0; top=0; bott=N-1; if(numberaN-1) loca=-1; while(sign=1&top=0) mid=(bott+top)/2;if(number=amid)loca=mid;printf( 找到了 ,數%d 在數組的第 %d 位、 n,number,loca+1); sign=0;else if(numberamid) bott=mid-1;else top=mid+1; if(sign=1|loca=-1) printf(n 查無此數 n); printf(n 是否繼續(xù)查找
24、? (Y/N);scanf(%c,&c);getchar();printf(n);if(c=N|c=n) flag=0;3將兩個串連接起來,不要用 strcat 函數。程序提示 : 分別輸入二個串字符i 指向第一個數組的最后一個空數組元素while(s2j!=0)s1i+=s2j+;s1i=0;輸出連接后的字符串4找出一個二維數組的“鞍點” ,即該位置上的元素在該行上最大,在該列上最小。也 可能沒有鞍點。至少準備兩組測試數據:()二維數組有鞍點9 80 205 4090 -60 96 1210 -3 101 89()二維數組沒有鞍點9802054090-60961210-31018945541
25、567用 scanf 函數從鍵盤輸入數組的各元素的值, 檢查結果是否正確, 題目未指定二維數組 的行數和列數,程序應能處理任意行數和列數的數組。程序提示 :輸入矩陣flag2=0;/ 矩陣中無鞍點for(i=0;in;i+)/ 找第 i 行的鞍點max=ai0;maxj=0;用 for 循環(huán)語句找第 i 行的最大值存放在 max 中,其下標 j 保存到 maxj 中 for(k=0,flag1=1;kakmaxj) flag1=0;/max 不是該列的最小元素if(flag1) printf(n 第%d 行第%d 列的%d 是鞍點n,i+ , maxj+ , max); flag2=1; /e
26、ndfori if(!flag2) printf(n 矩陣中無鞍點 n);實驗七 函數一、實驗目的 1掌握定義函數的方法。 2掌握函數實參及形參的對應關系以及“值傳遞”方式。 3掌握函數的嵌套調用和遞歸調用的方法。 4掌握全局變量和局部變量,動態(tài)變量、靜態(tài)變量的概念和使用方法。 5學會對多文件程序的編譯和運行。二、實驗內容 寫出一個判別素數的函數, 在主函數輸入一個整數, 輸出是否素數的信息。本程序應準 備以下測試數據: 17, 34, 2, 0, 分別輸入數據,運行程序并檢查結果是否正確。程序提示 : 求素數函數如下: int prime(int n) if n2 return 0 for(
27、i=2;in/2;i+)if n 能被 i 整除 return 0; return 1;main 函數中輸入一個整數賦給變量 n,通過 prime(n) 判斷其是否素數,若函數值為 1 則是素數否則不是素數。 2用一個函數來實現將一行字符串中最長的單詞輸出。此行字符從主函數傳遞給該函數。 ()把兩個函數放在同一個程序文件中。()將兩個函數分別放在兩個程序文件中,作為兩個文件進行編譯、連接和運行。 程序提示 :尋找最長單詞的起始位置函數:int longest(char string)/n 為字符串的長度, len 為每個單詞的長度 /length 為最長單詞的長度, point 為最長單詞的起
28、始位置 /函數返回最長單詞的起始位置 int len=0,i,n,length=0,flag= , place=0,point; n=strlen(string);for(i=0;i=length)length=len; place=point; len=0;return place;在 main 函數中輸入一行字符,然后調用上面函數取得最長字符的開始位置,從該位置 開始輸入數組元素,直到輸出的數組元素不是英文字母時止。3用遞歸法將一個整數 n 轉換成字符串。例如輸入 483應輸出字符串“” 。n 的位 數不確定,可以是任意的整數。程序提示 :void convert(int n)int i;
29、if(i=n/10)!=0)convert(i);putchar(n%10+0);在 main 函數中輸入一個整數,然后先輸出該數的符號,然后調用函數 convert(n) 。 4求兩個整數的最大公約數和最小公倍數。用一個函數求最大公約數用另一個函數根據求出的最大公約數求最小公倍數。分別用下面的兩種方法編程。 ()不用全局變量,在主函數中輸入兩個數和輸出結果。 ()用全部變量的方法,數據的傳遞通過全部變量的方法。 程序提示 :使用下面函數求最大公因子, 其中 v 為最大公因子, 若將 v 設為外部變量, 則可不使用 return 語句。int hcf(int u,int v)/ 求最大公因子i
30、nt t,r;if(vu)t=u;u=v;v=t; while(r=u%v)!=0)/ 余數 r 不為 0 時繼續(xù)作輾轉相除法 u=v;v=r; return(v); 5寫一個函數,輸入一個十六進制數,輸出相應的十進制數。 程序提示 :輸入時將十六進制數作為一個字符串輸入,然后將其每一個字符轉換成十進制數并累 加,轉換方法如下: if(si0&si=a&si=A&si=F)n=n*16+si-A+10;實驗八 編譯預處理一、實驗目的1掌握宏定義的方法。2掌握文件包含處理方法。3掌握條件編譯的方法。二、實驗內容定義一個帶參數的宏, 使兩個參數的值互換。 在主函數中輸入兩個數作為使用宏的實參, 輸
31、出已交換后的兩個值。程序提示 :使用以下宏定義:#define SWAP(a,b) t=b;b=a;a=t 調用格式: SWAP(a,b);2設計輸出實數的格式, 包括:() 一行輸出一個實數, () 一行內輸出兩個實數, () 一行內輸出三個實數。實數用 %6.2f 格式輸出。用一個文件 printf_format.h 包含以上 用 #define 命令定義的格式,編寫一程序,將 printf_format.h 包含到程序中,在程序 中用 scanf 函數讀入三個實數給 f ,f2 ,f3 ,然后用上面定義的三格式分別輸出: f1; f , f2;f , f2 , f3 。程序提示 :使用以
32、下宏定義:#define PR printf#define NL n#define Fs %f#define F %6.2f#define F1 F NL#define F2 F t F NL#define F3 Ft Ft F NL然后再建立一個 C 程序,程序內容如下#include#includep_f.hvoid main()float f , f2, f3;PR(Input three floating numbers f , f2, f3:n);scanf(Fs,&f1);scanf(Fs,&f2);scanf(Fs,&f3);PR(NL);PR(Output one floati
33、ng number each line:n);PR(F, f1);PR(F, f2);PR(F, f3);PR(NL);PR(Output two number each line:n);PR(F2,f, f2);PR(NL);PR(Output three number each line:n);PR(F3,f, f2,f3);實驗九 指針一、實驗目的1通過實驗進一步掌握指針的概念,會定義和使用指針變量。 2能正確使用數組的指針和指向數組的指針變量。 3能正確使用字符串的指針和指向字符串的指針變量。 4能正確使用指向函數的指針變量。5了解指向指針的指針的概念及其使用方法。二、實驗內容以下程序
34、要求使用指針處理。1 輸入三個整數,按由小到大的順序輸出。運行無錯后改為:輸入三個字符串,按由小到 大的順序輸出。程序提示 :先排序,排序時交換兩個數使用以下函數:void swap(int *p int *p2)int p;p=*p1;*p1=*p2;*p2=p;調用格式為: swap(&a,&b) 可實現 a 與 b 的交換 字符串的交換使用以下函數:void swap(char *p , char *p2)char p80;strcpy(p,p1);strcpy(p , p2);strcpy(p2 ,p);main 函數結構如下:int n, n2, n3, *p , *p2 , *p3
35、;void swap(int *p , int *p2); 輸入三個數或三個字符串 p, p2,p3 分別指向這三個數 if(n1n2) swap(p , p2);if(n1n3) swap(p , p3); if(n2n3) swap(p2 , p3); 輸出這三個數 2將一個的矩陣轉置,用一函數實現。在一主函數中用 scanf 函數輸入以下矩陣元素: 將數組名作為函數參數, 在執(zhí)行函數的過程中實現矩陣轉置, 函數調用結束后在主函數 中輸出轉置后的矩陣。程序提示 :使用下面函數實現矩陣轉置 void move(int *p)int i,j,t;for(i=0;i3;i+) for(j=i;j
36、3;j+) t=*(p+3*i+j); *(p+3*i+j)=*(p+3*j+i); *(p+3*j+i)=t;main 函數結構如下:int a33,*p,i;void move(int *p);用 for 循環(huán)語句輸入矩陣p=&a00;move(p);輸出矩陣3有 n 人圍成一個圈,順序排號,從第一個人開始報數(從到報數),凡報到的人退出圈子,問最后留下的是原來第幾號的那位。程序提示 :報數程序段如下: for(i=0;in;i+)*(p+i)=i+1;i=0;/i 為現正報數的人的編號k=0;/k 為 23 計數時的計數變量m=0;/m 為退出的人數while(mn-1) if(*(p+
37、i)!=0)k+; if(k=3)/ 對退出的人的編號置 0*(p+i)=0;k=0;m+;i+;if(i=n)i=0;4用一個函數實現兩個字符串的比較,即自己寫一個strcmp 函數,函數的原型為:int strcmp(char *p , char *p2);設 p1指向字符串 s,p2 指向字符串 s2要求當兩個字符相同時返回,若兩個字符 串不相等,則返回返回它們二者第一個不同字符的 ASCII 碼的差值。兩個字符串 s, s2 由主函數輸入, strcmp 函數的返回值也由主函數輸出。程序提示 :使用以下函數進行比較:int strcmp(char *p , char *p2)int i
38、=0;while(*(p1+i)=*(p2+i)if(*(p1+i+)=0) return 0;return *(p1+i)-*(p2+i);5寫一個用矩形法求定積分的通用函數,分別求:1 1 2 xsin xdx cosdxexdx0 1 0說明:積分中用到的三個函數已在系統(tǒng)的數學函數庫中,程序開頭要加 #include調用格式為 sin(x),cos(x),exp(x)程序提示 :求積分函數如下:float integral(float (*p)(float),float a,float b,int n)int i;float x,h,s;h=(b-a)/n;x=a;s=0;for(i=0
39、;in;i+)x=x+h;s=s+(*p)(x)*h;return(s);調用格式:float (*p)(float);float fsin(float);p=fsin;c=integral(p,a , b, n);fsin 函數如下:float fsin(float x)n和return sin(x);6用指向指針的指針的方法對n 個整數排序并輸出。要求將排序單獨寫成一個函數,各整數在主函數中輸入,最后在主函數中輸出。程序提示 :排序函數如下:void sort(int *p,int n)int i,j,*temp;for(i=0;in-1;i+)for(j=i+1;j*(p+j)temp=
40、*(p+i); *(p+i)=*(p+j); *(p+j)=temp;main 函數如下:void main()void sort(int *p,int n);int i,n,data10,*p,*pstr10;printf(Input n:);scanf(%d,&n);for(i=0;in;i+)pstri=&datai;printf(nInput %d integer number:n,n);for(i=0;in;i+)scanf(%d,pstri);p=pstr;sort(p,n);printf(nNow,the sequence is:n);for(i=0;in;z=z;z=z|(valuen);return(z); unsigned getbits2(unsigned value,int n)unsigned z;z=(1n)&(valuen);return z;main 函數內容如下:int a,n,m;unsigned getbits1(unsigned value,int n);unsigned getbits2(unsigned value,int n);a=0;if(a5)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術四分鐘技能展示課件
- 電網配電運維工崗位職責
- 生產經營單位安全培訓方案
- 安全生產工作 報告
- 裝修安全生產管理制度范文
- 安全幼兒園心得體會
- 河南信陽火災事故調查報告
- 棉紡織企業(yè)安全生產規(guī)程
- 環(huán)氧樹脂產品培訓課件
- 美麗鄉(xiāng)村政策培訓課件
- GB/T 14294-1993組合式空調機組
- GB/T 13912-2002金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術要求及試驗方法
- GB/T 11062-2014天然氣發(fā)熱量、密度、相對密度和沃泊指數的計算方法
- 一級建造師繼續(xù)教育考試題(重點)
- 組合導航與融合導航解析課件
- 數與代數課件
- 工會審計實務課件
- 預防艾滋病、梅毒和乙肝母嬰傳播相關報表、上報流程和要求
- 工期的保證體系及保證措施
- 企業(yè)組織架構圖模板
- 藏醫(yī)院制劑中心建設項目建議書寫作模板-定制
評論
0/150
提交評論