欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語言

C語言一堆數(shù)據(jù)教案設(shè)計(jì)

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

C語言一堆數(shù)據(jù)教案設(shè)計(jì)

  篇五:C語言一維數(shù)組教案

C語言一堆數(shù)據(jù)教案設(shè)計(jì)

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

  課 程:C語言程序設(shè)計(jì)

  課 題:一維數(shù)組

  課 時(shí):2

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

  2、掌握一維數(shù)組的初始化方法

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

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

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

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

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

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

  3、示例訓(xùn)練

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

  教 具:黑板 計(jì)算機(jī) 投影儀

  教學(xué)過程:

  一、導(dǎo)入:

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

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

  二、講授:

  1、數(shù)組概述:

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

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

  數(shù)組名:是用于區(qū)別其它數(shù)組及變量的。

  ·數(shù)組元素:集合中的變量,屬同一數(shù)據(jù)類型,用數(shù)組名和下標(biāo)確定。

  下標(biāo):是數(shù)組元素在數(shù)組中的位置。

  ·數(shù)組的維數(shù):數(shù)組名后所跟下標(biāo)的個(gè)數(shù)。

  2、一維數(shù)組的定義

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

  存儲類型 數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式]

  例如:static int score[50];

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

  說明:

 。1)存儲類型為任選項(xiàng),可以是auto、static、extern存儲類型,但是沒有register型。

  (2)數(shù)據(jù)類型是用來說明數(shù)組元素的類型:int , char , float。

  (3)數(shù)組名的命名應(yīng)遵守標(biāo)識符的命名規(guī)則,但是不能與其他變量同名。

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

 。5)常量表達(dá)式中可以包括常量和符號常量,不能包含變量,因?yàn)镃語言規(guī)定不允許對數(shù)組的大小作動態(tài)定義。

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

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

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

  #define size 10

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

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

  int n=5;

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

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

  一維數(shù)組的存儲結(jié)構(gòu):C語言在編譯時(shí)給數(shù)組分配一段連續(xù)的內(nèi)存空間。內(nèi)存字節(jié)數(shù)=數(shù)組元素個(gè)數(shù)*sizeof(元素?cái)?shù)據(jù)類型)

  數(shù)組元素按下標(biāo)遞增的次序連續(xù)存放。數(shù)組名是數(shù)組所占內(nèi)存區(qū)域的首地址,即數(shù)組第一個(gè)元素存放的地址。

  例 int a[5];

  內(nèi)存地址

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

  3、一維數(shù)組元素的引用

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

  數(shù)組名[下標(biāo)]

  其中下標(biāo)可以是整型常量、整型變量或整型表達(dá)式。例如有定義:

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

  則以下都是正確的表達(dá)式:

  t=a [6];

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

  引用說明:

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

  int x=a[2];

  int a[10];

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

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

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

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

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

  下面的寫法是錯誤的:

  printf("%d",a);

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

  #include

  void main ( )

  {

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

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

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

  }

  4、一維數(shù)組的初始化

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

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

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

  (1)對數(shù)組全部元素賦初值

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

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

  (2)對數(shù)組部分元素賦初值,其它數(shù)組元素自動賦以0值

  例如:

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

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

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

  不能寫成 int a[10]={0*10};

  說明:

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

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

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

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

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

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

  int a[ ]={1,2,3,4,5};則系統(tǒng)會自動定義數(shù)組a的長度為5。

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

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

  例如:int i,score[50];

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

  score [i]=0;

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

  三、舉例:

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

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

  (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é)生的成績

  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.以引例為例,從鍵盤輸入10個(gè)學(xué)生一門課的成績,用冒泡法從低到高排序并輸出。 分析:冒泡排序法的基本思想是將相鄰兩個(gè)數(shù)進(jìn)行比較,將小的調(diào)到前面。

  排序過程:

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

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

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

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

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

  程序如下:

  #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é)生的成績

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

  printf(" ");

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

  {

  for(j=0;j<10-i;j++) //實(shí)現(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(" ");}

【C語言一堆數(shù)據(jù)教案設(shè)計(jì)】相關(guān)文章:

C語言實(shí)型數(shù)據(jù)07-02

C語言字符型數(shù)據(jù)04-01

C語言整型數(shù)據(jù)分析03-30

C語言從鍵盤輸入數(shù)據(jù)03-16

C語言字符數(shù)據(jù)的合法形式05-29

C語言數(shù)據(jù)類型轉(zhuǎn)換02-28

C語言的數(shù)據(jù)類型介紹07-16

C語言數(shù)據(jù)的輸入輸出復(fù)習(xí)08-11

C語言學(xué)習(xí)關(guān)于數(shù)據(jù)的介紹04-20