一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

C語(yǔ)言

C語(yǔ)言一堆數據教案設計

時(shí)間:2025-03-01 05:34:39 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言一堆數據教案設計

  篇五:C語(yǔ)言一維數組教案

C語(yǔ)言一堆數據教案設計

  學(xué) 科:計算機科學(xué)與技術(shù)

  課 程:C語(yǔ)言程序設計

  課 題:一維數組

  課 時(shí):2

  教學(xué)目標:1、掌握一維數組的定義和引用

  2、掌握一維數組的初始化方法

  3、了解與一維數組有關(guān)的應用編程方法

  教學(xué)重點(diǎn):一維數組的定義和引用、初始化方法

  教學(xué)難點(diǎn):與一維數組有關(guān)的應用編程方法

  教學(xué)方法:舉例法,引導法

  教學(xué)步驟: 1、通過(guò)一個(gè)例子提出問(wèn)題來(lái)引出本節課的知識點(diǎn)

  2、講授一維數組的定義和引用、初始化方法

  3、示例訓練

  4、進(jìn)行本節課的總結及作業(yè)布置

  教 具:黑板 計算機 投影儀

  教學(xué)過(guò)程:

  一、導入:

  提問(wèn):保存一個(gè)班50位同學(xué)的一門(mén)功課的成績(jì),并且找出最高分和最低分,應如何實(shí)現?

  解題思路:定義50個(gè)變量,從鍵盤(pán)中輸入值,然后再相互比較。處理起來(lái)很復雜,是否有更簡(jiǎn)便的方法?引出本節課的知識點(diǎn)-----數組。

  二、講授:

  1、數組概述:

  ·數組:是數目固定,類(lèi)型相同的若干個(gè)變量的有序集合,用數組名標識。

  序:是數組元素之間的位置關(guān)系,不是元素值的大小順序。

  數組名:是用于區別其它數組及變量的。

  ·數組元素:集合中的變量,屬同一數據類(lèi)型,用數組名和下標確定。

  下標:是數組元素在數組中的位置。

  ·數組的維數:數組名后所跟下標的個(gè)數。

  2、一維數組的定義

  一維數組是指由一個(gè)下標數組元素組成的數組。其定義形式為:

  存儲類(lèi)型 數據類(lèi)型 數組名[常量表達式]

  例如:static int score[50];

  它表示定義了一個(gè)名為score的數組,該數組有50個(gè)元素,其存儲類(lèi)型為靜態(tài)型,數據類(lèi)型為整型。

  說(shuō)明:

 。1)存儲類(lèi)型為任選項,可以是auto、static、extern存儲類(lèi)型,但是沒(méi)有register型。

 。2)數據類(lèi)型是用來(lái)說(shuō)明數組元素的類(lèi)型:int , char , float。

 。3)數組名的命名應遵守標識符的命名規則,但是不能與其他變量同名。

 。4)數組名后是用方括號[ ]括起來(lái)的常量表達式。常量表達式表示的是數組元素的個(gè)數,即數組的長(cháng)度。在上例中定義了數組score [50],第一個(gè)元素為score [0],最后一個(gè)為score [49]。

 。5)常量表達式中可以包括常量和符號常量,不能包含變量,因為C語(yǔ)言規定不允許對數組的大小作動(dòng)態(tài)定義。

 。6)允許在同一個(gè)類(lèi)型說(shuō)明中,說(shuō)明多個(gè)數組和多個(gè)變量,彼此間以逗號相隔。 例如:int a,b,k1[10],k2[20]; //定義了兩個(gè)一維數組、兩個(gè)整型變量

  判斷下面的定義是否合法:

  int b, b[5]; //不合法,數組名不能與變量名同名

  #define size 10

  int b[size]; //合法,size已經(jīng)在宏定義中說(shuō)明,在程序中作為符號常量

  int a(6); //不合法,數組名后不能使用(),只能用[]

  int n=5;

  int a[n]; //不合法,不能用變量定義數組元素的個(gè)數

  int a[n+2]; //不合法,不能用變量表達式定義數組元素的個(gè)數

  一維數組的存儲結構:C語(yǔ)言在編譯時(shí)給數組分配一段連續的內存空間。內存字節數=數組元素個(gè)數*sizeof(元素數據類(lèi)型)

  數組元素按下標遞增的次序連續存放。數組名是數組所占內存區域的首地址,即數組第一個(gè)元素存放的地址。

  例 int a[5];

  內存地址

  占用字節數為:5*sizeof(int)=5*2=10

  3、一維數組元素的引用

  數組元素是組成數組的基本單元。數組元素用數組名和下標確定。下標表示了元素在數組中的順序號,C語(yǔ)言規定:數組必須先定義,后使用。一維數組的引用形式為:

  數組名[下標]

  其中下標可以是整型常量、整型變量或整型表達式。例如有定義:

  int t,a[10],i=2;

  則以下都是正確的表達式:

  t=a [6];

  a[0]= a[i]+a[i+1];

  引用說(shuō)明:

 。1)必須像使用變量那樣,先定義,再使用,如以下操作是錯誤的:

  int x=a[2];

  int a[10];

 。2)下標的最小值為0,最大值是數組大小減1。在前例中定義了數組score [50],使用的時(shí)候不能使用 score [50], 否則產(chǎn)生數組越界。C語(yǔ)言對數組不作越界檢查,使用時(shí)要注意!

 。3)在C語(yǔ)言中只能對數組元素進(jìn)行操作,不能一次對整個(gè)數組進(jìn)行操作。例如要輸出有10個(gè)元素的數組,則必須使用循環(huán)語(yǔ)句逐個(gè)輸出各下標變量:

  for(i=0; i<10; i++)

  printf("%d",a[i]);

  而不能用一個(gè)語(yǔ)句輸出整個(gè)數組。

  下面的寫(xiě)法是錯誤的:

  printf("%d",a);

  例:輸出5個(gè)學(xué)生的成績(jì)

  #include

  void main ( )

  {

  int i, score[5]={82,79,65,91,86};

  for (i=0;i<5;i++)

  printf (" %d ",score[i]);

  }

  4、一維數組的初始化

  數組的初始化就是給數組元素賦初始值。主要有兩種方法:

  1.數組定義時(shí)初始化:就是在定義數組時(shí)給數組元素賦初值。其初始化的一般格式為:

  數據類(lèi)型 數組名[數組元素個(gè)數] ={值1,值2,… ,值n};

 。1)對數組全部元素賦初值

  例如 int a[5]={2,4,6,8,10};

  其作用是在定義數組的同時(shí)將常量2、4、6、8、10分別置于數組元素a[0]、a[1]、a[2]、a[3]、a[4]中。

 。2)對數組部分元素賦初值,其它數組元素自動(dòng)賦以0值

  例如:

  int a[4]={1,2 };執行后各元素的初值為a [0]=1,a [1]=2,a [2]=0,a [3]=0

 。3)全部元素均初始化為0,可寫(xiě)成:

  int a[10]={0,0,0,0,0,0,0,0,0,0};或int a[10]={0};

  不能寫(xiě)成 int a[10]={0*10};

  說(shuō)明:

 。1)數組元素的值可以是數值型、字符常量或字符串。

 。2)數組元素的初值必須依次放在一對大括號{ }內,各值之間用逗號隔開(kāi)。

 。3)在進(jìn)行數組的初始化時(shí),{ }中值的個(gè)數不能超過(guò)數組元素的個(gè)數。

  例如:int a[5]={1,2,3,4,5,6};是一種錯誤的數組初始化方式,所賦初值多于定

  義數組的元素個(gè)數。

 。4)在給數組所有元素賦初值時(shí),可以不指定數組長(cháng)度。例如:

  int a[ ]={1,2,3,4,5};則系統會(huì )自動(dòng)定義數組a的長(cháng)度為5。

  在定義時(shí)賦初值是一種簡(jiǎn)單而行之有效的方法,它適用于長(cháng)度較小的數組或對長(cháng)度較大的數組部分元素賦值,而且可對每個(gè)數組元素賦不同的值。

  2.在程序中初始化:主要使用循環(huán)語(yǔ)句進(jìn)行逐一賦值

  例如:int i,score[50];

  for (i=0;i<50;i++)

  score [i]=0;

  這種方法是在編程中普遍使用的一種方法,它適用于對某數組元素進(jìn)行有規律的賦值或接受用戶(hù)通過(guò)鍵盤(pán)輸入對數組元素的賦值。

  三、舉例:

  1.以引例為例,從鍵盤(pán)輸入10個(gè)學(xué)生一門(mén)課的成績(jì),找出最高分和最低分并輸出。 步驟:

  (1) 輸入: 用for循環(huán)輸入10個(gè)學(xué)生的成績(jì)

  (2) 處理:

  (a) 先令max=min=score[0]

  (b) 依次用score [i]和max,min比較(循環(huán))

  若max< score [i],令max= score [i]

  若min> score [i],令min= score [i]

  (3) 輸出: max和min

  程序如下:

  #include

  void main()

  {

  int i;

  float score [10],max,min;

  printf("Enter 10 score s: ");

  for(i=0;i<10;i++) //輸入10個(gè)浮點(diǎn)型的學(xué)生的成績(jì)

  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 %f ",max); //輸出最高分

  printf("Min score is %f ",min); //輸出最低分

  }

  2.以引例為例,從鍵盤(pán)輸入10個(gè)學(xué)生一門(mén)課的成績(jì),用冒泡法從低到高排序并輸出。 分析:冒泡排序法的基本思想是將相鄰兩個(gè)數進(jìn)行比較,將小的調到前面。

  排序過(guò)程:

 。1)比較第一個(gè)數與第二個(gè)數,若為逆序score [0]> score [1],則交換;然后比較score

  [1]與score [2]比較;依次類(lèi)推,直至score [8]與score [9]比較為止——第一趟冒泡排序,結果最大的數被安置在最后一個(gè)元素score [9]位置上,此次共比較9次。

 。2)對前9個(gè)數進(jìn)行第二趟冒泡排序,結果使次大的數被安置在倒數第二個(gè)元素score

  [8]位置,此次共比較8次。

 。3)重復上述過(guò)程,共經(jīng)過(guò)9趟冒泡排序后,排序結束

  程序如下:

  #include

  void main()

  {

  int i,j;

  float score [10], t,max,min;

  printf("Enter 10 scores: ");

  for(i=0;i<10;i++) //輸入10個(gè)浮點(diǎn)型學(xué)生的成績(jì)

  scanf("%f",& score [i]);

  printf(" ");

  for(i=1;i<10;i++) //趟數,共9趟

  {

  for(j=0;j<10-i;j++) //實(shí)現一次冒泡操作

  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++) //輸出排好序的成績(jì)

  printf(" %f ", score [i]);

  printf(" ");}

【C語(yǔ)言一堆數據教案設計】相關(guān)文章:

C語(yǔ)言實(shí)型數據07-02

C語(yǔ)言字符型數據04-01

C語(yǔ)言整型數據分析03-30

C語(yǔ)言從鍵盤(pán)輸入數據03-16

C語(yǔ)言字符數據的合法形式05-29

C語(yǔ)言數據類(lèi)型轉換02-28

C語(yǔ)言的數據類(lèi)型介紹07-16

C語(yǔ)言數據的輸入輸出復習08-11

C語(yǔ)言學(xué)習關(guān)于數據的介紹04-20

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看