C語(yǔ)言程序設(shè)計(jì) (7)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) (7)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) (7)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) (7)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) (7)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、提高篇之提高篇之第七講第七講 數(shù)組數(shù)組數(shù)信學(xué)院數(shù)信學(xué)院 張熠張熠C C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)v 7.1 根基概念根基概念v 7.1.1 數(shù)組的引入數(shù)組的引入v 例例7.1 求求08給水排水給水排水1、2班同學(xué)班同學(xué)C程序設(shè)計(jì)程序設(shè)計(jì)期末考試的平均成績(jī)和規(guī)格差期末考試的平均成績(jī)和規(guī)格差.規(guī)格差程式規(guī)格差程式似下似下:v 對(duì)比對(duì)比v 08給水排水共給水排水共57名學(xué)生名學(xué)生,假定成績(jī)?yōu)檎麛?shù)假定成績(jī)?yōu)檎麛?shù),那那么需要定義么需要定義57個(gè)個(gè)int型變量來(lái)保留成績(jī)型變量來(lái)保留成績(jī).這這57個(gè)個(gè)int型變量具有一樣的功能和一樣的操縱型變量具有一樣的功能和一樣的操縱,是否能夠通是否能夠通過(guò)一種新的命名方式

2、來(lái)同一命名該過(guò)一種新的命名方式來(lái)同一命名該57個(gè)個(gè)int型變量?型變量?v 7.1.2 數(shù)組的概念數(shù)組的概念v 數(shù)組數(shù)組:具有一樣類型的信息組成的序列具有一樣類型的信息組成的序列,是有序集是有序集合合.v 數(shù)組元素?cái)?shù)組元素: 由其所在的位置序號(hào)(稱數(shù)組元素的由其所在的位置序號(hào)(稱數(shù)組元素的下標(biāo))下標(biāo))v 來(lái)辨識(shí)來(lái)辨識(shí),一個(gè)數(shù)組元素便是一個(gè)相對(duì)獨(dú)站的變量一個(gè)數(shù)組元素便是一個(gè)相對(duì)獨(dú)站的變量.v 7.2 一維數(shù)組一維數(shù)組v 7.2.1 表明表明v 表明形式表明形式:類型講明符類型講明符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式;v 例似例似 int mark57;v 存儲(chǔ)形式存儲(chǔ)形式:mark0 mark1

3、 mark2 mark3mark55 mark56v 對(duì)于數(shù)組表明的講明對(duì)于數(shù)組表明的講明v (1)數(shù)組名代表整個(gè)數(shù)組的首地址數(shù)組名代表整個(gè)數(shù)組的首地址.v (2)同一數(shù)組中的全部元素同一數(shù)組中的全部元素,按其下標(biāo)的次序占用按其下標(biāo)的次序占用一段接連的存儲(chǔ)單元一段接連的存儲(chǔ)單元.v (3)數(shù)組元素的下標(biāo)數(shù)組元素的下標(biāo),是元素相對(duì)數(shù)組起始地址的是元素相對(duì)數(shù)組起始地址的偏移量偏移量,所以從所以從0最先次序編號(hào)最先次序編號(hào).v (4)常量表達(dá)式中不能見諒變量常量表達(dá)式中不能見諒變量.v7.2.2 數(shù)組的初始化數(shù)組的初始化v1、 對(duì)全部元素賦初值對(duì)全部元素賦初值. 似似: int a5=3,5,6,8

4、,4; v2、定義時(shí)如果不指定數(shù)組長(zhǎng)度、定義時(shí)如果不指定數(shù)組長(zhǎng)度,那么系統(tǒng)依照初那么系統(tǒng)依照初值個(gè)數(shù)自動(dòng)確定值個(gè)數(shù)自動(dòng)確定. 似似: int a =3,5,6,8,4; 等價(jià)于等價(jià)于 int a5=3,5,6,8,4;v3、能夠只給部分元素賦初值、能夠只給部分元素賦初值.v似似: int a8=3,5,6,8,4;等價(jià)于等價(jià)于int a8=3,5,6,8,4,0,0,0;v4、似果想使一個(gè)數(shù)組中全部元素值為、似果想使一個(gè)數(shù)組中全部元素值為0,能夠?qū)懗赡軌驅(qū)懗?v int a10=0,0,0,0,0,0,0,0,0,0 或或:int a10=0;v7.2.3 數(shù)組的使用數(shù)組的使用v 定義了數(shù)組往

5、后定義了數(shù)組往后,便可使用它了便可使用它了.但不能操縱數(shù)但不能操縱數(shù)組名來(lái)整體引用一個(gè)數(shù)組組名來(lái)整體引用一個(gè)數(shù)組,只能單個(gè)的使用數(shù)組元只能單個(gè)的使用數(shù)組元素素.v例似例似:int mark57;v mark = 90; 錯(cuò)錯(cuò),不能直截了當(dāng)使用數(shù)組不能直截了當(dāng)使用數(shù)組名名v mark0 = 88; 對(duì)對(duì),示意數(shù)組的第一個(gè)元素示意數(shù)組的第一個(gè)元素為為88v mark57 = 60; 錯(cuò)錯(cuò),下標(biāo)越界了下標(biāo)越界了v例例7.2 輸入一個(gè)輸入一個(gè)10位數(shù)位數(shù),將該將該10位數(shù)反向輸出位數(shù)反向輸出,似輸入似輸入1234567890,那么輸出那么輸出0987654321v 7.2.4 數(shù)組的存儲(chǔ)數(shù)組的存儲(chǔ)v

6、數(shù)組變量在內(nèi)存中安排一片接連的存儲(chǔ)單元數(shù)組變量在內(nèi)存中安排一片接連的存儲(chǔ)單元,數(shù)組元素按數(shù)組下標(biāo)從小到大接連存放數(shù)組元素按數(shù)組下標(biāo)從小到大接連存放.例 int a5; 設(shè)a的首地址為1000,數(shù)組a存儲(chǔ)示意圖似右圖.a01000a11004a21008a31012a41016v 7.2.5 數(shù)組的應(yīng)用數(shù)組的應(yīng)用v 例例7.3 操縱數(shù)組來(lái)求解小兔子咨詢題操縱數(shù)組來(lái)求解小兔子咨詢題,求求3年內(nèi)每年內(nèi)每個(gè)月小兔子的總對(duì)數(shù)個(gè)月小兔子的總對(duì)數(shù),要求每半年換一行要求每半年換一行.v 7.3 二維數(shù)組二維數(shù)組v 似何存放下列信息似何存放下列信息:v 如果一個(gè)一維數(shù)組如果一個(gè)一維數(shù)組,它的每一個(gè)元素亦是類型一

7、樣的一它的每一個(gè)元素亦是類型一樣的一維數(shù)組時(shí)維數(shù)組時(shí),便構(gòu)成二維數(shù)組便構(gòu)成二維數(shù)組.v數(shù)組的類型一樣數(shù)組的類型一樣:是指數(shù)組大小、元素類型一樣是指數(shù)組大小、元素類型一樣.v數(shù)組的維數(shù)數(shù)組的維數(shù):是指數(shù)組的下標(biāo)個(gè)數(shù)是指數(shù)組的下標(biāo)個(gè)數(shù),一維數(shù)組元素只有一個(gè)一維數(shù)組元素只有一個(gè)下標(biāo)下標(biāo),二維數(shù)組元素有兩個(gè)下標(biāo)二維數(shù)組元素有兩個(gè)下標(biāo). v 7.3.1 表明表明v 表明形式表明形式:類型講明符類型講明符 數(shù)組名數(shù)組名行數(shù)行數(shù)列數(shù)列數(shù) ;v 例似例似 int a35;v 定義了一個(gè)定義了一個(gè)35的數(shù)組的數(shù)組b,即數(shù)組為即數(shù)組為3行行5列列,可存可存放放15個(gè)整型信息個(gè)整型信息.v 7.3.2 示意形式示意

8、形式v 二維數(shù)組類似于數(shù)學(xué)中的矩陣二維數(shù)組類似于數(shù)學(xué)中的矩陣 ,由行、列組成由行、列組成.v 把全部第一維下標(biāo)一樣的元素稱為行把全部第一維下標(biāo)一樣的元素稱為行,全部第全部第二維下標(biāo)一樣的元素稱為列二維下標(biāo)一樣的元素稱為列.v 數(shù)組數(shù)組a的的6個(gè)元素似下個(gè)元素似下:v a00 a01 a02 v a10 a11 a12v 7.3.3 存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)v 設(shè)有定義設(shè)有定義 int a23; float b32;a00 a01a02a10a11a12第行第行第行b00b01b10b11b20b21第行第行v 7.3.4 初始化初始化v 1、分行給二維數(shù)組賦初值、分行給二維數(shù)組賦初值,每個(gè)花括號(hào)內(nèi)的信

9、息每個(gè)花括號(hào)內(nèi)的信息對(duì)應(yīng)一行元素對(duì)應(yīng)一行元素. 例例:int a23=1,2,3,2,3,4;v 2、將全部初值寫在一個(gè)花括號(hào)內(nèi)、將全部初值寫在一個(gè)花括號(hào)內(nèi),次序給各元素次序給各元素賦值賦值.v 例例:int a23=1,2,3,2,3,4;v 3、只對(duì)部分元素賦值、只對(duì)部分元素賦值,沒有初值對(duì)應(yīng)的元素賦沒有初值對(duì)應(yīng)的元素賦0值或空字符(字符數(shù)組)值或空字符(字符數(shù)組). v 例例:int a23=1,2,4;v 4、給全部元素賦初值或分行初始化時(shí),可不指定第一維大小,其大小系統(tǒng)可依照初值數(shù)目與列數(shù)(第二維)自動(dòng)確定;但必須指定第二維的大小.v例:int a3=1,2,3,4,5,6;vint

10、 a3=0,0,5;v 7.3.5 應(yīng)用應(yīng)用v 例例7.6 用似下的用似下的33矩陣初始化數(shù)組矩陣初始化數(shù)組a33,求矩求矩陣的轉(zhuǎn)置矩陣陣的轉(zhuǎn)置矩陣.v1 23147v4 56258v7 89369v7.4 字符數(shù)組與字符串字符數(shù)組與字符串v7.4.1 定義與初始化定義與初始化vchar ch7=s,t,u,d,e,n,t;vchar ch =s,t,u,d,e,n,t;v7.4.2 字符串的概念及存儲(chǔ)字符串的概念及存儲(chǔ)v字符串字符串: 如果干有效字符的序列;可見諒轉(zhuǎn)義字符、如果干有效字符的序列;可見諒轉(zhuǎn)義字符、ASC碼表中的字符;碼表中的字符;v形式為形式為: 用雙引號(hào)括起來(lái)的字符序列;用雙

11、引號(hào)括起來(lái)的字符序列; 例例:“I am a student.” “Hello ”“a5=” “fn”v字符串的結(jié)束標(biāo)記字符串的結(jié)束標(biāo)記:0.v注注:C語(yǔ)言無(wú)字符串類型語(yǔ)言無(wú)字符串類型,字符串是存放在字符數(shù)組字符串是存放在字符數(shù)組中的中的.v7.4.3 字符串初始化數(shù)組字符串初始化數(shù)組vchar ch9=“student”; 字符串和數(shù)組長(zhǎng)字符串和數(shù)組長(zhǎng)度?度?v講明講明:v1、字符串結(jié)束標(biāo)記、字符串結(jié)束標(biāo)記0僅用于推斷字符串是僅用于推斷字符串是否結(jié)束否結(jié)束,輸出字符串時(shí)不大概輸出輸出字符串時(shí)不大概輸出.v2、在對(duì)有確定大小的字符數(shù)組用字符串初、在對(duì)有確定大小的字符數(shù)組用字符串初始化時(shí)始化時(shí),

12、數(shù)組長(zhǎng)度應(yīng)大于字符串長(zhǎng)度數(shù)組長(zhǎng)度應(yīng)大于字符串長(zhǎng)度.s t u d e n t 0v 3、在初始化一個(gè)一維字符數(shù)組時(shí),能夠省略花括號(hào).似: char s8=student;v 4、不能直截了當(dāng)將字符串賦值給字符數(shù)組名.下面的操縱是錯(cuò)誤的. s=”student”;v7.4.4 輸入輸出輸入輸出vprintf()函數(shù)函數(shù)v例例:char st15=“I am a boy!”;vprintf(“st=%s,%c,%c”,st,st3,st7);v咨詢咨詢:似何輸出似何輸出“Hello,C!”v puts()函數(shù):將字符數(shù)組str中見諒的字符串或str所指示的字符串輸出,同時(shí)將0變形成換行符. v 例

13、:char ch=student;v puts(ch); v puts(Hello);v scanf()函數(shù):v 例:char st15;vscanf(“%s”,st);v 但:scanf(“%s”,&st);是錯(cuò)誤的,因?yàn)閟t便代表了該字符數(shù)組的首地址.v 用scanf輸入的字符串中不能含有空格.v 例:How do you do v gets()函數(shù):從鍵盤讀入一個(gè)字符串到str中,同時(shí)自動(dòng)在末尾加字符串結(jié)束標(biāo)記符0.輸入字符串時(shí)以回車結(jié)束輸入,這種方式能夠讀入含空格符的字符串.v 例:char s14;v gets(s);v 如果輸入的字符串為: How do you do?v

14、那么s的內(nèi)容為: How do you do?0v7.4.5 字符串操作函數(shù)字符串操作函數(shù)v1. 字符串拷貝函數(shù)字符串拷貝函數(shù):strcpy()v調(diào)用標(biāo)準(zhǔn)調(diào)用標(biāo)準(zhǔn):strcpy(d_str,s_str);v功能功能:將源字符串將源字符串s_str復(fù)制到意圖字符數(shù)組復(fù)制到意圖字符數(shù)組d_str中中.v講明講明:d_str的長(zhǎng)度應(yīng)不小于的長(zhǎng)度應(yīng)不小于s_str的長(zhǎng)度的長(zhǎng)度,d_str必須必須寫成數(shù)組名形式寫成數(shù)組名形式.s_str能夠是字符串常量或字符數(shù)能夠是字符串常量或字符數(shù)組名形式組名形式.v例例:char s110,s28=“student”,s36;v strcpy(s1,s2);strc

15、py(s3,okey);v strcpy(s1,s2,5);v 2.字符串毗鄰函數(shù):strcat()v 調(diào)用標(biāo)準(zhǔn):strcat(d_str,s_str);v 功能:將s_str連同0毗鄰到d_str的末了一個(gè)字符(非0字符)背面.結(jié)論放在d_str中.v 例:char s114=“I am a”;v char s25=“boy.”;v strcat(s1,s2);v 毗鄰前:s1:v s2:v 毗鄰后:s1:I a m a 0b o y . 0I a m a b o y . 0v 3.字符串對(duì)比函數(shù)strcmp()v 調(diào)用標(biāo)準(zhǔn):strcmp(str1,str2);v 功能:如果str1=str2,那么函數(shù)返回值為0;v 如果str1str2,那么函數(shù)返回值為正整數(shù);v如果str1str2,那么函數(shù)值返回為負(fù)整數(shù).v 對(duì)比法那么:v 1、不是對(duì)比長(zhǎng)短,而是對(duì)比ASCII碼的大小.兩個(gè)字符串自左到右追個(gè)字符對(duì)比,直到表現(xiàn)差別字符或遇到0為止.v 2、似字符全部一樣,那么兩個(gè)字符串相等;v 3、如果表現(xiàn)差別字符,那么遇到的第一對(duì)差別字符的ASC大者為大.將ASCII碼之差做為對(duì)比結(jié)論由函數(shù)值帶回.v

溫馨提示

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

評(píng)論

0/150

提交評(píng)論