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

下載本文檔

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

文檔簡介

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

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

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

4、,4; v2、定義時如果不指定數(shù)組長度、定義時如果不指定數(shù)組長度,那么系統(tǒng)依照初那么系統(tǒng)依照初值個數(shù)自動確定值個數(shù)自動確定. 似似: int a =3,5,6,8,4; 等價于等價于 int a5=3,5,6,8,4;v3、能夠只給部分元素賦初值、能夠只給部分元素賦初值.v似似: int a8=3,5,6,8,4;等價于等價于int a8=3,5,6,8,4,0,0,0;v4、似果想使一個數(shù)組中全部元素值為、似果想使一個數(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ù)組名來整體引用一個數(shù)組組名來整體引用一個數(shù)組,只能單個的使用數(shù)組元只能單個的使用數(shù)組元素素.v例似例似:int mark57;v mark = 90; 錯錯,不能直截了當(dāng)使用數(shù)組不能直截了當(dāng)使用數(shù)組名名v mark0 = 88; 對對,示意數(shù)組的第一個元素示意數(shù)組的第一個元素為為88v mark57 = 60; 錯錯,下標(biāo)越界了下標(biāo)越界了v例例7.2 輸入一個輸入一個10位數(shù)位數(shù),將該將該10位數(shù)反向輸出位數(shù)反向輸出,似輸入似輸入1234567890,那么輸出那么輸出0987654321v 7.2.4 數(shù)組的存儲數(shù)組的存儲v

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

7、樣的一它的每一個元素亦是類型一樣的一維數(shù)組時維數(shù)組時,便構(gòu)成二維數(shù)組便構(gòu)成二維數(shù)組.v數(shù)組的類型一樣數(shù)組的類型一樣:是指數(shù)組大小、元素類型一樣是指數(shù)組大小、元素類型一樣.v數(shù)組的維數(shù)數(shù)組的維數(shù):是指數(shù)組的下標(biāo)個數(shù)是指數(shù)組的下標(biāo)個數(shù),一維數(shù)組元素只有一個一維數(shù)組元素只有一個下標(biāo)下標(biāo),二維數(shù)組元素有兩個下標(biāo)二維數(shù)組元素有兩個下標(biāo). v 7.3.1 表明表明v 表明形式表明形式:類型講明符類型講明符 數(shù)組名數(shù)組名行數(shù)行數(shù)列數(shù)列數(shù) ;v 例似例似 int a35;v 定義了一個定義了一個35的數(shù)組的數(shù)組b,即數(shù)組為即數(shù)組為3行行5列列,可存可存放放15個整型信息個整型信息.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個元素似下個元素似下:v a00 a01 a02 v a10 a11 a12v 7.3.3 存儲結(jié)構(gòu)存儲結(jié)構(gòu)v 設(shè)有定義設(shè)有定義 int a23; float b32;a00 a01a02a10a11a12第行第行第行b00b01b10b11b20b21第行第行v 7.3.4 初始化初始化v 1、分行給二維數(shù)組賦初值、分行給二維數(shù)組賦初值,每個花括號內(nèi)的信

9、息每個花括號內(nèi)的信息對應(yīng)一行元素對應(yīng)一行元素. 例例:int a23=1,2,3,2,3,4;v 2、將全部初值寫在一個花括號內(nèi)、將全部初值寫在一個花括號內(nèi),次序給各元素次序給各元素賦值賦值.v 例例:int a23=1,2,3,2,3,4;v 3、只對部分元素賦值、只對部分元素賦值,沒有初值對應(yīng)的元素賦沒有初值對應(yīng)的元素賦0值或空字符(字符數(shù)組)值或空字符(字符數(shù)組). v 例例:int a23=1,2,4;v 4、給全部元素賦初值或分行初始化時,可不指定第一維大小,其大小系統(tǒng)可依照初值數(shù)目與列數(shù)(第二維)自動確定;但必須指定第二維的大小.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 字符串的概念及存儲字符串的概念及存儲v字符串字符串: 如果干有效字符的序列;可見諒轉(zhuǎn)義字符、如果干有效字符的序列;可見諒轉(zhuǎn)義字符、ASC碼表中的字符;碼表中的字符;v形式為形式為: 用雙引號括起來的字符序列;用雙

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

12、數(shù)組長度應(yīng)大于字符串長度數(shù)組長度應(yīng)大于字符串長度.s t u d e n t 0v 3、在初始化一個一維字符數(shù)組時,能夠省略花括號.似: char s8=student;v 4、不能直截了當(dāng)將字符串賦值給字符數(shù)組名.下面的操縱是錯誤的. 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所指示的字符串輸出,同時將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);是錯誤的,因?yàn)閟t便代表了該字符數(shù)組的首地址.v 用scanf輸入的字符串中不能含有空格.v 例:How do you do v gets()函數(shù):從鍵盤讀入一個字符串到str中,同時自動在末尾加字符串結(jié)束標(biāo)記符0.輸入字符串時以回車結(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的長度應(yīng)不小于的長度應(yīng)不小于s_str的長度的長度,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的末了一個字符(非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.字符串對比函數(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 對比法那么:v 1、不是對比長短,而是對比ASCII碼的大小.兩個字符串自左到右追個字符對比,直到表現(xiàn)差別字符或遇到0為止.v 2、似字符全部一樣,那么兩個字符串相等;v 3、如果表現(xiàn)差別字符,那么遇到的第一對差別字符的ASC大者為大.將ASCII碼之差做為對比結(jié)論由函數(shù)值帶回.v

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論