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

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)(中)ppt(編輯修改稿)

2025-02-15 07:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 (i=0。iN。i++) printf(%%c,a[i],(i%5==4||i==N1) ?39。\n39。 : 39。 39。)。 } 順序檢索: 不要求數(shù)據(jù)有序 。依次審查數(shù)組中的數(shù)據(jù)是否要查找的數(shù)據(jù),若是,結(jié)束審查;否則,繼續(xù)審查。平均查找次數(shù)為( n+1)/2。 (n+1)/2 數(shù)據(jù)檢索 1. 順序檢索 2. 二分檢索 (對(duì)分檢索、折半檢索) 要求數(shù)據(jù)有序 。 開(kāi)始時(shí)將整個(gè)數(shù)組作為搜索區(qū)間,審查位于中間位置的元素是否要查找的數(shù)據(jù),若否,則將查找區(qū)間折半,通過(guò)不斷折半,直到找到或可確定數(shù)組中已沒(méi)有指定的數(shù)據(jù)為止。 【 例 】 假設(shè)有 n個(gè)從小到大排序好了的數(shù),存放在數(shù)組 v中,要求用二分檢索的方法查找指定的數(shù) x是否在該數(shù)組中。 log2n include const int N=20。 void main() { int v[N],x,low,high,mid,i。 for (i=0。iN。i++) scanf(%d,amp。v[i])。 scanf(%d,amp。x)。 low=0。 high=N1。 mid=(low+high)/2。 while (lowhighamp。amp。x!=v[mid]) { if(xv[mid]) high=mid1。 else low=mid+1。 mid=(low+high)/2。 } if (x==v[mid]) printf(%d在數(shù)組第 %d個(gè)位置上 .,x,mid)。 else printf(%d不在數(shù)組中 .,x)。 } 數(shù)組中數(shù)據(jù)的插入和刪除 由于數(shù)組元素是連續(xù)存放的,因此,無(wú)論是向數(shù)組中插入一個(gè)元素,還是從數(shù)組中刪除一個(gè)元素,都要進(jìn)行數(shù)組元素的移動(dòng)。 若要在某個(gè)元素前插入一個(gè)元素,則需要將該元素連同其后的各個(gè)元素順序后移一個(gè)位置,在空出的位置上放置要插入的元素。 同樣,若要?jiǎng)h除數(shù)組中的一個(gè)元素時(shí),需要將該元素之后的所有元素順序前移,從而覆蓋了要?jiǎng)h除的元素。 【 例 】 有一已按遞減順序排列的數(shù)組 a,其中的數(shù)據(jù)為: 19,17,15,13,11,9,7,5,3,1。將從鍵盤輸入的數(shù) k插入到該數(shù)組中,使插入后的數(shù)組仍然有序。 算法步驟為: 輸入要插入的數(shù) k; 從數(shù)組末尾開(kāi)始檢查,凡是被 k小的元素 a[i]均向后移動(dòng)一個(gè)位置,如果 a[0]仍小于 k,則將 k插在 a[0]位置上; 當(dāng)遇到第一個(gè)大于 k的元素 a[i]時(shí),則將 k插在其后的位置上。 include void main() { int a[11]={19,17,15,13,11,9,7,5,3,1},k,i。 scanf(%d,amp。k)。 for (i=9。 i=0。 i) { if (k=a[i]) { a[i+1]=a[i]。 if (i==0) a[i]=k。 } else { a[i+1]=k。 break。 } } for (i=0。 i11。 i++) printf(%d ,a[i])。 } 【 例 】 編制程序,其功能是從鍵盤輸入一個(gè)字符串,然后將該字符串中指定的字符刪除。 思路 1 刪除某個(gè)字符實(shí)質(zhì)上是將該字符后續(xù)的字符順序向前移動(dòng)一個(gè)位置。例如,要?jiǎng)h除字符串 abcd中的 39。b39。,只要將字符 39。c39。和 39。d39。順序向前移動(dòng)一個(gè)位置。 include include void main() { char str[80],ch。 int i=0,j。 printf(Enter a string:)。 //輸入原字符串 gets(str)。 printf(Enter a character to be deleted:)。 //輸入要?jiǎng)h除的字符 scanf(%c,amp。ch)。 while(str[i]) { if (str[i]==ch) for(j=i。str[j]。j++) str[j]=str[j+1]。 //將下一個(gè)字符前移從而刪除字符 else i++。 } str[i]=39。\039。 //為結(jié)果字符串增加結(jié)束標(biāo)志 printf(“after deleting: %s\n”,str)。 //輸出結(jié)果字符串 } 思路 2 把不需要?jiǎng)h除的字符統(tǒng)統(tǒng)保留下來(lái)。方法是用兩個(gè)下標(biāo)i和 j,若 str[i]不是要?jiǎng)h除的字符時(shí),就把該字符保留在str[j]中。例如,要?jiǎng)h除字符串 abcd中的 39。b39。,只要順序字符 39。a39。、 39。c39。和 39。d39。保留在 str[0]、 str[1]、 str[2]中,最后增加一個(gè)末尾的’ \0’字符。 include include void main() { char str[80],ch。 int i=0,j。 printf(Enter a string:)。 gets(str)。 printf(Enter a character to be deleted:)。 scanf(%c,amp。ch)。 for(i=j=0。str[i]。i++) if (str[i]!=ch) str[j++]=str[i]。 str[j]=39。\039。 printf(after deleting: %s\n,str)。 } 【 例 】 若一個(gè)字符串正讀和反讀都一樣,如 level,madam等,我們稱之為回文。請(qǐng)編一個(gè)程序驗(yàn)證輸入的字符串是不是回文。 要驗(yàn)證一個(gè)字符串是不是回文,只要分別將它的第一個(gè)元素和最后一個(gè)元素、第二個(gè)元素和倒數(shù)第二個(gè)元素,直至最中間的兩個(gè)元素進(jìn)行比較,如果對(duì)應(yīng)相等,說(shuō)明它是回文,否則就不是。 str[0] str[n1] str[1] str[n2] str[i] str[ni1] i=0 to strlen(str)/2 字符串處理 include include void main() { char str[80]。 int i,k,m=0。 gets(str)。 k=strlen(str)。 for( i=0。ik/2。i++) if str[i]!=str(ki1) { m=1。break。} if (m==0) printf(“%s yes.\n”,str)。 else printf(“%s no.\n”,str)。 } 變量 m作為標(biāo)志:在判斷字符對(duì)應(yīng)相等時(shí),若發(fā)現(xiàn)有不相等的一對(duì)字符時(shí),令 m=1,循環(huán)終止,說(shuō)明 str不是回文;否則,當(dāng)循環(huán)正常退出時(shí), m=0,說(shuō)明 str是回文。 【 例 】 編制程序,其功能是從鍵盤輸入一個(gè)字符串,然后將該字符串中的字符 39。a39。全部替換成字符 39。b39。 include include void main() { char str[80]。 int i=0。 gets(str)。 printf(before replacing: %s\n,str)。 while(str[i]) { if (str[i]==39。a39。) str[i]=39。b39。 i++。 } printf(after replacing: %s\n,str)。 } 第 5章 函 數(shù) C程序是由函數(shù)構(gòu)成的。 模塊化程序設(shè)計(jì)原則 在較大的程序中,通常要求實(shí)現(xiàn)比較復(fù)雜的邏輯和功能。為了降低程序復(fù)雜度,使程序設(shè)計(jì)、調(diào)試和維護(hù)等操作簡(jiǎn)單化,采取功能分解的方式,即將功能分為若干子功能,子功能再分解出更小的子功能,直到可以解決為止,再將這些功能組合在一起,形成一個(gè)完整的程序。這就是模塊化程序設(shè)計(jì)思想。 模塊化程序設(shè)計(jì) 模塊化程序設(shè)計(jì)是采用自頂向下(或自底向上)、逐步求精的方法,將一個(gè)復(fù)雜問(wèn)題分解成多個(gè)功能較單一、相對(duì)獨(dú)立的子問(wèn)題,每個(gè)子問(wèn)題對(duì)應(yīng)一個(gè)功能獨(dú)立的程序模塊。 模塊化程序設(shè)計(jì)的優(yōu)點(diǎn): ( 1)由于模塊相對(duì)獨(dú)立,功能單一,每個(gè)模塊可以獨(dú)立編寫(xiě)和調(diào)試。對(duì)于一個(gè)規(guī)模大、結(jié)構(gòu)復(fù)雜的程序來(lái)說(shuō),一方面可以有效控制程序設(shè)計(jì)的復(fù)雜度;另一方面,一個(gè)模塊的錯(cuò)誤不會(huì)擴(kuò)散到其他模塊中,提高了整個(gè)程序的可靠性。 ( 2)模塊劃分后,可以由多人同時(shí)開(kāi)發(fā),縮短開(kāi)發(fā)周期。 ( 3)模塊開(kāi)發(fā)完成后,可以被反復(fù)使用,避免開(kāi)發(fā)過(guò)程中重復(fù)編碼,提高軟件開(kāi)發(fā)的效率。 ( 4)模塊化便于軟件測(cè)試、修改和更新,提高軟件的可維護(hù)性。 C語(yǔ)言程序模塊結(jié)構(gòu) 在 C語(yǔ)言中,模塊是由函數(shù)來(lái)實(shí)現(xiàn)的。函數(shù)就是一段可以實(shí)現(xiàn)某種特定功能的程序,這段程序相對(duì)獨(dú)立,具有自己的輸入和輸出,可以被調(diào)用。一個(gè)程序模塊由一個(gè)或多個(gè)函數(shù)組成。 main( ) { fun1( )。 … fun2( )。 … } fun2( ) { fun21( )。 fun22( )。 … } fun1( ) { … } fun21( ) { … } fun22( ) { … } 1. C函數(shù)的特點(diǎn) ? ( 1)一個(gè)復(fù)雜程序包含一個(gè)主模塊和若干個(gè)子功能模塊。在 C語(yǔ)言中,通常 main( )函數(shù)作為主模塊,描述程序的總體框架,其他函數(shù)作為子模塊,完成特定的功能; ? ( 2)所有函數(shù)的地位都是平等的,不存在從屬關(guān)系。程序運(yùn)行時(shí),所有函數(shù)都可以調(diào)用其他函數(shù)或自身;除 main ( )函數(shù)外的函數(shù)可以被其他函數(shù)調(diào)用, main( )由操作系統(tǒng)調(diào)用。 ? ( 3)函數(shù)間的邏輯關(guān)系是通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)的。 C程序執(zhí)行時(shí),總是從 main( )函數(shù)開(kāi)始執(zhí)行,由 main( )調(diào)用其他函數(shù),調(diào)用再返回到 main( )函數(shù),程序最終在 main( )函數(shù)結(jié)束。 ? ( 4)一個(gè) C程序中有且只有一個(gè) main( )函數(shù),各函數(shù)可以存放在一個(gè)或多個(gè)程序文件中,但只有一個(gè)程序文件含有 main( )函數(shù)。 2. C函數(shù)分類 ? 從用戶使用的角度將函數(shù)分為兩類,即庫(kù)函數(shù)和用戶自定義函數(shù)。 ? ( 1)庫(kù)函數(shù) ? 庫(kù)函數(shù)是系統(tǒng)已定義的特定功能的函數(shù)集合。使用庫(kù)函數(shù)時(shí),必須用 include命令把相應(yīng)的頭文件包含到程序文件中。如前面章節(jié)例題中引用 scanf函數(shù)和printf函數(shù)時(shí)要包含 ,引用 sin函數(shù)時(shí)要包含 。若所需功能的函數(shù)在庫(kù)函數(shù)中已存在,盡量引用庫(kù)函數(shù)。 ? ( 2)用戶自定義函數(shù) ? 自定義函數(shù)是為滿足用戶的需要功能而專門編寫(xiě)的。本章所述函數(shù)定義就是指用戶自定義函數(shù)。 函數(shù)的定義和調(diào)用 ? C語(yǔ)言規(guī)定,函數(shù)要“先定義,后使用”。 ? 函數(shù)只有被調(diào)用,其功能才能實(shí)現(xiàn)。 函數(shù)的定義 ? 函數(shù)定義的一般形式如下: ? [函數(shù)存儲(chǔ)類型 ] 函數(shù)值類型 函數(shù)名(形式參數(shù)) ? { ? 函數(shù)體 ? } ? 【 例 】 定義 circum( )函數(shù),其功能是求圓周長(zhǎng)。由 main( )函數(shù)調(diào)用該函數(shù),實(shí)現(xiàn)求任意半徑圓的周長(zhǎng)。 ? float circum ( float r ) ? { ? float s=。 ? s = 2**r 。 ? return s。 ? } 函數(shù)定義說(shuō)明 ? 1. 函數(shù)名 ? 函數(shù)名是編譯系統(tǒng)識(shí)別函數(shù)的依據(jù),除 main( )函數(shù)是固定名稱外,其他函數(shù)由用戶自行命名。函數(shù)名與變量名、數(shù)組名相同,要符合 C語(yǔ)言標(biāo)識(shí)符的命名規(guī)則,盡量做到“見(jiàn)名知義” 。定義函數(shù)時(shí),函數(shù)名與其后的括號(hào)間無(wú)空格。在一個(gè)程序中,不能定義同名函數(shù),否則系統(tǒng)提示編譯錯(cuò)誤。 ? 函數(shù)名是一個(gè)常數(shù),代表該程序代碼在內(nèi)存中的首地址,即函數(shù)入口地址,編譯系統(tǒng)根據(jù)函數(shù)名找到該函數(shù)。 函數(shù)定義說(shuō)明 ? 2. 函數(shù)形式參數(shù) ? 函數(shù)的形式參數(shù),簡(jiǎn)稱“形參”。它用來(lái)建立函數(shù)間的數(shù)據(jù)聯(lián)系,一個(gè)函數(shù)的形式參數(shù)可以有零個(gè)、一個(gè)或多個(gè),多個(gè)參數(shù)間用逗號(hào)隔開(kāi);它
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1