奶昔直播官方版-奶昔直播直播视频在线观看免费版下载-奶昔直播安卓版本免费安装

 自考網(wǎng)
 自考動態(tài)  報考指南  考試政策  復(fù)習(xí)指導(dǎo)  課程設(shè)置  自考試題  自考就業(yè)  考生故事  助學(xué)單位  自考論壇 
 公共課: 真題|模擬題|筆記串講  經(jīng)濟(jì)類: 真題|模擬題|筆記串講  法學(xué)類: 真題|模擬題|筆記串講  文學(xué)類真題|模擬題|筆記串講  高校招生  網(wǎng)絡(luò)課堂

高級語言程序設(shè)計(jì)知識點(diǎn)總結(jié)六

作者:   發(fā)布時間:2009-05-18 18:04:00  來源:
  • 文章正文
  • 資料下載
  • 自考圈
  • 論壇

  函數(shù)形式參數(shù)也是函數(shù)的一種局部變量,指針形式參數(shù)就是函數(shù)的指針變量,函數(shù)sum()的定義又可改寫成如下形式:

  int sum(int *a, int n)

  { int s=0;

  for(; n——;)

  s+=*a++;

  return s;

  }

  實(shí)際參數(shù)向形式參數(shù)傳遞字符串某字符的指針

  這種情況要求形式參數(shù)為字符指針的,對應(yīng)的實(shí)際參數(shù)是字符數(shù)組某個元素的指針,通常是字符串的首字符指針。由于字符率是用一維的字符數(shù)組來實(shí)現(xiàn)的,所以字符指針形式參數(shù)與指向數(shù)組元素指針形式參數(shù)有相同的使用方法。但因字符串的特殊性,在編寫字符串處理函數(shù)時還會有許多技巧。下面以字符串拷貝函數(shù)strcpy()的實(shí)現(xiàn)為例說明字符指針形式參數(shù)的用法。

  「例6.3」字符串拷貝函數(shù)strcpy()。

  該函數(shù)功能是將一個已知字符串的內(nèi)容復(fù)制到另一字符數(shù)組中�?截惡瘮�(shù)設(shè)有兩個形式參數(shù)from,to.from為已知字符串的首字符指針,to為存儲復(fù)制字符串首字符指針。函數(shù)定義如下:

  void strcpy(char *to, char *from,)

  {

  while( *to++=*from++);

  }

  3.調(diào)用環(huán)境與函數(shù)共用全局變量

  為了減少函數(shù)的形式參數(shù),或因若干函數(shù)必須共同對一組變量進(jìn)行處理�?勺屨{(diào)用環(huán)境與被調(diào)用的函數(shù)共用一組變量。即在函數(shù)調(diào)用之前先給變量設(shè)置初值,函數(shù)對這些變量進(jìn)行處理,并將處理結(jié)果留在全局變量中。由于這種使用方式函數(shù)之間相互影響太大,如程序有錯,就會很難修正。

  6.5  返回指針的函數(shù)

  函數(shù)也可以返回指向某種數(shù)據(jù)對象的指針值。定義(或說明)返回指針值函數(shù)的函數(shù)頭有以下形式:

  類型說明符     * 函數(shù)名(形式參數(shù)表)

  例如,函數(shù)說明:

  int     *f(int,int);

  說明函數(shù)f()返回指向int型數(shù)據(jù)的指針,該函數(shù)有兩個整型形式參數(shù)。

  在函數(shù)名的兩側(cè)分別為* 運(yùn)算符和()運(yùn)算符,而()的優(yōu)先級高于*,函數(shù)名先與()結(jié)合。函數(shù)名()是函數(shù)的說明形式。在函數(shù)名之前的* ,表示此函數(shù)返回指針類型的值。

  「例6.4」 編制在給定的字符串中找特定字符的第一次出現(xiàn)。若找到,返回指向字符串中該字符的指針;否則,返回NULL值。

  設(shè)函數(shù)為search(),該函數(shù)有兩個形式參數(shù),指向字符串首字符的指針和待尋找的字符。以下是函數(shù)search()的定義:

  char *search(char *s,char c)

  { while(*s && *s! = c)

  s++;

  return *s?s:NULL;

  }

  6.6  函數(shù)遞歸調(diào)用

  一個函數(shù)為完成它的復(fù)雜工作,可以調(diào)用其它別的函數(shù)。例如,從主函數(shù)出發(fā),主函數(shù)調(diào)用函數(shù)A() ,函數(shù)A()又調(diào)用函數(shù)B(),函數(shù)B()又調(diào)用函數(shù)C(),等等。這樣從主函數(shù)出發(fā),形成一個長長的調(diào)用鏈,就是通常所說的函數(shù)嵌套調(diào)用。函數(shù)嵌套調(diào)用時,有一個重要的特征:先被調(diào)用的函數(shù)后返回。如這里所舉例子,待函數(shù)C()完成計(jì)算返回后,B()函數(shù)繼續(xù)計(jì)算(可能還要調(diào)用其它函數(shù)) ,待計(jì)算完成,返回到函數(shù)A(),函數(shù)A()計(jì)算完成后,才返回到主函數(shù)。

  當(dāng)函數(shù)調(diào)用鏈上的某兩個函數(shù)為同一個函數(shù)時,稱這種函數(shù)調(diào)用方式為遞歸調(diào)用。通過速歸調(diào)用方式完成其功能的函數(shù)稱為遞歸函數(shù)。許多問題的求解方法具有遞歸特征,用遞歸函數(shù)描述這種求解算法比較簡潔。計(jì)算n的階乘(n�。┖瘮�(shù)就是一個很好的例子。因

  n! = l*2*3* …*n

  按其定義用循環(huán)語句可以方便地實(shí)現(xiàn),寫成函數(shù)見下例6.5.

  「例6.5」用循環(huán)實(shí)現(xiàn)階乘計(jì)算的函數(shù)。

  float fac(int n)

  {float s;

  int i;

  for(s=1.of,i=l;i<=n; i++)

  s*= l;

  return s;

  }

  然而,把n! 的定義改寫成以下遞歸定義形式

 �。╨)n!=1, n<=l;

  (2)n�。� n*(n-1)!, n>l.

  根據(jù)這個定義形式可用遞歸函數(shù)描述如下例6.6.

  「例6.6」 用遞歸實(shí)現(xiàn)階乘計(jì)算的函數(shù)。

  float rfac(int n)

  {

  if( n<=1) return 1.0f;

  return n*rfac(n-1) ;

  }

  以計(jì)算3! 為例,說明遞歸函數(shù)被調(diào)用時的執(zhí)行過程。設(shè)有代碼m= rfac(3) 調(diào)用函數(shù)rfac()。函數(shù)調(diào)用rfac(3) 的計(jì)算過程可大致敘述如下:

  以函數(shù)調(diào)用rfac(3) 去調(diào)用函數(shù)rfac() ;函數(shù)rfac(n=3) 為計(jì)算3*2! ,用rfac(2) 去調(diào)用函數(shù)rfac();函數(shù)rfac(n=2) 為計(jì)算2*1!,用rfac(1)去調(diào)用函數(shù)rfac();函數(shù) rfac(n=l) 計(jì)算1! ,以結(jié)果1.0返回;返回到發(fā)出調(diào)用rfac(l) 處,繼續(xù)計(jì)算,得到2! 的結(jié)果2.0返回;返回到發(fā)出調(diào)用rfac(2) 處,繼續(xù)計(jì)算得到3! 的結(jié)果6.0返回。

  遞歸計(jì)算n! 有一個重要特征,為求n有關(guān)的解,化為求n-l的解,求n-1的解又化為求n-2的解,如此類推。特別地,對于1的解是可立即得到的。這是將大問題解化為小問題解的遞推過程。有了1的解以后,接著是一個回溯過程,逐步獲得2的解,3的解,……,直至n的解。

  「例6.7」 用遞歸函數(shù)實(shí)現(xiàn)數(shù)組元素的求和計(jì)算。

  要采用遞歸方法計(jì)算數(shù)組元素的和,可把數(shù)組元素的累計(jì)和等于當(dāng)前元素與數(shù)組其余元素的和,而對數(shù)組其余元素的和通過遞歸實(shí)現(xiàn)。下面的函數(shù)定義是這樣的解法之一。

  int rsum(int *a, int n)

  {

  if( n==0) return 0;/*若數(shù)組沒有元素,則返回0*/

  return *a+rsum(a+l,n-1);/*當(dāng)前元素與其余元素的和*/

  }

熱門資料下載:
<
自考最新熱貼:
【責(zé)任編輯:育路編輯  糾錯
  更多相關(guān) 自學(xué)考試 內(nèi)容
 ·[筆記串講2010自考教育心理學(xué)名詞解  ·[筆記串講2010教育心理學(xué)有關(guān)理論、
 ·[筆記串講2010年自考教育心理學(xué)筆記  ·[筆記串講自考“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”復(fù)
 ·[筆記串講自考“公共關(guān)系學(xué)”聽課筆  ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串
 ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串  ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串
 ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串  ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串
 ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串  ·[筆記串講自考“計(jì)算機(jī)應(yīng)用技術(shù)”串
 ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)  ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)
 ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)  ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)
 ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)  ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)
 ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)  ·[筆記串講自學(xué)考試“工程經(jīng)濟(jì)”復(fù)習(xí)
【育路網(wǎng)版權(quán)與免責(zé)聲明】  
    ① 凡本網(wǎng)注明稿件來源為"原創(chuàng)"的所有文字、圖片和音視頻稿件,版權(quán)均屬本網(wǎng)所有。任何媒體、網(wǎng)站或個人轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式復(fù)制發(fā)表時必須注明"稿件來源:育路網(wǎng)",違者本網(wǎng)將依法追究責(zé)任;
    ② 本網(wǎng)部分稿件來源于網(wǎng)絡(luò),任何單位或個人認(rèn)為育路網(wǎng)發(fā)布的內(nèi)容可能涉嫌侵犯其合法權(quán)益,應(yīng)該及時向育路網(wǎng)書面反饋,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)情況證明,育路網(wǎng)在收到上述法律文件后,將會盡快移除被控侵權(quán)內(nèi)容。
自考報名咨詢電話:010-51291357 51291557
熱點(diǎn)專題
 
 自考熱點(diǎn)關(guān)注
                        MORE>>
學(xué)員報名服務(wù)中心: 北京北三環(huán)西路32號恒潤中心18層1803室(交通位置圖
咨詢電話:北京- 010-51268840/41 傳真:010-51418040 上海- 021-51567016/17
育路網(wǎng)-中國新銳教育社區(qū): 北京站 | 上海站 | 鄭州站| 天津站
本站法律顧問:邱清榮律師
1999-2010 育路教育版權(quán)所有| 京ICP證100429號