C語(yǔ)言實(shí)現(xiàn)課件_第1頁(yè)
C語(yǔ)言實(shí)現(xiàn)課件_第2頁(yè)
C語(yǔ)言實(shí)現(xiàn)課件_第3頁(yè)
C語(yǔ)言實(shí)現(xiàn)課件_第4頁(yè)
C語(yǔ)言實(shí)現(xiàn)課件_第5頁(yè)
已閱讀5頁(yè),還剩342頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言基礎(chǔ)軟件、程序與指令之間的關(guān)系軟件程序2程序1命令命令命令C

語(yǔ)言的起源C–DennisRitchie(1972-1973年)

B–KenThompson

(1970年)BCPL–MartinRichards(1967年)

中級(jí)語(yǔ)言結(jié)構(gòu)化編程語(yǔ)言C

語(yǔ)言允許分割代碼和數(shù)據(jù)可以使用函數(shù)或代碼塊來(lái)實(shí)現(xiàn)這種特性代碼塊是邏輯上連接在一起的一組程序語(yǔ)句,可以當(dāng)作一個(gè)單元來(lái)使用強(qiáng)類型語(yǔ)言C語(yǔ)言是什么-What高級(jí)語(yǔ)言C語(yǔ)言匯編語(yǔ)言算法——解決問(wèn)題方法算法是在有限步驟內(nèi)求解某一問(wèn)題所使用的一組定義明確的規(guī)則范例

足量的水,3ml、5ml的容器各一,量出4ml的水。?算法:3ml的容器裝滿水倒入5ml容器中再用3ml的容器裝滿水將5ml的容器倒?jié)M將5ml容器的水倒出將3ml容器中剩余的1ml水倒入5ml容器中再用3ml容器裝滿水倒入5ml的容器里。5ml的容器中,就是4ml的水算法——解決問(wèn)題方法算法的重要特征有窮性確切性輸入輸出可行性課堂練習(xí)寫出下面問(wèn)題的算法:1、計(jì)算兩個(gè)數(shù)之和2、判斷一個(gè)數(shù)的奇偶性課堂練習(xí)算法

1、輸入兩個(gè)數(shù)x,y2、計(jì)算x+y 3、輸出(x+y)的結(jié)果偽代碼BeginInputx,yDisplayx+yend開始輸入x,y顯示x+y結(jié)束自然語(yǔ)言偽代碼流程圖語(yǔ)句1語(yǔ)句2語(yǔ)句1語(yǔ)句2一般流程圖N-S流程圖流程圖符號(hào)符號(hào)說(shuō)明程序的開始或結(jié)束計(jì)算步驟輸入/輸出指令判斷和分支連接符流程線繪制流程圖的注意事項(xiàng) 抓住解決問(wèn)題的主線只有一個(gè)入口與一個(gè)出口流程圖中每一個(gè)步驟都有機(jī)會(huì)被執(zhí)行根據(jù)不同結(jié)構(gòu)考慮不同流程結(jié)構(gòu)結(jié)構(gòu)內(nèi)部不能出現(xiàn)“死循環(huán)”結(jié)構(gòu)化程序設(shè)計(jì)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)范例:求兩數(shù)之和1、輸入一個(gè)數(shù)a2、輸入一個(gè)數(shù)b3、計(jì)算a+b4、輸出(a+b)的結(jié)果兩數(shù)相加的流程圖StartINPUTC=A+BDISPLAYCStop起止框:這里是程序的開始輸入輸出框:這里用來(lái)輸入兩個(gè)數(shù)處理框:這里用來(lái)兩個(gè)數(shù)相加輸入輸出框:這里用來(lái)顯示和起止框:這里是程序的結(jié)束順序結(jié)構(gòu)(課堂練習(xí))求三個(gè)數(shù)的平均值有兩個(gè)瓶子A和B,分別盛放醋和醬油,要求將它們互換分支結(jié)構(gòu)例題:輸出兩個(gè)數(shù)中最大的一個(gè)數(shù)?分支結(jié)構(gòu)算法1、輸入兩個(gè)數(shù)X,Y。2、當(dāng)X>Y時(shí),輸出X3、否則輸出Y開始結(jié)束X>Y?輸出x否是輸入X,Y結(jié)束輸出Y分支結(jié)構(gòu)輸入一個(gè)數(shù),判斷其是否大于1000,若是大于1000輸出1,否則輸出0,判斷一個(gè)數(shù)的奇偶性輸出三個(gè)數(shù)中最大的一個(gè)數(shù)循環(huán)結(jié)構(gòu)5!開始結(jié)束定義兩個(gè)變量sum=1,i=1i<=5?輸出sumSum=sum*i是否i+1課堂練習(xí)1+2+3……+99+100的和。C語(yǔ)言的基本結(jié)構(gòu)#include<stdio.h>//命令行部分voidmain() { inta; intb; intsum; printf("請(qǐng)輸入a的值:"); scanf("%d",&a); //給a賦值

printf("請(qǐng)輸入b的值:"); scanf("%d",&b); //給b賦值

sum=a+b; printf("sum=%d\n",sum);/*輸出sum的值*/}主函數(shù)函數(shù)體定義部分執(zhí)行部分課堂練習(xí)#include<stdio.h>voidmain()//計(jì)算圓的面積{ doubles=3.1415926; floatr; doublearea; printf("請(qǐng)輸入圓的半徑:"); scanf("%f",&r); area=s*r*r; printf("area=%lf\n",area);}開始編程打開編程環(huán)境添加源文件編寫源程序編譯源程序連接目標(biāo)文件執(zhí)行可執(zhí)行文件(.exe)編譯和運(yùn)行程序#include文件庫(kù)文件源文件#編譯器目標(biāo)文件鏈接器可執(zhí)行文件其他用戶生成的目標(biāo)文件程序文本用戶可以閱讀將擴(kuò)展的源代碼轉(zhuǎn)換成機(jī)器語(yǔ)言將目標(biāo)代碼與函數(shù)鏈接成可執(zhí)行代碼怎樣學(xué)好C語(yǔ)言-How端正學(xué)習(xí)態(tài)度——態(tài)度決定一切課前預(yù)習(xí)——有目的課后復(fù)習(xí)——溫故知新認(rèn)真完成作業(yè)——檢驗(yàn)學(xué)習(xí)成果多做練習(xí)——熟能生巧參考課外書籍——它山之石互相交流——兼聽則明數(shù)據(jù)類型數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型整型實(shí)型字符型數(shù)組型結(jié)構(gòu)體類型程序中對(duì)所有的數(shù)據(jù)都要指定數(shù)據(jù)類型常量與變量常量:程序中,其值不能被改變的量。變量程序中,其值可以改變的量。常量范例#include<stdio.h>voidmain(){ doubler,area; printf("請(qǐng)輸入圓半徑:"); scanf("%lf",&r); area=3.1415926*r*r; printf("%lf\n",area);}常量類型常量整型常量實(shí)型常量字符型常量2,85,-562.175,8.563,-56.1254‘a(chǎn)’、’9’變量15內(nèi)存中的數(shù)據(jù)數(shù)據(jù)15內(nèi)存應(yīng)用程序要為每一項(xiàng)數(shù)據(jù)分配內(nèi)存

需要多少內(nèi)存數(shù)據(jù)被存儲(chǔ)在哪個(gè)通過(guò)變量,可以為內(nèi)存中的位置提供一個(gè)有意義的名稱變量變量的組成要素變量名變量值例如:max=1010變量值max內(nèi)存單元變量范例#include<stdio.h>voidmain(){Intx,y,z;X=5;Y=6;Z=x+y;Printf(“%d”,z);}標(biāo)識(shí)符什么是標(biāo)識(shí)符? 用戶對(duì)語(yǔ)言中的變量名、函數(shù)名進(jìn)行自定義的對(duì)象名稱。標(biāo)識(shí)符的命名規(guī)則有效字符:字母、數(shù)字和下劃線三部分,標(biāo)識(shí)符必須以字母與下劃線開始。例如:area、s_name、_name、sum4、4letter有效字符長(zhǎng)度:一般不超過(guò)8位(turboC)。例如:student_name與student_code是一樣的標(biāo)識(shí)符。區(qū)分大小寫例如:name與NAME是不一樣的標(biāo)識(shí)符標(biāo)識(shí)符的命名規(guī)則不能使用C語(yǔ)言中的關(guān)鍵字例如:include、if、int、float等32個(gè)關(guān)鍵字盡量不要使用l與o例如:num1良好的習(xí)慣:見名知意。變量使用前必須先聲明例如:intarea關(guān)鍵字:程序中一種具有特殊含義的單詞。課堂練習(xí)找出下列合法的標(biāo)識(shí)符:Void a3_b3 for 2a define_123 -abc do word ifcase sigeof _sum 3Dmax 變量聲明數(shù)據(jù)類型變量名[=初始值]變量類型整型 #include<stdio.h>voidmain(){ inta; intb; intc;/*定義三個(gè)變量a,b,c也可以寫成inta,bc;-*/ a=10; b=20;/*給a,b賦值*/ c=a*b; printf("c=%d\n",c);}整型存儲(chǔ)數(shù)字?jǐn)?shù)據(jù)聲明方式:intnum;不能存儲(chǔ)類似于“Alan”

或“abc”等任何其他類型的數(shù)據(jù)分配16

位(2

個(gè)字節(jié))的內(nèi)存空間,整數(shù)的范圍是從-32768

到32767

示例:12322、0、-232實(shí)型變量浮點(diǎn)型存儲(chǔ)整數(shù)或包含小數(shù)位的值聲明方式:floatnum;最高精度是6-7

位分配32

位(4個(gè)字節(jié))的內(nèi)存空間

示例:23.05、56.5、32雙精度型存儲(chǔ)超出float類型大小的限制的值聲明方式:doublenum;最高精度是13-14位分配64位(8

個(gè)字節(jié))的內(nèi)存空間示例:23.34232324整型、實(shí)型之間的區(qū)別數(shù)據(jù)類型描述尺寸(字節(jié))整形-32768≤x≤327672長(zhǎng)整形-2147483648≤x21474836474單精度-3.402823E38≤x-1.401298E-45,1.401298E-45≤x3.402823E384精度是6位。

注:根據(jù)計(jì)算機(jī)系統(tǒng)的不同,精度和尺寸有所不同。char類型存儲(chǔ)一個(gè)字符信息聲明方式:

chargender; gender=‘m';分配8位(1

個(gè)字節(jié))的內(nèi)存空間示例:'a'、'm'、'$'、'%'、'1'、'5'字符型變量舉例#include<stdio.h>voidmain(){ charch1,ch2; ch1='a'; ch2='b'; printf("%c\n",ch1-32); printf("%c\n",ch2+1);}數(shù)據(jù)類型及其范圍2-1類型近似大?。ㄎ唬┳钚》秶鷆har8-128

到127unsigned80到255signedchar8-128到127int16-32,768到32,767unsignedint160到65,535signedint16與int相同shortint16與int相同unsignedshortint80到65,535變量聲明舉例Voidmain(){ charabc; /*聲明abc*/ intxyz; /*聲明xyz*/ floatlength; /*聲明length*/ doublearea; /*聲明area*/ longliteyrs; /*聲明liteyrs*/ shortarm; /*聲明arm*/}課堂練習(xí)聲明一個(gè)整型變量sum_1聲明一個(gè)浮點(diǎn)型變量sum_2聲明一個(gè)雙精度型變量sum_3聲明一個(gè)整型變量sum_4聲明一個(gè)長(zhǎng)整型變量5_sum變量初始化聲明時(shí)初始化Intsum_1=5;Floatsum_2=3.0;Charsum_3=‘a(chǎn)’;過(guò)程初始化Intsum_1;Charsum_3;Sum_1=10;Sum_3=‘b’;算術(shù)運(yùn)算符什么是運(yùn)算符能作用于數(shù)據(jù)上的符號(hào)代表作用于數(shù)據(jù)上的一種特定操作運(yùn)算符類型:執(zhí)行如下的操作算術(shù)運(yùn)算比較(關(guān)系)運(yùn)算邏輯運(yùn)算算術(shù)運(yùn)算符一元運(yùn)算符操作二元運(yùn)算符操作-一元減+加++遞增-減--遞減*乘%模/整除或除法“/”的用法#include<stdio.h>voidmain(){ inti=5; printf("%d\n",i/3); printf("%f\n",5/3.0);}算術(shù)運(yùn)算符的優(yōu)先級(jí)算術(shù)運(yùn)算符中,(-)求負(fù)運(yùn)算級(jí)別最高,(*、/、%)次之,(+、-)最后。在相同優(yōu)先級(jí)中,-(取負(fù))這一級(jí)按從右到左的順序結(jié)合;其余的算術(shù)運(yùn)算符按從左到右的順序結(jié)合.算術(shù)運(yùn)算符的優(yōu)先級(jí)(續(xù))考慮下面的例子:-4+3*-6/2-5+5-4+3*[-6]/2-5+5-4+[-18/2]-5+5-[4+-9]-5+5-[-5]-5+5--5課堂練習(xí)1.已有定義語(yǔ)句:inta=1,b=2,c=3;floatd=4;以下能正確表示數(shù)學(xué)式的C語(yǔ)言表達(dá)式.A)a/(b+c)*d;B)a/(b+c)*1/d;C)a/(c+b)/d;D)a/d/(b+c)2.求表達(dá)式3.6/6+1/2+55%10的計(jì)算結(jié)果;++和—用法概念:++和—是一種在本身的前提下+1和-1的操作。例如:a++、++a代表a=a+1;A--、--a代表a=a-1使用方法:前置用法

++a、--a后置用法

a++、a—++a與—a優(yōu)先級(jí)別最高,a++和a—優(yōu)先級(jí)別最低。++與—的運(yùn)算方向是“從右到左”++的用法舉例++用法的例子設(shè)A=1A++,++A執(zhí)行后A=2;B=A++執(zhí)行后B=1,A=2;B=++A執(zhí)行后B=2,A=2;++和—舉例例題設(shè)a=3,c=2;1.求b=(a++)-c的值

b=3-2b=1;a=3+1=4;2.求b=(++a)-c的值

a=3+1=4;b=4-2b=2;課堂練習(xí)設(shè)a=3,c=2;1.求b=(a--)-c的值b=?;a=?;2.求b=(--a)-c的值b=?;a=?;3求b=(++a)-(--a)的值b=?;a=?;4求b=(++a)-(--a)+a--的值b=?;a=?;運(yùn)算符和表達(dá)式什么是運(yùn)算符?對(duì)數(shù)據(jù)進(jìn)行特定操作的符號(hào)。例如:c=a+b什么是表達(dá)式?運(yùn)算符與操作數(shù)的有效結(jié)合。例如:a+b,5*6,a/8等運(yùn)算符類型算術(shù)

關(guān)系邏輯位一元、二元運(yùn)算符都是算術(shù)運(yùn)算符用于對(duì)包含關(guān)系運(yùn)算符的表達(dá)式進(jìn)行合并或取非測(cè)試兩個(gè)變量或一個(gè)變量和一個(gè)常量之間的關(guān)系將數(shù)字按位進(jìn)行計(jì)算賦值運(yùn)算符一般格式:變量名=表達(dá)式例如:a=5,a=b;a=2*6,a=a+b多重賦值:例如:a=b=c=10復(fù)合賦值格式:說(shuō)明:a+=5,a=a+5a-=5 a=a-5a*=5 a=a*5a/=5a=a/5A%=5a=a%5變量名雙目運(yùn)算符=表達(dá)式賦值運(yùn)算的順序:從右到左課堂練習(xí)a=8時(shí);下列表達(dá)式的值a+=a-=a*=a-5關(guān)系運(yùn)算符和邏輯運(yùn)算符2-1用于測(cè)試兩個(gè)變量或一個(gè)變量和一個(gè)常量之間的關(guān)系運(yùn)算符關(guān)系運(yùn)算>大于>=大于等于<小于<=小于等于==等于!=不等于高低關(guān)系運(yùn)算舉例當(dāng)a=3,b=4,c=5時(shí)a<b的值為1a>b的值為0a>=c的值為0(a>b)!=c的值為1(a<b)==c的值為0課堂練習(xí)當(dāng)a=3,b=4,c=5時(shí)(a<b)+c的值是多少?關(guān)系運(yùn)算符和邏輯運(yùn)算符2-2

邏輯運(yùn)算符用于對(duì)包含關(guān)系運(yùn)算符的表達(dá)式進(jìn)行合并或取非使用邏輯運(yùn)算符的表達(dá)式,返回0表示假,返回1表示真

示例:if((a>10)&&(a<20))運(yùn)算符邏輯運(yùn)算&&與||或!非邏輯與運(yùn)算符--&&課堂練習(xí)求下列表達(dá)式的答案1.(2>2)&&(4>2)2.(2>=2)&&(5>2)邏輯或運(yùn)算符--||用于只要一個(gè)條件為‘真’就返回‘真’的情況.課堂練習(xí)求下列表達(dá)式的答案1.(2>2)||(4>2)2.(3>1)||(1>2)邏輯非運(yùn)算符--!把判斷的結(jié)果取反只有一個(gè)操作數(shù)運(yùn)算符之間的優(yōu)先級(jí)別!>算術(shù)運(yùn)算>關(guān)系運(yùn)算>&&>||>賦值運(yùn)算運(yùn)算符之間的優(yōu)先級(jí)范例2*3+4/2>3AND3<5OR10<9計(jì)算如下:[2*3+4/2]>3AND3<5OR10<9[[2*3]+[4/2]]>3AND3<5OR10<9[6+2]>3AND3<5OR10<9[8>3]AND3<5OR10<9TrueANDTrueORFalse[TrueANDTrue]ORFalseTrueORFalseTrue首先計(jì)算算術(shù)運(yùn)算符比較運(yùn)算符,計(jì)算總左到右進(jìn)行最后計(jì)算邏輯運(yùn)算符課堂練習(xí)10*3%6*6+5-2&&(2*2+6/3>1||2>8)12%3/2+3*6>10&&!真||!真位運(yùn)算符2-1

將數(shù)字轉(zhuǎn)換成等價(jià)的二進(jìn)制形式后再處理數(shù)據(jù)(按位表示法)運(yùn)算符描述按位與(x&y)如果兩個(gè)操作數(shù)的相應(yīng)位均為1,則該位的結(jié)果值為1按位或(x|y)如果兩個(gè)操作數(shù)的相應(yīng)位有一個(gè)為1,則該位的結(jié)果值為1按位取反

(~x)將操作數(shù)按位取反

(0到1和1到0)按位異或(x^y)如果參加運(yùn)算的兩個(gè)操作數(shù)的相應(yīng)位同號(hào),則結(jié)果為0,異號(hào)則為1位運(yùn)算符2-2操作數(shù)位操作位表達(dá)式數(shù)字10&151010&1111

10101010|151010|11111111

1510^151010^111101015~10~10100101-11位運(yùn)算符將數(shù)字視為二進(jìn)制值,并按位進(jìn)行相應(yīng)運(yùn)算,運(yùn)算完成后再重新轉(zhuǎn)換為數(shù)字混合運(yùn)算與數(shù)據(jù)轉(zhuǎn)換

運(yùn)算符的操作數(shù)屬于不同的數(shù)據(jù)類型,運(yùn)算時(shí)通常會(huì)將這些操作數(shù)轉(zhuǎn)換為同一類型charch;inti;floatf;doubled;result=(ch/i)+(f*d)-(f+i);

intdoublefloat

doubledouble數(shù)據(jù)強(qiáng)制轉(zhuǎn)換轉(zhuǎn)換格式(數(shù)據(jù)類型)表達(dá)式范例#include<stdio.h>voidmain(){ doublea=3.784; printf("%d\n",(int)a);}順序結(jié)構(gòu)printf()輸出函數(shù)scanf()輸入函數(shù)putchar()函數(shù)getchar()函數(shù)printf()函數(shù)作用:在標(biāo)準(zhǔn)輸出設(shè)備(顯示器)控制臺(tái)上顯示數(shù)據(jù)語(yǔ)法格式:

printf(“格式控制符”,參數(shù)列表);

都需要一個(gè)格式命令-與參數(shù)列表需要在數(shù)量、類型和順序上匹配

需要由“”括起來(lái)。由文本字符和空格、格式命令和非打印字符組成Printf()函數(shù)的例題#include<stdio.h>voidmain(){ printf("靜以修身,\n儉以養(yǎng)德。\n非淡泊無(wú)以明志;\n%s\n","非寧?kù)o無(wú)以致遠(yuǎn)!!!");}printf()函數(shù)

格式控制符由三類項(xiàng)目中的一項(xiàng)或多項(xiàng)組成:文本字符:由可打印字符組成格式命令:以%符號(hào)開始,隨后緊跟與數(shù)據(jù)項(xiàng)相應(yīng)的格式代碼非打印字符:包括制表符、空格和新行文本與空格范例:#include<stdio.h> voidmain() { printf("謀事在人,成事在天"); }常用的格式控制符%d

—十進(jìn)制整數(shù)。%f或%e

—浮點(diǎn)型數(shù)字%c

—單字符型%s

—字符串型格式控制符范例#include<stdio.h>voidmain(){ intnumber_1=65; charnumber_2='b'; printf("number_1=%d\n",number_1); printf("number_1=%c\n",number_1); printf("number_2=%c\n",number_2); printf("number_2=%d\n",number_2); }常用的格式控制符(續(xù))“-”

修飾符數(shù)據(jù)項(xiàng)在范圍內(nèi)向左對(duì)齊,從范圍最左側(cè)的位置開始輸出數(shù)據(jù)項(xiàng)字符寬度修飾符

可以用于浮點(diǎn)型、雙精度型和字符數(shù)組型(字符串)。范圍寬度修飾符是一個(gè)整數(shù),定義了數(shù)據(jù)項(xiàng)的最大范圍寬度。精度修飾符可以用在浮點(diǎn)型、雙精度型或字符數(shù)組型(字符串)中。如果用在浮點(diǎn)型或雙精度型數(shù)據(jù)中,數(shù)字字符串表示小數(shù)右側(cè)最多可輸出的數(shù)字位數(shù)printf()中的修飾符的使用的示例#include<stdio.h>voidmain(){ printf("Thenumber555invariousforms:\n"); printf("Withoutanymodifier:\n"); printf("[%d]\n",555); printf("With–modifier:\n"); printf("[%-d]\n”,555); printf("Withdigitstring10asmodifier:\n"); printf("[%10d]\n”,555); printf("With0asmodifier:\n"); printf("[%0d]\n”,555); printf("With0anddigitstring10asmodifiers:\n"); printf("[%010d]\n”,555); printf("With-,0anddigitstring10asmodifiers:\n"); printf("[%-010d]\n",555);}Printf()函數(shù)注意事項(xiàng)(一)輸出的數(shù)據(jù)可以是常量、變量和表達(dá)式,但必須與格式控制符一一對(duì)應(yīng)。#include<stdio.h>voidmain(){ inti=5; floatj=3.5; printf("%c,%d,%f,%lf\n",'a',i,j,i*j);}printf()函數(shù)注意事項(xiàng)(二)%d,%f,%e,%c,%s,一般為小寫。而其它的d,f,s,c等字符作為普通字符處理。#include<stdio.h>voidmain(){ intf=5; floatd=3.5; printf("%c,f=%d,d=%f,%lf\n",'a',f,d,f*d);}非打印字符(轉(zhuǎn)義字符)\n——換行\(zhòng)t——制表符鍵(右移四個(gè)字節(jié)的位置)課堂練習(xí)定義一個(gè)字符型變量a=‘b’;請(qǐng)?jiān)谄聊簧陷敵鯾:方法1:Printf(“b”);方法2:Printf(“%c”,a);scanf()函數(shù)作用:從外部輸入設(shè)備(鍵盤)接受數(shù)據(jù)語(yǔ)法格式scanf("controlstring",argumentlist);控制字符串地址列表printf()語(yǔ)句中的使用的格式極其語(yǔ)法同樣適用與scanf()語(yǔ)句scanf()函數(shù)作用:從外部輸入設(shè)備(鍵盤)接受數(shù)據(jù)語(yǔ)法格式scanf("controlstring",argumentlist);控制字符串參數(shù)列表printf()語(yǔ)句中的使用的格式極其語(yǔ)法同樣適用與scanf()語(yǔ)句scanf()函數(shù)使用說(shuō)明使用scanf()時(shí),對(duì)于參數(shù)列表應(yīng)遵循以下規(guī)則:

如果希望讀取基本數(shù)據(jù)類型變量的值,應(yīng)在變量名的前面加上符號(hào)&

當(dāng)讀取指針變量指向的值時(shí),在變量名前不能使用&單字符輸出函數(shù)putchar()作用:向屏幕的光標(biāo)處輸出一個(gè)字符。格式putchar(參數(shù));單個(gè)字符轉(zhuǎn)義序列字符變量putchar()

函數(shù)的參數(shù)putchar()示例#include<stdio.h>voidmain(){ charch_1='9'; putchar('B'); putchar('o'); putchar('y'); putchar('\t'); putchar(ch_1); putchar('\n');}字符輸入函數(shù)getchar()作用:從系統(tǒng)輸入一個(gè)字符。語(yǔ)法格式:getchar();()沒(méi)有任何參數(shù)getchar()示例#include<stdio.h>voidmain(){ charch; ch=getchar(); putchar(ch); putchar('\n');}分支結(jié)構(gòu)分支條件表達(dá)式條件運(yùn)算符>、<、>=、<=、!=、==邏輯運(yùn)算符!、&&、||運(yùn)算符之間的關(guān)系算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符>賦值關(guān)系符分支表達(dá)式If語(yǔ)句If…else語(yǔ)句多重If…else語(yǔ)句If語(yǔ)句嵌套Swithc…case語(yǔ)句if語(yǔ)句格式:If(條件表達(dá)式){語(yǔ)句}if示例輸入兩個(gè)整數(shù),從大到小輸出。(只能使用一個(gè)printf語(yǔ)句)#include<stdio.h>voidmain(){ inta,b; inttemp; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d,%d",&a,&b); if(a<b) { temp=a; a=b; b=temp; } printf("%d,%d\n",a,b);}課堂練習(xí)輸入一個(gè)數(shù),判斷是否能被3整除,若能被3整除,輸出這個(gè)數(shù)。If…else語(yǔ)句格式If(條件表達(dá)式1){語(yǔ)句1;}Else{語(yǔ)句2;}If…else語(yǔ)句示例輸入兩個(gè)整數(shù),從大到小輸出。#include<stdio.h>voidmain(){ inta,b; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d,%d",&a,&b); if(a>b) { printf("a=%d,b=%d\n",a,b); } else { printf("b=%d,a=%d\n",b,a); }}

課堂練習(xí)輸入兩個(gè)數(shù),輸出其中最大的一個(gè)數(shù)。輸入一個(gè)數(shù),判斷這個(gè)數(shù)的奇偶性。多重if…else語(yǔ)句格式:If(條件表達(dá)式1){語(yǔ)句1}elseif(條件表達(dá)式2){語(yǔ)句2}elseif……if…else示例#include<stdio.h>voidmain(){ intx,y; printf("請(qǐng)輸入X的值:"); scanf("%d",&x); if(x>0) { y=1; printf("y=%d\n",y); } elseif(x==0) { y=0; printf("y=%d\n",y); } elseif(x<0) { y=-1; printf("y=%d\n",y); }}y=10-1X>0X=0X<0課堂練習(xí)輸入學(xué)生成績(jī),來(lái)評(píng)定學(xué)生等級(jí)。要求:成績(jī)>=90分,顯示是“A”成績(jī)>=80分,顯示是“B”成績(jī)>=70分,顯示是“C”成績(jī)>=60分,顯示是“D”成績(jī)<60分,顯示是“E”If語(yǔ)句的嵌套格式:If(表達(dá)式1){If(表達(dá)式2){語(yǔ)句1}If(表達(dá)式3){語(yǔ)句2}……}If語(yǔ)句嵌套示例#include<stdio.h>voidmain(){ intx,y; printf("請(qǐng)輸入X的值:\n"); scanf("%d",&x); if(x>=0) { if(x>0) { y=1; printf("y=%d\n",y); } else { y=0; printf("y=%d\n",y); } } else { y=-1; printf("y=%d\n",y); }}課堂練習(xí)輸入三個(gè)數(shù),輸出其中最大的一個(gè)數(shù).Switch語(yǔ)句格式switch(表達(dá)式)case常量1:語(yǔ)句1;break;case常量2:語(yǔ)句2;break;……default:語(yǔ)句n;Break;Switch語(yǔ)句示例#include<stdio.h>voidmain(){ intscore; printf("請(qǐng)輸入你的成績(jī):"); scanf("%d",&score); switch(score/10){ case10: case9: putchar('A'); break; case8: putchar('B'); break; case7: putchar('C'); break; case6: putchar('D'); break; default: putchar('E'); break; }}課堂練習(xí)一周食譜:星期一:青菜星期二:雞星期三:魚星期四:肉星期五:雞蛋星期六:海鮮星期七:豆制品要求:輸入一個(gè)1-7數(shù)字,顯示食譜內(nèi)容.循環(huán)結(jié)構(gòu)什么是循環(huán)結(jié)構(gòu)?—在程序中反復(fù)執(zhí)行某系列語(yǔ)句,直到不滿足指定條件才終止代碼。循環(huán)結(jié)構(gòu)的主要用到邏輯運(yùn)算符和關(guān)系運(yùn)算符。循環(huán)語(yǔ)句for

循環(huán)while循環(huán)do...while

循環(huán)循環(huán)基本結(jié)構(gòu)?計(jì)算是否while語(yǔ)句基本格式while(條件表達(dá)式){語(yǔ)句;}while范例在屏幕上打印5次accp#include<stdio.h>voidmain(){ inti=1; while(i<=5) { printf("ACCP\n"); i++; }}while結(jié)構(gòu)1)求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值為非0,轉(zhuǎn)2);否則轉(zhuǎn)3)。2)執(zhí)行循環(huán)體語(yǔ)句組,然后轉(zhuǎn)1)。3)執(zhí)行while語(yǔ)句的下一條。條件表達(dá)式?執(zhí)行語(yǔ)句是否While范例計(jì)算1+2+3…+99+100的和范例代碼include<stdio.h>voidmain(){ inti=1; intsum=0; while(i<=100) { sum+=i; i++; } printf("sum=%d\n",sum);}while語(yǔ)句注意事項(xiàng)計(jì)數(shù)器變量的初始化。計(jì)數(shù)器變量在執(zhí)行語(yǔ)句中要發(fā)生變化。條件最終必須為假,來(lái)結(jié)束語(yǔ)句,從而避免“死循環(huán)”。見上述范例課堂練習(xí)輸出1~10十個(gè)整數(shù)。計(jì)算1~100之間所有奇數(shù)的和。do…while循環(huán)基本格式do{

語(yǔ)句;}while(條件);計(jì)算?do…while范例在屏幕上打印5次accp#include<stdio.h>voidmain(){ inti=1; do { printf("ACCP\n"); i++; }while(i<=5);}do…while注意事項(xiàng)do...while

循環(huán)中先執(zhí)行一次語(yǔ)句,然后再交給while進(jìn)行判斷,當(dāng)條件為假時(shí)退出循環(huán)。do...while

循環(huán)中的控制權(quán)是在語(yǔ)句后方的while。while語(yǔ)句后方的;與while語(yǔ)句的主要區(qū)別課堂練習(xí)輸出1~10十個(gè)整數(shù)。計(jì)算1+2+3…+99+100的和for循環(huán)基本格式for(循環(huán)變量初始化;條件表達(dá)式;循環(huán)變量增值){語(yǔ)句;}for范例在屏幕上打印5次accp#include<stdio.h>voidmain(){ inti; for(i=1;i<=5;i++) { printf("ACCP\n"); }}for循環(huán)的執(zhí)行過(guò)程1、循環(huán)變量賦初值2、求解“循環(huán)繼續(xù)條件”表達(dá)式。如果其值非0,執(zhí)行(3);否則,轉(zhuǎn)至(4)。3、執(zhí)行循環(huán)體語(yǔ)句組,并求解“循環(huán)變量增值”表達(dá)式,然后轉(zhuǎn)向(2)。4、執(zhí)行for語(yǔ)句的下一條語(yǔ)句。賦初值條件表達(dá)式執(zhí)行語(yǔ)句變量增值for范例計(jì)算1+2+3…+99+100的和for范例(續(xù))#include<stdio.h>voidmain(){ inti; intsum=0; for(i=1;i<=100;i++) { sum+=i; } printf("sum=%d\n",sum);}for循環(huán)注意事項(xiàng)1、for循環(huán)條件語(yǔ)句中有三部分組成,三部分必須用“;”隔開。2、for循環(huán)中“循環(huán)變量初始值”可以為空,此時(shí)必須在for循環(huán)之前對(duì)其定義初始值。例如:for(;i<101;i++)3、for循環(huán)中“條件表達(dá)式”可以省略,此時(shí)程序會(huì)成為“死循環(huán)”。4、for循環(huán)中“循環(huán)變量增值”可以省略,介必須在for循環(huán)語(yǔ)句中添加,保證程序正常運(yùn)行。例:for(I=1;i<101;) {

…… I++; }for范例#include<stdio.h>voidmain(){ inti=1; intsum=0; for(;i<=100;i++) { sum+=i; } printf("sum=%d\n",sum);}for范例#include<stdio.h>voidmain(){ inti=1; intsum=0; for(;i<=100;) { sum+=i; i++; } printf("sum=%d\n",sum);}課堂練習(xí)輸出1~10十個(gè)整數(shù)。計(jì)算1~100之間所有奇數(shù)的和。循環(huán)語(yǔ)句的嵌套#include<stdio.h>voidmain(){ inti,j; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) { printf("*"); } putchar('\n'); }}循環(huán)嵌套(續(xù))for(var1=初值;var1<=范圍;var1+=每次循環(huán)的增值) {

for(var2=初值;var2<=范圍;var2+=每次循環(huán)的增值)

{…}}………...break語(yǔ)句

功能:Switch語(yǔ)句中終止case語(yǔ)句。強(qiáng)制性結(jié)束循環(huán)。格式For(表達(dá)式1){If(表達(dá)式2)Break;……}break范例#include<stdio.h>voidmain(){ inti; intsum=0; for(i=1;i<=100;i++) { sum+=i; if(sum>2500)/*當(dāng)和大于2500時(shí),停止循環(huán)*/ { break; } } printf("sum=%d,i=%d",sum,i);}課堂練習(xí)計(jì)算當(dāng)半徑為1~10時(shí)圓的面積,直到面積大于100時(shí),停止計(jì)算,將此時(shí)的半徑和面積的值顯示出來(lái)。Continue語(yǔ)句功能結(jié)束本次循環(huán),停止本次循環(huán)中其它的語(yǔ)句,直接進(jìn)入下一次的循環(huán)。格式For(表達(dá)式1){If(表達(dá)式2)continue;……}continue范例#include<stdio.h>voidmain(){ inti; for(i=1;i<=100;i++) { if(i%3==0) { continue; } else printf("%d\n",i); }}跳轉(zhuǎn)語(yǔ)句——goto

goto語(yǔ)句將控制權(quán)傳遞給C程序中同一函數(shù)內(nèi)的其他語(yǔ)句它實(shí)際上違背了嚴(yán)格的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言的原則它們降低了程序的可靠性,并使得程序難以維護(hù)goto標(biāo)簽;通用語(yǔ)法:goto語(yǔ)句功能:將控制權(quán)交給C語(yǔ)言中的任意一條語(yǔ)句。#include<stdio.h>voidmain(){ inti; intsum=0; for(i=1;i<=100;i++) { sum+=i; if(sum>=2500) { gotoleap; } }leap:printf("sum=%d,i=%d\n",sum,i);}選擇一個(gè)循環(huán)寫程序時(shí)選擇一個(gè)循環(huán)的形式是人為決定的while循環(huán)可以代替

for循環(huán),反之亦然for循環(huán)每次更新循環(huán)計(jì)數(shù)變量的值后,檢查條件表達(dá)式,如果是真,循環(huán)體被執(zhí)行一次,直到條件表達(dá)式為假do…while執(zhí)行循環(huán)體至少一次選擇一個(gè)循環(huán)寫程序時(shí)選擇一個(gè)循環(huán)的形式是人為決定的while循環(huán)可以代替

for循環(huán),反之亦然for循環(huán)每次更新循環(huán)計(jì)數(shù)變量的值后,檢查條件表達(dá)式,如果是真,循環(huán)體被執(zhí)行一次,直到條件表達(dá)式為假do…while執(zhí)行循環(huán)體至少一次課后作業(yè)編寫一個(gè)程序,在屏幕上顯示出100,95,90……10,5。求5!輸入一個(gè)整數(shù),求這個(gè)整數(shù)的階層.輸入兩個(gè)數(shù),求出兩數(shù)之間所有奇數(shù)的和。求5個(gè)整數(shù)的和。#include<stdio.h>voidmain(){ inta1,a2,a3,a4,a5; intsum=0; printf("請(qǐng)輸入a1的值:"); scanf("%d",&a1); printf("請(qǐng)輸入a2的值:"); scanf("%d",&a2); printf("請(qǐng)輸入a3的值:"); scanf("%d",&a3); printf("請(qǐng)輸入a4的值:"); scanf("%d",&a4); printf("請(qǐng)輸入a5的值:"); scanf("%d",&a5); sum=a1+a2+a3+a4+a5; printf("sum=%d\n",sum);}#include<stdio.h>voidmain(){ inta,sum=0; inti; for(i=1;i<=5;i++) { printf("請(qǐng)輸入a%d的值:",i); scanf("%d",&a); sum+=a; } printf("sum=%d\n",sum);}變量的不足之處程序中變量過(guò)多,使程序不夠靈活程序中重復(fù)代碼比較多,造成工作冗余。循環(huán)結(jié)構(gòu)與數(shù)組的結(jié)合使工作簡(jiǎn)單化范例#include<stdio.h>voidmain(){ inta[5]; inti,sum=0; for(i=0;i<5;i++) { printf("請(qǐng)輸入a[%d]的值:",i); scanf("%d",&a[i]); sum+=a[i]; } for(i=0;i<5;i++) { printf("a[%d]=%d\n",i,a[i]); } printf("sum=%d\n",sum);}數(shù)組什么是數(shù)組?即相同類型的數(shù)據(jù)元素的集合。變量與數(shù)組之間的區(qū)別:變量只能存儲(chǔ)一個(gè)數(shù)據(jù)。數(shù)組可以存儲(chǔ)一組數(shù)據(jù)。數(shù)組內(nèi)的元素具有相同的數(shù)據(jù)類型數(shù)組中的元素存儲(chǔ)在一個(gè)連續(xù)的內(nèi)存區(qū)域中。數(shù)組與變量的區(qū)別一維數(shù)組一維數(shù)組的聲明格式:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]例如:intsum[10],chara[6]一維數(shù)組聲明注意事項(xiàng)數(shù)據(jù)類型:int、float、double、char數(shù)組名與變量名相同,聲明必須符合標(biāo)識(shí)符的有關(guān)規(guī)定。常量表達(dá)式中可以是常量或常量表達(dá)式,絕不能是變量。其決定了數(shù)組元素的個(gè)數(shù)。課堂練習(xí)定義一個(gè)有8個(gè)元素的整型數(shù)組定義一個(gè)有12個(gè)元素的浮點(diǎn)型數(shù)組定義一個(gè)有3個(gè)元素的字符型數(shù)組一維數(shù)組的初始化在數(shù)組聲明時(shí)初始化Inta[5]={1,2,3,4,5}在使用時(shí)進(jìn)行初始化Inta[5];int[0]=1;int[1]=2部分初始化Inta[5]={1,2,3}直接初始化Inta[]={1,2,3,4}數(shù)組元素的引用引用格式數(shù)組名[下標(biāo)]例如:a[0]、a[5]數(shù)組元素引用說(shuō)明每個(gè)數(shù)組元素就是一個(gè)變量,數(shù)組元素只能逐個(gè)引用。只能引用數(shù)組中的元素,不能整體引用數(shù)組。不能使用越界的數(shù)組元素?cái)?shù)組的下標(biāo)必須以0開始,到N-1結(jié)束。例如:a[10]下標(biāo):a[0],a[1]……a[8],a[9]數(shù)組的引用(續(xù))例:inta[3]={4,8,9};a[0]=4;a[1]=8;a[2]=9;charb[]={‘c’,’h’,’i’,’n’,’a’};b[0]=‘c’b[1]=’h’,b[2]=’i’,b[3]=’n’,b[4]=’a’數(shù)組引用范例#include<stdio.h>voidmain(){ inta[5];//定義一個(gè)有5個(gè)元素的整型數(shù)組

inti; for(i=0;i<5;i++) { printf("a[%d]:",i); scanf("%d",&a[i]); }//為數(shù)組賦初值

printf("-----------\n"); for(i=4;i>=0;i--) { printf("a[%d]=%d\n",i,a[i]); }//將數(shù)組元素轉(zhuǎn)置顯示}課堂練習(xí)定義一個(gè)有5個(gè)元素(數(shù)組元素:10,20,30,40,50)的整型數(shù)組,顯其每個(gè)元素顯示出來(lái)。輸入5個(gè)整數(shù),顯示其平均值。(用數(shù)組)接受5個(gè)整數(shù)進(jìn)行排序二維數(shù)組什么是二維數(shù)組?—有兩個(gè)下標(biāo)的數(shù)組。相當(dāng)于多個(gè)一維數(shù)組。二維數(shù)組聲明:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式][常量表達(dá)式]例如:inta[2][3]二維數(shù)組初始化1、分組初始化 例如:a[2][3]={{1,2,3},{4,5,6}}2、一次性初始化 例如:a[2][3]={1,2,3,4,5,6}3、對(duì)數(shù)組中部分元素初始化 例如:a[2][3]={{5},{6}}二維數(shù)組引用引用格式:數(shù)組名[行標(biāo)][列標(biāo)]課堂練習(xí)定義一個(gè)4*3的二維表格,數(shù)組元素為下圖:指出下列的值:(數(shù)組聲明:inta[4][3])a[0][0];a[1][2];a[3][3];a[4][1]二維數(shù)組范例顯示一個(gè)二維數(shù)組(如下圖),并將其數(shù)組元素進(jìn)行列互換。123456142536ab范例#include<stdio.h>voidmain(){ inta[2][3]={{1,2,3},{4,5,6}};//初始化數(shù)組

inti,j; for(i=0;i<2;++i) { for(j=0;j<3;j++) { printf("%d\t",a[i][j]); }//原樣輸出二元數(shù)組

putchar('\n'); } putchar('\n'); for(j=0;j<3;j++) { for(i=0;i<2;i++) { printf("%d\t",a[i][j]); }//轉(zhuǎn)置輸出二元數(shù)組

putchar('\n'); }}課堂練習(xí)輸出下方二維表格。(無(wú)邊框)618753294字符數(shù)組什么是字符數(shù)組?用來(lái)存放字符數(shù)據(jù)的數(shù)組。聲明格式char數(shù)組名[常量表達(dá)式]例如:charch[10]字符數(shù)組的初始化1、charch[9]={‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’,’g’,’h’};2、charch[8]=“chinese”;字符串?dāng)?shù)組范例#include<stdio.h>voidmain(){charary[5];inti;printf("\nEnterstring:");scanf(“%s”,ary);//為字符數(shù)組賦值

printf(“\nThestringis%s\n\n”,ary);//輸出字符串

for(i=0;i<5;i++)printf("\t%d",ary[i]);}空字符什么是空字符?—以叫結(jié)束字符,是對(duì)一個(gè)字符串輸入的結(jié)束標(biāo)志。例如:charch[]=“china”(注內(nèi)存圖)字符數(shù)組的使用說(shuō)明#include<stdio.h>voidmain(){charname[10]; charsex[3]; printf("請(qǐng)輸入姓名:"); scanf("%s",name); printf("性別:"); scanf("%s",sex); printf("姓名:%s\t",name); printf("性別:%s\n",sex);}

二維字符型數(shù)組定義格式char[5][10]5:

數(shù)組中有5個(gè)字符串10:

每個(gè)字符串有10個(gè)字符字符串函數(shù)puts輸出函數(shù)格式puts(字符數(shù)組)gets輸入函數(shù)格式gets(字符數(shù)組)#include<stdio.h>#include<string.h>voidmain(){ charch[20]; gets(ch); puts(ch);}字符串函數(shù)(續(xù))strcpy函數(shù)格式:Strcpy(數(shù)組1,數(shù)組2)功能:將數(shù)組2的字符復(fù)制到數(shù)組1中范例:include<stdio.h>#include<string.h>voidmain(){ chara[10],[b]={"china"}; strcpy(a,b); puts(a);}字符串函數(shù)(續(xù))strcat函數(shù)格式:strcat(數(shù)組1,數(shù)組2)功能:連接兩個(gè)數(shù)組,將數(shù)組2的字符連接到數(shù)組1中范例#include<stdio.h>#include<string.h>voidmain(){ chara[12]={"leaf"}; charb[6]={"apple"}; strcat(a,b); puts(a);}字符串函數(shù)(續(xù))Strcmp函數(shù)格式Strcmp(數(shù)組1,數(shù)組2)功能數(shù)組1與數(shù)組2之間的大小比較(ASCII碼)注意事項(xiàng):數(shù)組1>數(shù)組2,返回值>0數(shù)組1=數(shù)組2,返回值=0數(shù)組1<數(shù)組2,返回值<0strcmp范例 #include<stdio.h>#include<string.h>voidmain(){ chara[10]="china"; charb[6]="apple"; intc; c=strcmp(a,b); printf("%d\n",c);}字符串函數(shù)(續(xù))strlen函數(shù)格式:strlen(字符串)功能測(cè)試字符串長(zhǎng)度(不包括空字符)strupr函數(shù)格式strupr(字符串)功能將小寫字母轉(zhuǎn)換成大寫字母。數(shù)據(jù)的存儲(chǔ)機(jī)制內(nèi)存地址—內(nèi)存中存儲(chǔ)單元的編號(hào)。變量地址—系統(tǒng)標(biāo)識(shí)變量在內(nèi)存中的起始位置。數(shù)據(jù)的存儲(chǔ)機(jī)制(續(xù))直接訪問(wèn)#include<stdio.h>voidmain(){ inta,b,sum; printf("請(qǐng)輸入a和b的值:"); scanf("%d,%d",&a,&b); sum=a+b; printf("sum=%d\n",sum);}間接訪問(wèn)#include<stdio.h>voidmain(){ inta,b,sum=0; int*p_1,*p_2; printf("請(qǐng)輸入a和b的值:"); scanf("%d,%d",&a,&b); p_1=&a; p_2=&b; sum=*p_1+*p_2; printf("sum=%d\n",sum);}指針的功能方便一個(gè)函數(shù)向另一個(gè)函數(shù)的過(guò)渡。能通過(guò)指針的移動(dòng)來(lái)改變指針?biāo)赶虻臄?shù)據(jù),不需要去移動(dòng)變量或數(shù)組??梢詫?shí)現(xiàn)動(dòng)態(tài)內(nèi)存的更新。指針與指針變量什么是指針?變量的內(nèi)存地址。指針變量用來(lái)存放變量地址的變量。56a變量名1000(內(nèi)存地址)變量值1000b指針指針變量指針聲明格式數(shù)據(jù)類型*指針變量名;聲明注意事項(xiàng)“*”表示聲明的指針變量,不是代表指針運(yùn)算符?!?”前必須指定數(shù)據(jù)類型(基類型),其主要功能是指指針?biāo)赶驅(qū)ο蟮臄?shù)據(jù)類型?;愋停褐羔?biāo)赶虻臄?shù)據(jù)類型。決定了指針每次移動(dòng)的步長(zhǎng)。指針的賦值與引用指針運(yùn)算符&——求址運(yùn)算符(……的地址)*——指針運(yùn)算符(……地址中的值)范例inta=10;int*p;p=&a;ap1010100inta=10,int*pp=&a地址地址100104100104指針賦值2-1通過(guò)&運(yùn)算符為指針賦值

ptr_var=&var;通過(guò)另一個(gè)指向相同類型數(shù)據(jù)項(xiàng)的指針變量對(duì)指針進(jìn)行賦值

ptr_var2=ptr_var;指針賦值2-2通過(guò)指針為變量賦值

*ptr_var=10;如果ptr_var指向var,則把10賦給var課堂練習(xí)寫出下列計(jì)算結(jié)果inta=5;/*a的內(nèi)存地址為3000*/ int*p; p=&a;(1):p; (2)&p (3)*p(4):a (5)&a課堂練習(xí)寫出下列計(jì)算結(jié)果intnum1=2,num2,*pnt;pnt=&num1;num2=*pnt;(1)num1 (2)num2 (3)*pnt

例題輸入兩個(gè)數(shù),按從大到小的順序排列。#include<stdio.h>voidmain(){ inta,b; int*p_1,*p_2,*max; p_1=&a;p_2=&b; printf("請(qǐng)輸入a和b的數(shù):"); scanf("%d,%d",&a,&b); if(a<b) { max=p_1;p_1=p_2;p_2=max; } printf("%d,%d\n",*p_1,*p_2);}數(shù)組指針與數(shù)組的指針變量什么是數(shù)組指針?數(shù)組在內(nèi)存中的地址。數(shù)組的指針變量存放數(shù)組元素地址的變量。指針與一維數(shù)組3-1數(shù)組元素的地址可以用兩種方式表示在數(shù)組元素前面加“&”符號(hào)

&ary[2]數(shù)組名+下標(biāo)

ary+2指針與一維數(shù)組3-2#include<stdio.h>voidmain(){staticintary[10]={1,2,3,4,5,6,7,8,9,10};inti;for(i=0;i<10;i++){printf(“\ni=%d,ary月[i]=%d,*(ary+i)=%d",i,ary[i],*(ary+i));printf("&ary[i]=%X,ary+i=%X",&ary[i],ary+i);}}值地址指針與一維數(shù)組3-3演示:執(zhí)行程序,觀察并分析輸出結(jié)果使用指針引用數(shù)組元素?cái)?shù)組的方法#include<stdio.h>voidmain(){ inta[5]={6,7,8,9,10}; inti; for(i=0;i<5;i++) { printf("a[%d]:%d\n",i,a[i]); }}指針的方法#include<stdio.h>voidmain(){ inta[5]={6,7,8,9,10}; int*p; for(p=a;p<a+5;p++) { printf("%d\n",*p); }}使用指針變量的注意事項(xiàng)只能進(jìn)行加法和減法運(yùn)算

intvar,*ptr_var; ptr_var=&var;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論