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

正文內(nèi)容

c語言考試復(fù)習(xí)要點(diǎn)-閱讀頁

2025-01-27 07:45本頁面
  

【正文】 c[0][1][0] c[0][1][1] c[0][1][2] c[0][1][3] c[0][2][0] c[0][2][1] c[0][2][2] c[0][2][3] c[1][0][0] c[1][0][1] c[1][0][2] c[1][0][3] c[1][1][0] c[1][1][1] c[1][1][2] c[1][1][3] c[1][2][0] c[1][2][1] c[1][2][2] c[1][2][3] 多維數(shù)組:最右邊的 下標(biāo)變化最快 二維數(shù)組的初始化的說明 ? 正常的全部初始化: 例 int a[2][3]={1,2,3,4,5,6}。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 ? 部分初始化: 例 int a[2][3]={1,2,4}。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 0 4 0 0 部分初始化 ? 第一維長度省略初始化: 例 int a[][3]={1,2,3,4,5}。 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 0 0 4 5 0 第一維 長度省略初始化 二維數(shù)組和一維數(shù)組的關(guān)系 數(shù)組是一種構(gòu)造類型的數(shù)據(jù)。設(shè)一維數(shù)組的每個(gè)元素都又是一個(gè)一維數(shù)組,就組成了二維數(shù)組。根據(jù)這樣的分析,一個(gè)二維數(shù)組也可以分解為多個(gè)一維數(shù)組。 例 int a[3][4]。 例如: char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`}。 例 char ch[5]={?B?,?o?,?y?}。 字符數(shù)組的初始化 字符串和字符串結(jié)束標(biāo)志 在C語言中沒有專門的字符串變量,通常用一個(gè)字符數(shù)組來存放一個(gè)字符串。\039。因此當(dāng)把一個(gè)字符串存入一個(gè)數(shù)組時(shí),也把結(jié)束符 39。存入數(shù)組,并以此作為該字符串是否結(jié)束的標(biāo)志。\039。 C語言允許用字符串的方式對(duì)數(shù)組作初始化賦值。 char ch[6]=“Hello”。 用字符串常量 ch[0] H e l l o ch[1] ch[2] ch[3] ch[4] \0 ch[5] 例 char ch[5]=“Boy”。是由 C編譯系統(tǒng)自動(dòng)加上的。標(biāo)志,所以在用字符串賦初值時(shí)一般無須指定數(shù)組的長度, 而由系統(tǒng)自行處理。 除了上述用字符串賦初值的辦法外,還可用 printf函數(shù)和 scanf函數(shù)一次性輸出輸入一個(gè)字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個(gè)地輸入輸出每個(gè)字符。 int i。i5。str[i])。i5。 } 例 用 %s main() { char str[5]。 printf(“%s”, str)。 輸入串長度 數(shù)組維數(shù) 遇空格或回車結(jié)束 自動(dòng)加‘ \0? 用字符數(shù)組名 , 遇‘ \0?結(jié)束 不要寫成: printf(%s,str[ ])。a,amp。但在前例中卻是以數(shù)組名方式出現(xiàn)的,這是為什么呢 ? ? 這是由于在C語言中規(guī)定,數(shù)組名就代表了該數(shù)組的首地址。 ? 如有字符數(shù)組 char c[10],在內(nèi)存可表示如圖。 則數(shù)組名 c就代表這個(gè)首地址 。 如寫作scanf(%s,amp。則是錯(cuò)誤的 。\039。 數(shù)組定義小題 例 比較 int a[2][3]={{5,6},{7,8}}。 5 6 0 7 8 0 5 6 7 8 0 0 例 int a[][10]。 例 int a[5]。 例 char name[0]。 int array[100]。 char str[]={?H?,?e?,?l?,?l?,?o?}。也就是說, 在一個(gè)函數(shù)的函數(shù)體內(nèi),不能再定義另一個(gè)函數(shù),即不能嵌套定義。 習(xí)慣上把調(diào)用者稱為主調(diào)函數(shù)。 ? main 函數(shù)是主函數(shù),它可以調(diào)用其它函數(shù),而不允許被其它函數(shù)調(diào)用。一個(gè)C源程序必須有,也只能有一個(gè)主函數(shù) main。 實(shí)參 出現(xiàn)在主調(diào)函數(shù)中,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用。發(fā)生函數(shù)調(diào)用時(shí),主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。 ( main 函數(shù)) ( max 函數(shù)) max(int x, int y) { int z。 return(z)。 scanf(%d,%d,amp。b)。 printf(Max is %d,c)。 z=xy?x:y。 } 形參 實(shí)參 關(guān)于形參和實(shí)參的說明: 1. 形參變量只有在被調(diào)用時(shí)才臨時(shí)分配內(nèi)存單元 ,在調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。因此應(yīng)預(yù)先用賦值,輸入等辦法使實(shí)參獲得確定值。若類型上不一致, 自動(dòng)按形參類型轉(zhuǎn)換 ——函數(shù)調(diào)用轉(zhuǎn)換 4. 函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。實(shí)參和形參在內(nèi)存中占用的是不同的單元,因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化。 printf(x=%d,\ty=%d\n,x,y)。 swap(x,y)。 } swap(int a,int b) { int temp。 a=b。 } 7 11 x: y: 調(diào)用前: 調(diào)用結(jié)束: 7 11 x: y: 調(diào)用: 7 11 a: b: 7 11 x: y: swap: 7 11 x: y: 11 7 a: b: temp 函數(shù)的調(diào)用 函數(shù)調(diào)用的一般形式 前面已經(jīng)說過,在程序中是通過對(duì)函數(shù)的調(diào)用來執(zhí)行函數(shù)體的,其過程與其它語言的子程序調(diào)用相似。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。 說明: 1. 實(shí)參與形參 個(gè)數(shù)相等,類型一致,按順序一一對(duì)應(yīng)。 被調(diào)用函數(shù)的聲明和函數(shù)原型 ? 在主調(diào)函數(shù)中調(diào)用某函數(shù)之前 應(yīng)對(duì)該被調(diào)函數(shù)進(jìn)行 說明(聲明) 。 其一般形式為: 類型說明符 被調(diào)函數(shù)名 (類型 形參,類型 形參 … ); 或?yàn)椋? 類型說明符 被調(diào)函數(shù)名 (類型,類型 … ); 括號(hào)內(nèi)給出了形參的類型和形參名,或只給出形參類型。 注意“聲明”和“定義”的不同!! 這就是函數(shù)原型,可在編譯階段對(duì)調(diào)用函數(shù)的合法性進(jìn)行檢查 這就是函數(shù)原型,可在編譯階段對(duì)調(diào)用函數(shù)的合法性進(jìn)行檢查“聲明”是動(dòng)詞;“函數(shù)原型”是名詞。 對(duì)函數(shù)聲明的幾點(diǎn)說明 1. 如果被調(diào)函數(shù)的返回值是整型或字符型時(shí),可以不對(duì)被調(diào)函數(shù)作說明,而直接調(diào)用。但此種情形將不檢查參數(shù)類型和個(gè)數(shù)。因?yàn)橄到y(tǒng)在編譯時(shí)已經(jīng)知道函數(shù)的相關(guān)信息。 else return b。 int x,y,z。 scanf(%d%d,amp。y)。 printf(maxmum=%d,z)。 { 3. 如在所有函數(shù)定義之前,在函數(shù)外預(yù)先說明了各個(gè)函數(shù)的類型,則在以后的各主調(diào)函數(shù)中,可不再對(duì)被調(diào)函數(shù)作說明。 float f(float b)。因此在以后各函數(shù)中無須對(duì) str和 f函數(shù)再作說明就可直接調(diào)用。 (例) 本題可編寫三個(gè)函數(shù),兩個(gè)分別是用來求三個(gè)數(shù)中最大、最小值的函數(shù) max和 min,另一個(gè)是用來計(jì)算差值的函數(shù) dif。 例 求三個(gè)數(shù)中最大數(shù)和最小數(shù)的差值 main( ) 調(diào)用函數(shù) dif 輸出 結(jié)束 dif函數(shù) max函數(shù) 調(diào)用函數(shù) max 調(diào)用函數(shù) min min函數(shù) ? 一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用 。C語言允許函數(shù)的遞歸調(diào)用。 執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層。 z=x*f(x1)。 } ? 這個(gè)函數(shù)是一個(gè)遞歸函數(shù)。 為了防止遞歸調(diào)用無終止地進(jìn)行 ,必須在函數(shù)內(nèi)有終止遞歸調(diào)用的手段。 (地址傳遞) 1. 用數(shù)組名作函數(shù)參數(shù)時(shí),則要求形參和相對(duì)應(yīng)的實(shí)參都必須是類型相同的數(shù)組,都必須有明確的數(shù)組說明。 2. 在用數(shù)組名作函數(shù)參數(shù)時(shí),不是進(jìn)行值的傳送,實(shí)際上形參數(shù)組并不存在,編譯系統(tǒng)也不為形參數(shù)組分配內(nèi)存。 因此在數(shù)組名作函數(shù)參數(shù)時(shí)所進(jìn)行的傳送只是地址的傳送,也就是說把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。實(shí)際上是形參數(shù)組和實(shí)參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間。 3. 前面已經(jīng)討論過,在變量作函數(shù)參數(shù)時(shí),所進(jìn)行的值傳送是單向的。形參的值發(fā)生改變后,實(shí)參并不變化。 由于實(shí)際上形參和實(shí)參為同一數(shù)組,因此當(dāng)形參數(shù)組發(fā)生變化時(shí),實(shí)參數(shù)組也隨之變化。但從實(shí)際情況來看,調(diào)用函數(shù)之后實(shí)參數(shù)組的值將由于形參數(shù)組值的變化而變化。 1 2 a 調(diào)用前 1 2 a x 調(diào)用 2 1 a x 交換 2 1 a 返回 include void swap2(int x[]) { int z。 x[0]=x[1]。 } main() { int a[2]={1,2}。 printf(a[0]=%d\na[1]=%d\n,a[0],a[1])。 2. 形參數(shù)組和實(shí)參數(shù)組的 長度可以不相同 ,因?yàn)樵谡{(diào)用時(shí),只傳送首地址而不檢查形參數(shù)組的長度。 3. 多維數(shù)組也可以作為函數(shù)的參數(shù)。 (地址傳遞) 全局變量 ? 全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。 ? 其作用域是定義變量的位置開始到整個(gè)源程序的結(jié)尾或者有 extern說明 的其它 函數(shù)和 源文件 。 ? 若外部變量與局部變量同名,則外部變量被屏蔽 定義 說明 ?次數(shù): 只能 1次 可說明多次 ?位置: 所有函數(shù)之外 函數(shù)內(nèi)或函數(shù)外 ?分配內(nèi)存: 分配內(nèi)存 ,可初始化 不分配內(nèi)存 ,不可初始化 應(yīng)盡量少使用全局變量,因?yàn)椋? ?全局變量在程序全部執(zhí)行過程中占用存儲(chǔ)單元 ?降低了函數(shù)的通用性、可靠性,可移植性 ?降低程序清晰性,容易出錯(cuò) int p=1,q=5。 ……. } int f3() {….. } char c1,c2。 …… } main() { int m,n。 extern char c1,c2。 include include main() {int a,b,c,d。a)。b=a/2。c=sqrt(b)。 if (csqrt(b)) d=ab。 for(c=2。c++) if(d%c==0) break。 } } 從最小的素?cái)?shù)開始,依次去找下一個(gè)素?cái)?shù) (b),一旦找到,就再判斷輸入數(shù) (a)與第一個(gè)素?cái)?shù)之差 (d)是否也為素?cái)?shù),若是則輸出結(jié)果。 str1字符長度為 3 0 1 2 3 str2字符長度為 4 0 1 2 3 4 A B C D E F G \0 0 1 2 3 4 5 6 7 連接后的字符串str1長度為 7 a=3 b=4 include main() {int i,a,b。 scanf(%s%s,str1,str2)。 a=strlen(str1)。 for (i=0。i++) str1[a+i]=str2[i]。 } 輸入兩個(gè)字符串存入兩個(gè)字符數(shù)組 先輸出兩個(gè)字符串 求兩個(gè)字符串的長度,分別是 a和 b 把 str2的 0到 b號(hào)字符 (一共 b+1個(gè),包括空字符 ),復(fù)制到 str1的 a到 a+b號(hào)變量 include char *cat(char x[],char y[]) {int i,a,b。 b=strlen(y)。i=b。 return(x)。 scanf(%s%s,str1,str2)。 printf(%s\n,cat(str1,str2))。 main() {char ch[5]。 for
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1