![C語言程序設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/54da63436aaf025e0746fcd21ea14e45/54da63436aaf025e0746fcd21ea14e451.gif)
![C語言程序設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/54da63436aaf025e0746fcd21ea14e45/54da63436aaf025e0746fcd21ea14e452.gif)
![C語言程序設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/54da63436aaf025e0746fcd21ea14e45/54da63436aaf025e0746fcd21ea14e453.gif)
![C語言程序設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/54da63436aaf025e0746fcd21ea14e45/54da63436aaf025e0746fcd21ea14e454.gif)
![C語言程序設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/54da63436aaf025e0746fcd21ea14e45/54da63436aaf025e0746fcd21ea14e455.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《提高篇》之第七講數(shù)組數(shù)信學(xué)院張熠C語言程序設(shè)計(jì)7.1基本概念7.1.1數(shù)組的引入例7.1
求08給水排水1、2班同學(xué)C程序設(shè)計(jì)期末考試的平均成績和標(biāo)準(zhǔn)差。標(biāo)準(zhǔn)差公式如下:數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系分析08給水排水共57名學(xué)生,假設(shè)成績?yōu)檎麛?shù),則需要定義57個int型變量來保存成績。這57個int型變量具有相同的功能和相同的操作,是否能夠通過一種新的命名方式來統(tǒng)一命名該57個int型變量?數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.1.2數(shù)組的概念數(shù)組:具有相同類型的數(shù)據(jù)組成的序列,是有序集合。數(shù)組元素:由其所在的位置序號(稱數(shù)組元素的下標(biāo))來區(qū)分,一個數(shù)組元素就是一個相對獨(dú)立的變量。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2一維數(shù)組7.2.1聲明聲明形式:類型說明符
數(shù)組名[常量表達(dá)式];例如
intmark[57];存儲形式:mark[0]mark[1]mark[2]mark[3]……mark[55]mark[56]數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系關(guān)于數(shù)組聲明的說明(1)數(shù)組名代表整個數(shù)組的首地址。(2)同一數(shù)組中的所有元素,按其下標(biāo)的順序占用一段連續(xù)的存儲單元。(3)數(shù)組元素的下標(biāo),是元素相對于數(shù)組起始地址的偏移量,所以從0開始順序編號。(4)常量表達(dá)式中不能包含變量。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.2數(shù)組的初始化1、對全部元素賦初值。如:inta[5]={3,5,6,8,4};
2、定義時若不指定數(shù)組長度,則系統(tǒng)根據(jù)初值個數(shù)自動確定。如: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、如果想使一個數(shù)組中全部元素值為0,可以寫成:
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ù)組名來整體引用一個數(shù)組,只能單個的使用數(shù)組元素。例如:intmark[57];mark=90;//錯,不能直接使用數(shù)組名mark[0]=88;//對,表示數(shù)組的第一個元素為88mark[57]=60;//錯,下標(biāo)越界了數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系例7.2
輸入一個10位數(shù),將該10位數(shù)反向輸出,如輸入1234567890,則輸出0987654321數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.2.4數(shù)組的存儲數(shù)組變量在內(nèi)存中分配一片連續(xù)的存儲單元,數(shù)組元素按數(shù)組下標(biāo)從小到大連續(xù)存放。例
inta[5];設(shè)a的首地址為1000,數(shù)組a存儲示意圖如右圖。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ù)組來求解小兔子問題,求3年內(nèi)每個月小兔子的總對數(shù),要求每半年換一行。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3二維數(shù)組如何存放下列數(shù)據(jù):數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系若一個一維數(shù)組,它的每一個元素亦是類型相同的一維數(shù)組時,便構(gòu)成二維數(shù)組。數(shù)組的類型相同:是指數(shù)組大小、元素類型相同。數(shù)組的維數(shù):是指數(shù)組的下標(biāo)個數(shù),一維數(shù)組元素只有一個下標(biāo),二維數(shù)組元素有兩個下標(biāo)。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.1聲明聲明形式:類型說明符
數(shù)組名[行數(shù)][列數(shù)];例如
inta[3][5];
定義了一個3×5的數(shù)組b,即數(shù)組為3行5列,可存放15個整型數(shù)據(jù)。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.3.2表示形式
二維數(shù)組類似于數(shù)學(xué)中的矩陣,由行、列組成。
把所有第一維下標(biāo)相同的元素稱為行,所有第二維下標(biāo)相同的元素稱為列。數(shù)組a的6個元素如下:
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存儲結(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ù)組賦初值,每個花括號內(nèi)的數(shù)據(jù)對應(yīng)一行元素。例:inta[2][3]={{1,2,3},{2,3,4}};2、將所有初值寫在一個花括號內(nèi),順序給各元素賦值。例:inta[2][3]={1,2,3,2,3,4};3、只對部分元素賦值,沒有初值對應(yīng)的元素賦0值或空字符(字符數(shù)組)。 例:inta[2][3]={{1,2},{4}};數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系4、給全部元素賦初值或分行初始化時,可不指定第一維大小,其大小系統(tǒng)可根據(jù)初值數(shù)目與列數(shù)(第二維)自動確定;但必須指定第二維的大小。
例: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字符串的概念及存儲字符串:若干有效字符的序列;可包含轉(zhuǎn)義字符、ASCⅡ碼表中的字符;形式為:用雙引號括起來的字符序列;例:“Iamastudent.”
“Hello”
“a[5]=”“%f\n”字符串的結(jié)束標(biāo)志:‘\0’。注:C語言無字符串類型,字符串是存放在字符數(shù)組中的。數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系7.4.3字符串初始化數(shù)組charch[9]={“student”};字符串和數(shù)組長度?說明:1、字符串結(jié)束標(biāo)志'\0'僅用于判斷字符串是否結(jié)束,輸出字符串時不會輸出。2、在對有確定大小的字符數(shù)組用字符串初始化時,數(shù)組長度應(yīng)大于字符串長度。student\0數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系3、在初始化一個一維字符數(shù)組時,可以省略花括號。如:chars[8]="student";4、不能直接將字符串賦值給字符數(shù)組名。下面的操作是錯誤的。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]);問:如何輸出“Hello,C!”數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系puts()函數(shù):將字符數(shù)組str中包含的字符串或str所指示的字符串輸出,同時將‘\0’轉(zhuǎn)換成換行符。
例:charch[]="student";
puts(ch);
puts("Hello");數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系scanf()函數(shù):例:charst[15];
scanf(“%s”,st);但:scanf(“%s”,&st);是錯誤的,因?yàn)閟t就代表了該字符數(shù)組的首地址。用scanf輸入的字符串中不能含有空格。例:Howdoyoudo↙數(shù)學(xué)與信息工程學(xué)院計(jì)算機(jī)系gets()函數(shù):從鍵盤讀入一個字符串到str中,并自動在末尾加字符串結(jié)束標(biāo)志符’\0’。輸入字符串時以回車結(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中。說明:d_str的長度應(yīng)不小于s_str的長度,d_str必須寫成數(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的最后一個字符(非‘\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、不是比較長短,而是比較ASCII碼的大小。兩個字符串自左至右逐個字符比較,直到出現(xiàn)不同字符或遇到‘\0’為止。2、如字符全部相同,則兩個字符串相等;3、若出現(xiàn)不同字符,則遇到的第一對不同字符的ASCⅡ大者為大。將ASCII碼之差作為比較結(jié)果由函數(shù)值帶回。比較兩字符串是否相等一般用以下形式:
if(strcmp(str1,str2)==0){…};而if(str1==str2){…
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年岳陽貨運(yùn)從業(yè)資格考試
- 2025年晉城貨運(yùn)資格證考試有哪些項(xiàng)目
- 2025年南京貨運(yùn)資格考試答案
- 2025年天津貨運(yùn)從業(yè)資格證考試題技巧答案詳解
- 電梯維護(hù)保養(yǎng)合同(2篇)
- 電力用戶協(xié)議(2篇)
- 2025年市婦聯(lián)執(zhí)委會議上的工作報(bào)告
- 浙教版數(shù)學(xué)七年級上冊2.5《有理數(shù)的乘方》聽評課記錄1
- 徐州報(bào)關(guān)委托協(xié)議
- 幼兒園后勤總務(wù)工作計(jì)劃范本
- 暑期預(yù)習(xí)高一生物必修二知識點(diǎn)
- 醫(yī)院人體器官捐獻(xiàn)及獲取流程
- 結(jié)腸造瘺還納手術(shù)配合
- 2024年云南省中考物理真題含解析
- 2025年中國艾草行業(yè)市場現(xiàn)狀、發(fā)展概況、未來前景分析報(bào)告
- (閩教版)六年級下英語教學(xué)計(jì)劃
- 人教版英語高考試卷與參考答案(2024年)
- 河砂、碎石生產(chǎn)質(zhì)量保證措施方案
- 三位數(shù)除以兩位數(shù)過關(guān)練習(xí)口算題大全附答案
- 紅樓夢服飾文化
- 湖北省2024年村干部定向考試真題
評論
0/150
提交評論