• /  58
  • 下載費用: 9.90積分  

C語言從入門到精通教學課件作者第2版PPT第8章 數組.ppt

'C語言從入門到精通教學課件作者第2版PPT第8章 數組.ppt'
數組1、一維數組2、二維數組3、字符數組4、多維數組5、數組的排序方法6、字符串處理函數7、數 組 應 用一維數組一維數組的定義和引用?一維數組的定義一維數組是用以存儲一維數列中數據的集合。一維數組的一般形式如下:類型說明符 數組標識符[常量表達式];?類型說明符表示數組中的所有元素類型。?數組標識符就是這個數組型變量的名稱,命名規則與變量名一致。?常量表達式定義了數組中存放的數據元素的個數,即數組長度。例如iArray[5],5表示數組中有5個元素,下標從0開始,到4結束。例如定義一個數組:int iArray[5];代碼中的int為數組元素的類型,而iArray表示的是數組變量名,括號中的5表示的是數組中包含的元素個數。一維數組的定義和引用?一維數組的引用數組定義完成后就要使用該數組,可以通過引用數組元素的方式,使用該數組中的元素。數組元素的表示的一般形式如下:數組標識符[下標]例如引用一個數組變量iArray中的第3個變量:iArray[2];iArray是數組變量的名稱,2為數組的下標。有的讀者會問:“為什么使用第3個數組元素,而使用的數組下標是2呢?”。在上面介紹過數組的下標是從0開始的,也就是說下標為0表示的是第一個數組元素。#includeint main(){ int iArray[5], index, temp; /*定義數組及變量為基本整型*/ printf("Please enter a Array:\n"); for (index= 0; index< 5; index++)/*逐個輸入數組元素*/ { scanf("%d", &iArray[index]); } printf("Original Array is:\n"); for (index = 0; index< 5; index++)/*顯示數組中的元素*/ { printf("%d ", iArray[index]); } printf("\n"); for (index= 0; index < 2; index++)/*將數組中元素的前后位置互換*/ { temp = iArray[index]; /*元素位置互換的過程借助中間變量temp*/ iArray[index] = iArray[4-index]; iArray[4-index] = temp; }【實例8.1】 使用數組保存數據。 printf("Now Array is:\n"); for (index = 0; index< 5; index++)/*將轉換后的數組再次輸出*/ { printf("%d ", iArray[index]); } printf("\n"); return 0;}一維數組初始化對一維數組的初始化可以用以下幾種方法實現:?在定義數組時可直接對數組元素賦初值例如:int i,iArray[6]={1,2,3,4,5,6};該方法是將數組中的元素值一次放在一對花括號中。經過上面的定義和初始化之后,數組中的元素iArray[0]=1,iArray[1]=2,iArray[2]=3,iArray[3]=4,iArray[4]=5,iArray[5]=6。#includeint main(){ int index; /*定義循環控制變量*/ intiArray[6]={0,1,2,3,4,5}; /*対數組中的元素賦值*/ for(index=0;index<6;index+=2) /*輸出數組中的元素*/ { printf("%d\n",iArray[index]); } return 0;}【實例8.2】 初始化一維數組。在本實例中,對定義的數組變量進行初始化操作,然后隔位進行輸出。一維數組初始化?可以只給一部分元素賦值,未賦值的部分元素值為0第二種為數組初始化的方式是對其中一部分元素進行賦值,例如:int iArray[6]={0,1,2};數組變量iArray包含6個元素,不過在初始化時只給出了3個值。于是數組中前3個元素的值對應括號中給出的值,在數組中沒有得到值的元素被默認賦值為0。#includeint main(){ int index; int iArray[6]={1,2,3}; /*對數組中部分元素賦初值*/ for(index=0;index<6;index++)/*輸出數組中的所有元素*/ { printf("%d\n",iArray[index]); } return 0;}【實例8.3】 賦值數組中的部分元素。在本實例中,定義數組并且為其進行初始化賦值,但只為一部分元素賦值,然后將數組中的所有元素進行輸出,觀察輸出的元素數值。一維數組初始化?在對全部數組元素賦初值時可以不指定數組長度之前在定義數組時,都在數組變量后指定了數組的元素個數。C語言還允許在定義數組時不必指定長度,例如:int iArray[]={1,2,3,4};上面的語句,大括號中有4個元素,系統就會根據給定的初始化元素值的個數來定義數組的長度,因此該數組變量的長度為4。#includeint main(){ int index; int iArray[]={1,2,3,4,5}; /*不指定元素個數進行初始化*/ for(index=0;index<5;index++) { printf("%d\n",iArray[index]); /*使用for循環隔位輸出數組中的元素*/ } return 0;}【實例8.4】 不指定數組的元素個數。在本實例中,定義數組變量時不指定數組的元素個數,直接對其進行初始化操作,然后將其中的元素值進行輸出顯示。一維數組應用例如,在一個學校的班級中會有很多學生,此時就可以使用數組來保存這些學生的姓名,以便進行管理。#includeint main(){ char* ArrayName[5]; /*字符指針數組*/ int index; /*循環控制變量*/ ArrayName[0]="WangJiasheng";/*為數組元素賦值*/ ArrayName[1]="LiuWen"; ArrayName[2]="SuYuqun";【實例8.5】 使用數組保存學生姓名。在本實例中,要使用數組保存學生的姓名,那么數組中的每一個元素都應該是可以保存字符串的類型,這里使用字符指針類型。 ArrayName[3]="LeiYu"; ArrayName[4]="ZhangMeng"; for(index=0;index<5;index++)/*使用循環顯示名稱*/ { printf("%s\n",ArrayName[index]); } return 0;}二維數組二維數組的定義和引用1.二維數組的定義。省略部分。cludeint main(){ char str1[30],str2[30]; printf("輸入目的字符串:\n"); gets(str1); /*輸入目的字符*/ printf("輸入源字符串:\n"); gets(str2); /*輸入源字符串*/ printf("輸出目的字符串:\n"); puts(str1); /*輸出目的字符*/ printf("輸出源字符串:\n"); puts(str2); /*輸出源字符串*/ strcpy(str1,str2); /*調用strcpy函數實現字符串復制*/ printf("調用strcpy函數進行字符串復制:\n"); printf("復制字符串之后的目的字符串:\n"); puts(str1); /*輸出復制后的目的字符串*/ return 0; /*程序結束*/}【實例8.17】 字符串復制。字符串連接字符串連接就是將一個字符串連接到另一個字符串的末尾,使其組合成一個新的字符串。在字符串處理函數中,strcat函數就具有字符串連接的功能。其語法格式如下:strcat(目的字符數組名,源字符數組名)功能:把源字符數組中的字符串連接到目的字符數組中字符串的后面,并刪去目的字符數組中原有的串結束標志“\0”。#include#includeint main(){ char str1[30],str2[30]; printf("輸入目的字符串:\n"); gets(str1); /*輸入目的字符*/ printf("輸入源字符串:\n"); gets(str2); /*輸入源字符串*/ printf("輸出目的字符串:\n"); puts(str1); /*輸出目的字符*/ printf("輸出源字符串:\n"); puts(str2); /*輸出源字符串*/ strcat(str1,str2); /*調用strcat函數進行字符串連接*/ printf("調用strcat函數進行字符串連接:\n"); printf("字符串連接之后的目的字符串:\n"); puts(str1); /*輸出連接后的目的字符串*/ return 0; /*程序結束*/}【實例8.18】 字符串連接。字符串比較字符串比較就是將一個字符串與另一個字符串從首字母開始,按照ASCII碼的順序進行逐個比較。在字符串處理函數中,strcmp函數就具有在字符串間進行比較的功能。其語法格式如下:strcmp(字符數組名1,字符數組名2)功能:按照ASCII碼順序比較兩個數組中的字符串,并由函數返回值返回比較結果。返回值如下:?字符串1=字符串2,返回值為0。?字符串1>字符串2,返回值為正數。?字符串1<字符串2,返回值為負數。字符串大小寫轉換字符串的大小寫轉換需要使用strupr函數和strlwr函數。strupr函數的語法格式如下:strupr(字符串)功能:將字符串中的小寫字母變成大寫字母,其他字母不變。strlwr函數的語法格式如下:strlwr(字符串)功能:將字符串中的大寫字母變成小寫字母,其他字母不變。獲得字符串長度在使用字符串的時候,有時需要動態獲得字符串的長度,通過循環來判斷字符串結束標志“\0”雖然也能獲得字符串的長度,但是實現起來相對繁瑣。這時,可以使用strlen函數來計算字符串的長度。strlen函數的語法格式如下:strlen(字符數組名)功能:計算字符串的實際長度(不含字符串結束標志“\0”),函數返回值為字符串的實際長度。數 組 應 用反轉輸出字符串字符串操作在應用程序中經常會使用,如連接兩個字符串、查找字符串等。本節需要實現的功能是反轉字符串。以字符串“mrsoft”為例,其反轉的結果為“tfosrm”。在程序中定義兩個字符數組,一個表示源字符串,另一個表示反轉后的字符串。在源字符串中我們從第一個字符開始遍歷,讀取字符數據,在目標字符串中從最后一個字符(結束標記\0 除外)倒序遍歷字符串,依次將源字符串中的第一個字符數據寫入目標字符串的最后一個字符中,將源字符串中的第2個字符數據寫入目標字符串的倒數第2個字符中,依此類推。這樣就實現了字符串的反轉。圖8.23描述了算法的實現過程。#include int main(){ int i; char String[7] = {"mrsoft"}; char Reverse[7] = {0}; int size; size = sizeof(String); /*計算源字符串長度*/ /*循環讀取字符*/ for(i=0;i<6;i++) { Reverse[size-i-2] = String[i];/*向目標字符串中插入字符*/ } /*輸出源字符串*/ printf("輸出源字符串:%s\n",String); /*輸出目標字符串*/ printf("輸出目標字符串:%s\n",Reverse); return 0; /*程序結束*/}【實例8.22】 反轉輸出字符串。輸出系統日期和時間在控制臺應用程序中,通常需要按照系統的提示信息進行操作。例如,用戶進行某一個操作,需要輸入一個命令,如果命令輸入錯誤,系統會進行提示。本節要求設計一個應用程序,當用戶輸入命令字符“0”時顯示幫助信息,輸入命令字符“1”時顯示系統日期,輸入命令字符“2”時顯示系統時間,輸入命令字符“3”時退出系統。在設計本實例時需要解決兩個問題:第一個問題是需要不斷地保持程序運行,等待用戶輸入命令,防止main函數結束;第二個問題是獲取系統日期和時間。對于第一個問題可以使用一個無限循環語句來實現,在循環語句中等待用戶輸入,如果用戶輸入了命令字符3,則終止循環,結束應用程序。對于第2個問題可以使用時間函數time和localtime來獲取系統日期和時間。字符串的加密和解密在設計應用程序時,為了防止一些敏感信息的泄漏,通常需要對這些信息進行加密。以用戶的登錄密碼為例,如果密碼以明文的形式存儲在數據表中,就很容易被人發現;相反,如果密碼以密文的形式儲存,即使別人從數據表中發現了密碼,這也是加密之后的密碼,根本不能夠使用。通過對密碼進行加密,能夠極大提高系統的保密性。為了減小本節實例的規模,這里要求設計一個加密和解密的算法,在對一個指定的字符串加密之后,利用解密函數能夠對密文解密,顯示明文信息。加密的方式是將字符串中每個字符加上它在字符串中的位置和一個偏移值5。以字符串"mrsoft"為例,第一個字符m在字符串中的位置為0,那么它對應的密文是'm' + 0 + 5,即r。小結數組類型是構造類型的一種,數組中的每一個元素都屬于同一種類型。本章首先介紹了有關一維數組、二維數組、字符數組及多維數組的定義和引用,使讀者可以對數組有個充分的認識,然后通過實例介紹了C語言標準函數庫中常用的字符串處理函數的使用,最后通過幾個綜合性的數組應用實例加深對數組的理解。
關 鍵 詞:
教學 精通 作者 ppt 入門 c語言 數組
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:C語言從入門到精通教學課件作者第2版PPT第8章 數組.ppt
鏈接地址: http://www.476824.live/p-51617286.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 体彩排列三预测汇总今 福建快3一定牛走势 河北福彩排列七特等奖多少钱 甘肃极速快三 多赢策略 快乐十分山西最大遗漏 期货配资合法吗 股票融资融券是什么意思 福彩欢乐生肖牛是什么号码 股票配资平台l选一直牛