版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言復(fù)習(xí)
概念及要點(diǎn)聯(lián)系方式:fyang@main()函數(shù)的基本結(jié)構(gòu)//必包含I/O函數(shù)的頭文件#include<stdio.h>//數(shù)學(xué)函數(shù)<math.h>//字符串函數(shù)<string.h>voidmain(){按需定義變量;按需輸入數(shù)據(jù);按需處理數(shù)據(jù);按需輸出數(shù)據(jù);}例:從鍵盤(pán)輸入三個(gè)整數(shù),輸出最大值#include<stdio.h>voidmain(){
inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);max=a;if(b>max)max=b;if(c>max)max=c;printf("max=%d\n",max);}autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhileC語(yǔ)言關(guān)鍵字
(系統(tǒng)定義,不能重定義)很少
C89共32個(gè)
boolimaginaryrestrictcomplexinlineC99增加了5個(gè)關(guān)鍵字C語(yǔ)言運(yùn)算符豐富有34種運(yùn)算符把括號(hào)、賦值、強(qiáng)制類(lèi)型轉(zhuǎn)換等都作為運(yùn)算符處理表達(dá)式類(lèi)型多樣化算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-C語(yǔ)言提供的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類(lèi)型的形式出現(xiàn)的
整型
字符型char實(shí)型(浮點(diǎn)型)
枚舉類(lèi)型enum單精度型float
雙精度型double數(shù)組類(lèi)型[]結(jié)構(gòu)體類(lèi)型struct
共用體類(lèi)型union基本類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型*空類(lèi)型void數(shù)據(jù)類(lèi)型無(wú)符號(hào)整型unsigned基本整型int長(zhǎng)整型long短整型shortC99增加longlong等類(lèi)型基本數(shù)據(jù)類(lèi)型int整數(shù),VC6默認(rèn)占4個(gè)字節(jié)(與long同
),
TC2默認(rèn)占2個(gè)字節(jié)(與short同
)。float單精度浮點(diǎn)數(shù),占4個(gè)字節(jié)double雙精度浮點(diǎn)數(shù),占8個(gè)字節(jié)char字符,占1個(gè)字節(jié)用來(lái)表示256個(gè)ASCII字符,或者0~255的整數(shù)字符常量轉(zhuǎn)義字符——特殊的字符常量一些特殊字符(無(wú)法從鍵盤(pán)輸入或者另有它用)用轉(zhuǎn)義字符表示charc1,c2;c1='a';可以
c2="a";錯(cuò)誤
合法的字符常量
?變量類(lèi)型定義字節(jié)數(shù)范圍整型inta,b;4或2見(jiàn)long和short短整型shortx,y;2-32768~32767無(wú)符號(hào)整型unsignedinta;20~65535無(wú)符號(hào)短整型unsignedshortb;20~65535長(zhǎng)整型longl;4-2147483648~2147483647無(wú)符號(hào)長(zhǎng)整型unsignedlongd;40~4294967295單精度實(shí)型floatf;43.4e-38~3.4e38(7位)雙精度實(shí)型doubled;81.7e-308~1.7e308(15位)長(zhǎng)雙精度實(shí)型longdoubleld;163.4e-4932~3.4e4932(19位)字符型charc1,c2;1-128~127無(wú)符號(hào)字符型unsignedcharc3;10~255算術(shù)運(yùn)算符及其優(yōu)先次序1.算術(shù)運(yùn)算符(1)基本的算術(shù)運(yùn)算符*:乘法運(yùn)算符/:除法運(yùn)算符%:求余運(yùn)算符+:加法運(yùn)算符
-:減法運(yùn)算符(2)自增、自減運(yùn)算符
/
整數(shù)除整數(shù),得整數(shù)%
只針對(duì)整型數(shù)據(jù),結(jié)果為余數(shù)如:if(a%b==0)//a是否被b整除i++,i--在變量使用之后,使變量的值加(減)1++i,--i在變量使用之前,使變量的值加(減)1關(guān)系運(yùn)算符及其優(yōu)先次序C語(yǔ)言提供6種關(guān)系運(yùn)算符:①<
(小于)②<=(小于或等于)③>
(大于)④>=(大于或等于)
⑤==(等于)⑥!=(不等于)
優(yōu)先級(jí)相同
(高)優(yōu)先級(jí)相同
(低)
邏輯運(yùn)算符及其優(yōu)先次序3種邏輯運(yùn)算符:!(邏輯非)&&(邏輯與)||(邏輯或)(1)&&(邏輯與)a&&b(如果a和b都為真則結(jié)果為真,否則為假)(2)||(邏輯或)a||b(如果a和b中有一個(gè)以上為真則結(jié)果為真,只有二者都為假時(shí)結(jié)果為假)(3)!(邏輯非)!a(如果a為真則結(jié)果為假,如果a為假則結(jié)果為真)運(yùn)算符的優(yōu)先次序!高++,--算術(shù)運(yùn)算符*,/,%高于→
+,-關(guān)系運(yùn)算符<
,<=,>,>=高于→
==,!=邏輯運(yùn)算符&&高于→
||賦值運(yùn)算符=,+=,-=,…逗號(hào)運(yùn)算符低(1)算術(shù)>關(guān)系>邏輯
(2)單目(!,++,--)>雙目
(3)同一優(yōu)先級(jí)的運(yùn)算次序由結(jié)合方向決定格式:printf("格式控制串",輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回EOF(-1)輸出表:要輸出的數(shù)據(jù)(可以沒(méi)有,多個(gè)時(shí)以","分隔)格式控制串:包含兩種信息格式說(shuō)明:
%[修飾符]格式字符
,用于指定輸出格式普通字符或轉(zhuǎn)義序列:原樣輸出格式字符printf格式輸出函數(shù)d,ix,Xoucse,Efg%%十六進(jìn)制無(wú)符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符字符串八進(jìn)制無(wú)符號(hào)整數(shù)小數(shù)形式浮點(diǎn)小數(shù)e和f中較短一種百分號(hào)本身inta=567;printf("%d",a);inta=255;printf("%x",a);inta=65;printf("%o",a);inta=567;printf("%u",a);chara=65;printf("%c",a);printf("%s","ABC");floata=567.789;printf("%e",a);floata=567.789;printf("%f",a);floata=567.789;printf("%g",a);printf("%%");567ff101567AABC5.677890e+02567.789000567.789%說(shuō)明 格式字符要用小寫(xiě)格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng)輸出轉(zhuǎn)換:格式字符與輸出項(xiàng)類(lèi)型不一致,自動(dòng)按指定格式輸出%[修飾符]格式字符附加格式說(shuō)明符(%[修飾符]格式字符).n對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度<m,左補(bǔ)空格;否則按實(shí)際輸出輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊)-指定在有符號(hào)數(shù)的正數(shù)前顯示正號(hào)(+)+輸出數(shù)值時(shí)域內(nèi)左側(cè)的空位自動(dòng)填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l,L對(duì)字符串,指定實(shí)際輸出位數(shù)用于d,o,x,u前,指定輸入為short型整數(shù)h格式:scanf("格式控制串",地址表)功能:按指定格式從鍵盤(pán)讀入數(shù)據(jù),存入地址表指定的存儲(chǔ)單元中,并按回車(chē)鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)地址表:變量的地址,常用取地址運(yùn)算符&&格式字符:d,i,o,x,u,c,s,f,e(意義同前表)例scanf("%d",&a);
輸入:10
則a=10例scanf("%x",&a);
輸入:11
則a=17scanf格式輸入函數(shù)例floatf;charcs[80];scanf("%f%s",&f,cs);
輸入10.15hellozhang!
則10.15f“hello”csl修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項(xiàng)讀入后不賦給變量例scanf("%4d%2d%2d",&yy,&mm,&dd);
輸入19991015
則1999yy,10mm,15ddscanf修飾符功能%[修飾符]格式字符例doubled;scanf("%lf",&d);——字符輸入輸出函數(shù)字符輸出函數(shù):putchar(ch)
輸出一個(gè)字符ch字符輸入函數(shù):
ch=getchar()無(wú)參數(shù)函數(shù)值為從輸入設(shè)備接收的字符——字符串輸入輸出函數(shù)字符串輸出函數(shù):
puts(str)
str字符數(shù)組或指針字符串輸入函數(shù):gets(str)str字符數(shù)組或指針類(lèi)比(文件操作)字符輸出函數(shù)--fputc(ch,fp)
字符輸入函數(shù)--fgetc(fp)
字符串輸出函數(shù)--fputs(str,fp)
字符串輸入函數(shù)--fgets(fp)
C語(yǔ)句概述語(yǔ)句是算法實(shí)現(xiàn)的程序表示,是算法實(shí)現(xiàn)的最小單位。語(yǔ)句說(shuō)明了一種行為,它是用計(jì)算語(yǔ)言編寫(xiě)的控制計(jì)算機(jī)完成確定操作的句子??照Z(yǔ)句(;)復(fù)合語(yǔ)句({一條或多條語(yǔ)句})流程控制語(yǔ)句結(jié)構(gòu)化語(yǔ)句條件語(yǔ)句(if語(yǔ)句,switch語(yǔ)句)while語(yǔ)句do-while語(yǔ)句
for語(yǔ)句非結(jié)構(gòu)化語(yǔ)句break語(yǔ)句continue語(yǔ)句
return語(yǔ)句非限定轉(zhuǎn)向語(yǔ)句(goto)C語(yǔ)言數(shù)據(jù)操作語(yǔ)句循環(huán)語(yǔ)句簡(jiǎn)單語(yǔ)句函數(shù)調(diào)用語(yǔ)句(函數(shù)名(實(shí)參表);)表達(dá)式語(yǔ)句(表達(dá)式;)1)
表達(dá)式語(yǔ)句4)復(fù)合語(yǔ)句2)
函數(shù)調(diào)用語(yǔ)句5)空語(yǔ)句3)
控制語(yǔ)句if(e)~else~條件語(yǔ)句for(e1;e2;e3)~循環(huán)語(yǔ)句while(e)~循環(huán)語(yǔ)句do~while(e);循環(huán)語(yǔ)句continue結(jié)束本次循環(huán)語(yǔ)句break中止switch或循環(huán)語(yǔ)句switch(e){}多分支選擇語(yǔ)句goto轉(zhuǎn)向語(yǔ)句return從函數(shù)返回語(yǔ)句(e)表示條件,~表示內(nèi)嵌的語(yǔ)句構(gòu)成程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)已經(jīng)證明,任何程序均可只用這三種結(jié)構(gòu)綜合描述只用這三種結(jié)構(gòu)編制的程序,叫結(jié)構(gòu)化程序程序必須符合結(jié)構(gòu)化規(guī)則典型算法:如累加、累乘、統(tǒng)計(jì)、遞推、迭代、窮舉等最常用的3種if語(yǔ)句形式:if(表達(dá)式)語(yǔ)句1;(單選,沒(méi)有else子句)if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;(2選1)
ifelse嵌套if語(yǔ)句(多選1)
if(表達(dá)式1)
語(yǔ)句1
elseif(表達(dá)式2)語(yǔ)句2
。。。
elseif(表達(dá)式n-1)語(yǔ)句nelse語(yǔ)句nIf語(yǔ)句if(a>b)t=a;a=b;b=t;if/else只管一個(gè)語(yǔ)句,欲管控多個(gè)語(yǔ)句,須標(biāo)為“{復(fù)合語(yǔ)句}”if(a>b){t=a;a=b;b=t;}①if語(yǔ)句(單分支,分段獨(dú)立分割)#include<stdio.h>#include<math.h>voidmain(){
intx;doubley;scanf(“%d”,&x);if(x<0)
y=fabs(x);if(x>=0&&x<10)
y=2*x-1;if(x>=10)y=sqrt(3*x-10);printf(“y=%lf\n”,y);}例:寫(xiě)一段程序,實(shí)現(xiàn)以下函數(shù),輸入整數(shù)x,輸出y的值:②ifelse語(yǔ)句(雙分支,二選一)請(qǐng)寫(xiě)成鋸齒的形式,每嵌套一層縮進(jìn)一層else總是與它上面最近的未配對(duì)的if配對(duì)if(x<0)
y=fabs(x);else
{
if(x<10)y=2*x-1;
elsey=sqrt(3*x-10);
}if(x<0)
y=fabs(x);else
if(x<10)y=2*x-1;
elsey=sqrt(3*x-10);if(x<0)
y=fabs(x);else
if(x<10)y=2*x-1;elsey=sqrt(3*x-10);ifelse演變?yōu)閕felseif③If~elseif語(yǔ)句(多選一,逐段排除)doublef(intx){doubley;if(x<0)
y=fabs(x);elseif(x<10)y=2*x-1;
elsey=sqrt(3*x-10);returny;}#include<stdio.h>voidmain(){
intx;doubley;scanf(“%d”,&x);
y=f(x);printf(“y=%lf\n”,y);}例:有一個(gè)函數(shù),輸入整數(shù)x,輸出y的值:switch語(yǔ)句一般形式switch(整型表達(dá)式){case整型常量1
:語(yǔ)句1case整型常量2
:語(yǔ)句2
┇
┇
┇default:語(yǔ)句n+1}//成績(jī)百分制轉(zhuǎn)為5級(jí)記分制voidmain(){floatscore;intg;doscanf(“%f”,&score);while(score>100||score<0);switch((int)score/10){case10:case9:g=1;break;case8:g=2;break;case7:g=3;break;case6:g=4;break;default:g=5;}printf(“g=%d\n”,g);}注意:整型表達(dá)式與某一整型常量匹配后,將按順序執(zhí)行(不再關(guān)心其它c(diǎn)ase),直到break跳出整個(gè)switch語(yǔ)句;//等價(jià)的ifelseif實(shí)現(xiàn)if(score>=90)g=1;
elseif(score>=80)g=2;elseif(score>=70)g=3;elseif(score>=60)g=4;elseg=5;//百分制成績(jī)轉(zhuǎn)為5級(jí)記分制//寫(xiě)成通用函數(shù):
intscore100to5(floatscore){intg;if(score>100||score<0)return-1;//or6,errorswitch((int)score/10){case10:case9:g=1;break;case8:g=2;break;case7:g=3;break;case6:g=4;break;default:g=5;}returng;}//百分制成績(jī)轉(zhuǎn)為5級(jí)記分制#include<stdio.h>intscore100to5(floatscore);voidmain(){floatx;intgrage;scanf(“%f”,&x);
grade=f(x);printf(“g=%c\n”,grade);}代碼重用(詳見(jiàn):函數(shù))對(duì)于常用的代碼片段,可自定義為通用函數(shù)
循環(huán)結(jié)構(gòu)3種類(lèi)型的循環(huán)語(yǔ)句while(循環(huán)條件)
語(yǔ)句1;do語(yǔ)句1;while(循環(huán)條件);for(expr1;循環(huán)條件;expr3)語(yǔ)句1;輔助控制語(yǔ)句breakcontinue//sum=1+2+3+…10#include<stdio.h>main(){inti,sum;
sum=0;i=1;while(i<=10){sum=sum+i;
i++;}printf("%d",sum);}循環(huán)初值循環(huán)終值循環(huán)變量增值根據(jù)輸入、輸出數(shù)據(jù)的性質(zhì),確定變量名及類(lèi)型循環(huán)體例子:sum=1+2+3+4+5+6+7+8+9+10編程的核心問(wèn)題:找規(guī)律,如何實(shí)現(xiàn)任意的第i項(xiàng)
循環(huán)條件注意:統(tǒng)計(jì)變量賦初值一般形式:執(zhí)行流程:expr2循環(huán)體假(0)真(非0)forexpr1expr3for語(yǔ)句說(shuō)明:expr1,expr2,expr3類(lèi)型任意,
都可省略,但分號(hào);不可省for語(yǔ)句可以轉(zhuǎn)換成while結(jié)構(gòu)for(expr1
;
expr2
;expr3
)
循環(huán)體語(yǔ)句;expr1;
//循環(huán)前初始化while(expr2){循環(huán)體語(yǔ)句;
expr3;}當(dāng)expr1和expr3空時(shí),while(expr2)
循環(huán)體語(yǔ)句;for(;
expr2
;
)
循環(huán)體語(yǔ)句;expr2為空時(shí),
無(wú)限循環(huán):for(expr1;;expr3)~;main(){inti,sum=0;i=1;for(;i<=10;){sum=sum+i;
i++;}printf("%d",sum);}常用形式://sum=1+2+3+…10#include<stdio.h>main(){inti,sum=0;
for(i=1;i<=10;i++){sum=sum+i;
}printf("%d",sum);}//sum=1+2+3+…10#include<stdio.h>main(){inti,sum=0;
i=1;while(i<=10){sum=sum+i;i++;}printf("%d",sum);}for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)
循環(huán)體語(yǔ)句;循環(huán)變量賦初值;while(循環(huán)條件){
循環(huán)體語(yǔ)句;循環(huán)變量增值;}求階乘:選擇合適的數(shù)據(jù)類(lèi)型:long或double求累加和:s=s+t(k),關(guān)鍵問(wèn)題找出:
通項(xiàng)t(k)及遞推關(guān)系,注意:初始值、終止條件和步長(zhǎng)統(tǒng)計(jì):統(tǒng)計(jì)正數(shù)、平均分以上、n個(gè)成績(jī)中100~90、89~80、79~70、69~60、<60的人數(shù);輸入字符串中字母d的個(gè)數(shù)設(shè)置一個(gè)計(jì)數(shù)變量k:初始化為0,每遇到一次將其加1:k++;典型的編程題累加的項(xiàng)較復(fù)雜時(shí),得專門(mén)求,例:前后項(xiàng)之間無(wú)關(guān)1m+3m+5m+7m+.…t(k)=pow(k,m)π/4=1-1/3+1/5-1/7+...直到最后項(xiàng)的絕對(duì)值小于10-6前后項(xiàng)之間有關(guān)(遞推公式)1!+2!+...+n!
t(k)
=t(k-1)*k,t(0)=1x0+x1+x2+x3+.…t(k)
=t(k-1)*x,t(0)=11+1+2+3+5+8+13+21+...t(k)
=t(k-1)+t(k-2)2/1+3/2+5/3+8/5+13/8+21/13+...a+aa+aaa+aaaa+aaaaa+....a是一個(gè)數(shù)字,例a=2,2+22+222+2222+....t(k)=t(k-1)*10+a,t(1)=a通項(xiàng)t(k)及遞推關(guān)系流程的轉(zhuǎn)移控制
breakcontinuegotoreturn有返回值的函數(shù)體內(nèi)應(yīng)含:
return
表達(dá)式;#include<math.h>voidmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>=1E-6)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}運(yùn)行結(jié)果:pi=3.141397#include<stdio.h>程序:判別是否素?cái)?shù)?#include"math.h"Voidmain(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)
if(m%i==0)break;if(i>k)printf("%d是素?cái)?shù)\n",m);else
printf("%d不是素?cái)?shù)\n",m);}運(yùn)行結(jié)果:
17↙17isaprimenumber
第六章循環(huán)控制整數(shù)分解例:讀入一個(gè)整數(shù),逐位分割各位數(shù)字,如輸入7358,則輸出
8537分離后逆序輸出。#include<stdio.h>voidmain(){intn;scanf("%d",&n);while(n>0){printf("%d",n%10);n/=10;}}數(shù)組(Array)inta[10];定義一個(gè)有10個(gè)元素的數(shù)組,每個(gè)元素的類(lèi)型均為int使用a[0]、a[1]、a[2]、……、a[9]這樣的形式訪問(wèn)每個(gè)元素。它們與普通變量沒(méi)有任何區(qū)別系統(tǒng)會(huì)在內(nèi)存分配連續(xù)的10個(gè)int空間給此數(shù)組數(shù)組下標(biāo)可以是整型表達(dá)式a是此數(shù)組的首地址a數(shù)組首地址a[9]a[8]a[7]a[1]a[0]…數(shù)組是一組共用同一個(gè)名字、具有一定順序關(guān)系和相同數(shù)據(jù)類(lèi)型的變量的集合。其中,共用的名字稱作?,集合中的變量稱為?
。一維數(shù)組的定義定義方式:數(shù)據(jù)類(lèi)型數(shù)組名[常量表達(dá)式];
合法標(biāo)識(shí)符表示元素個(gè)數(shù)下標(biāo)從0開(kāi)始[]:數(shù)組運(yùn)算符單目運(yùn)算符優(yōu)先級(jí)(1)左結(jié)合不能用()例
inta[6];a[0]a[1]a[2]a[3]a[4]a[5]a編譯時(shí)分配連續(xù)內(nèi)存內(nèi)存字節(jié)數(shù)=數(shù)組維數(shù)*
sizeof(元素的數(shù)據(jù)類(lèi)型)數(shù)組名表示內(nèi)存首地址,是地址常量
一維數(shù)組intn=10;inta[n];(定義時(shí)不能用變量)數(shù)組的定義與初始化數(shù)組定義后的初值仍然是隨機(jī)數(shù),一般需要我們來(lái)初始化inta[5]={12,34,56,78,9};inta[5]={0};inta[]={11,22,33,44,55};數(shù)組大小最好用宏來(lái)定義,以適應(yīng)未來(lái)可能的變化
#defineSIZE10
inta[SIZE];數(shù)組大小,在運(yùn)行時(shí)不可改變數(shù)組的使用數(shù)組的下標(biāo)都是從0開(kāi)始數(shù)組的每個(gè)元素與普通變量無(wú)異可以用任意表達(dá)式作為下標(biāo),動(dòng)態(tài)決定訪問(wèn)哪個(gè)元素for(i=0;i<SIZE;i++)
a[i]=2*i;下標(biāo)越界是大忌!可能帶來(lái)嚴(yán)重后果下標(biāo)i>=SIZE,將訪問(wèn)數(shù)組以外的空間。sizeof可以用來(lái)獲得數(shù)組大小:n=sizeof(a)/sizeof(a[0]);只能逐個(gè)對(duì)數(shù)組元素進(jìn)行操作(字符數(shù)組例外)輸入方法:inta[10],i;輸入第i個(gè)數(shù)組元素:scanf("%d",&a[i]);輸入整個(gè)數(shù)組元素:for(i=0;i<10;i++)scanf("%d",&a[i]);輸出方法:輸出第i個(gè)數(shù)組元素:printf("%d",a[i]);輸出整個(gè)數(shù)組元素:for(i=0;i<10;i++)printf("%d",a[i]);一維數(shù)組的輸入和輸出&a[i]≡
a+i
a[i]≡*(a+i)二維數(shù)組a:由3個(gè)行元素a[i]組成每個(gè)行元素a[i],由4個(gè)列元素組成,a[i]相當(dāng)于一個(gè)一維數(shù)組a[0]a[1]a[2]行元素名a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[0][0]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]a[1][2]a[0]a[1]a[2]二維數(shù)組行元素列元素二維數(shù)組的輸入和輸出數(shù)組的輸入和輸出只能逐個(gè)對(duì)數(shù)組元素進(jìn)行操作(字符數(shù)組例外)inta[2][3],i,j;輸入方法:輸入第i行第j列元素:scanf("%d",&a[i][j]);輸入整個(gè)數(shù)組元素:for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);
輸出方法:輸出第i行第j列元素:printf("%d",a[i][j]);輸出整個(gè)數(shù)組元素:for(i=0;i<2;i++)for(j=0;j<3;j++)printf(“%d”,a[i][j]);&a[i][j]≡
a[i]+j≡
*(a+i)+j
a[i][j]≡
*(*(a+i)+j)#defineN10voidmain(){inta[N][N],i,j;for(i=0;i<N;i++){a[i][0]=a[i][i]=1;if(i>0)printf(“%5d”,a[i][0]);//每行第一個(gè)1for(j=1;j<i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];printf("%5d",a[i][j]);}printf(“%5d\n”,a[i][i]);//對(duì)角線上的1}}要打印出以下的楊輝三角形(若打印出10行),要求:1①正確的定義一個(gè)數(shù)組11
121②給出第0列元素的表達(dá)式1331③給出對(duì)角線元素的表達(dá)式,
14641④給出第i行第j列元素的表達(dá)式15101051⑤打印“直角三角形”………
例有三個(gè)學(xué)生四門(mén)課成績(jī),二維表格的統(tǒng)計(jì)與打?。ò葱薪y(tǒng)計(jì)和按列統(tǒng)計(jì)求均值)928568755488984561798140張三李四王二數(shù)學(xué)C語(yǔ)言英語(yǔ)物理#include<stdio.h>main(){//變量定義及初始化inta[3][4]={92,85,68,75,54,88,98,45,61,79,81,40},x,k,sum;charxm[3][9]={"張三","李四","王二"};charkc[4][6]={"數(shù)學(xué)","英語(yǔ)","C語(yǔ)言","物理"};floatxa[3]/*各行均值*/,ka[4]={0};//各列均值,初始化為全0//數(shù)據(jù)處理for(x=0;x<3;x++){xa[x]=0;//學(xué)生x成績(jī),累加前賦初值為0for(k=sum=0;k<4;k++){xa[x]+=a[x][k];
//學(xué)生x各門(mén)課程k成績(jī)累加
ka[k]+=a[x][k];//課程k累加}
xa[x]/=4.0f;//學(xué)生x成績(jī)求均值}//打印,如何實(shí)現(xiàn)”二維表”(何時(shí)計(jì)算各門(mén)課程的平均分)?}如何找出最高分及其對(duì)應(yīng)的姓名和課程?如何按平均成績(jī)排序,保持姓名的對(duì)應(yīng)關(guān)系?
字符數(shù)組初始化的兩種形式:用字符型數(shù)據(jù)對(duì)數(shù)組進(jìn)行初始化charstr[]={'C','h','i','n','a','\0'};用字符串常量直接對(duì)數(shù)組初始化charstr[6]={"China"};charstr[]="China";//或去掉{}字符逐個(gè)方式字符串賦值方式字符串采用‘
\0’標(biāo)志字符串和數(shù)組字符串存放在字符數(shù)組中字符串
處理函數(shù)#include
<string.h>
charcs[100];gets(cs);puts(cs);charcs[100];scanf(“%s”,cs);printf(“%s”,cs);注意:輸入輸出字符串時(shí),實(shí)參為數(shù)組名例題:輸入一個(gè)以回車(chē)結(jié)束的字符串(少于80個(gè)字符),然后逆序輸出。voidmain(){chars[80];
inti=0;
while((s[i]=getchar())!=‘\n’)
i++;
s[i]=’\0’;
//----------------等價(jià)于gets(s);for(i=strlen(s);
i>0;i--
)
putchar(s[i]);}IamaBoy\0//等價(jià)于while(s[i]=getchar(),s[i]!=‘\n’)
注:函數(shù)參數(shù):str,str1,str2是字符數(shù)組名或字符型指針charstr[]="BBI";puts(str);charstr[]="\nbbi"puts(str);gets(str);
鍵入:Iamstdcharc1[20]="Iamstud";charc2[]="aboy"printf("%s",
strcat(c1,c2));
strcpy(str1,"BBI");charstr2[]="bbi";strcpy(str2,str1)strcmp("CCTV",“ZTV");printf("%d\n",strlen("bbi"));puts(str或字串)在屏幕上顯示一個(gè)字符串(以
‘\0’結(jié)束);附加換行g(shù)ets(str)從鍵盤(pán)輸入一個(gè)串給字符數(shù)組,返回是該數(shù)組在內(nèi)存的
首地址;字符串里可含空格
strcat(str1,str2)將串2接在串1后,其結(jié)果放在字符數(shù)組中strcpy(str1,字串)將字符串拷貝到字符數(shù)組里
strcmp(str1,str2)兩串相同,返回值是0;串1>串2,返回值是正整數(shù)串1<串2,返回值是負(fù)整數(shù)strlen(str)返回不包括'\0'字符串的長(zhǎng)度函數(shù)格式功能舉例字符串處理函數(shù)<string.h>數(shù)組的應(yīng)用了解了在什么情況下使用數(shù)組這種數(shù)據(jù)類(lèi)型向函數(shù)傳遞一維數(shù)組和二維數(shù)組的方法用數(shù)組名作為函數(shù)參數(shù)和用簡(jiǎn)單變量作為函數(shù)參數(shù)的不同之處程序設(shè)計(jì)常用算法:求最大值,排序,查找,統(tǒng)計(jì)斐比數(shù)列的設(shè)計(jì)幾種方法逆序存放數(shù)據(jù)回文問(wèn)題函數(shù)C中庫(kù)函數(shù)按功能分類(lèi):使用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)(稱庫(kù)函數(shù)),需要#include命令
函數(shù)
頭文件
輸入、輸出函數(shù)stdio.h
數(shù)學(xué)函數(shù)math.h
字符和字符串函數(shù)string.h
動(dòng)態(tài)分配函數(shù)malloc.h………………..
對(duì)于常用的代碼片段,可自定義為通用函數(shù)
目的:代碼重用一般格式見(jiàn)名知意返回值的類(lèi)型缺省int型無(wú)返回值void函數(shù)體:完成某功能函數(shù)類(lèi)型函數(shù)名(形參類(lèi)型說(shuō)明表){
說(shuō)明部分 語(yǔ)句部分}現(xiàn)代風(fēng)格:函數(shù)的定義例有參函數(shù)的定義
intmax(intx,inty){intz;z=(x>y)?x:y;return(z);}與外部交換數(shù)據(jù)#include<stdio.h>intmax(intx,inty);//函數(shù)聲明voidmain(){inta,b,c;scanf("%d,%d",&a,&b);
c=max(a,b);//函數(shù)調(diào)用printf("Max=%d\n",c);}各形參都帶類(lèi)型說(shuō)明各實(shí)參與形參一一對(duì)應(yīng)自定義函數(shù)的編程思路//輸入兩個(gè)整數(shù),返回較大者
intmax(intx,inty){intz;z=(x>y)?x:y;return(z);}
例:函數(shù)功能:輸入兩個(gè)整數(shù),返回最大值①確定函數(shù)名:根據(jù)函數(shù)功能,取名max②確定參數(shù)的個(gè)數(shù)及類(lèi)型:應(yīng)當(dāng)有兩個(gè)參數(shù),以便從主函數(shù)接收兩個(gè)整數(shù),參數(shù)的類(lèi)型應(yīng)當(dāng)是整型③確定函數(shù)的類(lèi)型:根據(jù)返回值的類(lèi)型,應(yīng)為int{④根據(jù)需要定義內(nèi)部變量;⑤根據(jù)功能處理數(shù)據(jù)⑥求出返回值,并返回}main函數(shù)的寫(xiě)法
(調(diào)用自定義函數(shù)時(shí))#include<stdio.h>voidmain(){必要的函數(shù)聲明(可外移);根據(jù)需要定義變量;必要的數(shù)據(jù)輸入;
函數(shù)調(diào)用;
必要的結(jié)果輸出;}#include<stdio.h>voidmain(){intmax(intx,inty);inta,b,c;scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max=%d\n",c);}intmax(intx,inty){return(x>y)?x:y;}自定義函數(shù)的編程思路//計(jì)算xn,x為實(shí)數(shù),n為整數(shù)
doublecal_power(doublex,intn){inti;doublepow=1.0;for(i=1;i<=n;i++)pow=pow*x;returnpow;}
函數(shù)功能:計(jì)算xn,x為實(shí)數(shù),n為整數(shù)①確定函數(shù)名:根據(jù)函數(shù)功能,取名cal_power②確定參數(shù)的個(gè)數(shù)及類(lèi)型:應(yīng)當(dāng)有兩個(gè)參數(shù),以便從主函數(shù)接收x和n的值,參數(shù)類(lèi)型:doublex,intn③確定函數(shù)的類(lèi)型:根據(jù)返回值的類(lèi)型,應(yīng)為double{④根據(jù)需要定義內(nèi)部變量;⑤根據(jù)功能處理數(shù)據(jù)⑥求出返回值,并返回}main函數(shù)的寫(xiě)法
(調(diào)用自定義函數(shù)時(shí))#include<stdio.h>必要的函數(shù)聲明;voidmain(){根據(jù)需要定義變量;必要的數(shù)據(jù)輸入;
必要的數(shù)據(jù)處理(調(diào)用函數(shù));
必要的數(shù)據(jù)輸出;}#include<stdio.h>doublecal_power(doublex,intn);voidmain(){doublex,s;intn,i;scanf("%lf,%d",&x,&n);
for(i=1,s=0;i<=n;i++)s=s+1/cal_power(x,i);
printf(“s=%lf\n",s);}函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞形式參數(shù):intmax(intx,inty);實(shí)際參數(shù):c=max(3,5);形參為帶類(lèi)型說(shuō)明的變量,而實(shí)參可以是常量、變量或表達(dá)式:在調(diào)用函數(shù)過(guò)程中,系統(tǒng)會(huì)把實(shí)參的值傳遞給被調(diào)用函數(shù)的形參,c=max(3,b);c=max(a,b);c=max(a+3,b);實(shí)參形參單向性形參必須指定類(lèi)型,實(shí)參必須有確定的值實(shí)參不帶類(lèi)型說(shuō)明,但實(shí)參需與形參類(lèi)型一致,個(gè)數(shù)相同若實(shí)參類(lèi)型與形參不一致,自動(dòng)轉(zhuǎn)換為形參的類(lèi)型例比較兩個(gè)數(shù)并輸出大者#include<stdio.h>intmax(intx,inty);//函數(shù)聲明voidmain(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);//函數(shù)調(diào)用printf("Max=%d\n",c);}intmax(intx,inty)//函數(shù)定義{if(y>x)x=y;return(x);}7.5函數(shù)參數(shù)及其傳遞方式調(diào)用的主要過(guò)程:
(1)先將實(shí)參a,b的值,
分別傳遞給形參x,y
(2)然后轉(zhuǎn)去執(zhí)行max()函數(shù)體
(3)函數(shù)返回時(shí),返回值z(mì)被帶回調(diào)用函數(shù),賦值給cmax實(shí)參max形參單向傳值max函數(shù)只對(duì)局部變量x、y操作對(duì)main中的變量a、b沒(méi)影響#include<stdio.h>voidswap(intx,inty);voidmain(){inta=5,b=10;swap(a,b);printf(“%d,%d”,a,b);}voidswap(intx,inty)
{intt=x;//①
x=y;//②
y=t;//③}swap函數(shù)只對(duì)局部變量x、y、t操作,對(duì)main中的變量a、b沒(méi)影響函數(shù)間參數(shù)傳遞main函數(shù)swap函數(shù)510變量a變量b形參x形參y105變量tempmain函數(shù)變量a5變量b10①t=x;②
x=y;③y=t;5#include<stdio.h>intmain(){intb[10];printf(“輸入:");
input1(b,10);
sort(b,10);printf(“輸出:");
print1(b,10);return0;}數(shù)組名作函數(shù)的形參形參的數(shù)組名≡指針
input1(inta[],intn)≡input1(int*a,intn)voidprint1(inta[],intn){inti;for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}voidinput1(inta[],intn){inti;
for(i=0;i<10;i++)scanf("%d",a+i);}a=b=&b[0]內(nèi)存地址數(shù)組元組輸入數(shù)據(jù)1000b[0]611004b[1]821008b[2]531012b[3]751016b[4]921020b[5]621024b[6]711028b[7]671032b[8]801036b[9]85實(shí)參將&b[0]值傳給形參a,形參和實(shí)參共享同一數(shù)組:a≡b,a+i≡&b[i],a[i]≡b[i]
數(shù)組名作函數(shù)參數(shù)
(選擇法排序)
用選擇法對(duì)數(shù)組中10個(gè)整數(shù)按由小到大排序解題思路:所謂選擇法就是先將10個(gè)數(shù)中最小的數(shù)與a[0]對(duì)換;第一輪結(jié)果a[0]最小再將a[1]到a[9]中最小的數(shù)與a[1]對(duì)換;第二輪結(jié)果a[1]最小……依次類(lèi)推:每一輪,在未排序的數(shù)中找出最小的一個(gè),交換到前端共比較9輪voidsort(inta[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i;//從a[i]到a[n-1]中找最小值a[k]for(j=i+1;j<n;j++)if(a[j]<a[k])k=j; t=a[k];//a[k]交換到a[i]a[k]=a[i];a[i]=t; }}需要n-1輪比較數(shù)組名作函數(shù)的形參內(nèi)存地址數(shù)組元組輸入數(shù)據(jù)1000a[0]611004a[1]821008a[2]531012a[3]751016a[4]921020a[5]621024a[6]711028a[7]671032a[8]801036a[9]85定義:函數(shù)直接或間接的調(diào)用自身叫函數(shù)的遞歸調(diào)用f()調(diào)f調(diào)f2調(diào)f1f1()f2()說(shuō)明C編譯系統(tǒng)對(duì)遞歸函數(shù)的自調(diào)用次數(shù)沒(méi)有限制每調(diào)用函數(shù)一次,在內(nèi)存堆棧區(qū)分配空間,用于存放函數(shù)變量、返回值等信息,所以遞歸次數(shù)過(guò)多,可能引起堆棧溢出intf(intx){inty,z;……
z=f(y);…….return(2*z);}intf1(intx){inty,z;……
z=f2(y);…….return(2*z);}intf2(intt){inta,c;……
c=f1(a);…….return(3+c);}遞歸調(diào)用#include<stdio.h>intf(intn){intt;if(n==0||n==1)t=1;elset=f(n-1)*n;return(t);}voidmain(){intn=5,y;y=fac(n);printf("%d!=%d",n,y);}例:求n的階乘如何實(shí)現(xiàn)求xn的遞歸函數(shù)?f(n)=1(n=0,1)n*f(n-1)(n>1)遞歸函數(shù)必須有一個(gè)結(jié)束條件:
當(dāng)條件成立時(shí),不再遞歸調(diào)用本函數(shù),完成適當(dāng)操作后返回。f(5)t=5*f(4)f(4)t=4*f(3)f(3)t=3*f(2)f(2)t=2*f(1)f(1)t=1f(1)=1遞歸調(diào)用階段
返回階段intf(intn){intt;if(n<=1)t=1;elset=n*f(n-1);return(t);}f(2)=2f(3)=6f(4)=24f(n)=1(n=0,1)n*f(n-1)(n>1)f(5)=120典型例子:參見(jiàn)實(shí)驗(yàn)十(7)從f(1)開(kāi)始反向推演出f(5)遞歸函數(shù)的跟蹤局部變量局部變量在函數(shù)和復(fù)合語(yǔ)句塊內(nèi)定義的變量形參也是局部變量只能在定義它的函數(shù)內(nèi)部使用和識(shí)別特點(diǎn)進(jìn)入語(yǔ)句塊時(shí)獲得內(nèi)存,僅能由語(yǔ)句塊內(nèi)語(yǔ)句訪問(wèn),退出語(yǔ)句塊時(shí)釋放內(nèi)存。每次進(jìn)入需重新初始化intm=1;intf(inta){if(a>m){intt;
t=m;m=a;a=t;}
returna;}voidmain(){inti=0;while(i<3)printf("%d",m+f(i++));}全局變量全局變量在所有函數(shù)之外定義的變量特點(diǎn)在程序中定義它的位置以后都有效在定義點(diǎn)之前或在其他文件中引用,應(yīng)該進(jìn)行如下聲明:
extern類(lèi)型名變量名;從程序運(yùn)行起即占據(jù)內(nèi)存,程序運(yùn)行過(guò)程中可隨時(shí)訪問(wèn),程序退出時(shí)釋放內(nèi)存使函數(shù)之間的數(shù)據(jù)交換更容易,也更高效但是并不推薦使用,盡量少用因誰(shuí)都可改寫(xiě)它,難維護(hù)externintm;intf(inta){if(a>m){intt;
t=m;m=a;a=t;}
returna;}intm;//自動(dòng)初值為0voidmain(){inti=0;while(i<3)printf("k=%d,",m+f(i++));}自動(dòng)變量(auto)"自動(dòng)"體現(xiàn)在進(jìn)入語(yǔ)句塊時(shí)自動(dòng)申請(qǐng)內(nèi)存,初值不確定,退出時(shí)自動(dòng)釋放是缺省的存儲(chǔ)類(lèi)型標(biāo)準(zhǔn)定義格式
auto類(lèi)型名變量名;動(dòng)態(tài)局部變量,函數(shù)每次進(jìn)入要重新賦初值(初始化),在函數(shù)退出后失效intk=1;voidfun();voidmain(){
intj;for(j=0;j<2;j++)fun();printf("k=%d",k);}voidfun(){
intk=1;printf("k=%d,",k);k++;}靜態(tài)變量(static)靜態(tài)變量在變量類(lèi)型前面用static修飾
staticinti;靜態(tài)變量處于內(nèi)存靜態(tài)區(qū),函數(shù)退出不釋放。變量的值僅初始化一次(默認(rèn)值為0),再次進(jìn)入函數(shù)仍然保存上次修改的值。intk=1;voidfun();voidmain(){fun();fun();printf("k=%d",k);}voidfun(){
staticintk=1;printf("k=%d,",k);
k++;}寄存器變量(register)寄存器CPU的內(nèi)部容量很有限、但速度極快的存儲(chǔ)器使用頻率比較高的變量聲明為register,可以使程序更小、執(zhí)行速度更快register類(lèi)型名變量名;
registerinti;現(xiàn)代編譯器有能力自動(dòng)把普通變量?jī)?yōu)化為寄存器變量,并且可以忽略用戶的指定,所以一般無(wú)需特別聲明變量為register#include<stdio.h>intAverage(intx,inty);//函數(shù)聲明main(){
inta=12,b=24,ave;ave=Average(a,b);
printf("Averageof%dand%dis%d.\n",a,b,ave);}//計(jì)算平均數(shù)intAverage(intx,inty){
intresult; result=(x+y)/2;
returnresult;}函數(shù)調(diào)用在前,函數(shù)定義在后float
average(floata[10],intn){inti;
floatsum=a[0];
for(i=1;i<n;i++)
;//求累加和
return(sum/n);}例如:#defineN5longfac(intn){longf=1;f=f*n;return(f);}main(){inti;for(i=1;i<=N;i++)printf("%d!=%ld\n",i,fac(i));}
運(yùn)行結(jié)果:1!=12!=23!=34!=45!=5
運(yùn)行結(jié)果:1!=12!=23!=64!=245!=120staticlongf=1;變量:在C語(yǔ)言中,一個(gè)變量對(duì)應(yīng)于一組用于保存數(shù)據(jù)的內(nèi)存單元。例如:整型變量占用4個(gè)字節(jié)的內(nèi)存空間。變量的地址:變量?jī)?nèi)存單元的起始地址。指針:就是一個(gè)變量的地址.在C語(yǔ)言中,變量在內(nèi)存中的地址是由編譯系統(tǒng)分配的,它是指針常量,例如數(shù)組名。指針類(lèi)型:指針是C語(yǔ)言的一種數(shù)據(jù)類(lèi)型(類(lèi)型說(shuō)明符*).指針變量:聲明為指針類(lèi)型的,專用于存放變量地址的變量。8、指針(Pointer)的概念指針變量賦值只能賦予同類(lèi)型變量的地址,不能賦予除0或NULL以外的任何其它數(shù)據(jù)??罩羔槪簾o(wú)指向#defineNULL0類(lèi)型說(shuō)明符*變量名;
int*p;定義一個(gè)指針變量:對(duì)指針變量的定義包括三個(gè)內(nèi)容:(1)
指針類(lèi)型說(shuō)明:int*(2)
指針變量名:p(3)
指針?biāo)赶虻淖兞康臄?shù)據(jù)類(lèi)型:int。p究竟指向哪一個(gè)變量,應(yīng)由p所賦予的變量地址來(lái)決定。利用指針間接訪問(wèn)時(shí),務(wù)必明白p指向誰(shuí)?
指針變量初始化intx;int*p;//(int*)是類(lèi)型p=&x;//變量x的地址賦給指針變量p//表述為:p指向x*p=5;//x=5;
//通過(guò)指針p間接訪問(wèn)所指的變量x
即:*p和
x等價(jià)*p≡
x*p就像普通變量一樣使用,其值就是x的值。兩個(gè)有關(guān)的運(yùn)算符:&與*運(yùn)算符
&
取地址運(yùn)算符
*
指針運(yùn)算符(或稱“間接訪問(wèn)”運(yùn)算符,對(duì)所指向的變量進(jìn)行存取操作,“存取地址中的數(shù)值")例如:voidswap(int*px,int*py){intt=*px;*px=*py;*py=t;}voidmain(){intx=3,y=5;
swap(&x,&y);printf("x=%d,y=%d",x,y);}等價(jià)p可以指向不同的內(nèi)存單元,從而使*p代表不同的變量例如:inta[10];
//定義a為包含10個(gè)整型數(shù)據(jù)的數(shù)組int*p;
//定義p為指向整型變量的指針p=&a[0];//a[0]的地址賦給指針變量p若:p=a或&a[0],即p指向數(shù)組a之首。則:*p、p[0]、*a、a[0]相互等價(jià)其中:a是指針常量,而p是指針變量(更靈活)。指針變量初始化等價(jià)通過(guò)數(shù)組名a對(duì)數(shù)組元素的操作,可以用指針變量p等效實(shí)現(xiàn)。二、通過(guò)指針引用數(shù)組元素
C語(yǔ)言規(guī)定:如果指針變量p已指向數(shù)組中的一個(gè)元素,則p+1指向它的下一個(gè)元素。引入指針變量后,就可以用多種方法來(lái)訪問(wèn)數(shù)組元素了。例如:inta[10],*p,i;//使用指針常量a:更高效for(i=0;i<10;i++)scanf("%d",a+i);//a+i即&a[i]for(i=0;i<10;i++)printf("%d",*(a+i));//*(a+i)即a[i]//使用指針變量p:更高效,且不要inti;for(p=a;p<a+10;p++)scanf("%d",p);for(p=a;p<a+10;p++)printf("%d",*p);二種等效的表示方式下標(biāo)表示指針表示a[i]*(a+i)p[i]*(p+i)a[0]*a(i=0)inta[]={0,1,2,3,4,5},*p;p=&a[2];p[1]
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024房屋裝修合同書(shū)
- 舊機(jī)器買(mǎi)賣(mài)合同樣例
- 2024年物品保管協(xié)議書(shū)范本解析
- 代管倉(cāng)庫(kù)租賃協(xié)議
- 軟件著作權(quán)許可合同樣式
- 員工勞動(dòng)合同范本經(jīng)典版
- 工程施工勞務(wù)承包合同范本大全
- 工廠土地租賃協(xié)議書(shū)樣本
- 二手車(chē)輛買(mǎi)賣(mài)合同樣本
- 6.1 正視發(fā)展挑戰(zhàn)(導(dǎo)學(xué)案) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 廣東省深圳市龍崗區(qū)多校2024-2025學(xué)年一年級(jí)(上)期中語(yǔ)文試卷(含答案部分解析)
- 統(tǒng)編語(yǔ)文四年級(jí)上冊(cè)第六單元教材解讀及集體備課
- 大學(xué)生職業(yè)規(guī)劃大賽生涯發(fā)展
- 職業(yè)發(fā)展生涯報(bào)告
- 《HSK標(biāo)準(zhǔn)教程3》第10課
- 精品資料(2021-2022年收藏的)病案管理制度全套
- 低壓工作票(共3頁(yè))
- 2閥門(mén)結(jié)構(gòu)和工作原理(上)
- 基礎(chǔ)圖案設(shè)計(jì)(課堂PPT)
- 食堂操作工藝流程圖
- 幼兒園參觀學(xué)?;顒?dòng)方案5篇
評(píng)論
0/150
提交評(píng)論