《C語言程序設計案例教程》課件字符數(shù)組_第1頁
《C語言程序設計案例教程》課件字符數(shù)組_第2頁
《C語言程序設計案例教程》課件字符數(shù)組_第3頁
《C語言程序設計案例教程》課件字符數(shù)組_第4頁
《C語言程序設計案例教程》課件字符數(shù)組_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

字符數(shù)組CONTENTS

目錄提出問題引入新課自主學習明確考點案例分析交流提升仿真演練體驗探索提出問題引入新課PART011、存儲字符串常量時,是根據(jù)其中字符的多少分配存儲單元,一個字符分配一個字節(jié),用于存放字符對應的ASCII值,其若干個字符的存儲單元是連續(xù)分配并存放。同時,為了識別字符串的結束,常在其后增加字符串結束標識符。2、C語言中,字符串常量與字符數(shù)組相對應,字符常量的格式控制符是%c,字符串的格式控制符是%s。3、使用scanf函數(shù)進行輸入數(shù)據(jù)時,遇到空格、回車符、制表符,指定的寬度,不同類型字符時,該數(shù)據(jù)被認為輸入結束。提出問題引入新課自主學習明確考點PART02字符數(shù)組就是元素類型為字符型char的數(shù)組,定義格式是:

char<數(shù)組名>[<常量表達式>];

說明:(1)數(shù)組中一個元素存放一個字符。(2)同數(shù)值型數(shù)組一樣,系統(tǒng)在內(nèi)存為字符數(shù)組分配若干(和數(shù)組元素個數(shù)相同)連續(xù)的存儲單元,每個存儲單元為一個字節(jié)。例如:chara[5];假設a[0]='A';a[1]='';a[2]='B';a[3]='o';a[4]='y';則數(shù)組a在內(nèi)存存儲示意圖如下圖考點一:字符數(shù)組的定義a[0]a[1]a[2]a[3]a[4]ABo(1)在初始化表中用若干字符常量賦初值,字符常量以單引號作為定界符,相互之間用逗號隔開。例如:chars1[5]={'a','p','p','l','e'};chars2[10]={'a','p','p','l','e','\0'};考點二:字符數(shù)組的初始化字符數(shù)組s1含5個字符,分別用5個字符常量初始化賦值,對應元素s1[0]--s1[4];字符數(shù)組s2含10個字符,分別用6個字符常量初始化賦值,對應元素s2[0]—s2[5],后面4個元素被初始化為空格,‘\0’是字符串結束標志。說明:如果初值個數(shù)大于數(shù)組長度,則作語法錯誤處理;如果初值個數(shù)小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面那些元素,其余元素自動定為空字符(即’\0’);如果初值個數(shù)等于數(shù)組長度,則在定義時可省略數(shù)組長度。(2)在初始化表中用字符串常量賦初值,甚至大括號也可以省去。字符串常量用雙引號括起,系統(tǒng)會自動在字符串常量的最后一個字符后加一個‘\0’作為字符串結束標志。并不是字符串的組成,也不算進字符串的長度中??键c二:字符數(shù)組的初始化(1)、使用字符數(shù)組中的單個元素,用格式符“%c”逐個字符輸入輸出:scanf("%c",&a[0]);printf("%c",a[0]);/*每次輸入、輸出一個字符*【例1】輸出一個字符串#include<stdio.h>voidmain(){charch[9]={'c','','p','r','o','g','r','a','m'};inti;for(i=0;i<9;i++)printf("%c",ch[i]);}運行結果:cprogram

字符數(shù)組的引用的元素是字符,所以我們在輸出字符數(shù)組元素時要注意它的格式是"%c"還是"%s"!考點三:字符數(shù)組的使用案例三:數(shù)組的排序(2)對存儲在字符數(shù)組中的整個字符串進行操作,字符數(shù)組的輸入輸出將變得簡單方便。除了上述用字符串賦初值的辦法外,還可用printf函數(shù)和scanf函數(shù)一次性輸出輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入輸出每個字符。但要用格式符“%s”。charch[10]={"apple"};printf("%s",ch);puts(ch);與scanf函數(shù)結合,對整個數(shù)組進行字符串的輸入,格式為:scanf("%s",ch);或puts(ch);說明:charc[10];scanf("%s",c);/*注意此處用數(shù)組名c*/printf("%s",c);/*注意此處用數(shù)組名c*/案例三:數(shù)組的排序【例2】改錯題:如以下程序功能是輸出字符串#include<stdio.h>voidmain(){charc[]="howareyou?\nfine,thankyou!";printf("%s\n",c);}【例3】輸出以下字符串,寫出輸出結果。voidmain(){charstr[15];printf("inputstring:\n");scanf("%s",str);printf("%s\n",str);}說明:對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度。運行結果:inputstring:輸入字符為:weareChinese則輸出為:思考:如果要求輸出為:weareChinese整體字符串,你對上述程序作何修改?案例分析交流提升PART03【例1】、分析以下程序main(){ charc[]="BASIC\nDBASE"; printf("%s\n",c);}運行結果:

。【例2】、以下程序運行后的輸出結果是()#include<stdio.h>main(){charc1,c2;for(c1='0',c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}【例3】、以下程序運行后的輸出結果是()#include<stdio.h>main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;s[i]%2;i++)d+=s[i];printf("%d\n",d);}【例4】、以下程序運行后的輸出結果是()#include<stdio.h>main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}【例5】、以下程序運行后的輸出結果是()#include<stdio.h>main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");

}仿真演練,體驗探索PART041、以下程序運行后,輸出結果是()。#include<stdio.h>main(){inti,j,t;inta[10]={1,2,3,4,5,6,7,8,9,10};for(i=0;i<9;i+=2)for(j=i+2;j<10;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}2、以下程序運行后,輸出結果是()。#include<stdio.h>main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);/*假如輸入1,2,3,4,5,6,7,8,9,10*/for(i=1;i<10;i++)b[i]=a[i]-a[i-1];for(i=1;i<10;i++)printf("%3d",b[i]);if(i%3==0)printf("\n");}3、以下程序運行后,輸出結果是()。main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}A)75310246

B)01234567C)76310462D)135702464、以下程序運行后,輸出結果是()。#defineN20main(){inta[N]={1,2,3,4,5,6,7,8,9,10};inti,j;for(i=9;i>=2;i--)a[i+1]=a[i];for(i=0;i<5;i++)printf("%d",a[i]);}5、填空題以下程序的功能是輸出如下形式的方陣:13141516910111256781234main(){inti,j,x;for(j=4;j;j--){for(i=1;i<=4;i++){x=(j-1)*4+;printf("%4d",x);}printf("\n");}6、以下程序運行后,輸出結果是()#include<stdio.h>main(){chars[]={"12134211"

溫馨提示

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

評論

0/150

提交評論