C語(yǔ)言二級(jí)輔導(dǎo)課件_第1頁(yè)
C語(yǔ)言二級(jí)輔導(dǎo)課件_第2頁(yè)
C語(yǔ)言二級(jí)輔導(dǎo)課件_第3頁(yè)
C語(yǔ)言二級(jí)輔導(dǎo)課件_第4頁(yè)
C語(yǔ)言二級(jí)輔導(dǎo)課件_第5頁(yè)
已閱讀5頁(yè),還剩284頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章C語(yǔ)言的基本詞法一、字符集1.什么是字符集

在C語(yǔ)言程序中允許出現(xiàn)的所有基本字符的組合稱(chēng)為C語(yǔ)言的字符集。2.字符集分類(lèi)(1)大小寫(xiě)英文字母(52個(gè))(2)數(shù)字符號(hào)(10個(gè))(3)鍵盤(pán)符號(hào)(33個(gè))(4)轉(zhuǎn)義字符3.轉(zhuǎn)義字符的作用、表示方法(1)作用:通常用來(lái)表示鍵盤(pán)上的控制代碼或特殊符號(hào)。(2)表示方法:由“反斜杠字符(\)”后跟單個(gè)字符或若干個(gè)字符組成。(3)常用轉(zhuǎn)義字符:

\n,\t,\a,\”,\’,\\,\ddd,\xhh二、保留字1.什么是保留字在C語(yǔ)言的程序中有特殊含義的英語(yǔ)單詞稱(chēng)為保留字。2.保留字的作用主要用于構(gòu)成語(yǔ)句、進(jìn)行存儲(chǔ)類(lèi)型和數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。3.常用保留字可參考教材。三、標(biāo)識(shí)符1.什么是標(biāo)識(shí)符標(biāo)識(shí)符是用戶(hù)自定義的一種字符序列,通常用來(lái)表示程序中需要辨認(rèn)的對(duì)象名稱(chēng)。2.標(biāo)識(shí)符的命名規(guī)則(1)標(biāo)識(shí)符是由字符或下劃線(xiàn)開(kāi)頭的字母、數(shù)字、下劃線(xiàn)組成的一串符號(hào);(2)保留字不能作為標(biāo)識(shí)符。正確標(biāo)識(shí)符:sumia2a_2_a2_a_2錯(cuò)誤的標(biāo)識(shí)符:2aa?c.ga-2ifwhile第2章基本數(shù)據(jù)類(lèi)型和運(yùn)算2.1C語(yǔ)言的數(shù)據(jù)類(lèi)型整型實(shí)型字符型無(wú)值型指針型數(shù)組結(jié)構(gòu)型枚舉型共用型基本類(lèi)型構(gòu)造類(lèi)型2.2常量一、什么是常量二、常量類(lèi)型

整型常量、實(shí)型常量、字符常量、字符串常量三、常量特點(diǎn)四、各種類(lèi)型常量說(shuō)明1.整型常量(1)

整型常量就是整數(shù),包括正整數(shù)、負(fù)整數(shù)及0;(2)整型常量有三種書(shū)寫(xiě)方式十進(jìn)制整數(shù):0、-111、+15、21八進(jìn)制整數(shù):00、-0111、+015、021十六進(jìn)制整數(shù):0x0、-0x111、0x21(3)整型常量在機(jī)內(nèi)存放一般占2個(gè)字節(jié),所表示的范圍-32768~+32767(4)為了擴(kuò)大數(shù)值范圍,C語(yǔ)言提供“長(zhǎng)整型常量”,長(zhǎng)整型常量在機(jī)內(nèi)存放占4個(gè)字節(jié)。表示方法是在數(shù)的后面加一個(gè)L或l字母。(0L、40000L)2.實(shí)型常量(1)

實(shí)型常量就是帶小數(shù)點(diǎn)的實(shí)數(shù),也稱(chēng)為浮點(diǎn)數(shù);(2)實(shí)型常量書(shū)寫(xiě)方式有兩種:一般形式的實(shí)數(shù):12.345、-1.23456、7.0指數(shù)形式的實(shí)數(shù):-1.2345E3.0、0.12345e4(3)實(shí)型常量在機(jī)內(nèi)存放一般占4個(gè)字節(jié);3.字符常量(1)

字符常量就是用兩個(gè)單引號(hào)(‘)前后括住的單個(gè)字符;例如:’a’、’A’、’1’、’%’(2)轉(zhuǎn)義字符也可以組成字符常量;例如:‘\n’、’\101’、’\x41’(3)字符常量在機(jī)內(nèi)存放一般占1個(gè)字節(jié);4.字符串常量(1)

字符串常量就是用兩個(gè)雙引號(hào)(“)前后括住的若干個(gè)字符;例如:”abc”、”ABC”、”112”(2)轉(zhuǎn)義字符也可以出現(xiàn)在字符串常量中;例如:“123\n4\\”、”\”1\43\n2\x11\””(3)字符串常量在機(jī)內(nèi)存放所占用的字節(jié)數(shù)等于字符串長(zhǎng)度+1;2.3變量一、基本問(wèn)題1.什么是變量2.變量的命名規(guī)則3.變量的特點(diǎn)(1)變量在內(nèi)存中要占用連續(xù)的若干個(gè)字節(jié);(2)所占用的字節(jié)數(shù)由變量的數(shù)據(jù)類(lèi)型確定;(3)變量使用必須要先定義。二、變量的數(shù)據(jù)類(lèi)型及其定義1.變量定義格式[存儲(chǔ)類(lèi)型符]數(shù)據(jù)類(lèi)型符變量名1,變量名2,……;

2.變量數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)占用字節(jié)數(shù)數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)占用字節(jié)數(shù)整型int2無(wú)符號(hào)長(zhǎng)整型unsignedlong4短整型short2單精度實(shí)型float4長(zhǎng)整型long4雙精度實(shí)型double8無(wú)符號(hào)整型unsignedint2字符型char1無(wú)符號(hào)短整型unsignedshort23.變量存儲(chǔ)類(lèi)型三、變量的初始化1.變量賦初值的語(yǔ)句格式:[存儲(chǔ)類(lèi)型符]數(shù)據(jù)類(lèi)型符變量名1=初值,變量名2=初值;

2.幾點(diǎn)說(shuō)明存儲(chǔ)類(lèi)型存儲(chǔ)類(lèi)型符存儲(chǔ)地點(diǎn)自動(dòng)型auto內(nèi)存堆棧區(qū)寄存器型registerCPU的通用寄存器靜態(tài)型static內(nèi)存數(shù)據(jù)區(qū)外部參照型extern3.舉例分析例1:main(){inta;staticintb;printf(“%d”,a);‘將輸出不確定的值

printf(“%d”,b);‘將輸出0}例2:voidf1();main(){f1();f1();}voidf1(){inta=3;staticintb=4;printf(“%d,%d”,a,b);a=a+1;b=b+1;}說(shuō)明:(1)第1次調(diào)用f1(),將輸出3,4(2)第2次調(diào)用f1(),將輸出3,5四、變量的生存期和作用域1.什么是內(nèi)部變量和外部變量

把在函數(shù)(或某個(gè)復(fù)合語(yǔ)句)內(nèi)定義的變量稱(chēng)為“內(nèi)部變量”,把在函數(shù)外定義的變量稱(chēng)為“外部變量”。2.什么是變量的生存期

我們把變量從開(kāi)始分配內(nèi)存單元到分配的內(nèi)存單元被收回的期間稱(chēng)為變量的生存期。3.什么是變量的作用域

在變量的生存期中,我們把變量可以使用的程序區(qū)域稱(chēng)為變量的作用域。4.作用域的分類(lèi)全局變量:生存期覆蓋了定義點(diǎn)到整個(gè)程序結(jié)束的變量稱(chēng)為全局變量。局部變量:生存期只覆蓋某個(gè)函數(shù)(或某個(gè)復(fù)合語(yǔ)句)的變量稱(chēng)為局部變量。5.幾點(diǎn)說(shuō)明6.舉例分析

inta1;main(){inta2;{inta3;}}inta4;voidf1(){inta5;staticinta6;}2.4運(yùn)算符基本問(wèn)題1.什么是運(yùn)算符

用來(lái)表示各種運(yùn)算的符號(hào)稱(chēng)為運(yùn)算符。2.運(yùn)算符特點(diǎn)(1)運(yùn)算符必須有運(yùn)算對(duì)象,運(yùn)算對(duì)象都有規(guī)定的數(shù)據(jù)類(lèi)型,同時(shí)運(yùn)算結(jié)果也有確定的數(shù)據(jù)類(lèi)型。(2)每個(gè)運(yùn)算符都有自己特定的運(yùn)算規(guī)則。(3)當(dāng)表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符時(shí)則必須考慮運(yùn)算符的優(yōu)先級(jí)。(4)同級(jí)別的運(yùn)算符還規(guī)定了結(jié)合性。一、算術(shù)運(yùn)算符包括基本算術(shù)運(yùn)算符和增1、減1運(yùn)算符兩種1.基本算術(shù)運(yùn)算符(1)有哪些運(yùn)算符號(hào)(2)特點(diǎn)(3)舉例說(shuō)明運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性+、-取正、取負(fù)2自右向左*、/、%乘、除、取余數(shù)3自左向右+、-加、減4自左向右2.增1、減1運(yùn)算符(1)有哪些運(yùn)算符號(hào)(2)特點(diǎn)①增1、減1的運(yùn)算對(duì)象必須是變量或數(shù)組元素;②增1(或減1)運(yùn)算符作為前綴使用時(shí),是先對(duì)運(yùn)算對(duì)象加1(或減1),然后再使用加1(或減1)后的運(yùn)算對(duì)象。③增1(或減1)運(yùn)算符作為后綴使用時(shí),是先使用不加1(或減1)的運(yùn)算對(duì)象,然后再對(duì)運(yùn)算對(duì)象加1(或減1)。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性++增12自右向左--減1二、關(guān)系運(yùn)算符1.關(guān)系運(yùn)算有哪些運(yùn)算符號(hào)2.關(guān)系運(yùn)算符的特點(diǎn)①關(guān)系運(yùn)算符可以用來(lái)比較兩個(gè)數(shù)值型數(shù)據(jù)的大小,也可以比較兩個(gè)字符型數(shù)據(jù)的大小。②關(guān)系運(yùn)算符的運(yùn)算結(jié)果是邏輯值,若為“真”用整數(shù)1表示,若為“假”用整數(shù)0表示。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性>=、>、<=、<大于等于、大于、小于等于、小于6自左向右==、!=等于、不等于7自左向右三、邏輯運(yùn)算符1.邏輯運(yùn)算有哪些運(yùn)算符號(hào)2.邏輯運(yùn)算符的特點(diǎn)①邏輯運(yùn)算符運(yùn)算對(duì)象是數(shù)值型或字符型等;如果是非0表示邏輯真,0表示邏輯假。②運(yùn)算結(jié)果是邏輯值,如運(yùn)算結(jié)果為真用1表示,若為假則用0表示。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性!邏輯非2自右向左&&邏輯與11自左向右||邏輯或12自左向右3.注意幾點(diǎn)①用“&&”對(duì)兩個(gè)表達(dá)式進(jìn)行計(jì)算時(shí),若第1個(gè)表達(dá)式的值為“假”,則與第2個(gè)表達(dá)式的值無(wú)關(guān),結(jié)果肯定為“假”,所以C語(yǔ)言規(guī)定此時(shí)第2個(gè)表達(dá)式不再計(jì)算。②用“||”對(duì)兩個(gè)表達(dá)式進(jìn)行計(jì)算時(shí),若第1個(gè)表達(dá)式的值為“真”,則與第2個(gè)表達(dá)式的值無(wú)關(guān),結(jié)果肯定為“真”,所以C語(yǔ)言規(guī)定此時(shí)第2個(gè)表達(dá)式不再計(jì)算。四、賦值運(yùn)算符

賦值運(yùn)算符分為三種:基本賦值運(yùn)算符、算術(shù)自反賦值運(yùn)算符、位自反賦值運(yùn)算符1.基本賦值運(yùn)算符(1)運(yùn)算符號(hào)(2)特點(diǎn)①賦值運(yùn)算符的前面必須是變量,后面是表達(dá)式;②賦值運(yùn)算符是先計(jì)算表達(dá)式的值,再把值賦給變量。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性=賦值14自右向左2.算術(shù)自反賦值運(yùn)算符(1)運(yùn)算符號(hào)(2)特點(diǎn)

該運(yùn)算符是將某個(gè)變量和表達(dá)式進(jìn)行指定算術(shù)運(yùn)算后的結(jié)果賦予該變量。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性+=加賦值14自右向左-=減賦值*=乘賦值/=除賦值%=模賦值五、逗號(hào)運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)(1)該運(yùn)算符是雙目運(yùn)算,其運(yùn)算對(duì)象是表達(dá)式;(2)運(yùn)算規(guī)則是依次計(jì)算前、后表達(dá)式的值;(3)運(yùn)算結(jié)果是后表達(dá)式的值。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性,逗號(hào)15自左向右六、條件運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)(1)該運(yùn)算符是三目運(yùn)算符,其三個(gè)運(yùn)算對(duì)象是表達(dá)式(e1?e2:e3);(2)運(yùn)算規(guī)則是如果e1表達(dá)式為“真”,取e2表達(dá)式的值,否則取e3表達(dá)式的值。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性?:逗號(hào)13自右向左七、長(zhǎng)度運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)(1)其運(yùn)算對(duì)象可以是任何數(shù)據(jù)類(lèi)型或變量;(2)運(yùn)算對(duì)象必須用圓括號(hào)括住。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性sizeof長(zhǎng)度2無(wú)八、位運(yùn)算符(一)基本問(wèn)題1.什么是位運(yùn)算是一種對(duì)運(yùn)算對(duì)象按二進(jìn)制位進(jìn)行操作的運(yùn)算。2.位運(yùn)算的特點(diǎn)(1)位運(yùn)算不允許只操作其中的某一位,而是對(duì)整個(gè)數(shù)據(jù)按二進(jìn)制位進(jìn)行運(yùn)算;(2)位運(yùn)算的對(duì)象只能是整型數(shù)據(jù)(包括字符型),運(yùn)算結(jié)果仍是整型數(shù)據(jù)。(3)位運(yùn)算符分為位邏輯運(yùn)算符、位移位運(yùn)算符、位自反賦值運(yùn)算符三種。(二)位邏輯運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)位邏輯運(yùn)算符是將數(shù)據(jù)中每個(gè)二進(jìn)制位上的“0”或“1”看成邏輯值,逐位進(jìn)行邏輯運(yùn)算。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性~位非2自右向左&位與8自左向右^按位加9自左向右|位或10自左向右(三)位移位運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)(1)該運(yùn)算符是將數(shù)據(jù)看成是二進(jìn)制數(shù),對(duì)其進(jìn)行向左或向右移動(dòng)若干位的運(yùn)算;(2)該運(yùn)算符是雙目運(yùn)算,第一運(yùn)算對(duì)象是移位對(duì)象,第二個(gè)運(yùn)算對(duì)象是所移的二進(jìn)制位數(shù)。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性<<左移5自左向右>>右移自左向右(四)位自反賦值運(yùn)算符1.運(yùn)算符號(hào)2.特點(diǎn)該運(yùn)算符是將某個(gè)變量和表達(dá)式進(jìn)行指定位運(yùn)算后的結(jié)果賦予該變量。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性&=位與賦值14自右向左^=按位加賦值|=位或賦值<<=位左移賦值>>=位右移賦值2.5表達(dá)式1.什么是表達(dá)式用運(yùn)算符將運(yùn)算對(duì)象連接形成的式子就是表達(dá)式。2.表達(dá)式的特點(diǎn)(1)每個(gè)表達(dá)式都可以按照其中運(yùn)算符的優(yōu)先級(jí)和運(yùn)算規(guī)則依次對(duì)運(yùn)算對(duì)象進(jìn)行運(yùn)算,最終獲得一個(gè)數(shù)據(jù),該數(shù)據(jù)稱(chēng)為表達(dá)式的值。(2)表達(dá)式值的數(shù)據(jù)類(lèi)型就稱(chēng)為表達(dá)式的數(shù)據(jù)類(lèi)型。3.表達(dá)式的分類(lèi)主要有六種:算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、賦值表達(dá)式和逗號(hào)表達(dá)式。4.表達(dá)式計(jì)算時(shí)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換(1)為什么計(jì)算時(shí)數(shù)據(jù)類(lèi)型要轉(zhuǎn)換(2)轉(zhuǎn)換方法①表達(dá)式計(jì)算中數(shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換原則特點(diǎn):參加運(yùn)算的各個(gè)數(shù)據(jù)都轉(zhuǎn)換成數(shù)據(jù)長(zhǎng)度最長(zhǎng)的數(shù)據(jù)類(lèi)型,然后計(jì)算。計(jì)算結(jié)果值當(dāng)然就是數(shù)據(jù)長(zhǎng)度最長(zhǎng)的數(shù)據(jù)類(lèi)型。例如:設(shè)i為int,f為float,d為double,e為long則10+a+i*f-d/e的結(jié)果是double。②運(yùn)算結(jié)果存入變量時(shí)數(shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換原則特點(diǎn):先將運(yùn)算結(jié)果的數(shù)據(jù)類(lèi)型自動(dòng)轉(zhuǎn)換成變量的數(shù)據(jù)類(lèi)型,然后再賦予該變量。3.2賦值語(yǔ)句1.賦值語(yǔ)句是最常用的表達(dá)式語(yǔ)句,由賦值表達(dá)式加分號(hào)構(gòu)成。2.賦值語(yǔ)句有三種形式:(1)簡(jiǎn)單賦值:x=2*y+1;(2)多重賦值:x=y=z=3;(3)復(fù)合賦值:x+=y;3.使用賦值語(yǔ)句需注意以下兩點(diǎn):(1)定義變量時(shí)若賦初值則不能采用多重賦值形式。例如:intx=y=z=0;

是錯(cuò)誤形式。而應(yīng)改寫(xiě)成:

intx=0,y=0,z=0;而賦值語(yǔ)句x=y=z=0;

是正確形式。(2)賦值表達(dá)式可以出現(xiàn)在任何表達(dá)式中,而賦值語(yǔ)句則不能。例如:x=(y=2)+(z=3+y);

是正確的。而:x=(y=2;)+(z=3+y;);

是錯(cuò)誤的。

3.3數(shù)據(jù)的輸出一、基本說(shuō)明1.C語(yǔ)言本身沒(méi)有直接提供用于輸出的語(yǔ)句,它是通過(guò)輸出函數(shù)來(lái)實(shí)現(xiàn)的(例如:putchar函數(shù)、printf函數(shù))。2.由于C語(yǔ)言將上述標(biāo)準(zhǔn)輸出函數(shù)的原型放在頭文件stdio.h中,因此在編寫(xiě)程序時(shí),要在源程序的開(kāi)頭用#include“stdio.h”命令將頭文件stdio.h包括到用戶(hù)源程序中。(但是printf函數(shù)除外)二、putchar函數(shù)1.函數(shù)調(diào)用格式:putchar(參數(shù));

其中:參數(shù)可以是一個(gè)字符型變量、整型變量或一個(gè)字符型常量(包括控制字符和轉(zhuǎn)義字符)。2.功能:是在顯示器上輸出一個(gè)參數(shù)對(duì)應(yīng)的字符。例如:charch1=‘C’;inta=105;

putchar(ch1);/*輸出字符C*/

putchar(a);/*輸出字符i*/

putchar(‘n’);

/*輸出字符n*/

putchar(‘\n’);

/*輸出回車(chē)換行*/三、printf函數(shù)1.函數(shù)調(diào)用格式:

printf(“格式控制字符串”,表達(dá)式1,表達(dá)式2,…);2.功能:按照自右向左的順序,依次計(jì)算各表達(dá)式的值,然后按照“格式控制字符串”中規(guī)定的格式輸出到顯示器上顯示。例如:

inta=3,b=2;printf(“%d,%d”,b=a<b,a=a<b);輸出結(jié)果:1,0

3.說(shuō)明:(1)輸出項(xiàng)可以是變量、常量和表達(dá)式。(2)格式控制字符串中允許包含格式編輯符和原樣輸出的字符串。例如:“c=%d”

(是一個(gè)格式控制字符串)(c=是原樣輸出的字符串,%d是格式編輯符)(3)格式編輯符用于指定輸出格式,其形式為:

%[格式修飾]格式字符(4)格式字符的符號(hào)及功能如下表所示:4.舉例分析:例3-1

格式字符數(shù)據(jù)對(duì)象輸出形式數(shù)據(jù)輸出方法%-mdint,shortunsignedintunsignedshortchar十進(jìn)制整數(shù)無(wú)m按實(shí)際位數(shù)輸出有m輸出m位超過(guò)m位,按實(shí)際位數(shù)輸出不足m位,補(bǔ)空格無(wú)(-)右對(duì)齊(左補(bǔ)空格)有(-)左對(duì)齊(右補(bǔ)空格)%-mo八進(jìn)制整數(shù)%-mx十六進(jìn)制整數(shù)%-mu無(wú)符號(hào)整數(shù)%-mldlongunsignedlong十進(jìn)制整數(shù)%-mlo八進(jìn)制整數(shù)%-mlx十六進(jìn)制整數(shù)%-mlu無(wú)符號(hào)整數(shù)%-m.nffloatdouble十進(jìn)制小數(shù)無(wú)m.n按實(shí)際位數(shù)輸出有m.n輸出n位小數(shù),總寬度為m%-m.ne十進(jìn)制指數(shù)%-mcchar,int,short單個(gè)字符無(wú)m輸出單個(gè)字符,有m輸出m位,補(bǔ)空格%-m.ns字符串一串字符無(wú)m.n按實(shí)際字符串輸出全部字符有m.n僅輸出前n個(gè)字符,補(bǔ)空格3.4數(shù)據(jù)的輸入一、基本說(shuō)明1.C語(yǔ)言本身沒(méi)有直接提供用于輸入的語(yǔ)句,它是通過(guò)輸入函數(shù)來(lái)實(shí)現(xiàn)的(例如:getchar函數(shù)、scanf函數(shù))。2.由于C語(yǔ)言將上述標(biāo)準(zhǔn)輸出函數(shù)的原型放在頭文件stdio.h中,因此在編寫(xiě)程序時(shí),要在源程序的開(kāi)頭用#include“stdio.h”命令將頭文件stdio.h包括到用戶(hù)源程序中。(但是scanf函數(shù)除外)二、getchar函數(shù)1.函數(shù)調(diào)用格式:getchar()2.功能:從鍵盤(pán)輸入一個(gè)字符。3.說(shuō)明:該函數(shù)只能接收一個(gè)字符,而且得到的是字符的ASCII碼。該值可以賦給一個(gè)字符型變量或一個(gè)整型變量。4.舉例說(shuō)明例3-2三、scanf函數(shù)1.函數(shù)調(diào)用格式:

scanf(“格式控制字符串”,輸入項(xiàng)1,輸入項(xiàng)2,…);2.功能:按指定的格式接收由鍵盤(pán)輸入的數(shù)據(jù),并存入輸入項(xiàng)變量所在的內(nèi)存單元中。3.說(shuō)明:(1)格式控制字符串中允許包含格式編輯符和原樣輸入的字符串。例如:“c=%d”

(是一個(gè)格式控制字符串)(c=是原樣輸入的字符串,%d是格式編輯符)(2)格式編輯符用于指定輸入格式,其形式為:

%[格式修飾]格式字符格式字符用于規(guī)定相應(yīng)輸入項(xiàng)的輸入格式,其字符如下表所示:(3)輸入項(xiàng)必須為變量的地址,通常用“&變量名”組成。例如:定義intx;用scanf(“%d”,x);是錯(cuò)誤的。用scanf(“%d”,&x);是正確的。

格式字符數(shù)據(jù)對(duì)象輸入形式數(shù)據(jù)輸入方法%mdint,shortunsignedintunsignedshortchar十進(jìn)制整數(shù)無(wú)m按實(shí)際位數(shù)輸入有m輸入m位,不足m位則跟回車(chē)鍵%mo八進(jìn)制整數(shù)%mx十六進(jìn)制整數(shù)%mld

longunsignedlong十進(jìn)制整數(shù)%mlo八進(jìn)制整數(shù)%mlx十六進(jìn)制整數(shù)%mf%mefloat十進(jìn)制小數(shù)十進(jìn)制指數(shù)%mlf%mledouble%mcchar單個(gè)字符無(wú)m僅取單個(gè)字符,有m輸入m位,僅取第一個(gè)字符%ms字符串一串字符無(wú)m取若干個(gè)字符直到回車(chē)或空格為止,有m僅取前m個(gè)字符(4)輸入數(shù)據(jù)時(shí),數(shù)據(jù)與數(shù)據(jù)之間應(yīng)使用分隔符。分隔符有兩種形式:一種是在輸入格式控制串中給定的,例如scanf(“%d,%d”,&x,&y);其分隔符為逗號(hào)(,)。另一種是空格、制表符(Tab)或換行符,它們不是在輸入格式控制串中給定的,而是用戶(hù)在鍵入數(shù)據(jù)時(shí)隨機(jī)使用的。例如:scanf(“%d%d”,&x,&y);執(zhí)行時(shí)就可以用以上方法作為輸入數(shù)據(jù)之間的分隔符。(5)鍵入數(shù)據(jù)的類(lèi)型、寬度應(yīng)該與格式控制中給定的相一致。例3-3第四章選擇結(jié)構(gòu)程序設(shè)計(jì)一、概述:1.什么是選擇結(jié)構(gòu)在程序執(zhí)行中依據(jù)條件判斷,確定某些操作是做還是不做,或者確定若干操作中選擇哪個(gè)操作來(lái)執(zhí)行。2.選擇結(jié)構(gòu)有兩種形式If語(yǔ)句(單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu))switch語(yǔ)句4.1if語(yǔ)句一、單分支結(jié)構(gòu)1.形式:

if(表達(dá)式)語(yǔ)句;2.語(yǔ)義:若表達(dá)式的值為非0,就執(zhí)行“語(yǔ)句”,否則直接執(zhí)行if語(yǔ)句的后繼語(yǔ)句。表達(dá)式語(yǔ)句塊非003.說(shuō)明(1)“表達(dá)式”允許是任何表達(dá)式,而且兩側(cè)的圓括號(hào)不可少。(2)如果“語(yǔ)句塊”包含多個(gè)語(yǔ)句,必須用{}將其括成復(fù)合語(yǔ)句。二、雙分支結(jié)構(gòu)1.形式:

if(表達(dá)式)

語(yǔ)句塊1;

else

語(yǔ)句塊2;2.其語(yǔ)義是:如果表達(dá)式的值為非0,則執(zhí)行“語(yǔ)句塊1”,然后跳出if結(jié)構(gòu),執(zhí)行后續(xù)語(yǔ)句;若表達(dá)式的值為0,則執(zhí)行“語(yǔ)句塊2”,之后跳出if結(jié)構(gòu),往下執(zhí)行后續(xù)語(yǔ)句。表達(dá)式語(yǔ)句塊1語(yǔ)句塊23.說(shuō)明“表達(dá)式”允許是任何表達(dá)式,而且兩側(cè)的圓括號(hào)不可少。如果“語(yǔ)句塊”包含多個(gè)語(yǔ)句,必須用{}將其括成復(fù)合語(yǔ)句。else必須與if語(yǔ)句配對(duì)使用,而且總是和最近的if配對(duì)。例如:

if(c>=‘0’&&c<=‘9’)if(c==‘5’)y=0;elsey=1

if(c>=‘0’&&c<=‘9’){if(c==‘5’)y=0;}elsey=1三、多分支結(jié)構(gòu)1.形式:

if(表達(dá)式1)

語(yǔ)句塊1;

elseif(表達(dá)式2)

語(yǔ)句塊2;

elseif(表達(dá)式3)

語(yǔ)句塊3;

else

語(yǔ)句塊4;2.說(shuō)明

多分支if語(yǔ)句的執(zhí)行步驟是:首先判斷表達(dá)式1的條件是否成立,若成立就執(zhí)行語(yǔ)句1,否則判斷表達(dá)式2的條件是否成立,若成立就執(zhí)行語(yǔ)句2……依次類(lèi)推,若所有的條件都不成立,就執(zhí)行else后面的語(yǔ)句,然后出口。4.2switch語(yǔ)句1.作用:用于實(shí)現(xiàn)多分支選擇結(jié)構(gòu)問(wèn)題。2.形式:

switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;[break;]case常量表達(dá)式2:語(yǔ)句2;[break;]

case常量表達(dá)式n:語(yǔ)句n;[break;][default:語(yǔ)句n+1;]}3.該語(yǔ)句的含義是:(1)先計(jì)算switch右邊表達(dá)式的值,并將其逐個(gè)與case行中“常量表達(dá)式”的值相比較,若相等,則執(zhí)行case行給出的語(yǔ)句,若有break語(yǔ)句則跳出switch語(yǔ)句執(zhí)行后續(xù)語(yǔ)句;(2)若沒(méi)有break語(yǔ)句則繼續(xù)執(zhí)行后續(xù)case行所給出的語(yǔ)句;(3)如果所有的常量表達(dá)式都不匹配,則執(zhí)行default行指引的語(yǔ)句。4.說(shuō)明(1)該結(jié)構(gòu)中{}必不可少,其中的語(yǔ)句是switch語(yǔ)句體;(2)case后跟的常量表達(dá)式與冒號(hào)一起構(gòu)成語(yǔ)句標(biāo)號(hào)。case和常量表達(dá)式之間必須要有空格,常量表達(dá)式的值必須唯一。(3)switch后面的表達(dá)式可以是整型、字符型,但不能是實(shí)型。表達(dá)式的值與常量表達(dá)式的值應(yīng)保持類(lèi)型一致。(4)case后面跟的語(yǔ)句允許是多條語(yǔ)句,可以不加{}。一個(gè)語(yǔ)句也可以被多個(gè)case共用。

例如:case1:case2:printf(“ok”);第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、概述:1.什么是循環(huán)結(jié)構(gòu)

在程序執(zhí)行中當(dāng)滿(mǎn)足某個(gè)特定的條件時(shí),重復(fù)執(zhí)行某段程序,直至條件不滿(mǎn)足為止,這種結(jié)構(gòu)就稱(chēng)為循環(huán)結(jié)構(gòu)。2.循環(huán)結(jié)構(gòu)有三種類(lèi)型當(dāng)型結(jié)構(gòu)(while結(jié)構(gòu))直到型結(jié)構(gòu)(do-while結(jié)構(gòu))已知循環(huán)次數(shù)的結(jié)構(gòu)(for結(jié)構(gòu))5.1當(dāng)型循環(huán)結(jié)構(gòu)(while結(jié)構(gòu))1.形式:

while(表達(dá)式)語(yǔ)句;2.語(yǔ)義:先計(jì)算表達(dá)式的值,判斷其是否為0,若為非0,表示循環(huán)條件滿(mǎn)足,就執(zhí)行循環(huán)體,如此重復(fù),直至表達(dá)式的值為0,退出循環(huán)執(zhí)行后繼語(yǔ)句。循環(huán)語(yǔ)句表達(dá)式后繼語(yǔ)句0非03.說(shuō)明(1)表達(dá)式可以是任意合法的表達(dá)式,并以它作為判別循環(huán)體執(zhí)行與否的條件。若表達(dá)式的值為非0表示條件成立;若為0表示條件不成立。(2)“語(yǔ)句”是重復(fù)執(zhí)行部分,稱(chēng)之為循環(huán)體。(3)循環(huán)體中可以只包含一句語(yǔ)句,也可以包含多個(gè)語(yǔ)句。若為多條語(yǔ)句,必須用{}括起來(lái),組成一個(gè)復(fù)合語(yǔ)句,否則while語(yǔ)句只將第一句語(yǔ)句視為循環(huán)體。(4)循環(huán)體中必須要有改變條件表達(dá)式值的語(yǔ)句,否則將成為死循環(huán)。(5)該循環(huán)結(jié)構(gòu)由于先判斷循環(huán)條件,當(dāng)一開(kāi)始條件就不成立循環(huán)體就不會(huì)執(zhí)行,所以該循環(huán)結(jié)構(gòu)又可稱(chēng)允許0次循環(huán)的結(jié)構(gòu)。舉例說(shuō)明:例5-1#include“stdio.h”main(){charc;while((c=getchar())!=’\n’)switch(c){case‘0’:case‘1’:putchar(c+2);case‘2’:putchar(c+3);break;case‘3’:putchar(c+4);default:putchar(c+1);break;}printf(“\n”);}假設(shè)從鍵盤(pán)上輸入:420回車(chē)則程序運(yùn)行結(jié)果為:55325.2直到型循環(huán)結(jié)構(gòu)(do-while結(jié)構(gòu))1.形式:

do

語(yǔ)句;

while(表達(dá)式);2.語(yǔ)義:先執(zhí)行循環(huán)體一次,然后判斷表達(dá)式是否成立,若為非0,表示循環(huán)條件滿(mǎn)足,就繼續(xù)執(zhí)行循環(huán)體,如此重復(fù),直至表達(dá)式的值為0,退出循環(huán)執(zhí)行后繼語(yǔ)句。表達(dá)式后繼語(yǔ)句循環(huán)語(yǔ)句0非03.說(shuō)明(1)表達(dá)式可以是任意合法的表達(dá)式。(2)“語(yǔ)句”是重復(fù)執(zhí)行部分,稱(chēng)之為循環(huán)體。(3)循環(huán)體中可以只包含一句語(yǔ)句,也可以包含多個(gè)語(yǔ)句。若為多條語(yǔ)句,必須用{}括起來(lái),組成一個(gè)復(fù)合語(yǔ)句,否則只將第一句語(yǔ)句視為循環(huán)體。(4)循環(huán)體中必須要有改變條件表達(dá)式值的語(yǔ)句,否則將成為死循環(huán)。(5)該循環(huán)結(jié)構(gòu)由于先執(zhí)行循環(huán)語(yǔ)句再判斷循環(huán)條件是否成立,所以該循環(huán)結(jié)構(gòu)又可稱(chēng)不允許0次循環(huán)的結(jié)構(gòu)。5.3已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu)(for結(jié)構(gòu))1.形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句;2.語(yǔ)義:(1)先計(jì)算“表達(dá)式1”的值;(2)再計(jì)算“表達(dá)式2”的值,并判斷其是否為0,若非0,則執(zhí)行循環(huán)體一次,否則跳出循環(huán),執(zhí)行for語(yǔ)句的后續(xù)語(yǔ)句;(3)計(jì)算“表達(dá)式3”的值,然后轉(zhuǎn)到步驟(2)重復(fù)執(zhí)行。注:for語(yǔ)句的語(yǔ)義也可用下圖表示:

求表達(dá)式1的值表達(dá)式2循環(huán)體語(yǔ)句求表達(dá)式3的值后續(xù)語(yǔ)句非003.說(shuō)明(1)在整個(gè)for循環(huán)執(zhí)行過(guò)程中,“表達(dá)式1”只計(jì)算一次,“表達(dá)式2”和“表達(dá)式3”可能計(jì)算多次;循環(huán)體可能多次被執(zhí)行,也可能一次也不執(zhí)行。(2)循環(huán)體中可以只包含一句語(yǔ)句,也可以包含多個(gè)語(yǔ)句。若為多條語(yǔ)句,必須用{}括起來(lái),組成一個(gè)復(fù)合語(yǔ)句,否則只將第一句語(yǔ)句視為循環(huán)體。(3)for循環(huán)結(jié)構(gòu)的循環(huán)體可以是空語(yǔ)句。(4)for語(yǔ)句中的各表達(dá)式都可以省略,但分號(hào)間隔符不能少。例如:

for(;表達(dá)式2;表達(dá)式3)

for(表達(dá)式1;;表達(dá)式3)

for(表達(dá)式1;表達(dá)式2;)

for(;

;)若表達(dá)式1省略,則表達(dá)式1的計(jì)算必須在for語(yǔ)句的上面完成。若表達(dá)式2省略,則循環(huán)體中必須要有控制循環(huán)結(jié)束的break語(yǔ)句,否則將會(huì)死循環(huán)。若表達(dá)式3省略,則表達(dá)式必須在循環(huán)體內(nèi)完成。

5.4循環(huán)結(jié)構(gòu)中的轉(zhuǎn)移語(yǔ)句一、break語(yǔ)句1.形式:break;2.功能:是終止當(dāng)前的循環(huán),轉(zhuǎn)向后繼語(yǔ)句執(zhí)行。例如:for(x=1,y=0;x<=10;x++){y=y+x;

if(y>5)break;printf(“y=%d\n”,y);}

當(dāng)x=3時(shí),y的值為6,使if(y>5)的表達(dá)式的值為1,于是執(zhí)行break語(yǔ)句,跳出for循環(huán)體。二、continue語(yǔ)句1.形式:continue;2.功能:對(duì)于while和do-while語(yǔ)句,其功能是結(jié)束本次循環(huán)轉(zhuǎn)去求循環(huán)條件表達(dá)式的值,而在for語(yǔ)句中,則是求解表達(dá)式3的值。While(表達(dá)式){…continue;…}do{…continue;…}While(表達(dá)式);for(;;){…continue;…}5.5循環(huán)結(jié)構(gòu)的嵌套1.含義:當(dāng)一個(gè)循環(huán)語(yǔ)句的循環(huán)體中又出現(xiàn)另一個(gè)循環(huán)語(yǔ)句時(shí),就構(gòu)成了循環(huán)的嵌套。2.形式:while()…while()…do…do…while();while();for(;;)…for(;;)…3.說(shuō)明(1)不要將循環(huán)的嵌套和并列混為一談。例如:

for(i=1;i<3;i++){for(j=1;j<=2;j++)printf(“%d\t”,i*j);for(k=2;k<4;k++)m=i*k;s=s+m;}其中,j循環(huán)和k循環(huán)為并列關(guān)系,它們都是i的內(nèi)層循環(huán)。(2)由于內(nèi)循環(huán)是外循環(huán)的循環(huán)體,因此外循環(huán)每執(zhí)行一遍,內(nèi)循環(huán)從初值到終值完整執(zhí)行一周。例如:

for(i=1;i<=3;i++)for(j=1;j<=2;j++)printf(“%d\t”,i*j);

內(nèi)層循環(huán)體printf(“%d\t”,i*j);共執(zhí)行了3*2(6)遍。例1:編寫(xiě)程序,打印出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。如:153=13+53+33,故153是水仙花數(shù)。main(){inti,x1,x2,x3;for(i=100,i<=999;i++){x1=i%10;/*取個(gè)位數(shù)*/x2=(i/10)%10;/*取十位數(shù)*/x3=i/100;/*取百位數(shù)*/if(x1*x1*x1+x2*x2*x2+x3*x3*x3==i)printf(“%d\t”,i);}}第六章數(shù)組6.1數(shù)組的概述:1.什么是數(shù)組

數(shù)組是一組相同類(lèi)型變量的集合。2.數(shù)組的特點(diǎn)(1)數(shù)組中的每一個(gè)成員稱(chēng)為“數(shù)組元素”。每一個(gè)“數(shù)組元素”都有相同的名稱(chēng),但用不同的下標(biāo)來(lái)區(qū)分。(2)每一個(gè)數(shù)組元素都可以當(dāng)做單個(gè)變量來(lái)使用,但它們的數(shù)據(jù)類(lèi)型都必須是相同的。(3)數(shù)組的類(lèi)型可以是整型、實(shí)型、字符型、指針型、結(jié)構(gòu)型等(4)數(shù)組根據(jù)其下標(biāo)的個(gè)數(shù)可分為一維數(shù)組、二維數(shù)組及多維數(shù)組。6.2數(shù)組的說(shuō)明一、數(shù)組說(shuō)明形式1.形式:存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)組名[長(zhǎng)度1][長(zhǎng)度2]……2.說(shuō)明:(1)數(shù)組說(shuō)明的作用是為數(shù)組預(yù)留空間。(2)數(shù)據(jù)類(lèi)型可以是int、float、double、char等基本類(lèi)型,也可以是指針型或結(jié)構(gòu)類(lèi)型。(3)數(shù)組名是按照“標(biāo)識(shí)符”的規(guī)則構(gòu)成的。(4)長(zhǎng)度定義了數(shù)組中所含元素的個(gè)數(shù),通常是一個(gè)整型常數(shù)。(5)方括號(hào)[]為下標(biāo)運(yùn)算符,其個(gè)數(shù)決定了數(shù)組的維數(shù)。例如:

inta[5],b[2][3];charc[20];floatd[4][3];

這里一共定義了四個(gè)數(shù)組,其中a為一維整型數(shù)組,有5個(gè)元素;

b為二維整型數(shù)組,有2行3列共6個(gè)元素;

c為一維字符型數(shù)組,有20個(gè)元素;

d為二維實(shí)型數(shù)組,有4行3列共12個(gè)元素。二、使用數(shù)組的注意事項(xiàng)1.在C語(yǔ)言中,數(shù)組元素的下標(biāo)起始值為0而不是1。例如:inta[5],b[2][3];

那么a數(shù)組包含的數(shù)組元素為:

a[0],a[1],a[2],a[3],a[4]

b數(shù)組的元素為:b[0][0]、b[0][1]、b[0][2]b[1][0]、b[1][1]、b[1][2]2.[]中的長(zhǎng)度必須為正整數(shù)。它們的乘積確定了整個(gè)數(shù)組的長(zhǎng)度。3.[]中不允許使用變量定義數(shù)組長(zhǎng)度;但允許包含符號(hào)常量和sizeof表達(dá)式6.3數(shù)組的引用一、下標(biāo)變量的表示形式1.什么是下標(biāo)變量:數(shù)組中的每一個(gè)元素可以當(dāng)做一個(gè)變量來(lái)使用,這種變量必須以下標(biāo)形式表示。2.表示形式:數(shù)組名[下標(biāo)1][下標(biāo)2]……例如:inta[10];floatb[3][5];a[0]=15;a[9]=100;b[0][0]=3.58;b[0][4]=2.5;3.使用說(shuō)明(1)引用下標(biāo)變量時(shí),所給出的下標(biāo)個(gè)數(shù)必須與所定義的數(shù)組維數(shù)相一致,而且每一個(gè)下標(biāo)表達(dá)式的值不得超界。例如:inta[10];a[10]=0;是錯(cuò)誤的數(shù)組下標(biāo)引用。(2)數(shù)組下標(biāo)引用時(shí)可用整型常量、整型表達(dá)式和整型變量。6.4數(shù)組的賦初值1.給數(shù)組賦初值的語(yǔ)法形式數(shù)據(jù)類(lèi)型數(shù)組名[下標(biāo)1][下標(biāo)2]…={常數(shù)列表}2.說(shuō)明:(1){常數(shù)列表}為初值表,其中常數(shù)與常數(shù)之間用逗號(hào)分隔。例如:floatx[4]={-1.0,0.0,2.7,5.2E-8};inty[3][2]={{0,1},{2,3},{4,5}}x數(shù)組元素的初值為:x[0]=-1.0,x[1]=0.0,x[2]=2.7,x[4]=0.0000000052y數(shù)組元素的初值為:y[0][0]=0,y[0][1]=1,y[1][0]=2,y[1][1]=3,y[2][0]=4,y[2][1]=6,(2)對(duì)數(shù)組賦初值時(shí),若初值表中常數(shù)個(gè)數(shù)少于數(shù)組元素的個(gè)數(shù),這表示僅對(duì)數(shù)組中排列靠前的元素賦初值;若初值表中給定的初值多于下標(biāo)變量的個(gè)數(shù),將出現(xiàn)編譯錯(cuò)誤。例如:intx[5]={10,20,30};是正確的

intx[5]={1,2,3,4,5,6}是錯(cuò)誤的(3)C語(yǔ)言允許使用一維數(shù)組賦初值的方法對(duì)多維數(shù)組賦初值。下面兩句語(yǔ)句寫(xiě)法等價(jià):

inty[3][2]={{0,1},{2,3},{4,5}}inty[3][2]={0,1,2,3,4,5}(4)一維數(shù)組定義時(shí)若賦初值則[]內(nèi)的下標(biāo)可省略,由初值表中初值的個(gè)數(shù)來(lái)間接決定長(zhǎng)度。二維數(shù)組定義時(shí)若賦初值則第1個(gè)[]內(nèi)的下標(biāo)可省略,由初值表中初值的個(gè)數(shù)來(lái)間接決定其長(zhǎng)度。例如:intx[]={0,1,2,3,4,5};inty[][3]={0,1,2,3,4,5};6.5字符數(shù)組與字符串處理一、字符串1.所謂字符串,就是用雙引號(hào)括起來(lái)的字符序列。它是由若干個(gè)字符組成的,其最后一個(gè)字符是結(jié)束標(biāo)記“\0”。2.在C語(yǔ)言中,沒(méi)有標(biāo)準(zhǔn)的字符串定義類(lèi)型,字符串被當(dāng)作字符數(shù)組來(lái)處理。3.所謂字符數(shù)組就是每一個(gè)元素都是一個(gè)字符變量的數(shù)組。二、字符數(shù)組的定義1.定義形式:char數(shù)組名[下標(biāo)1][下標(biāo)2]…

例如:charc1[100],c2[20][20];

c1被定義為一維字符數(shù)組,包含100個(gè)字符型的數(shù)組元素;c2被定義為二維字符數(shù)組,20行20列共有400個(gè)字符型的數(shù)組元素。2.說(shuō)明因?yàn)樽址妥兞恐荒艽娣乓粋€(gè)由單引號(hào)括起來(lái)的字符,因此字符數(shù)組中的每一個(gè)元素也只能存放一個(gè)字符。三、字符數(shù)組賦初值第一種方法:按單個(gè)字符的方式賦初值。例如:chars1[3]={‘1’,’2’,’3’};結(jié)果s1[0]的值為‘1’,s1[1]的值為‘2’,s1[2]的值為‘3’。但s1數(shù)組中存放的不是一個(gè)字符串。

staticchars2[3]={‘1’,’2’};結(jié)果s2[0]的值為‘1’,s2[1]的值為‘2’,s2[2]的值為空。s2數(shù)組中存放的是一個(gè)字符串。因?yàn)榭兆址闹禐?,等于字符串結(jié)束標(biāo)記‘\0’。

chars3[3]={‘1’,’2’,’\0’}結(jié)果s3[0]的值為‘1’,s3[0]的值為‘2’,s3[2]的值為‘\0’。所以s3中存放的是一個(gè)字符串。

第二種方法:是直接在初值表中寫(xiě)一個(gè)字符串常量。例如:chars1[3]={“12”};結(jié)果s1[0]的值為‘1’,s1[1]的值為‘2’,s1[2]的值為‘\0’。所以s1數(shù)組中存放的是一個(gè)字符串。

chars2[5]={“ABCD”};結(jié)果s2[0]的值為‘A’,s2[1]的值為‘B’,s2[2]的值為‘C’,s2[4]的值為‘D’,s2[5]的值為‘\0’。存放的是一個(gè)字符串。chars2[]={“ABCD”};結(jié)果s2[0]的值為‘A’,s2[1]的值為‘B’,s2[2]的值為‘C’,s2[4]的值為‘D’,s2[5]的值為‘\0’。存放的是一個(gè)字符串。chars2[5]={“ABCDE”};該語(yǔ)句在編譯時(shí)將是錯(cuò)誤的,因?yàn)閿?shù)組元素個(gè)數(shù)小于字符串長(zhǎng)度。四、字符串的輸入字符串的輸入可以用scanf(),也可以用gets()。1.用scanf()輸入其形式為:

charc1[80];scanf(“%s”,c1);2.用gets()輸入其形式為:

charc1[80];gets(c1);3.說(shuō)明(1)scanf()和gets()輸入相同的地方:它們都是直接用數(shù)組名,因?yàn)閿?shù)組名是地址常量。另外輸入的字符串最大長(zhǎng)度必須是數(shù)組個(gè)數(shù)減1。(2)不同的地方:scanf()可以同時(shí)輸入多個(gè)輸入項(xiàng),而gets()只能輸入一個(gè)輸入項(xiàng)。scanf()用%s格式輸入字符串時(shí),遇空格字符、Tab鍵和回車(chē)符將自動(dòng)結(jié)束輸入。gets()不識(shí)別字符串中的轉(zhuǎn)義字符,它原樣傳送,而以回車(chē)作為輸入結(jié)束。例如:charc1[40];scanf(“%s”,c1);

如果輸入Howareyou

則c1中只存放Howcharc1[40];gets(c1);

如果輸入Howareyou

則c1中只存放Howareyou五、字符串的輸出字符串的輸出可以用printf()

或puts()。1.用printf()輸出其形式為:

charc1[]=“abcdefg”;printf(“%s”,c1);2.用puts()輸出其形式為:

charc1[]=“abcdefg”;puts(c1);3.說(shuō)明相同點(diǎn):都能識(shí)別轉(zhuǎn)義字符。例如charc1[]=“ABCDEFGHI”;printf(“%s”,c1);結(jié)果為ABCputs(c1);結(jié)果為ABC不同點(diǎn):printf()能輸出多個(gè)輸出項(xiàng),而puts()則能輸出一個(gè)輸出項(xiàng)。六、常用字符串處理函數(shù)1.strlen函數(shù)形式:strlen(str);功能:計(jì)算并返回字符串的長(zhǎng)度(結(jié)束標(biāo)記‘\0’不計(jì)入內(nèi))說(shuō)明:str可以是字符串常量、字符數(shù)組。例如:strlen(“abcdefgh\\\123”);結(jié)果為11。2.strcmp函數(shù)形式:strcmp(str1,str2);功能:比較str1和str2兩個(gè)字符串的大小。若相同則返回0,若str1大于str2則返回大于0,若str1小于str2則返回小于0。例如:strcmp(“ABC”,”ABC”);結(jié)果為0strcmp(“abc”,”ABC”);結(jié)果為大于0strcmp(“ABC”,”abc”)結(jié)果為小于0說(shuō)明:(1)str1、str2可以是字符串常量、字符數(shù)組。(2)不能用if語(yǔ)句比較兩個(gè)字符串是否相同。3.strcpy函數(shù)形式:strcpy(str1,str2);功能:將字符串str2的內(nèi)容連同結(jié)束標(biāo)記‘\0’一起復(fù)制到str1中。說(shuō)明:(1)str1、str2只能是字符數(shù)組。(2)str1必須有足夠的長(zhǎng)度以容納str2的內(nèi)容。例如:charc1[80],c2[40]=“abcdefghijk”;strcpy(c1,c2);4.strcat函數(shù)形式:strcat(str1,str2);功能:將字符串str1與字符串str2尾首相接,拼接以后,原str1串尾的結(jié)束符‘\0’被自動(dòng)覆蓋,新串的未尾自動(dòng)加上‘\0’,生成的新串存放于str1中。說(shuō)明:(1)str1必須是字符數(shù)組、str2可以是字符串常量、也可以是字符數(shù)組。

(2)str1必須有足夠的長(zhǎng)度以容納拼接后的新串內(nèi)容。例如:charc1[80]=“abcdefgh”,c2[40]=“xyz123”;strcat(c1,c2);結(jié)果為abcdefghxyz123編程舉例:例1:從鍵盤(pán)上輸入一串字符串,并按逆序顯示出來(lái)。

main(){charc[80];inti;gets(c);for(i=strlen(c)-1;i>=0;i--)printf(“%c”,c[i]);}第7章指針7.1指針和指針變量一、指針1.什么是指針?biāo)^指針,就是指存放數(shù)據(jù)的內(nèi)存地址。2.變量與內(nèi)存地址的關(guān)系例如:有一條定義語(yǔ)句

inti=3,j=5;floatf;地址內(nèi)存單元20012002200320042005200620072008整型變量i整型變量j單精度變量f3.數(shù)組與地址的關(guān)系例如:有一條定義語(yǔ)句

inta[3];地址內(nèi)存單元200120022003200420052006整型數(shù)組元素a[1]整型數(shù)組元素a[0]整型數(shù)組元素a[2]二、指針變量1.什么是指針變量

用于存放地址的變量稱(chēng)為指針變量2.指針變量的特點(diǎn)

地址是一種特殊的數(shù)據(jù)類(lèi)型,所以存放地址的指針變量和存放字符型、整型、實(shí)型數(shù)據(jù)的變量是不同類(lèi)型的變量。3.如何獲得地址3.如何獲得地址(1)變量地址或數(shù)組元素地址通過(guò)“&”運(yùn)算符獲得。例如:inta,b[10];&a、&b[3](2)數(shù)組的首地址直接可用數(shù)組名,不必利用“&”運(yùn)算符獲得。例如:intb[10]那么數(shù)組名b就是數(shù)組首地址7.2指針變量的定義、初始化和引用一、指針變量的定義和初始化1.定義格式

存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型*指針變量名[=初值]……2.功能:定義指向“數(shù)據(jù)類(lèi)型”變量或數(shù)組的若干個(gè)指針變量,同時(shí)給這些指針變量賦初值。3.說(shuō)明3.說(shuō)明(1)指針變量名前面必須有“*”號(hào)。(2)定義指針變量時(shí)的“數(shù)據(jù)類(lèi)型”可以是任何數(shù)據(jù)類(lèi)型,但這個(gè)數(shù)據(jù)類(lèi)型不是指針變量中存放的數(shù)據(jù)類(lèi)型,而是它將要指向的變量或數(shù)組的數(shù)據(jù)類(lèi)型。(3)其中的初值必須是地址。4.舉例

inta;int*p=&a;intf1,f[10],*p1=&f1,*p2=f;二、指針變量的引用方式1.給指針變量賦值格式:指針變量=表達(dá)式例如:inti,*p_i;p_i=&i;2.直接引用指針變量名(1)作用:凡是用到地址時(shí),可以直接引用指針變量名。(2)舉例:

inti,j,*p=&i,*q;

q=p;scanf(“%d,%d”,q,&j);3.通過(guò)指針變量來(lái)引用它所指向的變量(1)使用格式:*指針變量名(2)例如:

inti=1,j=2,k,*p=&i;k=*p+j;(等價(jià)于k=i+j;)printf(“%d”,*p);(等價(jià)于printf(“%d”,i);)

注意:printf(“%d”,p);是錯(cuò)誤用法。三、取地址運(yùn)算符與指針運(yùn)算符說(shuō)明:(1)“&”運(yùn)算符的運(yùn)算對(duì)象必須是已定義過(guò)的變量或數(shù)組名;(2)“*”運(yùn)算符的運(yùn)算對(duì)象必須是已賦值的指針變量;不能是普通變量。例如:inta,*pa=&a;*&a、*&pa、&*pa是正確用法;

&*a是錯(cuò)誤用。運(yùn)算符名稱(chēng)優(yōu)先級(jí)結(jié)合性&取地址2自右向左*取對(duì)象7.3指針變量的使用一、指向變量的指針變量的使用1.給指針變量賦值格式:指針變量=地址表達(dá)式;說(shuō)明:指針變量的數(shù)據(jù)類(lèi)型和地址對(duì)應(yīng)的數(shù)據(jù)類(lèi)型應(yīng)一致。例如:

inta,*p_a;floatb,*p_b;p_a=&a;p_b=&b;是正確的

p_a=&b;p_b=&a;是錯(cuò)誤的2.引用所指向的變量(1)格式:*指針變量(2)說(shuō)明:使用時(shí)要注意該指針變量必須已賦過(guò)值即已指向某個(gè)變量。二、指向一維數(shù)組的指針變量的使用1.指針變量指向數(shù)組的方法(1)指向數(shù)組首地址用賦初值方法:*指針變量=數(shù)組名在程序中賦值:指針變量=數(shù)組名(2)指向某數(shù)組元素用賦初值方法:*指針變量=&數(shù)組名[下標(biāo)]在程序中賦值:

指針變量=&數(shù)組名[下標(biāo)]2.用指向一維數(shù)組的指針變量處理數(shù)組元素(1)當(dāng)指針變量指向數(shù)組首地址引用數(shù)組元素[i]:*(指針變量+i)(2)當(dāng)指針變量指向下標(biāo)為i的數(shù)組元素引用數(shù)組元素[i]:*指針變量引用數(shù)組元素[i-k]:*(指針變量-k)引用數(shù)組元素[I+k]:*(指針變量+k)(3)當(dāng)指針變量指向數(shù)組首地址后,對(duì)下標(biāo)為i的數(shù)組元素引用的四種方法*(指針變量+i)*(數(shù)組名+i),

指針變量[i]

數(shù)組名[i]例如:inta[10],*p=a;

若要引用a[5]數(shù)組元素:

*(p+5)、*(a+5)、p[5]、a[5]3.指向一維數(shù)組的指針變量的運(yùn)算(1)指針變量和整數(shù)的算術(shù)運(yùn)算

指針變量+整數(shù)指針變量-整數(shù)

++指針變量

--指針變量指針變量++

指針變量--例如:inta[10],*p=a;p+5(表示a[5]的地址,指針仍指向a[0])

p=&a[4],p-2(表示a[2]的地址,指針仍指向a[4]

p=&a[3],p++(表示a[3]的地址,指針將指向a[4])

p=&a[3],++p(表示a[4]的地址,指針將指向a[4])

a+5(表示a[5]的地址)

a++(這是不允許的)例如:(2005年試卷試題一(7))main(){inta[4]={0,4,5,13},*p;p=&a[2];printf("++(*p)=%d\n",++(*p));printf("*--p=%d\n",*--p);printf("*p++=%d\n",*p++);printf("%d\n",a[0]);}輸出結(jié)果:

++(*p)=6*--p=4*p++=40(2)指針變量和指針變量的減法運(yùn)算

指針變量1-指針變量2注意:要求這兩個(gè)指針變量必須指向同一個(gè)數(shù)組,否則不能進(jìn)行減法運(yùn)算;運(yùn)算結(jié)果為它們所指向的數(shù)組元素下標(biāo)相差的整數(shù)。例如:inta[10],*p=&a[5],*q=&a[8];q-p(值為3)

p-q(值為-3)(3)指針變量的關(guān)系運(yùn)算

指針變量1關(guān)系運(yùn)算符指針變量2注意:要求這兩個(gè)指針變量必須指向同一個(gè)數(shù)組,否則不能進(jìn)行關(guān)系運(yùn)算;運(yùn)算結(jié)果為邏輯真(1),或邏輯假(0)。例如:inta[10],*p=&a[5],*q=&a[8];q>p(值為1)

q<p(值為0)

p>=a(值為1)

p>=&a[8](值為0)

三、指向字符串的指針變量的使用1.將指針變量指向字符串常量的方法第一種方法:給指針變量賦初值的方法格式:*指針變量=字符串常量例如:char*p=“abcd”第二種方法:先定義指針變量,再賦值。格式:指針變量=字符串常量例如:char*pp=“abcd”2.指向字符串常量的指針變量的使用(1)處理整個(gè)字符串輸出字符串printf(“%s”,指針變量);輸入新的字符串代替原字符串

scanf(“%s”,指針變量);(2)處理字符串中的單個(gè)字符第i個(gè)字符的表示方法*(指針變量+i)3.指向存放字符串的字符數(shù)組的指針變量的使用同數(shù)組處理。四、指向二維數(shù)組的指針變量的使用1.指針變量指向二維數(shù)組的某個(gè)元素(1)讓指針變量指向二維數(shù)組的某個(gè)元素的方法用賦初值方式的格式:

*指針變量=&數(shù)組名[下標(biāo)1][下標(biāo)2]用賦值方式的格式:

指針變量=&數(shù)組名[下標(biāo)1][下標(biāo)2](2)數(shù)組元素的引用方法:*指針變量2.指針變量指向二維數(shù)組的首地址(1)指針變量指向二維數(shù)組首地址的方法用賦初值的方式有兩種:

*指針變量=二維數(shù)組名

*指針變量=&二維數(shù)組名[0][0]用賦值的方式也有兩種:

指針變量=二維數(shù)組名指針變量=&二維數(shù)組名[0][0](2)數(shù)組元素的地址表示方法:

指針變量+i*列數(shù)+j

數(shù)組元素的引用方法:

*(指針變量+i*列數(shù)+j)3.指針變量指向二維數(shù)組中某個(gè)一維數(shù)組(1)讓指針變量指向二維數(shù)組中某個(gè)一維數(shù)組的方法第一步:先定義一個(gè)指針變量

(*指針變量)[m]第二步:將該指針變量指向二維數(shù)組的首地址用賦初值的方法:(*指針變量)[m]=二維數(shù)組名用賦值的方法:指針變量=二維數(shù)組名第i行對(duì)應(yīng)的一維數(shù)組首地址可以用下列表達(dá)式表示:*(指針變量+i)(2)二維數(shù)組元素的引用方法數(shù)組元素地址:*(指針變量+行下標(biāo))+列下標(biāo)數(shù)組元素引用:*(*(指針變量+行下標(biāo))+列下標(biāo))7.4指針數(shù)組和多級(jí)指針一、基本問(wèn)題1.什么是指針數(shù)組當(dāng)某個(gè)數(shù)組被定義為指針類(lèi)型,就稱(chēng)這樣的數(shù)組為指針數(shù)組。2.什么是多級(jí)指針用來(lái)存放其它指針變量的地址的指針變量稱(chēng)為二級(jí)指針。二、指針數(shù)組的定義1.定義格式

存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型*指針數(shù)組名[長(zhǎng)度]={初值1}2.功能:3.說(shuō)明:三、指針數(shù)組元素的引用1.引用所指向的普通變量或數(shù)組*指針數(shù)組名[下標(biāo)]2.對(duì)其賦值:指針數(shù)組名[下標(biāo)]=地址表達(dá)式3.參加運(yùn)算:(1)賦值運(yùn)算(2)算術(shù)運(yùn)算(3)關(guān)系運(yùn)算四、多級(jí)指針的定義和應(yīng)用1.定義格式:存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型**指針變量={初值1}……

功能、使用說(shuō)明2.引用方法

*二級(jí)指針變量(代表所指向的一級(jí)指針變量)**二級(jí)指針變量(代表所指向的一級(jí)指針變量指向的變量)第8章函數(shù)8.1函數(shù)的概念一、函數(shù)的概念1.什么是函數(shù)函數(shù)是一個(gè)可以反復(fù)使用的程序段,從其它的程序段中均可以通過(guò)調(diào)用語(yǔ)句來(lái)執(zhí)行這段程序,完成既定的工作。2.函數(shù)說(shuō)明(1)建立函數(shù)稱(chēng)為“函數(shù)定義”,使用函數(shù)稱(chēng)為“函數(shù)調(diào)用”。(2)調(diào)用其它函數(shù)的函數(shù)稱(chēng)為“主調(diào)函數(shù)”,而被調(diào)用的函數(shù)稱(chēng)為“被調(diào)函數(shù)”。二、函數(shù)的定義1.定義格式(1)有參函數(shù)的定義存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型函數(shù)名(形式參數(shù)表)形式參數(shù)說(shuō)明序列;

{數(shù)據(jù)定義語(yǔ)句序列;執(zhí)行語(yǔ)句序列;

}(2)無(wú)參函數(shù)的定義存儲(chǔ)類(lèi)型數(shù)據(jù)類(lèi)型函數(shù)名()

{數(shù)據(jù)定義語(yǔ)句序列;執(zhí)行語(yǔ)句序列;

}2.定義函數(shù)的說(shuō)明(1)函數(shù)有“函數(shù)頭”和“函數(shù)體”兩部分組成;(2)存儲(chǔ)類(lèi)型可以是exterm和static兩種;(3)數(shù)據(jù)類(lèi)型規(guī)定了函數(shù)返回值的數(shù)據(jù)類(lèi)型,若無(wú)返回值則數(shù)據(jù)類(lèi)型為void;(4)形式參數(shù)表是用逗號(hào)分隔的若干個(gè)形式參數(shù),每個(gè)形參可以是一個(gè)變量名、數(shù)組名、指針變量名和指針數(shù)組名;(5)形參說(shuō)明可以用一條說(shuō)明語(yǔ)句說(shuō)明,也可以寫(xiě)在形式參數(shù)表中;(6)形參若是數(shù)組,只需給出數(shù)組名,數(shù)組長(zhǎng)度不需給出;(7)如果函數(shù)有返回值,則在函數(shù)體中應(yīng)有一條返回語(yǔ)句“return(表達(dá)式);”,無(wú)返回值,則返回語(yǔ)句應(yīng)為“return;”,也可以省略。三、函數(shù)的調(diào)用1.調(diào)用格式(1)沒(méi)有返回值的函數(shù)調(diào)用格式:

函數(shù)名(實(shí)際參數(shù)表);(2)有返回值的函數(shù)調(diào)用格式:函數(shù)名(實(shí)際參數(shù)表)2.函數(shù)調(diào)用時(shí)對(duì)被調(diào)函數(shù)的說(shuō)明(1)調(diào)用系統(tǒng)函數(shù)時(shí),要求在程序的開(kāi)始用包含命令“#include<頭文件名.h>”(2)如果被調(diào)函數(shù)是非整型或字符型函數(shù),而且書(shū)寫(xiě)順序在主調(diào)函數(shù)后面,則在主調(diào)函數(shù)中需對(duì)被調(diào)函數(shù)進(jìn)行說(shuō)明。例8-1intmax(x1,x2,x3)intx1,x2,x3;{

……}main(){intx,y,z,w,m;scanf("%d,%d,%d,%d",&x,&y,&z,&w);m=max(x-y,y-z,z-w);printf("max=%d\n",m);}例8-2main(){voidf();inta[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);

f(a);for(i=0;i<10;i++)printf("%d",a[i]);}voidf(b)intb[];{……}8.2函數(shù)調(diào)用中的數(shù)據(jù)傳遞方法一、基本問(wèn)題1.函數(shù)調(diào)用中的數(shù)據(jù)傳遞方法(1)值傳遞方式(2)地址傳遞方式二、值傳遞方式1.特點(diǎn)(1)值傳遞方式所傳遞的是參數(shù)值;(2)調(diào)用函數(shù)時(shí),將實(shí)值的值計(jì)算出來(lái)賦予對(duì)應(yīng)的形參(3)在函數(shù)體中對(duì)形參的加工與實(shí)參完全脫離關(guān)系;(4)當(dāng)函數(shù)體執(zhí)行完畢返回時(shí),形參的值將不回帶到對(duì)應(yīng)的實(shí)參中;(5)用值傳遞方式時(shí),形參一般都是變量,實(shí)參可以是變量,也可以是表達(dá)式。2.舉例說(shuō)明(例8-1)三、地址傳遞方式1.特點(diǎn)(1)地址傳遞方式所傳遞的是地址,調(diào)用函數(shù)時(shí),將實(shí)值的地址賦予對(duì)應(yīng)的形參作為其地址;(2)因?yàn)樾螀⒑蛯?shí)參共用同一個(gè)地址,所以在函數(shù)體中對(duì)形參的加工實(shí)際是對(duì)實(shí)參的加工;(3)當(dāng)函數(shù)體執(zhí)行完畢返回時(shí),形參的值將回帶到對(duì)應(yīng)的實(shí)參中;(4)用地址傳遞方式時(shí),實(shí)參可以是變量地址、指針變量或數(shù)組名,所以形參一般是指針變量或數(shù)組名。2.舉例說(shuō)明(例8-2)例8-3(2005年試卷試題二(2))#include<stdio.h>voidfunc(int*x,inty){statick=3;y=*x+y;*x=y%k;k++;printf("*x=%d,y=%d\n",*x,y);}voidmain(){intx=12,y=5;func(&x,y);printf("x1=%d,y1=%d\n",x,y);func(&y,x);printf("x2=%d,y2=%d\n",x,y);}結(jié)果:*x=2,y=17x1=2,y1=5*x=3,y=7x2=2,y2=38.3函數(shù)的嵌套調(diào)用和遞歸調(diào)用一、函數(shù)的嵌套調(diào)用1.什么是函數(shù)的嵌套調(diào)用函數(shù)甲調(diào)用了函數(shù)乙,而函數(shù)乙又調(diào)用了函數(shù)丙。2.嵌套調(diào)用方法函數(shù)甲函數(shù)乙函數(shù)丙調(diào)用函數(shù)乙返回調(diào)用函數(shù)乙結(jié)束返回二、函數(shù)的遞歸調(diào)用1.什么是函數(shù)的遞歸調(diào)用即函數(shù)在自身定義的內(nèi)部又調(diào)用自己。2.遞歸的特點(diǎn)(1)遞歸必須有遞歸結(jié)束條件;(2)遞歸過(guò)程首先是一級(jí)一級(jí)遞推(即當(dāng)前調(diào)用未結(jié)束又引出下一層調(diào)用),而滿(mǎn)足遞歸結(jié)束條件時(shí)結(jié)束遞推,再一級(jí)一級(jí)的回歸(即一級(jí)一級(jí)再返回上一級(jí)的調(diào)用繼續(xù)完成上一級(jí)的未完成的操作)。3.舉例說(shuō)明例8-4(2004年試卷試題一(7))voidconv(intm){if(m>=2)conv(m/2);printf("%d",m%2);}voidmain(){conv(13);}結(jié)果是:11018.4指針型函數(shù)及調(diào)用一、指針型函數(shù)的定義1.什么是指針型函數(shù)是指該函數(shù)的返回值是指針型的,也就是說(shuō),這類(lèi)函數(shù)的返回值是地址數(shù)據(jù)。2.指針型函數(shù)的特點(diǎn)指針型函數(shù)的返回值必須是地址值,調(diào)用該類(lèi)函數(shù)時(shí),接受返回值的必須是指針變量等能存入地

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論