版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《提高篇》之第七講數(shù)組數(shù)信學(xué)院張熠C語(yǔ)言程序設(shè)計(jì)7.1基本概念7.1.1數(shù)組的引入例7.1
求08給水排水1、2班同學(xué)C程序設(shè)計(jì)期末考試的平均成績(jī)和標(biāo)準(zhǔn)差。標(biāo)準(zhǔn)差公式如下:數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系分析08給水排水共57名學(xué)生,假設(shè)成績(jī)?yōu)檎麛?shù),則需要定義57個(gè)int型變量來(lái)保存成績(jī)。這57個(gè)int型變量具有相同的功能和相同的操作,是否能夠通過(guò)一種新的命名方式來(lái)統(tǒng)一命名該57個(gè)int型變量?數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.1.2數(shù)組的概念數(shù)組:具有相同類(lèi)型的數(shù)據(jù)組成的序列,是有序集合。數(shù)組元素:由其所在的位置序號(hào)(稱(chēng)數(shù)組元素的下標(biāo))來(lái)區(qū)分,一個(gè)數(shù)組元素就是一個(gè)相對(duì)獨(dú)立的變量。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2一維數(shù)組7.2.1聲明聲明形式:類(lèi)型說(shuō)明符
數(shù)組名[常量表達(dá)式];例如
intmark[57];存儲(chǔ)形式:mark[0]mark[1]mark[2]mark[3]……mark[55]mark[56]數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系關(guān)于數(shù)組聲明的說(shuō)明(1)數(shù)組名代表整個(gè)數(shù)組的首地址。(2)同一數(shù)組中的所有元素,按其下標(biāo)的順序占用一段連續(xù)的存儲(chǔ)單元。(3)數(shù)組元素的下標(biāo),是元素相對(duì)于數(shù)組起始地址的偏移量,所以從0開(kāi)始順序編號(hào)。(4)常量表達(dá)式中不能包含變量。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.2數(shù)組的初始化1、對(duì)全部元素賦初值。如:inta[5]={3,5,6,8,4};
2、定義時(shí)若不指定數(shù)組長(zhǎng)度,則系統(tǒng)根據(jù)初值個(gè)數(shù)自動(dòng)確定。如:inta[]={3,5,6,8,4};
等價(jià)于inta[5]={3,5,6,8,4};3、可以只給部分元素賦初值。如:inta[8]={3,5,6,8,4};等價(jià)于inta[8]={3,5,6,8,4,0,0,0};4、如果想使一個(gè)數(shù)組中全部元素值為0,可以寫(xiě)成:
inta[10]={0,0,0,0,0,0,0,0,0,0}
或:inta[10]={0};數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.3數(shù)組的使用定義了數(shù)組以后,就可使用它了。但不能利用數(shù)組名來(lái)整體引用一個(gè)數(shù)組,只能單個(gè)的使用數(shù)組元素。例如:intmark[57];mark=90;//錯(cuò),不能直接使用數(shù)組名mark[0]=88;//對(duì),表示數(shù)組的第一個(gè)元素為88mark[57]=60;//錯(cuò),下標(biāo)越界了數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系例7.2
輸入一個(gè)10位數(shù),將該10位數(shù)反向輸出,如輸入1234567890,則輸出0987654321數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.4數(shù)組的存儲(chǔ)數(shù)組變量在內(nèi)存中分配一片連續(xù)的存儲(chǔ)單元,數(shù)組元素按數(shù)組下標(biāo)從小到大連續(xù)存放。例
inta[5];設(shè)a的首地址為1000,數(shù)組a存儲(chǔ)示意圖如右圖。a[0]1000a[1]1004a[2]1008a[3]1012a[4]1016數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.5數(shù)組的應(yīng)用例7.3利用數(shù)組來(lái)求解小兔子問(wèn)題,求3年內(nèi)每個(gè)月小兔子的總對(duì)數(shù),要求每半年換一行。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3二維數(shù)組如何存放下列數(shù)據(jù):數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系若一個(gè)一維數(shù)組,它的每一個(gè)元素亦是類(lèi)型相同的一維數(shù)組時(shí),便構(gòu)成二維數(shù)組。數(shù)組的類(lèi)型相同:是指數(shù)組大小、元素類(lèi)型相同。數(shù)組的維數(shù):是指數(shù)組的下標(biāo)個(gè)數(shù),一維數(shù)組元素只有一個(gè)下標(biāo),二維數(shù)組元素有兩個(gè)下標(biāo)。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.1聲明聲明形式:類(lèi)型說(shuō)明符
數(shù)組名[行數(shù)][列數(shù)];例如
inta[3][5];
定義了一個(gè)3×5的數(shù)組b,即數(shù)組為3行5列,可存放15個(gè)整型數(shù)據(jù)。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.2表示形式
二維數(shù)組類(lèi)似于數(shù)學(xué)中的矩陣,由行、列組成。
把所有第一維下標(biāo)相同的元素稱(chēng)為行,所有第二維下標(biāo)相同的元素稱(chēng)為列。數(shù)組a的6個(gè)元素如下:
a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.3存儲(chǔ)結(jié)構(gòu)設(shè)有定義inta[2][3];floatb[3][2];a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]第0行第1行第1行b[0][0]b[0][1]b[1][0]b[1][1]b[2][0]b[2][1]第0行第2行數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.4初始化1、分行給二維數(shù)組賦初值,每個(gè)花括號(hào)內(nèi)的數(shù)據(jù)對(duì)應(yīng)一行元素。例:inta[2][3]={{1,2,3},{2,3,4}};2、將所有初值寫(xiě)在一個(gè)花括號(hào)內(nèi),順序給各元素賦值。例:inta[2][3]={1,2,3,2,3,4};3、只對(duì)部分元素賦值,沒(méi)有初值對(duì)應(yīng)的元素賦0值或空字符(字符數(shù)組)。 例:inta[2][3]={{1,2},{4}};數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系4、給全部元素賦初值或分行初始化時(shí),可不指定第一維大小,其大小系統(tǒng)可根據(jù)初值數(shù)目與列數(shù)(第二維)自動(dòng)確定;但必須指定第二維的大小。
例:inta[][3]={1,2,3,4,5,6};
inta[][3]={{0},{0,5}};數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.5應(yīng)用例7.6用如下的3×3矩陣初始化數(shù)組a[3][3],求矩陣的轉(zhuǎn)置矩陣。
1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4字符數(shù)組與字符串7.4.1定義與初始化charch[7]={‘s’,’t’,’u’,’d’,’e’,’n’,’t’};charch[]={‘s’,’t’,’u’,’d’,’e’,’n’,’t’};數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4.2字符串的概念及存儲(chǔ)字符串:若干有效字符的序列;可包含轉(zhuǎn)義字符、ASCⅡ碼表中的字符;形式為:用雙引號(hào)括起來(lái)的字符序列;例:“Iamastudent.”
“Hello”
“a[5]=”“%f\n”字符串的結(jié)束標(biāo)志:‘\0’。注:C語(yǔ)言無(wú)字符串類(lèi)型,字符串是存放在字符數(shù)組中的。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4.3字符串初始化數(shù)組charch[9]={“student”};字符串和數(shù)組長(zhǎng)度?說(shuō)明:1、字符串結(jié)束標(biāo)志'\0'僅用于判斷字符串是否結(jié)束,輸出字符串時(shí)不會(huì)輸出。2、在對(duì)有確定大小的字符數(shù)組用字符串初始化時(shí),數(shù)組長(zhǎng)度應(yīng)大于字符串長(zhǎng)度。student\0數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系3、在初始化一個(gè)一維字符數(shù)組時(shí),可以省略花括號(hào)。如:chars[8]="student";4、不能直接將字符串賦值給字符數(shù)組名。下面的操作是錯(cuò)誤的。s=”student”;數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4.4輸入輸出printf()函數(shù)例:charst[15]=“Iamaboy!”;
printf(“st=%s,%c,%c”,st,st[3],st[7]);問(wèn):如何輸出“Hello,C!”數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系puts()函數(shù):將字符數(shù)組str中包含的字符串或str所指示的字符串輸出,同時(shí)將‘\0’轉(zhuǎn)換成換行符。
例:charch[]="student";
puts(ch);
puts("Hello");數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系scanf()函數(shù):例:charst[15];
scanf(“%s”,st);但:scanf(“%s”,&st);是錯(cuò)誤的,因?yàn)閟t就代表了該字符數(shù)組的首地址。用scanf輸入的字符串中不能含有空格。例:Howdoyoudo↙數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系gets()函數(shù):從鍵盤(pán)讀入一個(gè)字符串到str中,并自動(dòng)在末尾加字符串結(jié)束標(biāo)志符’\0’。輸入字符串時(shí)以回車(chē)結(jié)束輸入,這種方式可以讀入含空格符的字符串。例:chars[14];
gets(s);若輸入的字符串為:Howdoyoudo?↙則s的內(nèi)容為:Howdoyoudo?\0數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4.5字符串處理函數(shù)1.字符串拷貝函數(shù):strcpy()調(diào)用格式:strcpy(d_str,s_str);功能:將源字符串s_str復(fù)制到目標(biāo)字符數(shù)組d_str中。說(shuō)明:d_str的長(zhǎng)度應(yīng)不小于s_str的長(zhǎng)度,d_str必須寫(xiě)成數(shù)組名形式。s_str可以是字符串常量或字符數(shù)組名形式。例:chars1[10],s2[8]=“student”,s3[6];strcpy(s1,s2);strcpy(s3,"okey");
strcpy(s1,s2,5);數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系2.字符串連接函數(shù):strcat()調(diào)用格式:strcat(d_str,s_str);功能:將s_str連同‘\0’連接到d_str的最后一個(gè)字符(非‘\0’字符)后面。結(jié)果放在d_str中。例:chars1[14]={“Iama”}; chars2[5]=“boy.”; strcat(s1,s2);連接前:s1:s2:連接后:s1:Iama\0boy.\0Iamaboy.\0數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系3.字符串比較函數(shù)strcmp()調(diào)用格式:strcmp(str1,str2);功能:若str1=str2,則函數(shù)返回值為0; 若str1>str2,則函數(shù)返回值為正整數(shù); 若str1<str2,則函數(shù)值返回為負(fù)整數(shù)。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系比較規(guī)則:1、不是比較長(zhǎng)短,而是比較ASCII碼的大小。兩個(gè)字符串自左至右逐個(gè)字符比較,直到出現(xiàn)不同字符或遇到‘\0’為止。2、如字符全部相同,則兩個(gè)字符串相等;3、若出現(xiàn)不同字符,則遇到的第一對(duì)不同字符的ASCⅡ大者為大。將ASCII碼之差作為比較結(jié)果由函數(shù)值帶回。比較兩字符串是否相等一般用以下形式:
if(strcmp(str1,str2)==0){…};而if(str1==str2){…
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 濰坊2024年山東濰坊面向駐濰部隊(duì)隨軍家屬招聘初級(jí)綜合類(lèi)崗位工作人員15人筆試歷年參考題庫(kù)附帶答案詳解
- 江門(mén)廣東江門(mén)市福利彩票發(fā)行中心招聘合同制工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 武漢2025年湖北武漢市教育系統(tǒng)專(zhuān)項(xiàng)招聘教師679人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年粵教版三年級(jí)語(yǔ)文上冊(cè)月考試卷
- 2025年蘇人新版九年級(jí)歷史下冊(cè)月考試卷
- 2025年度個(gè)人法律咨詢(xún)服務(wù)合同12篇
- 2025年人教新課標(biāo)九年級(jí)歷史上冊(cè)月考試卷含答案
- 2025個(gè)人蝦池承包養(yǎng)殖資源整合與開(kāi)發(fā)合同3篇
- 2025年粵教滬科版九年級(jí)生物下冊(cè)月考試卷
- 二零二五年度教育信息化平臺(tái)建設(shè)與運(yùn)營(yíng)合同5篇
- 紀(jì)委辦案安全培訓(xùn)課件
- 超市連鎖行業(yè)招商策劃
- 醫(yī)藥高等數(shù)學(xué)智慧樹(shù)知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 初中英語(yǔ)-Unit2 My dream job(writing)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 【公司利潤(rùn)質(zhì)量研究國(guó)內(nèi)外文獻(xiàn)綜述3400字】
- 工行全國(guó)地區(qū)碼
- 新疆2022年中考物理試卷及答案
- 地暖工程監(jiān)理實(shí)施細(xì)則
- 頂部板式吊耳計(jì)算HGT-20574-2018
- 《內(nèi)證觀察筆記》
評(píng)論
0/150
提交評(píng)論