C語言一維數(shù)組教案(共6頁)_第1頁
C語言一維數(shù)組教案(共6頁)_第2頁
C語言一維數(shù)組教案(共6頁)_第3頁
C語言一維數(shù)組教案(共6頁)_第4頁
C語言一維數(shù)組教案(共6頁)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué) 科:計算機科學(xué)與技術(shù)課 程:C語言程序設(shè)計課 題:一維數(shù)組課 時:2教學(xué)目標(biāo):1、掌握一維數(shù)組的定義和引用2、掌握一維數(shù)組的初始化方法3、了解與一維數(shù)組有關(guān)的應(yīng)用編程方法教學(xué)重點:一維數(shù)組的定義和引用、初始化方法教學(xué)難點:與一維數(shù)組有關(guān)的應(yīng)用編程方法教學(xué)方法:舉例法,引導(dǎo)法教學(xué)步驟: 1、通過一個例子提出問題來引出本節(jié)課的知識點2、講授一維數(shù)組的定義和引用、初始化方法3、示例訓(xùn)練4、進行本節(jié)課的總結(jié)及作業(yè)布置教 具:黑板 計算機 投影儀教學(xué)過程:一、導(dǎo)入:提問:保存一個班50位同學(xué)的一門功課的成績,并且找出最高分和最低分,應(yīng)如何實現(xiàn)?解題思路:定義50個變量,從鍵

2、盤中輸入值,然后再相互比較。處理起來很復(fù)雜,是否有更簡便的方法?引出本節(jié)課的知識點-數(shù)組。二、講授:1、數(shù)組概述:·數(shù)組:是數(shù)目固定,類型相同的若干個變量的有序集合,用數(shù)組名標(biāo)識。 序:是數(shù)組元素之間的位置關(guān)系,不是元素值的大小順序。 數(shù)組名:是用于區(qū)別其它數(shù)組及變量的。·數(shù)組元素:集合中的變量,屬同一數(shù)據(jù)類型,用數(shù)組名和下標(biāo)確定。下標(biāo):是數(shù)組元素在數(shù)組中的位置。·數(shù)組的維數(shù):數(shù)組名后所跟下標(biāo)的個數(shù)。2、一維數(shù)組的定義 一維數(shù)組是指由一個下標(biāo)數(shù)組元素組成的數(shù)組。其定義形式為: 存儲類型 數(shù)據(jù)類型 數(shù)組名常量表達式 例如:static int score50;它表示

3、定義了一個名為score的數(shù)組,該數(shù)組有50個元素,其存儲類型為靜態(tài)型,數(shù)據(jù)類型為整型。說明:(1)存儲類型為任選項,可以是auto、static、extern存儲類型,但是沒有register型。(2)數(shù)據(jù)類型是用來說明數(shù)組元素的類型:int , char , float。(3)數(shù)組名的命名應(yīng)遵守標(biāo)識符的命名規(guī)則,但是不能與其他變量同名。 (4)數(shù)組名后是用方括號 括起來的常量表達式。常量表達式表示的是數(shù)組元素的個數(shù),即數(shù)組的長度。在上例中定義了數(shù)組score 50,第一個元素為score 0,最后一個為score 49。 (5)常量表達式中可以包括常量和符號常量,不能包含變量,因為C語言規(guī)

4、定不允許對數(shù)組的大小作動態(tài)定義。 (6)允許在同一個類型說明中,說明多個數(shù)組和多個變量,彼此間以逗號相隔。 例如:int a,b,k110,k220; /定義了兩個一維數(shù)組、兩個整型變量 判斷下面的定義是否合法:int b, b5; /不合法,數(shù)組名不能與變量名同名#define size 10 int bsize; /合法,size已經(jīng)在宏定義中說明,在程序中作為符號常量int a(6); /不合法,數(shù)組名后不能使用(),只能用int n=5;int an; /不合法,不能用變量定義數(shù)組元素的個數(shù)int an+2; /不合法,不能用變量表達式定義數(shù)組元素的個數(shù)一維數(shù)組的存儲結(jié)構(gòu):C語言在編譯

5、時給數(shù)組分配一段連續(xù)的內(nèi)存空間。內(nèi)存字節(jié)數(shù)=數(shù)組元素個數(shù)*sizeof(元素數(shù)據(jù)類型)數(shù)組元素按下標(biāo)遞增的次序連續(xù)存放。數(shù)組名是數(shù)組所占內(nèi)存區(qū)域的首地址,即數(shù)組第一個元素存放的地址。例 int a5; 假設(shè)首地址是2000a0a1a2a3a4 內(nèi)存地址 2000 2002 2004 2006 2008 占用字節(jié)數(shù)為:5*sizeof(int)=5*2=103、一維數(shù)組元素的引用 數(shù)組元素是組成數(shù)組的基本單元。數(shù)組元素用數(shù)組名和下標(biāo)確定。下標(biāo)表示了元素在數(shù)組中的順序號,C語言規(guī)定:數(shù)組必須先定義,后使用。一維數(shù)組的引用形式為: 數(shù)組名下標(biāo)其中下標(biāo)可以是整型常量、整型變量或整型表達式。例如有定義:

6、int t,a10,i=2;則以下都是正確的表達式: t=a 6; a0= ai+ai+1;引用說明:(1)必須像使用變量那樣,先定義,再使用,如以下操作是錯誤的: int x=a2; int a10;(2)下標(biāo)的最小值為0,最大值是數(shù)組大小減1。在前例中定義了數(shù)組score 50,使用的時候不能使用 score 50, 否則產(chǎn)生數(shù)組越界。C語言對數(shù)組不作越界檢查,使用時要注意!(3)在C語言中只能對數(shù)組元素進行操作,不能一次對整個數(shù)組進行操作。例如要輸出有10個元素的數(shù)組,則必須使用循環(huán)語句逐個輸出各下標(biāo)變量: for(i=0; i<10; i+) printf("%d&qu

7、ot;,ai);而不能用一個語句輸出整個數(shù)組。下面的寫法是錯誤的:printf("%d",a); 例:輸出5個學(xué)生的成績 #include <stdio.h>void main ( ) int i, score5=82,79,65,91,86; for (i=0;i<5;i+) printf (" %d ",scorei); 4、一維數(shù)組的初始化數(shù)組的初始化就是給數(shù)組元素賦初始值。主要有兩種方法:1.數(shù)組定義時初始化:就是在定義數(shù)組時給數(shù)組元素賦初值。其初始化的一般格式為:數(shù)據(jù)類型 數(shù)組名數(shù)組元素個數(shù) =值1,值2, ,值n;(1)對數(shù)

8、組全部元素賦初值例如 int a5=2,4,6,8,10;其作用是在定義數(shù)組的同時將常量2、4、6、8、10分別置于數(shù)組元素a0、a1、a2、a3、a4中。(2)對數(shù)組部分元素賦初值,其它數(shù)組元素自動賦以0值 例如:int a4=1,2 ;執(zhí)行后各元素的初值為a 0=1,a 1=2,a 2=0,a 3=0 (3)全部元素均初始化為0,可寫成: int a10=0,0,0,0,0,0,0,0,0,0;或int a10=0; 不能寫成 int a10=0*10;說明:(1)數(shù)組元素的值可以是數(shù)值型、字符常量或字符串。(2)數(shù)組元素的初值必須依次放在一對大括號 內(nèi),各值之間用逗號隔開。(3)在進行數(shù)

9、組的初始化時, 中值的個數(shù)不能超過數(shù)組元素的個數(shù)。例如:int a5=1,2,3,4,5,6;是一種錯誤的數(shù)組初始化方式,所賦初值多于定義數(shù)組的元素個數(shù)。 (4)在給數(shù)組所有元素賦初值時,可以不指定數(shù)組長度。例如: int a =1,2,3,4,5;則系統(tǒng)會自動定義數(shù)組a的長度為5。在定義時賦初值是一種簡單而行之有效的方法,它適用于長度較小的數(shù)組或?qū)﹂L度較大的數(shù)組部分元素賦值,而且可對每個數(shù)組元素賦不同的值。2.在程序中初始化:主要使用循環(huán)語句進行逐一賦值例如:int i,score50; for (i=0;i<50;i+) score i=0; 這種方法是在編程中普遍使用的一種方法,它

10、適用于對某數(shù)組元素進行有規(guī)律的賦值或接受用戶通過鍵盤輸入對數(shù)組元素的賦值。三、舉例:1.以引例為例,從鍵盤輸入10個學(xué)生一門課的成績,找出最高分和最低分并輸出。 步驟:(1) 輸入: 用for循環(huán)輸入10個學(xué)生的成績(2) 處理:(a) 先令max=min=score0(b) 依次用score i和max,min比較(循環(huán)) 若max< score i,令max= score i 若min> score i,令min= score i(3) 輸出: max和min 程序如下: #include <stdio.h>void main() int i;float score

11、 10,max,min; printf("Enter 10 score s:n"); for(i=0;i<10;i+) /輸入10個浮點型的學(xué)生的成績 scanf("%f",& score i); max=min= score 0; for(i=1;i<10;i+) /循環(huán)比較,找出最高分和最低分 if(max< score i) max= score i; if(min> score i) min= score i; printf("Max score is %fn",max); /輸出最高分 pri

12、ntf("Min score is %fn",min); /輸出最低分 2.以引例為例,從鍵盤輸入10個學(xué)生一門課的成績,用冒泡法從低到高排序并輸出。 分析:冒泡排序法的基本思想是將相鄰兩個數(shù)進行比較,將小的調(diào)到前面。 排序過程:(1)比較第一個數(shù)與第二個數(shù),若為逆序score 0> score 1,則交換;然后比較score 1與score 2比較;依次類推,直至score 8與score 9比較為止第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個元素score 9位置上,此次共比較9次。(2)對前9個數(shù)進行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在倒數(shù)第二個元素score

13、 8位置,此次共比較8次。(3)重復(fù)上述過程,共經(jīng)過9趟冒泡排序后,排序結(jié)束程序如下:#include <stdio.h>void main() int i,j;float score 10, t,max,min; printf("Enter 10 scores:n"); for(i=0;i<10;i+) /輸入10個浮點型學(xué)生的成績 scanf("%f",& score i); printf("n"); for(i=1;i<10;i+) /趟數(shù),共9趟 for(j=0;j<10-i;j+) /實現(xiàn)一次冒泡操作 if(score j> score j+1) /交換score j和 score j+1 t= score j; score j=score j+1; score j+1= t;for(i=0;i<10;i+) /輸出排好序的成績printf(" %f ", score i);printf("n");四、總結(jié):這節(jié)課主要介紹了數(shù)組這一特殊的

溫馨提示

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

評論

0/150

提交評論