C語言程序設(shè)計 教案 第6章 數(shù)組_第1頁
C語言程序設(shè)計 教案 第6章 數(shù)組_第2頁
C語言程序設(shè)計 教案 第6章 數(shù)組_第3頁
C語言程序設(shè)計 教案 第6章 數(shù)組_第4頁
C語言程序設(shè)計 教案 第6章 數(shù)組_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C語言程序設(shè)計教案第6章數(shù)組授課內(nèi)容第6章數(shù)組任課教師授課形式理實一體任課班級教學方法本節(jié)采用以教師為主導,在教學過程中同時采用提問法、討論法和互動式教學方法。教學重點(1)理解數(shù)組的概念。(2)掌握數(shù)組聲明。(3)掌握數(shù)組賦值。教學難點數(shù)組解決實際問題。教學目標教學目標(1)熟練掌握一維數(shù)組的定義、初始化及數(shù)組元素的引用。(2)能夠根據(jù)實際情況恰當?shù)剡\用一維數(shù)組解決實際問題。技能目標能夠根據(jù)實際情況運用一維數(shù)組、二維數(shù)組解決實際問題。素質(zhì)目標(1)學習數(shù)組的定義,即具備相同的數(shù)據(jù)類型的數(shù)的有序集合,明白物以類聚、人以群分的道理,要懂得朋友對個人的影響是相當大的,要謹慎交友。(2)數(shù)組元素在數(shù)組中的排列序號是確定的,各個元素必須按照自己的序號在程序中出現(xiàn)和運算。人生也同樣需要按部就班。(3)將雜亂無章的數(shù)據(jù)元素,通過一定的方法按關(guān)鍵字順序排列的過程叫排序。人們通過認識客觀世界,認識各種事物和對象的組成要素、相互聯(lián)系、結(jié)構(gòu)功能及它們的發(fā)展演變規(guī)律,即事物的有序性,來促成事物不斷從無序向有序方向轉(zhuǎn)化。同樣每個人的人生也是有序的。思政目標鼓勵學生與正能量的人交往,樹立正確的交友觀和價值觀,國家安全與信息安全,樹立遠大的理想和抱負。教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容教學步驟及內(nèi)容:教學過程:復習舊課導出新課講授新課6.1一維數(shù)組6.1.1引出問題在實際的生產(chǎn)生活中,對數(shù)據(jù)的處理要求多種多樣。對同一個小組3名學生可以用整型變量p1、整型變量p2和整型變量p3來表示這3個學生的政治面貌。輸出這些學生的政治面貌時,可以使用以下語句:printf("%c%c%c",p1,p2,p3);但是對一個班級的30個學生來說,就需要定義30個變量,顯得十分繁瑣。簡便解決這類問題的方法就是使用數(shù)組來表示。數(shù)組是指一組類型相同的變量,它使用一個數(shù)組名標識,每個數(shù)組元素都是通過數(shù)組名和元素的相對位置(下標)來引用的,數(shù)據(jù)元素在內(nèi)存中占有連續(xù)的內(nèi)存單元。學生的政治面貌屬于同一數(shù)據(jù)類型,政治面貌都是字符型變量,可通過不同的標號來區(qū)分這30個學生,該標號稱為下標。下標的變化是有規(guī)律的,可使用循環(huán)來處理這些數(shù)據(jù)。例如,for(i=0;i<30;i++) printf("%c",p[i]);6.1.2一維數(shù)組的定義數(shù)組元素屬于同一數(shù)據(jù)類型,先后次序確定,用數(shù)組名和下標標識。一維數(shù)組是指具有一個下標的數(shù)組。一維數(shù)組用于存儲一行或一列的數(shù)據(jù),一維數(shù)組定義一般格式如下:類型標識符數(shù)組名[元素個數(shù)];其中,類型標識符是對數(shù)組元素類型的定義,可以是int型、float型、char型以及后面章節(jié)要學習到的指針、結(jié)構(gòu)體和共用體等各種復合數(shù)據(jù)類型。每個數(shù)組的元素類型是一致的,即所定義的數(shù)組類型一致;數(shù)組名的命名同樣要遵守標識符的命名規(guī)范;“[]”為數(shù)組定義的分界符號。元素個數(shù)一般是常量,由它確定數(shù)組的大小,因為數(shù)組元素所占的內(nèi)存單元大小是由數(shù)組元素類型和元素個數(shù)決定的。例如,定義“inta[5];”,該數(shù)組元素的數(shù)據(jù)類型為int整型。數(shù)組名為a,是數(shù)組存儲區(qū)的首地址,即存放數(shù)組第一個元素的地址。數(shù)組的大小為5。數(shù)組元素的下標是從0開始的,而不是從1開始的,數(shù)組的元素最大下標值為元素個數(shù)-1。數(shù)組a的元素為:a[0],a[1],a[2],a[3],a[4]。數(shù)組可分為靜態(tài)數(shù)組和動態(tài)數(shù)組。靜態(tài)數(shù)組是指在運行時元素的個數(shù)不可以改變;動態(tài)數(shù)組則是允許在運行時改變元素的個數(shù)。在說明一個數(shù)組后,系統(tǒng)會在內(nèi)存中分配一段連續(xù)的空間用于存放數(shù)組元素。編譯時分配連續(xù)內(nèi)存字節(jié)數(shù)=數(shù)組元素個數(shù)*sizeof(元素數(shù)據(jù)類型)。6.1.3一維數(shù)組元素的引用C語言規(guī)定只能逐個引用數(shù)組元素,而不能一次引用整個數(shù)組。一維數(shù)組的引用格式如下:數(shù)組名[下標];其中,下標表示數(shù)組中的某一個元素的順序號,必須是整型常量、整型變量或整型表達式。例如,a[3]、a[3+2]、a[i]、a[i++]、a[i+j]。在引用一維數(shù)組元素時要注意以下4個問題。(1)引用時,下標值若不是整型,C語言系統(tǒng)會自動取整。例如,a[5.6]相當于a[5]。(2)下標從0開始,而不是從1開始。(3)若數(shù)組的元素個數(shù)為n,則下標表達式的范圍是從0到n-1,共n個整數(shù),引用時的下標不能超過或等于定義時的下標值,若超出這個范圍就稱為數(shù)組下標越界。例如,inta[5];a[5]=23;C語言對數(shù)組不進行越界檢查,因此,編譯時沒有錯誤提示,使用時要注意。(4)數(shù)組元素可以像普通數(shù)據(jù)一樣進行賦值和算術(shù)運算以及輸入和輸出操作。6.1.4一維數(shù)組的初始化數(shù)組的初始化是指在定義數(shù)組的同時,給其數(shù)組元素賦初值。數(shù)組初始化是在編譯階段進行的,這樣就會減少程序的運行時間,從而提高程序效率。主要有以下3種情況。(1)全部初始化。將各個數(shù)組元素的初值放在一對大括號中,數(shù)值的個數(shù)與數(shù)組元素的個數(shù)一一對應。賦值時,從左向右依次將大括號內(nèi)的每個數(shù)賦給數(shù)組中的對應元素。例如,inta[6]={0,1,2,3,4,5};等價于a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=6。(2)部分初始化。可對部分元素賦初值,此時,未賦值元素將自動初始化為0。例如,inta[6]={0,1,2,3};等價于a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=0,a[5]=0。inta[6]={0,3,0,0,7};該數(shù)組共6個元素,其中:a[1]=3,a[4]=7,其余元素的初值都為0。等價于a[0]=0,a[1]=3,a[2]=0,a[3]=0,a[4]=7,a[5]=0。(3)若對全部元素賦初值,則可省略數(shù)組下標。例如,inta[]={0,1,2,3,4,5};等價于inta[6]={0,1,2,3,4,5};6.1.5數(shù)組元素的輸入與輸出scanf()函數(shù)和printf()函數(shù)不能一次處理整個數(shù)組的多個元素,只能通過循環(huán)語句逐個處理,當下標i取不同值時,a[i]代表不同的數(shù)組元素。6.1.6一維數(shù)組的應用通過下列一維數(shù)組經(jīng)典案例的學習,讀者需要掌握數(shù)組常用操作的編程方法。與此同時,這些實例中有關(guān)數(shù)組的操作語句可以直接或間接嵌入其他應用程序中作為預制件使用。6.2二維數(shù)組6.2.1二維數(shù)組的定義二維數(shù)組主要用于存放矩陣形式的數(shù)據(jù),如二維表格等。其一般格式如下:類型標識符數(shù)組名[常量表達式式1][常量表達式2];其中,常量表達式1是數(shù)組元素的行數(shù),常量表達式2是數(shù)組元素的列數(shù)。數(shù)據(jù)元素個數(shù)為常量表達式1×常量表達式2。與一維數(shù)組相同,下標值從0開始。例如,定義“inta[3][4];”該數(shù)組元素的數(shù)據(jù)類型為整型,數(shù)組名為a,數(shù)組的大小為3×4=12個。二維數(shù)組的下標在兩個方向上變化,下標變量在數(shù)組中的位置處于一個平面之中,而不是像一維數(shù)組那樣只是一個向量,然而,內(nèi)存是連續(xù)編址的,也就是說,內(nèi)存單元是按一維線性排列的。在內(nèi)存中存放二維數(shù)組,一般是按行序優(yōu)先進行排列,即存放完一行之后,順序放入第二行,以此類推。二維數(shù)組a[3][4]可以看成由3個元素組成的一維數(shù)組,每個元素a[i]又是包含4個元素的一維數(shù)組。數(shù)組在內(nèi)存中按行順序先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中的4個元素也依次存放。數(shù)組a為整型數(shù)據(jù)類型,為每個元素占2字節(jié)的內(nèi)存空間。6.2.2二維數(shù)組元素的引用和一維數(shù)組元素的引用一樣,二維數(shù)組元素也是通過數(shù)組名和下標來引用的,只是這里需要兩個下標。二維數(shù)組元素引用的格式如下:數(shù)組名[行下標表達式][列下標表達式]例如,inta[2][3];a[1][2]=5;將第2行第3個元素賦值為5。在引用二維數(shù)組元素時要注意以下3個問題。(1)下標同一維數(shù)組一樣,可以是整型常量或是整型表達式。行下標表達式的取值范圍為0~行數(shù)-1,列下標表達式的取值范圍為0~列數(shù)-1。(2)對基本數(shù)據(jù)類型的變量所能進行的各種操作,也都適合于同類型的二維數(shù)組元素。(3)要引用二維數(shù)組的全部數(shù)據(jù),就要遍歷二維數(shù)組,通常應使用二層嵌套的for循環(huán):一般常把二維數(shù)組的行下標作為外循環(huán)的控制變量,把列下標作為內(nèi)循環(huán)的控制變量。6.2.3二維數(shù)組的初始化二維數(shù)組的初始化也是在類型說明時給各個下標變量賦初值。主要有以下3種情況。(1)分行初始化。例如,inta[2][3]={{1,2,3},{4,5,6}};等價于a[0][0]=1,a[0][1]=2,a[0][2]=3,a[1][0]=4,a[1][1]=5,a[1][2]=6。也可以按行連續(xù)賦值。例如,inta[2][3]={1,2,3,4,5,6};(2)部分初始化。例如,inta[2][3]={{1},{2,3}};等價于a[0][0]=1,a[0][1]=0,a[0][2]=0,a[1][0]=2,a[1][1]=3,a[1][2]=0。(3)若對全部元素賦初值,行數(shù)可以省略,但列數(shù)不能默認。例如,inta[2][3]={1,2,3,4,5,6};等價于inta[][3]={1,2,3,4,5,6};6.2.4二維數(shù)組的應用6.3字符數(shù)組6.3.1字符數(shù)組的定義字符數(shù)組是數(shù)組元素類型為字符型的數(shù)組,字符數(shù)組中的每一個元素均為字符類型。字符數(shù)組包括一維字符數(shù)組和二維字符數(shù)組。一維字符數(shù)據(jù)一般格式如下:char數(shù)組名[常量表達式];例如,定義“chars[10];”該數(shù)組元素的類型為字符型,數(shù)組名為s,數(shù)組的長度為10。定義“charstr[3][5];”該數(shù)組元素的數(shù)據(jù)類型為字符型,數(shù)組名為str,數(shù)組的大小為3×5=15個。6.3.2字符數(shù)組的初始化字符數(shù)組同樣允許在定義時進行初始化賦值。字符數(shù)組初始化的過程與數(shù)值型數(shù)組初始化的過程類似。主要有以下4種情況。1.逐個字符賦值例如,charch[5]={'C','H','I','N','A'};等價于a[0]='C',a[1]='H',a[2]='I',a[3]='N',a[4]='A'。2.用字符串常量賦值把字符串存入一個數(shù)組時,結(jié)束符\0一起存入數(shù)組,并以此作為該字符串的結(jié)束標志。因此,計算字符數(shù)組長度時,至少為字符串長度加1.例如,charch[6]={"CHINA"};等價于a[0]='C',a[1]='H',a[2]='I',a[3]='N',a[4]='A',a[5]='\0'。3.若字符數(shù)組為全部顯式賦值,則字符數(shù)組的長度可以由初值確定例如,charch[5]={'C','H','I','N','A'};編譯系統(tǒng)會計算出該字符數(shù)組ch的長度是5。4.部分初始化,其中未賦值的元素會自動賦值為“\0”例如,charch[5]={'C','H','I'};等價于a[0]='C',a[1]='H',a[2]='I’',a[3]='\0',a[4]='\0'。6.3.3字符數(shù)組的應用6.3.4字符串C語言沒有提供專門的字符串數(shù)據(jù)類型,可以通過字符數(shù)組來處理字符串。但必須在字符數(shù)組末尾加上串結(jié)束符“\0”,以此作為該字符串是否結(jié)束的標志。1.字符數(shù)組的初始化字符數(shù)組的初始化有兩種方法。(1)用字符常量初始化數(shù)組。用字符常量給字符數(shù)組賦初值時,要用大括號將賦值的字符常量括起來。例如,charstr[6]={'C','H','I','N,'A','\0'};該數(shù)組str[6]被初始化為“CHINA”,最后一個元素的賦值'\0'可以省略。(2)用字符串常量初始化數(shù)組。例如,charstr[6]={"CHINA"};等價于charstr[6]="CHINA";2.字符串的結(jié)束標志“\0”計算字符數(shù)組長度時,至少為字符串長度加1。例如,“CHINA”共5個字符,在內(nèi)存占6字節(jié),字符串自身長度為5。字符在內(nèi)存中以字符的ASCII碼形式存放。3.字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出主要有兩種方式。(1)逐個字符輸入輸出。格式化輸入輸出函數(shù)可以輸入輸出任何類型的數(shù)據(jù)。若要輸入輸出字符,使用格式符%c。從鍵盤讀取一個字符:scanf("%c",數(shù)組元素地址);向顯示器輸出一個字符:printf("%c",數(shù)組元素地址);使用字符輸入輸出函數(shù)。getchar()函數(shù)為字符輸入函數(shù),調(diào)用格式為:getchar();putchar()函數(shù)為字符輸出函數(shù),調(diào)用格式為:putchar(字符名);(2)整個字符串一次輸入輸出。利用格式化輸入輸出函數(shù)輸出字符串,使用格式符%s。從鍵盤讀取一串字符:scanf("%s",數(shù)組名);向顯示器輸出一串字符:printf("%s",數(shù)組名);使用字符串輸入輸出函數(shù)。gets()函數(shù)為字符串輸入函數(shù),調(diào)用格式為:gets(字符串數(shù)組名)。puts()函數(shù)為字符串輸出函數(shù),調(diào)用格式為:puts(字符串數(shù)組名)。6.3.5常用字符串處理函數(shù)C語言函數(shù)庫提供了豐富的函數(shù)集,需要在程序開頭添加預編譯命名:#include<string.h>1.字符串長度—strlen()函數(shù)strlen()函數(shù)是返回字符串的實際長度(不包含字符串結(jié)束標志'\0')并作為函數(shù)返回值。strlen()函數(shù)一般格式如下:strlen(字符數(shù)組名)2.字符串連接—strcat()函數(shù)strcat()函數(shù)把字符數(shù)組2中的字符串連接到字符數(shù)組1中字符串的后面,并刪除字符串1后面的串結(jié)束標志'\0',新串以字符數(shù)組2的'\0'作為結(jié)束標志。返回值是字符數(shù)組1的首地址。strcat()函數(shù)一般格式如下:strcat(字符數(shù)組1,字符數(shù)組2)3.字符串拷貝—strcpy()函數(shù)strcpy()函數(shù)把字符數(shù)組2中的字符串拷貝到字符數(shù)組1中。串結(jié)束標志'\0'也一同拷貝。字符數(shù)組2,也可以是一個字符串常量,這時相當于把一個字符串賦予一個字符數(shù)組。返回值是字符數(shù)組1的首地址。strcpy()函數(shù)一般格式如下:strcpy(字符數(shù)組1,字符數(shù)組2)4.字符串比較—strcmp()函數(shù)strcmp()函數(shù)將兩個數(shù)組中的字符串從左至右逐個比較,比較字符的ASCII碼大小,直到遇到不同字符或'\0'為止。返回值是int型整數(shù)。(1)若字符串1=字符串2,返回值為0。(2)若字符串1>字符串2,返回正整數(shù)。(3)若字符串1<字符串2,返回負整數(shù)。strcmp()函數(shù)一般格式如下:strcmp(字符數(shù)組1,字符數(shù)組2)6.3.6字符串處理函數(shù)的應用6.4常見錯誤分析6.4.1數(shù)組下標越界在定義數(shù)組時,將定義的“元素個數(shù)”誤認為是“可使用的最大下標值”就會出現(xiàn)下標越界問題。6.4.2二維數(shù)組的引用錯誤初學者很容易將數(shù)學中的用法習慣性地用于C程序中。6.4.3給字符數(shù)組賦值字符串初學者由于看到數(shù)組初始化的情形,就以為能夠把字符串賦給一個數(shù)組。6.5回文字符串應用實戰(zhàn)6.5.1實戰(zhàn)背景回文串,是一種特殊的字符串,它從左往右讀和從右往左讀是一樣的。6.5.2實戰(zhàn)目的(1)掌握字符數(shù)組定義、輸入輸出使用方法。(2)字符串處理函數(shù)gets()函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論