C語言程序設(shè)計 課件 (張惠濤 )第3、4章 程序設(shè)計結(jié)構(gòu);數(shù)組_第1頁
C語言程序設(shè)計 課件 (張惠濤 )第3、4章 程序設(shè)計結(jié)構(gòu);數(shù)組_第2頁
C語言程序設(shè)計 課件 (張惠濤 )第3、4章 程序設(shè)計結(jié)構(gòu);數(shù)組_第3頁
C語言程序設(shè)計 課件 (張惠濤 )第3、4章 程序設(shè)計結(jié)構(gòu);數(shù)組_第4頁
C語言程序設(shè)計 課件 (張惠濤 )第3、4章 程序設(shè)計結(jié)構(gòu);數(shù)組_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章

程序設(shè)計結(jié)構(gòu)C語言數(shù)據(jù)類型、運算符與表達式63.1順序結(jié)構(gòu)設(shè)計3.2選擇結(jié)構(gòu)設(shè)計3.3循環(huán)結(jié)構(gòu)設(shè)計3.1

順序結(jié)構(gòu)設(shè)計3.1.1順序結(jié)構(gòu)的基本語句順序結(jié)構(gòu)的基本語句包括表達式語句、函數(shù)調(diào)用語句、復(fù)合語句、空語句。1、表達式語句由表達式加上分號";"組成,執(zhí)行表達式語句就是計算表達式的值。例如:x=1;(賦值語句)。++i;實現(xiàn)i的自增(運算符表達式語句)。2、函數(shù)調(diào)用語句由函數(shù)名,實際參數(shù)加上分號組成例如:printf("粉身碎骨渾不怕,要留清白在人間");這是一個調(diào)用庫函數(shù),輸出字符串的語句。3、復(fù)合語句把多個語句用一對花括號括起來組合在一起,在語法上相當(dāng)于一條語句。一般形式:{語句1;語句2;……語句n;}4、空語句只由一個分號";"組成,什么也不執(zhí)行3.1.2數(shù)據(jù)的輸入輸出1、putchar函數(shù)putchar()是字符輸出函數(shù),用于在顯示器輸出一個字符例如:putchar(x);代表輸出字符變量x的值//例如:先后輸出Culturalconfidence(文化自信)的首字母例3.1putchar函數(shù)的應(yīng)用#include<stdio.h>intmain(){ chara='C',b='c'; putchar(a); putchar(b); putchar('\n'); return0;}3.1.2數(shù)據(jù)的輸入輸出2、getchar函數(shù)getchar()函數(shù)用于從鍵盤上輸入一個字符,通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,例如:a=getchar();說明:getchar()函數(shù)只能接收單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符getchar()函數(shù)是無參函數(shù),后面的括號不能省略在輸入時,空格,回車鍵都作為字符讀入,且只在輸入回車鍵時讀入才開始執(zhí)行3.1.2數(shù)據(jù)的輸入輸出//從鍵盤輸入Culturalconfidence(文化自信)的首字母,輸出到屏幕例3.2getchar的賦值操作#include<stdio.h>intmain(){ chara,b; a=getchar(); b=getchar(); putchar(a); putchar(b); putchar('\n'); return0;}3.1.2數(shù)據(jù)的輸入輸出3、printf函數(shù)printf函數(shù)稱為格式輸出函數(shù),用于按照用戶指定的格式,把指定的數(shù)據(jù)輸出到顯示器上例如:printf("%d%f",a,b)printf函數(shù)的格式控制字符串(1)格式說明符:以“%”開頭,后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。格式說明的一般形式為:%[修飾符]格式字符3.1.2數(shù)據(jù)的輸入輸出格式字符代表的意義d,i以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進制形式輸出無符號整數(shù)(不輸出前綴0)x,X以十六進制形式輸出無符號整數(shù)(不輸出前綴0x)U以十進制形式輸出無符號整數(shù)F以小數(shù)形式輸出單、雙精度實數(shù)e,E以指數(shù)形式輸出單、雙精度實數(shù)g,G以%f、%e中較短的輸出寬度輸出單、雙精度實數(shù)c輸出單個字符s輸出字符串3.1.2數(shù)據(jù)的輸入輸出在格式說明字段中,可以根據(jù)具體情況使用修飾符。前綴修飾符的位置一般緊靠“%”,一般格式有[flags][width][.prec]等。前綴修飾符及代表的意義[]表示該項為可選項,即可有可無。-表示左對齊輸出,如果寬度大于輸出數(shù)據(jù)的寬度,右邊補空格;默認為右對齊輸出,如果寬度大于輸出數(shù)據(jù)的寬度,左邊補空格。例如:printf(“%6d\n”,123);printf(“%-6d\n”,123);輸出結(jié)果:123123[.prec]為可選的精度指示符,整數(shù)位表示至少要輸出的數(shù)字個數(shù),不足補空格,多則原樣輸出;小數(shù)位表示小數(shù)點后至多輸出的數(shù)字個數(shù),不足在后面補數(shù)字0,多則作四舍五入處理。3.1.2數(shù)據(jù)的輸入輸出4、scanf函數(shù)scanf()函數(shù)稱為格式輸入函數(shù),用于按照用戶指定的格式從鍵盤把數(shù)據(jù)輸入到指定的變量中其一般形式為:scanf(“格式控制字符串”,地址表列);例如:scanf("%d%f",&a,&b)scanf()與printf()既有相似之處,也有不同:scanf()函數(shù)的格式控制字符含義與printf()函數(shù)相同;地址表列由若干個地址組成,地址是由地址運算符“&”后跟變量名組成的,代表每一個變量在內(nèi)存中的地址。3.1.2數(shù)據(jù)的輸入輸出使用scanf()函數(shù)需要注意的幾點問題:scanf()中要求給出變量地址。scanf()函數(shù)中沒有精度控制。在輸入多個數(shù)值時,若格式控制字符中相鄰兩個格式指定符沒有指定分隔符,則可用空格,跳格或回車作間隔。在輸入字符時,若格式控制串中沒有非格式字符,則認為所有輸入的字符均為有效字符。另外,如果在格式控制中加入逗號作為間隔,即scanf("%c,%c,%c",&a,&b,&c);則輸入d,e,f為有效錄入。如輸入的數(shù)據(jù)類型與輸出的類型不一致時,雖然編譯能夠通過,但結(jié)果不正確。順序結(jié)構(gòu)舉例解析例3.3兩個整數(shù)的“5”則運算(輸入a和b,計算并輸出它們的和、差、積、商及余數(shù))#include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);printf("%d%d%d%d%d",a+b,a-b,a*b,a/b,a%b);return0;}順序結(jié)構(gòu)舉例解析例3.4.求三個數(shù)的平均數(shù)(保留兩位小數(shù))#include<stdio.h>intmain(){intx,y,z;scanf("%d%d%d",&x,&y,&z);doublet=(x+y+z)/3.0;printf("%.2lf\n",t);return0;}順序結(jié)構(gòu)舉例解析例3.5計算多項式f(x)=ax^3+bx^2+cx+d的值(輸入x,a,b,c,d的值)#include<stdio.h>intmain(){ doublex,a,b,c,d; scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d); printf("%.7lf",a*x*x*x+b*x*x+c*x+d); return0;}順序結(jié)構(gòu)舉例解析例3.6給出圓的半徑,求圓的直徑、周長和面積(π=3.14159,結(jié)果保留四位整數(shù))#include<stdio.h>#definepi3.14159intmain(){doubler;scanf("%lf",&r);printf("%.4lf%.4lf%.4lf",2*r,2*pi*r,pi*r*r);return0;}順序結(jié)構(gòu)舉例解析例3.7計算球的體積(V=4/3×π×r^3,π=3.14,結(jié)果保留兩小數(shù))#include<stdio.h>intmain(){ doubler,v; scanf("%lf",&r); v=4.0/3*3.14*r*r*r; printf("%.2lf",v); return0;}順序結(jié)構(gòu)舉例解析例3.8反向輸出一個三位數(shù)(反向輸出n,要保留前導(dǎo)0)#include<stdio.h>intmain(void){intx;intc,b,a;scanf("%d",&x);a=x/100;b=(x/10)%10;c=x%10;printf("%03d",c*100+b*10+a);return0;}順序結(jié)構(gòu)舉例解析例3.9打印ASCII碼#include<stdio.h>intmain(){ chara; intb; scanf("%c",&a); b=a; printf("%d",b);return0;}3.2

選擇結(jié)構(gòu)程序設(shè)計3.2.1if語句1單分支if語句一般形式:if(表達式)語句序列;后繼語句;if表達式與語句序列算一條語句,if就近控制一條語句if表達式結(jié)構(gòu)為真時進入if字句,為假則直接執(zhí)行后繼語句例3.10輸入一個數(shù),正數(shù)則求其平方根,否則輸出該數(shù)的平方#include<stdio.h>voidmain(){floatx,y;printf("輸入一個數(shù):");scanf("%f",&x);y=x*x;if(x>0)y=sqrt(x); /*sqrt()為求平方根函數(shù)*/printf("%f",y);}假表達式語句真3.2.1if語句2雙分支if語句一般形式:if(表達式)語句序列1;else語句序列2;后繼語句;若if表達式的值為真,執(zhí)行語句序列1;否則執(zhí)行語句序列2有else必須有if,有n個else就至少有n個ifif和else都只就近控制1條語句;語句序列1和語句序列2可以為復(fù)合語句{},復(fù)合語句算1條語句3.2.1if語句例3.11求二元一次方程的解#include<stdio.h>#include<math.h>intmain(){floata,b,c,disc,p,q,x1,x2;printf("請輸入a,b,c的值:");scanf("%f%f%f",&a,&b,&c);disc=b*b-4*a*c;if(disc>0){p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);

x1=p+q;x2=p-q;printf("x1=%.2f\nx2=%.2f\n",x1,x2);}else{printf("該方程沒有根,請重新輸入系數(shù)!\n");}return0;}3.2.1if語句注意事項:if表達式通常是邏輯表達式和關(guān)系表達式,也可以是其他表達式;如算數(shù)表達式或賦值表達式,也可以是一個常量或變量if(a=5)語句;表達式a=5的值永為非0,同時,將5賦給變量a,因為表達式值非0,其后的語句一定執(zhí)行,雖不合理,但符合語法規(guī)則。if(b)語句;if(a=b) printf("%d",a);else printf("a=0");含義:把b賦給a,如b的值為非0,則輸出該值,否則輸出a=0在if語句的兩種形式中,語句序列1和語句序列2均為單條語句,若需執(zhí)行一組語句,須把這組語句加上花括號{}組成一條復(fù)合語句,在}后無需加分號3.2.1if語句3if語句的嵌套if語句的嵌套一般格式:if(表達式1) if(表達式2) 語句1; else 語句2;else if(表達式3) 語句3; else 語句4;else與if之間的配對關(guān)系:C語言規(guī)定else總是與它上面最近的if語句配對。多分支選擇的流程3.2.1if語句使用if語句的嵌套結(jié)構(gòu)實現(xiàn)多分支時,采用規(guī)范形式:if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;elseif(表達式4)語句4; ...elseif(表達式n)語句n;else語句n+1;語義:當(dāng)表達式i(1<=i<n)為真時,執(zhí)行語句i,然后跳出整個if語句執(zhí)行后繼語句;否則判斷else后面表達式i+1是否為真。若所有表達式均為假,則執(zhí)行語句n+1,然后執(zhí)行后繼語句。3.2.1if語句#include<stdio.h>intmain(){charc;printf("輸入一個字符");c=getchar();if(c<32)printf("c為控制字符\n");elseif(c>=48&&c<=57)printf("c為數(shù)字字符\n");elseif(c>=65&&c<=90)printf("c為大寫字母\n");elseif(c>=97&&c<=122)printf("c為小寫字母\n");elseprintf("c為其他字符\n");return0;}例3.13利用輸入字符的ASCII值判斷字符類型。說明:控制字符的ASCII值為小于32;數(shù)字字符’0‘和‘9’的ASCII值為48和57;大寫字母’A‘和’Z‘的ASCII值為65和90;小寫字母’a’和’z‘的ASCII值為97和122,其余則為其他字符。3.2.2

switch語句

if語句是根據(jù)表達式的值是否為0來判斷執(zhí)行哪一分支的。某些情況下,要根據(jù)表達式的不同值來判斷執(zhí)行哪一分支,如表達式的值為1,2,3時,分別執(zhí)行不同的操作。雖然也可以用多條if語句來完成這一工作,但c語言中提供了一條switch語句,可以更方便的完成。3.2.2

switch語句

1switch語句的形式switch語句是一種用于實現(xiàn)多分支選擇結(jié)構(gòu)的語句,其特點是可以根據(jù)一個表達式的多種值選擇多個分支,又稱之為開關(guān)語句switch語句的一般形式為:switch(表達式){case常量表達式1:語句塊1case常量表達式2:語句塊2...case常量表達式n:語句塊ndefault:語句塊n+1}執(zhí)行switch語句時,首先計算switch后面表達式的值,然后自上而下逐個與case后的常量表達式進行比較,相等的話則從該case后為入口,執(zhí)行該常量表達式冒號后面的所有語句塊,直到switch語句結(jié)束(default后的語句塊也輸出);當(dāng)表達式的值與所有的case后的常量表達式均不相等時,若存在default,則執(zhí)行default后面的語句塊,若沒有default,則結(jié)束switch語句。3.2.2

switch語句例3.14用1~7表示星期一到星期日,先輸入數(shù)字,輸出對應(yīng)的星期幾的英文單詞#include<stdio.h>intmain(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");case2:printf("Tuesday\n");case3:printf("Wednesday\n");case4:printf("Thursdat\n");case5:printf("Friday\n");case6:printf("Saturday\n");case7:printf("Sunday\n");default:printf("error\n");}return0;}3.2.2

switch語句例3.15修改上一個程序,增加break語句#include<stdio.h>intmain(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursdat\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}return0;}case常量表達式只相當(dāng)于一個語句標號,表達式的值和某常量表達式的相等,則轉(zhuǎn)向該標號執(zhí)行,但不能執(zhí)行完自動跳出整個switch語句體,此種情況可采用C語言中break語句跳出switch語句體選擇結(jié)構(gòu)舉例解析例3.16輸入一個年份,判斷是否公歷中的閏年;能被4整除而不能被100整除或能被400整除的年份就是閏年#include<stdio.h>voidmain(){intyear;printf("inputtheyear:");scanf("%d",&year);if(year%4==0&&year%100!=0||year%400==0)printf("Yes");elseprintf("No");}選擇結(jié)構(gòu)舉例解析例3.17有一個函數(shù)y=x(x<1)y=2x-1(1<=x<=10)y=3x-11(x>=10),編寫實現(xiàn)該函數(shù)的程序。#include<stdio.h>intmain(){ intx,y; printf("請輸入x的值:"); scanf("%d",&x); if(x<1)y=x;//如果x小于1,則y的值設(shè)為x if(x>=1&&x<10)y=2*x-1;//如果x大于等于1且小于10,則y的值設(shè)為2x-1 if(x>=10)y=3*x-11;//如果x大于等于10,則y的值設(shè)為3x-11 printf("y=%d",y); return0;}選擇結(jié)構(gòu)舉例解析或者#include<stdio.h>intmain(){ intx,y; printf("請輸入x的值:"); scanf("%d",&x); if(x<1)y=x;//如果x小于1,則y的值設(shè)為x elseif(x<10)y=2*x-1;//否則x大于等于且小于10,則y的值設(shè)為2x-1 elsey=3*x-11;//否則y的值設(shè)為3x-11 printf("y=%d",y); return0;}選擇結(jié)構(gòu)舉例解析例3.18公司員工的工資等于底薪加提成,已知員工的底薪3500,利潤profit與工資提成的關(guān)系:profit<=1000無提成;1000<profit<=2000提成10%;2000<profit<=5000提成15%;5000<profit<=10000提成20%;10000<profit提成25%,根據(jù)利潤打印員工工資。使用if語句嵌套#include<stdio.h>intmain(){floata=3500; /*定義底薪500*/intprofit; /*定義利潤*/floatb; /*定義實際工資*/printf("輸入工程利潤:");scanf("%d",&profit);if(profit<=1000)b=a;elseif(profit<=2000)b=a+profit*0.1;elseif(profit<=5000)

b=a+profit*0.15;elseif(profit<=10000)b=a+profit*0.2;elseb=a+profit*0.25;printf("員工工資為:%f",b);return0;}選擇結(jié)構(gòu)舉例解析#include<stdio.h>intmain(){floata=3500;intprofit;intsymbol;printf("輸入利潤:");scanf("%ld",&profit);symbol=(profit-1)/1000;switch(symbol){case0:break;case1:a+=profit*0.1;break;case2:case3:case4:a+=profit*0.15;break;case5:case6:

case7:case8:case9:a+=profit*0.2;break;default:a+=profit*0.25;}printf("a=%.2f",a);}選擇結(jié)構(gòu)舉例解析例3.19學(xué)校為同學(xué)的成績做了一下等級區(qū)分(同學(xué)的成績都在100~0分內(nèi)),100~90為A級,90~80為B級,80~70為C級,70~60為D級,60以下為E級。#include<stdio.h>intmain(){intgrade;printf("輸入學(xué)生成績(0~100):");scanf("%d",&grade);if(grade>=90)printf("該同學(xué)等級為:A\n");elseif(grade>=80)printf("該同學(xué)等級為:B\n");elseif(grade>=70)printf("該同學(xué)等級為:C\n");elseif(grade>=60)printf("該同學(xué)等級為:D\n");elseprintf("該同學(xué)等級為:E\n");return0;}選擇結(jié)構(gòu)舉例解析#include<stdio.h>intmain(){ intgrade; printf("請輸入該同學(xué)成績(0~100):"); scanf("%d",&grade); switch(grade/10) { case10: case9:printf("該同學(xué)等級為:A");break; case8:printf("該同學(xué)等級為:B");break; case7:printf("該同學(xué)等級為:C");break; case6:printf("該同學(xué)等級為:D");break; default:printf("該同學(xué)等級為:E\n"); } return0;}選擇結(jié)構(gòu)舉例解析例3.20當(dāng)a為正數(shù)時,將下面語句改為switch語句if(a<30)m=1;elseif(a<40)m=2;elseif(a<50)m=3;elseif(a<60)m=4;elsem=5;分析:a的變化點轉(zhuǎn)折是10的倍數(shù),a<30對應(yīng)3;a<40對于4,a<50對應(yīng)5,a<60對應(yīng)6#include<stdio.h>voidmain(){intc,a,m;printf("輸入一個數(shù):");scanf("%d",&a);if(a<=0)c=-1;elsec=a/10;switch(c){case0:case1:case2:m=1;break;case3:m=2;break;case4:m=3;break;case5:m=4;break;default:m=5;}if(c!=-1)printf("m=%d\n",m);elseprintf("error\n");}3.3循環(huán)結(jié)構(gòu)程序設(shè)計3.3.1for循環(huán)結(jié)構(gòu)1、for循環(huán)結(jié)構(gòu)的一般形式for(表達式1;表達式2;表達式3)循環(huán)體表達式1:初始值表達式,為循環(huán)控制變量設(shè)置初始值。表達式2:循環(huán)控制邏輯表達式,它控制循環(huán)執(zhí)行的條件,決定循環(huán)次數(shù)。表達式3:循環(huán)控制變量修改表達式循環(huán)體:重復(fù)執(zhí)行的語句for語句的執(zhí)行流程如圖所示3.3循環(huán)結(jié)構(gòu)程序設(shè)計3.3.1for循環(huán)結(jié)構(gòu)for語句的執(zhí)行過程如下:第一步:計算表達式1第二步:判斷表達式2,若其值為真(非0),則執(zhí)行循環(huán)體語句,然后執(zhí)行第3步;若值為假(0),結(jié)束循環(huán),轉(zhuǎn)到第5步執(zhí)行第三步:計算表達式3第四步:返回第2步繼續(xù)執(zhí)行第五步:循環(huán)結(jié)束,繼續(xù)執(zhí)行for語句的下一條語句for循環(huán)結(jié)構(gòu)例3.21編寫程序計算s=1+2+3...+100的值#include<bits/stdc++.h>intmain(){ ints=0,i; for(i=1;i<=100;i++) { s=s+i;//不積跬步無以至千里 } printf("s=%d",s); return0;}for循環(huán)結(jié)構(gòu)例3.22人類追求更多的是心靈的歸屬,而文化是歸屬的土壤,只有文化才是我們賴以與其他種族區(qū)別的精神內(nèi)核,文化傳承,人類繁衍發(fā)展。假設(shè)今年我國人口數(shù)為13億,若按每年1%增長,計算從現(xiàn)在開始10年內(nèi)每年人口的數(shù)量#include<stdio.h>#include<math.h>intmain(){intn=13,year;doublenumber,rate=0.01;for(year=1;year<=10;year++){number=n*pow((1+rate),year);printf("%2d年后,人數(shù)為:%.2f億\n",year,number);}return0;}for循環(huán)結(jié)構(gòu)例3.23輸入一個正整數(shù)n,計算從1加到n的和程序設(shè)計思路:首先設(shè)計變量增量i,存和變量sum,必須設(shè)置sum的初始值為0,sum=sim+i語句重復(fù)n次,同時i從1變到n,就實現(xiàn)了從1累加到n。#include<stdio.h>intmain(){inti,n,sum;scanf_s("%d",&n);sum=0;for(i=1;i<=n;i++)sum=sum+i;printf("由1到%d的和是:%d\n",n,sum);return0;}for循環(huán)結(jié)構(gòu)例3.24輸入一個正整數(shù),求n!#include<stdio.h>intmain(){inti,n;intfactorial;printf("輸入n的值:");scanf("%d",&n);factorial=1;

for(i=1;i<=n;i++)factorial=factorial*i;printf("%d!=%.0f\n",n,factorial);return0;}for循環(huán)結(jié)構(gòu)2、for語句的變形for語句的一般形式中省略表達式1格式如下:for(;表達式2;表達式3)循環(huán)語句;說明:省略表達式1時,可以將循環(huán)變量賦初值放在for之前。注意,此時不能省略第一個;(以求從1加到100為例)i=1;for(;i<=100;i++){s=s+i;}for循環(huán)結(jié)構(gòu)for語句的一般形式中省略表達式2格式如下:for(表達式1;;表達式3)循環(huán)語句;(以求從1加到100為例)#include<bits/stdc++.h>intmain(){ inti,s=0; for(i=1;;i++) { if(i<=100) s=s+i; else break;//不滿足條件退出循環(huán) } printf("%d",s); return0;}for循環(huán)結(jié)構(gòu)for語句的一般形式中省略表達式3格式如下:for(表達式1;表達式2;)循環(huán)語句;(以求從1加到100為例)#include<bits/stdc++.h>intmain(){ inti,s=0;

for(i=1;i<=100;) { s=s+i; i++; } printf("%d",s); return0;}for循環(huán)結(jié)構(gòu)for語句的一般形式中表達式1和表達式3也可以是逗號表達式如:#include<bits/stdc++.h>intmain(){ inti,j; for(i=1,j=10;i<=j;i++,j--) { printf("i=%d,j=%d\n",i,j); } return0;}for循環(huán)結(jié)構(gòu)for語句的一般形式中循環(huán)體語句可以省略如for(sum=0,i=1;i<=100;sum=sum+i,i++)上述for語句的循環(huán)體為空語句,實際上已把累加和的運算放入到表達式3中了。for循環(huán)結(jié)構(gòu)例3.25輸入十個數(shù),輸出其中最大的數(shù)#include<stdio.h>intmain(){inti;floatx,max;printf("輸入第1個數(shù):");scanf("%f",&x);max=x;for(i=2;i<=10;i++){printf("請輸入第%d個數(shù):",i);

scanf("%f",&x);if(x>max)max=x;}printf("10個數(shù)的最大值是:%.0f",max);return0;}for循環(huán)結(jié)構(gòu)例3.26輸出所有的水仙數(shù)(水仙數(shù)的特點是三位數(shù)中百位數(shù)字的立方與十位數(shù)字的立方與個位數(shù)字的立方之和等于三位數(shù)本身)#include<stdio.h>intmain(){intnumber,a,b,c;for(number=100;number<=999;number++){a=number/100;b=number%100/10;c=number%10;if(number==a*a*a+b*b*b+c*c*c)

printf("%5d",number);}return0;}for循環(huán)結(jié)構(gòu)例3.27輸出100以內(nèi)的完數(shù)(所有的真因子(除了自身以外的約數(shù))的和恰好等于它本身的正整數(shù)成為完數(shù))#include<stdio.h>intmain(){intnumber,sum,i,j; for(i=1;i<=100;i++) { sum=0; for(j=1;j<=i-1;j++) { if(i%j==0) sum=sum+j; } if(i==sum) printf("%d",i); }return0;}for循環(huán)結(jié)構(gòu)例3.28統(tǒng)計由鍵盤輸入的20個字符中,大寫英文字母,小寫英文字母,數(shù)字字符和其他字符的個數(shù)#include<stdio.h>intmain(){ intupper,lower,digit,i,other; charch; upper=lower=digit=other=0; printf("輸入20個字符:"); for(i=1;i<=20;i++) { ch=getchar();for循環(huán)結(jié)構(gòu) if(ch>='a'&&ch<='z') lower++; elseif(ch>='A'&&ch<='Z') upper++; elseif(ch>='0'&&ch<='9') digit++; else other++;} printf("大寫字母%d個,小寫字母%d個,數(shù)字%d個,其他字符%d個\n",upper,lower,digit,other); return0;}for循環(huán)結(jié)構(gòu)例3.29由鍵盤輸入三個數(shù)字,將其組合成一個整型數(shù)并輸出#include<stdio.h>intmain(){intn=0,i;charch;printf("輸入三個數(shù)字:");for(i=1;i<=3;i++){scanf("%c",&ch);n=n*10+ch-'0';//ch-’0’將字符型數(shù)字轉(zhuǎn)換成數(shù)字}

printf("%d\n",n);return0;}for循環(huán)結(jié)構(gòu)例3.30由鍵盤輸入一個正整數(shù),判斷其是否為素數(shù)#include<stdio.h>intmain(){ inti,flag,num; printf("輸入一個正整數(shù):"); scanf("%d",&num); flag=1; for(i=2;i<=num-1&&flag;i++) if(num%i==0) flag=0; if(flag) printf("%d是素數(shù)\n",num); else printf("%d不是素數(shù)\n",num); return0;}3.3.2while循環(huán)結(jié)構(gòu)一般形式:

while(表達式)語句表達式語句真假表達式1.計算表達式。語句2.如果表達式的值為非零,執(zhí)行語句。表達式3.返回第一步,重新計算表達式。4.如果表達式的值為零,則結(jié)束循環(huán)。如果表達式的值一開始就為0,則語句一次也不會被執(zhí)行。執(zhí)行流程:3.3.2while循環(huán)結(jié)構(gòu)例3.33輸入一個正整數(shù)n,計算n!#include<stdio.h>intmain(){ inti; intn,fact; i=2; fact=1; printf("請輸入n的值:"); scanf("%ld",&n); while(i<=n) { fact=fact*i; i=i+1; } printf("%d!=%d\n",n,fact); return0;}3.3.2dowhile循環(huán)結(jié)構(gòu)一般形式:

do{

語句

}while(表達式);1.執(zhí)行語句3.表達式的值為非零,返回第1步4.表達式的值為零,結(jié)束循環(huán)語句至少被執(zhí)行一次。表達式語句2.計算表達式執(zhí)行流程:注意:分號不能丟語句真假3.3.2dowhile循環(huán)結(jié)構(gòu)intday=1;do{

printf("%d\n",day);

day++;}while(day<8);程序在執(zhí)行的過程為:首先進入第一次循環(huán)顯示1并將day的值加1,然后做條件判斷day的值為2,于是day<8的結(jié)果為真,返回到do后面的循環(huán)體進入下一次循環(huán)...直到day的值為8時,day<8的結(jié)果為假,結(jié)束循環(huán)。舉例:while和

dowhile細微差別使用while執(zhí)行循環(huán):inti=0;while(i<0){ i++; printf("%d\n",i);}執(zhí)行0次循環(huán),沒有運行結(jié)果;舉例:使用dowhile執(zhí)行循環(huán):inti=0;do{ i++; printf("%d\n",i);}while(i<0);執(zhí)行1次循環(huán),運行結(jié)果為1。dowhile循環(huán)結(jié)構(gòu)舉例例3.34求兩個自然數(shù)的最大公約數(shù)和最小公倍數(shù)#include<bits/stdc++.h>intmain(){inta,b,r,n,m;printf("請輸入兩個整數(shù):");scanf("%d%d",&a,&b);m=a,n=b;do{r=a%b;a=b;b=r;}while(r!=0);printf("%d和%d的最大公約數(shù)是:%d\n",m,n,a);printf("最小公倍數(shù)是:%d",m*n/a);return0;}dowhile循環(huán)結(jié)構(gòu)舉例例3.35輸入一個整數(shù),統(tǒng)計該數(shù)的位數(shù)#include<stdio.h>intmain(){ longn,m; intcount=0; printf("請輸入一個整數(shù):"); scanf("%ld",&n); m=n; if(n<0) n=-n; do { n=n/10; count++; }while(n!=0); printf("整數(shù)%ld有%d位數(shù)\n",m,count); return0;}綜合實踐解析例3.37編寫程序,由鍵盤輸入一個正整數(shù),判斷其是否為素數(shù)程序中結(jié)束for循環(huán)的條件有兩個:一是i>m;二是break語句若i>m,說明for循環(huán)正常結(jié)束,則n一定是素數(shù)若遇到break語句,說明循環(huán)中條件n%i=0成立,n能被某個i整除,執(zhí)行break語句退出循環(huán),此時i<=m,n一定不是素數(shù)#include<bits/stdc++.h>intmain(){intn,m,i;printf("請輸入一個正整數(shù):");scanf("%d",&n);m=sqrt(n);

for(i=2;i<=m;i++)if(n%i==0)break;if(i>m)printf("%d是素數(shù)!\n",n);elseprintf("%d不是素數(shù)!\n",n);return0;}綜合實踐解析例3.38從鍵盤輸入一批學(xué)生的成績(以負數(shù)作為結(jié)束標志),計算平均分,并統(tǒng)計不及格成績的個數(shù)#include<stdio.h>intmain(){ intnum,n; floatscore,total=0; num=0;n=0; while(1) { printf("請輸入分數(shù)#%d(0~100):",n+1); scanf("%f",&score); if(score<0) break; if(score<60) num++; total=total+score; n++; } printf("平均分數(shù)是:%.2f.\n",total/n); printf("不及格的有:%d.\n",num); return0;}綜合實踐解析例3.39把1到100之間能被7整除的數(shù),以每行5個的形式在屏幕上輸出#include<stdio.h>intmain(){ inti,n=1; for(i=1;i<=100;i++) { if(i%7!=0) continue; printf("%4d",i); if(n++%5==0) printf("\n"); } return0;}綜合實踐解析例3.40分析下面程序的運行結(jié)果#include<bits/stdc++.h>intmain(){intn,s=0;n=1;while(n<10){s=s+n;if(s>5)break;if(n%2==1)continue;n++;}printf("s=%d,n=%d\n",s,n);return0;}綜合實踐解析例3.42將10-20之間的正整數(shù)分解質(zhì)因數(shù)。#include<bits/stdc++.h>intmain(){inti,n,m;for(m=10;m<=20;m++){n=m,i=2;printf("%d=",n);do{if(n%i==0){printf("%d*",i);n=n/i;}elsei++;}while(n!=i);printf("%d\n",n);}return0;}綜合實踐解析例3.43猜數(shù)字游戲:由計算機隨機產(chǎn)生一個10-80之間的數(shù)據(jù),然后由用戶進行猜數(shù),在5次之內(nèi)猜中則成功,否則給出大小提示。猜5次之后結(jié)束程序#include<bits/stdc++.h>intmain(){intm,n,count=0;m=rand()%71+10;loop:printf("請輸入一個10-80之間的數(shù):");while(1){scanf("%d",&n);count++;if(m==n)綜合實踐解析{printf("踏破鐵鞋無覓處,得來全不費工夫\n");break;}elseif(m>n&&count<5)printf("會當(dāng)凌絕頂,一覽眾山小\n");elseif(m<n&&count<5)printf("飛流直下三千尺,疑是銀河落九天\n");if(count==5){printf("為山九仞,功虧一簣\n這個數(shù)是:%d,結(jié)束!\n",m);break;}gotoloop;return0;}}本章小結(jié)本章介紹了C語言程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種程序設(shè)計結(jié)構(gòu),介紹了數(shù)據(jù)的輸入和輸出函數(shù),if和switch語句,for循環(huán)和while循環(huán)結(jié)構(gòu),在C語言學(xué)習(xí)之路中,以中國的優(yōu)美詩句為例,介紹了文化自信的內(nèi)容。第四章數(shù)組數(shù)組64.1一維數(shù)組4.2二維數(shù)組4.3字符數(shù)組4.4數(shù)組程序舉例數(shù)組6在使用C語言進行程序設(shè)計過程中,我們使用數(shù)組把具有相同類型的若干變量按有序的形式組織起來,這些按一定順序排列的同類型數(shù)據(jù)元素的集合稱為數(shù)組。在C語言中,數(shù)組屬于構(gòu)造數(shù)據(jù)類型,它可以被分解成若干個數(shù)組元素,而這些數(shù)組元素可以是基本數(shù)據(jù)類型,也可以是構(gòu)造類型。按數(shù)組元素的類型劃分,數(shù)組可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)體數(shù)組等多種類型。本章主要介紹數(shù)值數(shù)組以及字符數(shù)組的定義及使用方法。4.1一維數(shù)組4.1.1一維數(shù)組的定義在C語言中規(guī)定,數(shù)組必須先定義再使用。一維數(shù)組定義方式為:

類型說明符數(shù)組名[整形常量或常量表達式];其中:類型說明符是int、char、float、double等基本數(shù)據(jù)類型以及構(gòu)造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標識符,其命名規(guī)則與基本變量名一致。常量表達式使用中括號括起來,表示數(shù)據(jù)元素的個數(shù),也稱為數(shù)組的長度,可以是一個大于等于1的整數(shù)、符號常數(shù)或常量表達式。例如:intarr[5];//定義數(shù)組名為arr、每個元素類型都是整型、共有5個元素的數(shù)組#defineLEN100//定義宏常量LEN,其值為100floatarr1[LEN],arr2[LEN+10];//可以使用符號常數(shù)和常量表達式來定義數(shù)組charch[8];//定義數(shù)組名為ch、每個元素類型都是字符型、共有8個元素的數(shù)組4.1一維數(shù)組4.1.1一維數(shù)組的定義對于數(shù)組定義應(yīng)注意以下幾點:數(shù)組名的書寫規(guī)則應(yīng)符合標識符的書寫規(guī)定,在前面章節(jié)已做介紹;數(shù)組名不能與其它變量名相同,例如對于intarr,arr[5];系統(tǒng)會報錯;數(shù)組的類型代表了其中每個元素的值類型,即同一個數(shù)組,其元素數(shù)據(jù)類型均相同;中括號中常量表達式表示數(shù)組元素的個數(shù),但其下標從0開始計算,因此intarr[5];定義完成后,其元素分別為arr[0],arr[1],arr[2],arr[3],arr[4];中括號中可以是符號常數(shù)或常量表達式,但不能是變量。//正確示例#defineLEN100main(){inta[LEN],b[LEN+100];……}//錯誤示例main(){intlen=100;inta[len],b[len+100];……}4.1一維數(shù)組4.1.2一維數(shù)組的初始化數(shù)組初始化賦值,也可簡稱為初始化,是指在定義的同時給數(shù)組元素賦予初值。數(shù)組初始化在編譯階段進行,這樣的程序運行時間短,執(zhí)行效率高。初始化賦值的形式為:類型說明符數(shù)組名[整形常量或常量表達式]={值1,值2,……值n};其中,使用大括號將數(shù)據(jù)值集合括起來,而{}中的數(shù)據(jù)值即為若干元素的初值,各值之間用逗號間隔。例如:intarr[5]={10,11,12,13,14};//其中arr[0]到arr[4]的值分別為10,11,12,13,144.1一維數(shù)組4.1.2一維數(shù)組的初始化C語言對數(shù)組的初始化還有以下幾點說明:可以只給部分元素賦初值當(dāng)大括號中值的個數(shù)少于元素總個數(shù)時,只給靠左面的部分元素賦值,例如:intarr[5]={10,11,12};表示只給arr[0]到arr[2]分別賦值10,11,12,而后2個整形元素自動賦值0。只能給元素逐個賦值,不能給數(shù)組整體賦值例如:給5個元素全部賦值為1,只能寫為intarr[5]={1,1,1,1,1};而不能寫為:intarr[5]=1;給全部元素初始化賦值時,數(shù)組元素的個數(shù)可以不寫例如:intarr[5]={10,11,12,13,14};可寫為:intarr[]={10,11,12,13,14};4.1一維數(shù)組4.1.3一維數(shù)組元素的引用C語言規(guī)定數(shù)組必須先定義后使用,且只能逐個引用數(shù)組元素而不能一次引用所有元素,這是因為數(shù)組元素,也被稱為下標變量,是組成數(shù)組的基本單元,而每個數(shù)組元素就是一個變量,其使用方法與同類型的變量一樣。數(shù)組元素的表示形式為:數(shù)組名[下標]其中下標可以是整型常量或變量表達式,這與定義時的常量表達式不同。例如intarr[5]={10,11,12,13,14};使用arr[2],a[i+j],a[i++](其中i,j都是整形變量)引用上述數(shù)組的元素都是正確的形式。4.1一維數(shù)組4.1.3一維數(shù)組元素的引用例4.1數(shù)組的定義與元素引用#include<stdio.h>#defineLEN5voidmain(){inti,arr1[LEN];intarr2[5]={10,11,12,13,14};arr1[0]=0;arr1[1]=1;arr1[2]=2;arr1[3]=3;arr1[4]=4;for(i=0;i<=4;i++)printf("%d",arr1[i]);

printf("%d",arr2[0]);printf("%d",arr2[1]);printf("%d",arr2[2]);printf("%d",arr2[3]);printf("%d",arr2[4]);}4.1一維數(shù)組4.1.3一維數(shù)組元素的引用例4.2數(shù)組元素可以當(dāng)做普通變量來使用#include<stdio.h>#defineLEN5voidmain(){inti,arr1[LEN];intarr2[5]={10,11,12,13,14};for(i=0;i<5;i++)arr1[i]=arr2[i]*2;for(i=4;i>=0;i--)printf(“%d\n”,arr1[i]);}4.1一維數(shù)組4.1.4一維數(shù)組程序舉例例4.3使用數(shù)組來實現(xiàn)求5個整數(shù)中的最大值#include<stdio.h>voidmain(){inti,max;//定義整型變量i當(dāng)計數(shù)器變量,max存儲最大值intarr[5];printf("請輸入5個整數(shù):\n");for(i=0;i<5;i++)scanf("%d",&arr[i]);//使用scanf函數(shù)進行動態(tài)賦值max=arr[0];for(i=1;i<5;i++)if(arr[i]>max)max=arr[i];printf("數(shù)組中最大的整數(shù)是%d\n",max);}4.1一維數(shù)組4.1.4一維數(shù)組程序舉例【例4.4】使用數(shù)組為當(dāng)前數(shù)組賦值#include<stdio.h>voidmain(){inti,j,arr1[5]={1,2,3,4,5},arr2[5]={0};printf("\n數(shù)組arr2所有元素的初始值為:\n");for(i=0;i<5;i++)printf("%-5d",arr2[i]);for(i=0;i<5;i++)arr2[i]=arr1[i];printf("\n數(shù)組arr2在被arr1賦值后所有元素的值為:\n");for(i=0;i<5;i++)printf("%-5d",arr2[i]);}4.2二維數(shù)組4.2.1二維數(shù)組的定義二維數(shù)組定義的一般形式是:類型說明符數(shù)組名[常量表達式1][常量表達式2]其中常量表達式1表示第一維下標的長度,常量表達式2則表示第二維下標的長度。例如:inta[5][5];定義了一個5行5列的數(shù)組,數(shù)組名為a,其下標變量的類型與一維數(shù)組一樣,均為整型。該數(shù)組的下標變量共有5×5個,即:a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]a[2][0],a[2][1],a[2][2],a[2][3],a[2][4]a[3][0],a[3][1],a[3][2],a[3][3],a[3][4]a[4][0],a[4][1],a[4][2],a[4][3],a[4][4]4.2二維數(shù)組4.2.1二維數(shù)組的定義二維數(shù)組定義的一般形式是:

類型說明符數(shù)組名[常量表達式1][常量表達式2]其中常量表達式1表示第一維下標的長度,常量表達式2則表示第二維下標的長度。例如:inta[5][5];定義了一個5行5列的數(shù)組,數(shù)組名為a,其下標變量的類型與一維數(shù)組一樣,均為整型。該數(shù)組的下標變量共有5×5個,即:a[0][0],a[0][1],a[0][2],a[0][3],a[0][4]a[1][0],a[1][1],a[1][2],a[1][3],a[1][4]a[2][0],a[2][1],a[2][2],a[2][3],a[2][4]a[3][0],a[3][1],a[3][2],a[3][3],a[3][4]a[4][0],a[4][1],a[4][2],a[4][3],a[4][4]二維數(shù)組在概念上是二維的,但是,實際的硬件存儲器卻是連續(xù)編址的,也就是說存儲器單元是按一維線性排列的。在C語言中,二維數(shù)組是按行排列的。4.2二維數(shù)組4.2.2二維數(shù)組的初始化二維數(shù)組在定義的同時也可以進行初始化操作,使數(shù)組中若干元素獲得相應(yīng)的值。二維數(shù)組初始化也是在編譯階段進行,這樣的程序運行時間短,執(zhí)行效率高。二維初始化賦值的形式為:

類型說明符數(shù)組名[整形常量或常量表達式1][整形常量或常量表達式2]={值1,值2,……值n};實際上,二維數(shù)組初始化時可按行分段賦值,也可按行連續(xù)賦值。例如對于數(shù)組a[4][3]:按行分段賦值可寫為:inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};按行連續(xù)賦值可寫為:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};這兩種初始化的結(jié)果是完全相同的,但推薦分段賦值的方法,這樣層次清晰,不容易出錯。4.2二維數(shù)組4.2.2二維數(shù)組的初始化例4.5二維數(shù)組初始化可以使用不同的形式#include<stdio.h>voidmain(){inti,j,a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};intb[4][3]={{1,2,3,4,5,6,7,8,9,10,11,12};printf(“\n數(shù)組a初始化之后各元素的值依次為:\n”);for(i=0;i<4;i++)for(j=0;j<3;j++)printf(“%-4d”,a[i][j];printf(“數(shù)組b初始化之后各元素的值依次為:\n”);for(i=0;i<4;i++)for(j=0;j<3;j++)printf(“%-4d”,b[i][j];)}4.2二維數(shù)組4.2.3二維數(shù)組元素的引用二維數(shù)組的元素也稱為雙下標變量,二維數(shù)組中各元素的表示形式為:

數(shù)組名[下標1][下標2]其中下標1和下標2應(yīng)為整型常量或整型表達式。在C語言中,二維數(shù)組與一維數(shù)組一樣,也必須先定義后使用,且只能引用每一個元素而不能整體引用。例如:執(zhí)行完語句inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};之后a[0][1]表示數(shù)組0行1列的元素,其值為2。4.2二維數(shù)組4.2.4二維數(shù)組程序舉例例4.6設(shè)計一個簡單的程序,統(tǒng)計學(xué)生語文、數(shù)學(xué)、英語三門課程的總分及平均分,具體如下表所示。課程語文數(shù)學(xué)英語總分平均分Alice808590

Bob908894

Clinton867892

可設(shè)一個二維數(shù)組a[3][5]存放3位同學(xué)三門課的成績、總分及平均分。根據(jù)數(shù)組的定義、初始化及引用方法,將總分及平均分計算并保存到相應(yīng)的數(shù)組元素中。由于分數(shù)可能有小數(shù),故將數(shù)組定義成單精度型。4.2二維數(shù)組4.2.4二維數(shù)組程序舉例#include<stdio.h>voidmain(){inti,j;//其中i,j為計數(shù)器floattotal=0,aver=0;//total表示總分,aver表示平均分,將兩者均初始化為0floatscore[3][5]={{80,85,90},{90,88,94},{86,78,92}};for(i=0;i<3;i++){for(j=0;j<3;j++){total+=score[i][j];}score[i][3]=total;score[i][4]=total/3.0;total=0;}printf(“3位同學(xué)的成績表打印如下:\n”);printf(“語文

數(shù)學(xué)

英語

總分

平均分\n”);for(i=0;i<3;i++){for(j=0;j<5;j++)printf(“%-8.2f”,score[i][j]);printf(“\n”);}}4.3字符數(shù)組4.3.1字符數(shù)組的定義形式與前面介紹的數(shù)值數(shù)組相同,字符數(shù)組定義的一般形式為:一維數(shù)組: char數(shù)組名[整型常量或整型常量表達式];二維數(shù)組: char數(shù)組名[整型常量或整型常量表達式1][整型常量或整型常量表達式2];例如:charc[5];//定義一維字符數(shù)組,其最大容量為5個字符,元素下標從0到4charc[4][3];//定義二維字符數(shù)組,其包含的元素第一個下標從0到3、第二個下標從0到2本節(jié)重點講述一維字符數(shù)組,讀者可參考二維數(shù)組的基礎(chǔ)知識來理解多維字符數(shù)組。4.3字符數(shù)組4.3.2字符數(shù)組的初始化字符數(shù)組也允許在定義時作初始化賦值,不過每個值需要使用單引號‘’引起來。例如讓字符數(shù)組存儲hello這個單詞:charc[6]={‘h’,‘e’,‘l’,‘l’,‘o’};賦值后各元素的值如表所示。其中c[5]未賦值,而系統(tǒng)自動為其賦予0值。當(dāng)對全體元素賦初值時也像前面普通數(shù)組一樣,可以省去長度。例如:charc[]={‘h’,‘e’,‘l’,‘l’,‘o’};注意,這時數(shù)組c的長度不再是6,而是自動定為5。c[0]c[1]c[2]c[3]c[4]‘h’‘e’‘l’‘l’‘o’4.3字符數(shù)組4.3.3字符數(shù)組的引用與其他基本類型的數(shù)組相同,字符數(shù)組也必須先定義后使用,且只能逐個引用數(shù)組元素而不能一次引用所有元素,而每個字符數(shù)組元素就是一個字符變量,其使用方法與字符變量相同。字符數(shù)組元素的表示形式為:

數(shù)組名[下標]以數(shù)組初始化時,以charc[]={‘h’,‘e’,‘l’,‘l’,‘o’};為例,可使用c[1]來引用‘e’;c[1+3]來引用’o’,其與c[4]等價;c[i]來引用其中任一值,其中i為整型變量,且0≤i≤4。4.3字符數(shù)組4.3.3字符數(shù)組的引用例4.7字符數(shù)組初始化及元素引用#include<stdio.h>voidmain(){inti;charc[]={‘h’,‘e’,‘l’,‘l’,‘o’};printf(“數(shù)組中的元素值為:\n”);for(i=0;i<5;i++)printf(“%c”,c[i]);}4.3字符數(shù)組4.3.4字符串和字符串結(jié)束標志C語言使用一個字符數(shù)組來存放一個字符串,并且前面章節(jié)介紹字符串常量時,已說明字符串總是以'\0'作為串的結(jié)束標記。因此把一個字符串存入數(shù)組時,也把結(jié)束符'\0'存入數(shù)

溫馨提示

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

最新文檔

評論

0/150

提交評論