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

正文內(nèi)容

工學(xué)]c程序設(shè)計復(fù)習(xí)要點(編輯修改稿)

2025-02-14 17:33 本頁面
 

【文章內(nèi)容簡介】 寫例 ,要求使用標(biāo)準(zhǔn)庫函數(shù) strchr在字符串中查找指定字符。 ? 字符串中反向查找指定字符 ? 在字符串中反向查找指定字符第一次出現(xiàn)位置的基本思想是:從被操作字符串的最后一個字符開始循環(huán)依次取出被操作字符串當(dāng)前位置的字符與指定的字符相比較,若比較相符合則返回該字符的位置;否則進(jìn)行下一輪比較直到被處理的字符串中所有字符取完為止。 ? 例 716 編制函數(shù)實現(xiàn)功能:在字符串中反向查找指定的字符,若被查找字符存在則返回字符在字符串中的下標(biāo)序號;若指定的字符在被查找的字符串中不存在,則返回 1;并用相應(yīng)主函數(shù)進(jìn)行測試。 ? 函數(shù)的指針參數(shù)(利用指針參數(shù)返回多個值) 結(jié)合 ”關(guān)于指針復(fù)習(xí) .ppt”復(fù)習(xí) ? 數(shù)組的定義,初始化,數(shù)組元素的引用;數(shù)組做函數(shù)的參數(shù)使用方法 在 C程序設(shè)計中,既可以用數(shù)組的元素作為函數(shù)的參數(shù),也可以將數(shù)組看成一個整體作為函數(shù)的參數(shù)。使用數(shù)組元素作為參數(shù)傳遞,其用法都與普通變量用法一樣,實現(xiàn)的是函數(shù)間的傳值調(diào)用。 ? /*Name: */ ? include ? include ? include ? define N 5 ? void main() ? { void myprint(int x)。 ? int a[N],b[N][N],i,j。 ? srand(time(NULL))。 ? printf(下面是數(shù)組 a的數(shù)據(jù)...\n)。 ? for(i=0。iN。i++) ? { a[i]=rand()%100。 ? myprint(a[i])。 ? } printf(\n下面是數(shù)組 b的數(shù)據(jù) ...\n)。 for(i=0。iN。i++) { for(j=0。jN。j++) { b[i][j]=rand()%100。 myprint(b[i][j])。 } printf(\n)。 }} void myprint(int x) { printf(%4d,x)。 } 將數(shù)組看成一個整體作為函數(shù)參數(shù)時,用數(shù)組名作為函數(shù)的形式參數(shù)或?qū)嶋H參數(shù),實現(xiàn)的是函數(shù)間的傳地址值調(diào)用,下面分別討論一維數(shù)組和二維數(shù)組作為函數(shù)參數(shù)的問題。 數(shù)組參數(shù)傳遞函數(shù)調(diào)用 ? 1.一維數(shù)組名作為函數(shù)參數(shù)實現(xiàn)的是“傳地址值調(diào)用”,其本質(zhì)是將它的全部存儲區(qū)域或者部分存儲區(qū)域提供給形式參數(shù)數(shù)組共享,即形參數(shù)組與實參數(shù)組是同一存儲區(qū)域或者形參數(shù)組是實參數(shù)組存儲區(qū)域的一部分。 ? 存儲關(guān)系如下圖: 實參數(shù)組 a … 形參數(shù)組 b[] 注:形參數(shù)組 b本質(zhì)上是指針變量 圖 數(shù)組存儲區(qū)域全部共享時形參數(shù)組與實參數(shù)組的關(guān)系 需要把實參數(shù)組中從某個元素值后的部分傳遞給被調(diào)函數(shù)中的形參數(shù)組,則使用實參數(shù)組某個元素的地址(參見 )。 實參數(shù)組 amp。a[2] … 形參數(shù)組 b[] 注:形參數(shù)組 b本質(zhì)上是指針變量 圖 數(shù)組存儲區(qū)域部分共享時形參數(shù)組與實參數(shù)組的關(guān)系 例 編制求和函數(shù)并通過該函數(shù)求數(shù)組的元素值和。 int sum(int v[],int n) { int i,s=0。 for(i=0。in。i++) s+=v[i]。 return s。 } /* Name: */ include define N 10 void main() { int sum(int v[],int n)。 int a[N]={1,2,3,4,5,6,7,8,9,10},total。 total=sum(a,N)。 printf(total=%ld\n,total)。 } 例 編制求和函數(shù)并通過該函數(shù)求數(shù)組自某一元素后的所有元素值和,起始點元素序號從鍵盤上輸入。 /* Name: */ include define N 10 void main() {int sum(int v[],int n)。 int a[N]={1,2,3,4,5,6,7,8,9,10},total,pos。 printf(請輸入求和起始元素序號 : )。 scanf(%d,amp。pos)。 total=sum(amp。a[pos],Npos)。 printf(total=%ld\n,total)。 } int sum(int v[],int n) { int i,s=0。 for(i=0。in。i++) s+=v[i]。 return s。 } 比較例 ,可以發(fā)現(xiàn)函數(shù) sum沒有任何改變,程序中有所改變的是主調(diào)函數(shù)中的調(diào)用表達(dá)式: sum(amp。a[pos],Npos),其中,參數(shù) amp。a[pos]表示將數(shù)組 a自 a[pos]元素以后的元素全部提供給形參數(shù)組共享, Npos是傳遞到函數(shù) add中共享的數(shù)組元素個數(shù)。 ? 2.二維數(shù)組作函數(shù)的參數(shù) 數(shù)組a的起始地址 數(shù)組的起始地址表示方法 a 表示平面的起始地址 ( 二級地址 ) amp。a[0][0] 表示線性的起始地址 ( 一級地址 ) a[0] 表示線性的起始地址 ( 一級地址 ) *a 表示線性的起始地址 ( 一級地址 ) 圖 二維數(shù)組起始地址的表示方法示意 二維數(shù)組在存儲時也是有序地占用一片連續(xù)的內(nèi)存區(qū)域,數(shù)組的名字表示這段存儲區(qū)域的首地址。需要特別注意的是,二維數(shù)組起始地址有多種表示方法,而且這些表示方法在物理含義上還有表示平面起始地址和表示線性起始地址之分,所以在使用二維數(shù)組的起始地址使必須注意區(qū)分需要用哪一種起始地址。 例 (假定矩陣為 3行 4列),用相應(yīng)主函數(shù)進(jìn)行測試。 /* Name: */ include define M 3 define N 4 void main() { int max(int v[][N])。 int a[M][N]={38,23,56,9,56,2,789,45,76,7,45,34}。 printf(Max value is:%d\n,max(a))。 } int max(int v[][N]) //注意數(shù)組參數(shù)只能省略最高為的長度指定 { int i,j,maxv。 maxv=v[0][0]。 for(i=0。iM。i++) for(j=0。jN。j++) if(v[i][j]maxv) maxv=v[i][j]。 return maxv。 } ( 1)用二維數(shù)組名字作為實際參數(shù) 實參用 a,形參用 b[][5]圖 實際參數(shù)為二維數(shù)組名字,用二維數(shù)組名作為函數(shù)參數(shù)實現(xiàn)的是“傳地址值調(diào)用”,其本質(zhì)仍然是在函數(shù)調(diào)用期間實際參數(shù)數(shù)組將它的全部存儲區(qū)域提供給形式參數(shù)數(shù)組共享,即形參數(shù)組與實參數(shù)組是同一存儲區(qū)域。 實參用 a 形參用 b[][5] 圖 實際參數(shù)為二維數(shù)組名字 ? 例 max中使用了二維數(shù)組樣式的形式參數(shù)接收從主調(diào)函數(shù)中傳遞過來的二維數(shù)組首地址,使得形參數(shù)組 v共享實參數(shù)組a的存儲區(qū)域;然后通過對形參數(shù)組 v的操作達(dá)到操作是參數(shù) a的目的,即在形參數(shù)數(shù)組 v中尋找最大值實質(zhì)上是在實參數(shù)組 a中尋找最大值,程序執(zhí)行的結(jié)果為: Max value is:789。 ? ( 2)用二維數(shù)組起始地址的一級地址形式作為實際參數(shù) ? 在實際計算機(jī)應(yīng)用的程序設(shè)計中有時需要能夠處理任意行列大小的二維數(shù)組的函數(shù)(例如要求上例中的函數(shù) max能夠查找任意二維數(shù)組中的最大元素),此時直接用二維數(shù)組作為形式參數(shù)的設(shè)計形式就不太適合。 ? 為了編制較通用的函數(shù),可以借助一維數(shù)組作為形式參數(shù)時可以不指定長度的特點,使用一維數(shù)組樣式的形式參數(shù)接收二維數(shù)組實參,數(shù)組存儲區(qū)域全部共享或部分共享時形參數(shù)組與實參數(shù)組的關(guān)系如圖 。 實參數(shù)組 a … 形參數(shù)組 b[] 注:形參數(shù)組 b本質(zhì)上是指針變量 圖 數(shù)組存儲區(qū)域全部共享時形參數(shù)組與實參數(shù)組的關(guān)系 ? 在實現(xiàn)這種參數(shù)傳遞時還須注意以下兩點: ? ①函數(shù)調(diào)用時的實際參數(shù)必須是一級地址形式(參見圖 3種以及地址方式),同時將二維數(shù)組的行數(shù)和列數(shù)傳遞到被調(diào)函數(shù)中。 ? ②由于在被調(diào)函數(shù)中只知道被處理得二維數(shù)組的起始地址,所以在處理過程中二維數(shù)組每一行的長度由程序員根據(jù)參數(shù)表中傳遞過來信息自己控制。 例 重新編制例 max,使其能夠處理任意行列的二維數(shù)組。 /* Name: */ include define M 3 define N 4 void main() { int max(int v[],int m,int n)。 int a[M][N]={38,23,56,9,56,2,789,45,76,7,45,34}。 printf(Max value is:%d\n,max(a[0],M,N))。 } int max(int v[],int m,int n) { int i,j,maxv。 maxv=v[0]。 for(i=0。im。i++) for(j=0。jn。j++) if(v[i*n+j]maxv) maxv=v[i*n+j]。 return maxv。 }
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1