freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言程序設(shè)計(三)ppt(參考版)

2024-12-10 21:49本頁面
  

【正文】 程序如下: /* */ include main(int argc, char *argv[]) { while(argc 1) printf(%s\n,*。 (4)參數(shù)名可以不用“ argc”和“ argv”,但是它們的類型和作用不變,位置也不能顛倒。 (2)整型變量 argc記載命令行字符串的個數(shù),也就是指針數(shù)組 argv的元素個數(shù)。 包含形式參數(shù)的 main函數(shù)的一般形式為: main( int argc, char *argv[ ]) { /* 以下為函數(shù)體 */ …… } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 98 【 說明 】 (1)字符型指針數(shù)組 argv的元素指向命令行輸入的若干 字符串,這些字符串以空格隔開,形如: C:\可執(zhí)行文件名 參數(shù) 1 參數(shù) 2 …… 參數(shù) n↙ 可執(zhí)行文件名字符串由 argv[0]指向,后面若干字符 串 (稱為命令行參數(shù) ),分別由 argv[1]、argv[2]… 指 向。 C程序編譯連接形成可執(zhí)行程序 (.EXE文件 )后,要在 DOS提示符的狀態(tài) (即命令行 )下運行,此時可以 接受命令行傳來的數(shù)據(jù) 。 printf(Day No.%d%s\n, i, day_name(i))。i)。 printf(Input Day No.:\n)。 return((n1||n7)?name[0]:name[n])。由于單詞是字符串,由首地址確定,因此函數(shù)返回地址值。函數(shù)確定整數(shù)與星期名的對應(yīng)關(guān)系,主函數(shù)輸入和輸出。 【 注意 】 在調(diào)用返回指針的函數(shù)時必須將返回值給指針變量賦值,該指針變量的基類型必須與該函數(shù)返回地址值的基類型相同。 } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 92 返回指針的函數(shù) 有時希望通過函數(shù)返回一個地址值,這時可定義一個返回指針的函數(shù),其形式為: 類型 * 函數(shù)名 (類型 形參 1,類型 形參 2, …) { /* 以下為函數(shù)體 */ …… } 函數(shù)名前面的“ *”表示該函數(shù)是返回指針的函數(shù),“類型”是函數(shù)返回地址值的基類型,即返回指針所指向的數(shù)據(jù)類型。 s3=integral(f, , )。 s1=integral(sin, , )。 } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 91 double f (double x) /* 自定義被積函數(shù) */ {return(sqrt(*x))。 y=s*h。 in。 h=(ba)/n。 s=((*funp)(a)+(*funp)(b))/。積分近似值 ——曲邊梯形面積和為: s ={[f(a)+f(a+h)]+[f(a+h)+f(a+2h)]+… +[f(a+(n1)h)+f(a+nh)]}*h/2 ={[f(a)+f(b)]/2+f(a+h)+f(a+2h)+…+f(a+(n 1)h)}*h 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 90 【 例 822】 利用梯形法計算定積分 sinx dx, cosx dx, include float integral(double(*funp)(), float a, float b) { float s, h, y。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 89 用梯形法計算定積分的算法如圖 826所示。 調(diào)用工作函數(shù)計算不同的被積函數(shù)的定積分,就要在工作函數(shù)中設(shè)置一個指向函數(shù)的指針變量形參,調(diào)用工作函數(shù)時對應(yīng)的實參為要積分的被積函數(shù)名,再加上相應(yīng)的積分上下限參數(shù)即可。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 88 以用梯形法求定積分為例,對不同的被積函數(shù)來說,求定積分的算法都是一樣的。 (2)多次調(diào)用同類型的一些函數(shù)做相同的工作。例如,利用 switch語句結(jié)構(gòu),讓指向函數(shù)的指針變量根據(jù)輸入的開關(guān)表達式的值(如 2…5 之一),得到不同函數(shù) (如 f f2…f5 之一 )的入口地址,去調(diào)用相應(yīng)的函數(shù),實現(xiàn)人機對話,這就是菜單功能。 } 程序運行結(jié)果如圖所示。 max=(*funp)(x, y)。x, amp。 /*指向函數(shù)的指針變量得到函數(shù)的入口地址 */ printf(輸入兩個數(shù) :\n)。 int (*funp)()。程序如下: int maxnum(int a, int b) {return((ab)?a:b)。指向函數(shù)的指針變量在接受某一函數(shù)的入口地址以后,即可用來調(diào)用該函數(shù)(無其他運算?。? 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 85 指向函數(shù)的指針變量的定義形式為: 函數(shù)返回值的類型 (*指針變量名 )( )。在 C語言中,函數(shù)指針用 函數(shù)名 表示,它是一個指針常量。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 83 函數(shù)與指針 函數(shù)與指針的關(guān)系有以下三個方面的問題: (1) 指針作為函數(shù)參數(shù) (傳址調(diào)用,已在 ) (2) 指向函數(shù)的指針(本節(jié)介紹) (3) 返回指針的函數(shù)(本節(jié)介紹) 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 84 指向函數(shù)的指針 函數(shù)作為程序?qū)嶓w,在程序執(zhí)行以前,其代碼也要進入內(nèi)存,占據(jù)內(nèi)存的一段連續(xù)存儲區(qū)域,因此也有內(nèi)存地址。 else return((4*n3)(4*n1)+s(n1))。 printf(PI=%lf\n,*s(m))。 scanf(%d,amp。 double s(int n)。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 81 【 例 820】 根據(jù)下式用遞歸算法求 π的近似值(設(shè)n=5000)。 /*遞歸終止條件 */ else return(gcd(b, a%b))。 printf(“gcd=%d,lcd=%d\n”,g, lcd)。 g=gcd(x, y)。x, amp。 printf(“請輸入兩個數(shù) :”)。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 80 main( ) { int gcd(int a, int b)。 其遞歸結(jié)束的條件是:被除數(shù)除以除數(shù)的余數(shù)為 0。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 79 【 例 819】 用遞歸算法求兩個自然數(shù)的最大公約數(shù)和最小公倍數(shù)。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 78 該程序中,主函數(shù)調(diào)用了 fact函數(shù),而在 fact函數(shù)中又調(diào)用了自身 fact函數(shù)。 /*調(diào)用遞歸函數(shù) */ printf(%d!=%ld\n, m, f)。 } while(m=0)。 scanf(%d,amp。 long f。 /*遞歸終止條件 */ else return (n*fact(n1))。而 1!=1 , 0!=1。 【 分析 】 n!= 1 2 3 … n=[1 2 3 … (n1)] n =n (n1)!, 也就是說,要求 n!可先求 (n1)!。 利用函數(shù)的遞歸調(diào)用解決問題的優(yōu)點: (1)遞歸調(diào)用的算法自然、容易理解; (2)采用遞歸算法的程序簡單; (3)可以解決用其他方法無法解決的問題 (如漢洛塔問題 )。但是,遞歸過程不能無限制進行下去,必須有一個結(jié)束遞歸過程的條件。因此,用遞歸算法設(shè)計的程序至少有兩個函數(shù),那就是主函數(shù)加一個遞歸函數(shù)。 直接遞歸: 函數(shù)不斷直接調(diào)用自己; 間接遞歸: 函數(shù)循環(huán)間接調(diào)用自己。本例函數(shù)嵌套調(diào)用的執(zhí)行過程如圖所示。 } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 73 該程序中,主函數(shù)調(diào)用了 sum函數(shù),而在 sum函數(shù)中又調(diào)用了 mul函數(shù)。j++) t=t*j。 for(j=1。 /*mul函數(shù)調(diào)用 */ return s。i=m。 /*此處 mul()為 mul函數(shù)聲明 */ int i。 /*調(diào)用 sum函數(shù) */ printf(s=%.0f\n,s)。 /*此處 sum()。調(diào)用這兩個函數(shù),計算 s=1!+ 2!+3!+ … + 10!。 } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 71 函數(shù)的嵌套調(diào)用 C語言中函數(shù)的定義都是相互平行、相互獨立的,也就是說在函數(shù)定義時,函數(shù)體內(nèi)不能包含另一個函數(shù)的定義,即函數(shù)不能嵌套定義,但可以嵌套調(diào)用。 cpystr(str1, C Language)。 printf(字符串 1是 :%s\n,str1)。 gets(str2)。 } main() {char str1[20], str2[20]。\039。主函數(shù)調(diào)用 cpystr實現(xiàn)復(fù)制。 } 程序運行的結(jié)果相同。*pj=j。j++) if(*(p+i*M+j)mn) {mn=*(p+i*M+j)。i++) for(j=0。 /* p=a[0], *p=a[0][0] */ for(i=0。 } 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 67 int min(int *p, int *pi, int *pj) /*函數(shù)定義 */ { int i,j,mn。mcol)。 /*函數(shù)聲明 */ amin=min(a[0], amp。 int amin, mrow, mcol。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 66 二維數(shù)組問題也可用一維數(shù)組形參,即將二維數(shù)組當成一維數(shù)組訪問,對應(yīng)的實參用一級指針首地址 a[0]。原因是編譯器無法計算元素的下標值。} return(mn)。*pi=i。jM。iM。 mn=p[0][0]。 /*函數(shù)調(diào)用 */ printf(min=a[%d][%d]=%d\n, mrow, mcol, amin)。mrow, amp。 int min(int (*p)[ ], int *pi, int *pj)。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 64 define M 5 main() {int a[M][M]={{2,3,1,4,6},{9,0,2,7,7},{4,1,0,4,6}, {3,4,7,9,0},{6,5,3,7,4}}。二維數(shù)組的最小值可以用函數(shù)值返回,最小值的位置用什么返回呢?可以用指針變量形參。 安 慶 師 范 學(xué) 院 計 算 機 與 信 息 學(xué) 院 63 【 例 815】 利用函數(shù)求 5 5二維數(shù)組的最小值以及該最小值的位置,結(jié)果在 main函
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1