版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)等級(jí)考試二級(jí)語(yǔ)言考前輔導(dǎo)主要內(nèi)容一、試卷分析一、試卷分析二、語(yǔ)言概述二、語(yǔ)言概述三、數(shù)據(jù)類(lèi)型及其運(yùn)算三、數(shù)據(jù)類(lèi)型及其運(yùn)算四、語(yǔ)句四、語(yǔ)句五、數(shù)組五、數(shù)組六、函數(shù)六、函數(shù)七、編譯預(yù)處理七、編譯預(yù)處理八、指針八、指針九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體十、文件十、文件十一、主要算法分析十一、主要算法分析C語(yǔ)言復(fù)習(xí)考試的五大要點(diǎn) 了解試卷,胸中有數(shù) 深刻理解,強(qiáng)化概念 歸納整理,適當(dāng)記憶 注重實(shí)踐,融會(huì)貫通 多做練習(xí),查漏補(bǔ)缺 命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn)語(yǔ)法:一、源程序結(jié)構(gòu)一、源程序結(jié)構(gòu)二、基本類(lèi)型數(shù)據(jù)的表示和引用二、基本類(lèi)型數(shù)據(jù)的表示和引用1.系統(tǒng)預(yù)定義數(shù)據(jù)類(lèi)型系統(tǒng)預(yù)定義數(shù)據(jù)類(lèi)
2、型2.基本類(lèi)型常量的表示基本類(lèi)型常量的表示3.基本類(lèi)型變量的聲明和直接引用基本類(lèi)型變量的聲明和直接引用4.基本類(lèi)型變量的間接引用(指針應(yīng)用)基本類(lèi)型變量的間接引用(指針應(yīng)用) 三、表達(dá)式三、表達(dá)式四、標(biāo)準(zhǔn)輸入四、標(biāo)準(zhǔn)輸入/輸出輸出五、語(yǔ)句五、語(yǔ)句命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn) 難題難題: : 語(yǔ)法語(yǔ)法: : 單選, 基本概念填空, 閱讀程序部分 算法和數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用算法和數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用: : 閱讀程序 完善程序 上機(jī)上機(jī) 填空 改錯(cuò):語(yǔ)法錯(cuò),語(yǔ)義錯(cuò),算法錯(cuò) 編程:主函數(shù),功能函數(shù)命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn)語(yǔ)法:六、函數(shù)六、函數(shù)1. 函數(shù)定義函數(shù)定義2. 函數(shù)聲明
3、函數(shù)聲明3. 函數(shù)直接調(diào)用、間接調(diào)用(指針應(yīng)用)函數(shù)直接調(diào)用、間接調(diào)用(指針應(yīng)用) 4. 遞歸函數(shù)的定義與調(diào)用執(zhí)行流程遞歸函數(shù)的定義與調(diào)用執(zhí)行流程 5. 標(biāo)識(shí)符作用域規(guī)則標(biāo)識(shí)符作用域規(guī)則 七、構(gòu)造類(lèi)型數(shù)據(jù)成員的引用七、構(gòu)造類(lèi)型數(shù)據(jù)成員的引用1.數(shù)組聲明和數(shù)組元素的直接引用數(shù)組聲明和數(shù)組元素的直接引用2.結(jié)構(gòu)定義、結(jié)構(gòu)變量聲明和結(jié)構(gòu)變量成員的直接引用結(jié)構(gòu)定義、結(jié)構(gòu)變量聲明和結(jié)構(gòu)變量成員的直接引用3.數(shù)組元素、結(jié)構(gòu)變量成員的間接引用(指針應(yīng)用)數(shù)組元素、結(jié)構(gòu)變量成員的間接引用(指針應(yīng)用) 八、文件輸入八、文件輸入/輸出輸出九、預(yù)處理命令九、預(yù)處理命令命題基本原則及考核點(diǎn)一、常用算法一、常用算法1.
4、分類(lèi)分類(lèi)(排序排序)算法算法冒泡冒泡,選擇選擇,插入插入2.檢索檢索(查找查找)算法算法(1) 無(wú)序數(shù)據(jù)序列的查找無(wú)序數(shù)據(jù)序列的查找(見(jiàn)遍歷算法見(jiàn)遍歷算法)(2) 有序數(shù)據(jù)序列的查找有序數(shù)據(jù)序列的查找:二分法二分法3.遍歷算法遍歷算法(1) 一維數(shù)組和二維數(shù)組的遍歷一維數(shù)組和二維數(shù)組的遍歷(2) 單向鏈表的遍歷單向鏈表的遍歷(3) 文件的遍歷文件的遍歷4.其它基本算法其它基本算法遞推法遞推法,窮舉法窮舉法,二分法二分法,牛頓法求方程根牛頓法求方程根,梯形法求定積分等梯形法求定積分等. 命題基本原則及考核點(diǎn)二、典型問(wèn)題二、典型問(wèn)題數(shù)值問(wèn)題數(shù)值問(wèn)題1.素?cái)?shù)問(wèn)題素?cái)?shù)問(wèn)題2.求因子求因子3. 整數(shù)拆位
5、、反序數(shù)、回文數(shù)整數(shù)拆位、反序數(shù)、回文數(shù)4. 最大公約數(shù)最大公約數(shù),最小公倍數(shù)最小公倍數(shù)5. 求最值、平均值求最值、平均值6. 累加累加,累乘、階乘、級(jí)數(shù)累乘、階乘、級(jí)數(shù)(近似值計(jì)算近似值計(jì)算)命題基本原則及考核點(diǎn)三、典型問(wèn)題三、典型問(wèn)題一維數(shù)組數(shù)據(jù)處理一維數(shù)組數(shù)據(jù)處理1.生成(數(shù)列)生成(數(shù)列)2.變換(編碼變換(編碼/解碼,壓縮解碼,壓縮/還原還原 ,循環(huán)移位等 )3.查找(指定值,最大值,最小值)4.排序5.插入(一個(gè)數(shù))6.刪除(一個(gè)數(shù),重復(fù)的多個(gè)數(shù))7.更新(一個(gè)數(shù))更新(一個(gè)數(shù))8.統(tǒng)計(jì)統(tǒng)計(jì)9.合并(兩個(gè)數(shù)列)合并(兩個(gè)數(shù)列)10.集合運(yùn)算集合運(yùn)算 11.模擬高精度算術(shù)運(yùn)算模擬高精
6、度算術(shù)運(yùn)算四、典型問(wèn)題四、典型問(wèn)題字符串?dāng)?shù)據(jù)處理字符串?dāng)?shù)據(jù)處理1. 子串查找,子串查找,2. 子串統(tǒng)計(jì),子串統(tǒng)計(jì),3. 子串刪除,子串刪除,4. 子串替換子串替換 ,5. 整型/實(shí)型機(jī)器數(shù)與字符串表示相互轉(zhuǎn)換6. 字符串變換(編碼字符串變換(編碼/解碼,壓縮解碼,壓縮/還原)還原)命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn)五、典型問(wèn)題五、典型問(wèn)題二維數(shù)組數(shù)據(jù)處理數(shù)據(jù)處理1.生成(矩陣)生成(矩陣)2.變換(改變數(shù)值,改變數(shù)據(jù)存儲(chǔ)位置)變換(改變數(shù)值,改變數(shù)據(jù)存儲(chǔ)位置)3.查找(指定值,最小值,最大值)查找(指定值,最小值,最大值)4.排序(按行排序,按列排序)排序(按行排序,
7、按列排序)5.插入(一個(gè)數(shù),一行數(shù),一列數(shù))插入(一個(gè)數(shù),一行數(shù),一列數(shù))6.刪除(一個(gè)數(shù),一行數(shù),一列數(shù))刪除(一個(gè)數(shù),一行數(shù),一列數(shù))7.更新(一個(gè)數(shù),一行數(shù),一列數(shù))更新(一個(gè)數(shù),一行數(shù),一列數(shù))8.統(tǒng)計(jì)統(tǒng)計(jì)9.合并(兩個(gè)矩陣)合并(兩個(gè)矩陣)命題基本原則及考核點(diǎn)命題基本原則及考核點(diǎn)六、典型問(wèn)題六、典型問(wèn)題一維結(jié)構(gòu)數(shù)組數(shù)據(jù)處理數(shù)據(jù)處理1.查找查找(直接查找,通過(guò)指向結(jié)構(gòu)數(shù)組的指針數(shù)組查找)(直接查找,通過(guò)指向結(jié)構(gòu)數(shù)組的指針數(shù)組查找)2.排序排序(結(jié)構(gòu)數(shù)組排序,指向結(jié)構(gòu)數(shù)組的指針數(shù)組排序)(結(jié)構(gòu)數(shù)組排序,指向結(jié)構(gòu)數(shù)組的指針數(shù)組排序)3.插入(一條記錄)插入(一條記錄)4.刪除(一條記錄)刪
8、除(一條記錄)5.更新(一條記錄)更新(一條記錄)6.統(tǒng)計(jì)統(tǒng)計(jì)筆試形式 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)和和c語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)兩部分組成兩部分組成 基礎(chǔ)知識(shí)全部為基礎(chǔ)知識(shí)全部為單選題單選題 c語(yǔ)言程序設(shè)計(jì)部分分為語(yǔ)言程序設(shè)計(jì)部分分為單選題單選題和和填空題填空題 答題要求:答題要求: 單選題單選題的答案必須涂劃在的答案必須涂劃在專(zhuān)用答題卡上專(zhuān)用答題卡上; 填空題填空題的答案必須寫(xiě)在的答案必須寫(xiě)在專(zhuān)用答題紙上專(zhuān)用答題紙上(填空時(shí)注意:填空時(shí)注意:每個(gè)填空要每個(gè)填空要按標(biāo)號(hào)順序填按標(biāo)號(hào)順序填,一空占一行,不是一題,一空占一行,不是一題一行;因?yàn)橐恍?;因?yàn)橛械念}目一題包含多個(gè)空有的題目一題包含多個(gè)空)。上機(jī)考
9、試形式 上機(jī)題總分為上機(jī)題總分為 填空題填空題 改錯(cuò)題改錯(cuò)題:改錯(cuò)題中所:改錯(cuò)題中所存在的錯(cuò)誤存在的錯(cuò)誤主要是主要是語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤(如數(shù)組如數(shù)組的聲明錯(cuò)誤、函數(shù)定義錯(cuò)誤等的聲明錯(cuò)誤、函數(shù)定義錯(cuò)誤等)、運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤(如包含不正確如包含不正確的頭文件的頭文件)、邏輯錯(cuò)誤邏輯錯(cuò)誤等。等。 編程題:編程題程序中,通常都涉及一個(gè)編程題:編程題程序中,通常都涉及一個(gè)有一定難度的有一定難度的算法算法,考生須按題目要求實(shí)現(xiàn),考生須按題目要求實(shí)現(xiàn)二、C語(yǔ)言概述、 C程序的結(jié)構(gòu)、程序的結(jié)構(gòu)、main函數(shù)函數(shù)一個(gè)程序可由多個(gè)函數(shù)構(gòu)成,其中必有唯一的一個(gè)主函數(shù)。一個(gè)程序可由多個(gè)函數(shù)構(gòu)成,其中必有唯一的一個(gè)主函數(shù)
10、。它是整個(gè)程序的入口,也是整個(gè)程序的出口。它是整個(gè)程序的入口,也是整個(gè)程序的出口。、標(biāo)識(shí)符的命名規(guī)則、標(biāo)識(shí)符的命名規(guī)則規(guī)則:字母或下劃線開(kāi)始的字母、下劃線和數(shù)字串。規(guī)則:字母或下劃線開(kāi)始的字母、下劃線和數(shù)字串。語(yǔ)句中的保留字不能作為標(biāo)識(shí)符。(教材語(yǔ)句中的保留字不能作為標(biāo)識(shí)符。(教材375)所有的函數(shù)名可以作為標(biāo)識(shí)符。所有的函數(shù)名可以作為標(biāo)識(shí)符。、C程序的上機(jī)過(guò)程程序的上機(jī)過(guò)程編輯編輯編譯編譯連接連接運(yùn)行運(yùn)行三、數(shù)據(jù)類(lèi)型及其運(yùn)算1、常量、變量、常量、變量 常量:固定不變的量。常量:固定不變的量。 整型常量:整型常量: 十進(jìn)制(十進(jìn)制(29)、八進(jìn)制()、八進(jìn)制(029)和十六進(jìn)制()和十六進(jìn)制(
11、0 x29) 實(shí)型常量:實(shí)型常量: 小數(shù)表示(小數(shù)表示(123.456)、指數(shù)表示)、指數(shù)表示(1.23456e+002) 字符常量:字符常量: 普通字符(普通字符(A a 2 + ,)、轉(zhuǎn)義字符()、轉(zhuǎn)義字符(qqq xhh) 符號(hào)常量:(一般用大寫(xiě)字符表示)符號(hào)常量:(一般用大寫(xiě)字符表示) # define PI 3.1415936三、數(shù)據(jù)類(lèi)型及其運(yùn)算(續(xù)一) 變量:變量: 整型:整型:基本整型:基本整型:2字節(jié)字節(jié)int ( -32768-+32767 )無(wú)符號(hào)基本整型:無(wú)符號(hào)基本整型: 2字節(jié)字節(jié)unsigned int ( 065535 )長(zhǎng)整型:長(zhǎng)整型: 4字節(jié)字節(jié) long in
12、t 或或long無(wú)符號(hào)長(zhǎng)整型:無(wú)符號(hào)長(zhǎng)整型: 4字節(jié)字節(jié) unsigned long int 或或 unsigned long 實(shí)型:實(shí)型:?jiǎn)尉葐尉? 4字節(jié)字節(jié)float雙精度雙精度: 8字節(jié)字節(jié) double 字符型:字符型:有符號(hào)字符有符號(hào)字符: 1字節(jié)字節(jié)char ( -128127 )無(wú)符號(hào)字符無(wú)符號(hào)字符: 1字節(jié)字節(jié) unsigned char ( 0255 )三、數(shù)據(jù)類(lèi)型及其運(yùn)算(續(xù)二)2、不同類(lèi)型數(shù)據(jù)之間的混合運(yùn)算、不同類(lèi)型數(shù)據(jù)之間的混合運(yùn)算 表達(dá)式值的類(lèi)型由該式子中最長(zhǎng)的數(shù)據(jù)類(lèi)型決定。表達(dá)式值的類(lèi)型由該式子中最長(zhǎng)的數(shù)據(jù)類(lèi)型決定。 float 型無(wú)條件轉(zhuǎn)換成型無(wú)條件轉(zhuǎn)換成d
13、ouble型。型。 char型無(wú)條件轉(zhuǎn)換成型無(wú)條件轉(zhuǎn)換成int型。型。 * 注意強(qiáng)制類(lèi)型轉(zhuǎn)換的用法。(類(lèi)型名)注意強(qiáng)制類(lèi)型轉(zhuǎn)換的用法。(類(lèi)型名) (int)x+y 等價(jià)于(等價(jià)于(int)x)+y參與運(yùn)算的數(shù)據(jù)類(lèi)型改變了,參與運(yùn)算的數(shù)據(jù)類(lèi)型改變了,x的類(lèi)型不變。的類(lèi)型不變。3、算術(shù)運(yùn)算符和運(yùn)算表達(dá)式(、算術(shù)運(yùn)算符和運(yùn)算表達(dá)式(+ - * / %)/ : a / b a,b都是整型都是整型 結(jié)果是整型結(jié)果是整型% : a % b a ,b 都必須是整型都必須是整型三、數(shù)據(jù)類(lèi)型及其運(yùn)算(續(xù)三)4、賦值運(yùn)算符和賦值表達(dá)式(右結(jié)合性)、賦值運(yùn)算符和賦值表達(dá)式(右結(jié)合性)號(hào)號(hào) 左邊只能出現(xiàn)變量,具有強(qiáng)制
14、類(lèi)型轉(zhuǎn)換作用左邊只能出現(xiàn)變量,具有強(qiáng)制類(lèi)型轉(zhuǎn)換作用if ( (c=getchar() ) !=n) 復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算a*=x+y 等價(jià)于等價(jià)于a=a*(x+y)5、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 加加;號(hào)構(gòu)成表達(dá)式語(yǔ)句號(hào)構(gòu)成表達(dá)式語(yǔ)句作為其它語(yǔ)句的一部分或函數(shù)的參數(shù)時(shí)要加括號(hào)作為其它語(yǔ)句的一部分或函數(shù)的參數(shù)時(shí)要加括號(hào)6、表達(dá)式的類(lèi)型識(shí)別、表達(dá)式的類(lèi)型識(shí)別7、有關(guān)運(yùn)算符、有關(guān)運(yùn)算符功能:優(yōu)先級(jí):結(jié)合性:表達(dá)式的值:功能:優(yōu)先級(jí):結(jié)合性:表達(dá)式的值:三、數(shù)據(jù)類(lèi)型及其運(yùn)算(續(xù)四)8、關(guān)系運(yùn)算符和關(guān)系表達(dá)式、關(guān)系運(yùn)算符和關(guān)系表達(dá)式 = (6級(jí)級(jí))= != (7級(jí)級(jí))注意:注意:
15、等于零和不等于零的表示方式等于零和不等于零的表示方式a !a兩個(gè)實(shí)數(shù)判相等和判不相等的方法兩個(gè)實(shí)數(shù)判相等和判不相等的方法ax & xb 不能寫(xiě)成不能寫(xiě)成ax b ? x : y ? m : n y應(yīng)先與后面的運(yùn)算符結(jié)合應(yīng)先與后面的運(yùn)算符結(jié)合12、位運(yùn)算符、位運(yùn)算符 (按位取反(按位取反2級(jí))級(jí)) &(按位與(按位與8級(jí))級(jí)) (按位異或(按位異或9級(jí))級(jí)) |(按位或(按位或10級(jí))級(jí))13、數(shù)學(xué)算式的數(shù)學(xué)算式的C語(yǔ)言表示語(yǔ)言表示三、數(shù)據(jù)類(lèi)型及其運(yùn)算(續(xù)八)14、輸入輸出函數(shù)、輸入輸出函數(shù)輸入函數(shù):輸入函數(shù):getchar() gets() scanf()輸出函數(shù):輸出函數(shù):
16、putchar() puts() printf()注意:注意:1)getchar() 是無(wú)參函數(shù),從輸入設(shè)備讀取一個(gè)字符,包括不是無(wú)參函數(shù),從輸入設(shè)備讀取一個(gè)字符,包括不可顯示字符(一般形式可顯示字符(一般形式c=getchar())。)。2)gets()和和puts()函數(shù)只有一個(gè)參數(shù),且為字符串的首地址。函數(shù)只有一個(gè)參數(shù),且為字符串的首地址。 3)scanf()函數(shù)的格式控制符中的普通字符照原樣輸入。函數(shù)的格式控制符中的普通字符照原樣輸入。4)printf()函數(shù)中的實(shí)參的求值順序從右向左。函數(shù)中的實(shí)參的求值順序從右向左。四、語(yǔ)句、表達(dá)式語(yǔ)句、表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、復(fù)合語(yǔ)
17、句、復(fù)合語(yǔ)句、空語(yǔ)句、空語(yǔ)句、控制語(yǔ)句、控制語(yǔ)句四、語(yǔ)句(選擇語(yǔ)句)(一)(一)if 語(yǔ)句一般格式語(yǔ)句一般格式if(表達(dá)式)語(yǔ)句(表達(dá)式)語(yǔ)句或或if(表達(dá)式)語(yǔ)句(表達(dá)式)語(yǔ)句1 else語(yǔ)句語(yǔ)句2注意:注意:“表達(dá)式表達(dá)式”應(yīng)有括號(hào),且可為各種類(lèi)型的表達(dá)式應(yīng)有括號(hào),且可為各種類(lèi)型的表達(dá)式“語(yǔ)句語(yǔ)句”如是復(fù)合語(yǔ)句應(yīng)有括號(hào)如是復(fù)合語(yǔ)句應(yīng)有括號(hào)“語(yǔ)句語(yǔ)句”還可以是還可以是 if 語(yǔ)句語(yǔ)句數(shù)學(xué)分段函數(shù)的求值問(wèn)題數(shù)學(xué)分段函數(shù)的求值問(wèn)題繁瑣的二維數(shù)組填值問(wèn)題(結(jié)合循環(huán)語(yǔ)句,幾乎每次都考)繁瑣的二維數(shù)組填值問(wèn)題(結(jié)合循環(huán)語(yǔ)句,幾乎每次都考)四、語(yǔ)句(選擇語(yǔ)句_續(xù))(二)(二)switch 語(yǔ)句一般格式語(yǔ)
18、句一般格式switch(表達(dá)式)(表達(dá)式) case 常量表達(dá)式常量表達(dá)式1 : 語(yǔ)句語(yǔ)句1;break; case 常量表達(dá)式常量表達(dá)式2 : 語(yǔ)句語(yǔ)句2;break; case 常量表達(dá)式常量表達(dá)式n : 語(yǔ)句語(yǔ)句n;break; default : 語(yǔ)句語(yǔ)句n+1 ; 注意:注意:執(zhí)行流程執(zhí)行流程“語(yǔ)句語(yǔ)句”可為多個(gè)單個(gè)語(yǔ)句,此時(shí)不必加大括號(hào)可為多個(gè)單個(gè)語(yǔ)句,此時(shí)不必加大括號(hào)default 語(yǔ)句可缺省語(yǔ)句可缺省switch 語(yǔ)句嵌套使用時(shí),語(yǔ)句嵌套使用時(shí),break語(yǔ)句只跳出它所處的哪層語(yǔ)句只跳出它所處的哪層switch整型、字符型或枚舉類(lèi)型根據(jù)需要選擇四、語(yǔ)句(循環(huán)語(yǔ)句_1)(一)當(dāng)型
19、循環(huán)語(yǔ)句一般格式(一)當(dāng)型循環(huán)語(yǔ)句一般格式while(表達(dá)式)語(yǔ)句(表達(dá)式)語(yǔ)句注意:注意:“表達(dá)式表達(dá)式”應(yīng)有括號(hào)應(yīng)有括號(hào)“語(yǔ)句語(yǔ)句”為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào)為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào)在語(yǔ)句中應(yīng)有使在語(yǔ)句中應(yīng)有使“表達(dá)式表達(dá)式”趨于不成立的語(yǔ)句存在趨于不成立的語(yǔ)句存在在復(fù)合語(yǔ)句中含有在復(fù)合語(yǔ)句中含有break和和continue語(yǔ)句時(shí)的情況:語(yǔ)句時(shí)的情況:while (表達(dá)式)(表達(dá)式) break; continue; 四、語(yǔ)句(循環(huán)語(yǔ)句_2)(二)直到型循環(huán)語(yǔ)句一般格式(二)直到型循環(huán)語(yǔ)句一般格式do 語(yǔ)句語(yǔ)句 while (表達(dá)式)(表達(dá)式);注意注意: 無(wú)論表達(dá)式是否成立,循環(huán)體至少執(zhí)行一
20、遍無(wú)論表達(dá)式是否成立,循環(huán)體至少執(zhí)行一遍 “表達(dá)式表達(dá)式”應(yīng)有括號(hào),后面的應(yīng)有括號(hào),后面的“;”號(hào)不能丟號(hào)不能丟 “語(yǔ)句語(yǔ)句”為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào)為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào) 在語(yǔ)句中應(yīng)有使在語(yǔ)句中應(yīng)有使“表達(dá)式表達(dá)式”趨于不成立的語(yǔ)句存在趨于不成立的語(yǔ)句存在 在復(fù)合語(yǔ)句中含有在復(fù)合語(yǔ)句中含有break和和continue語(yǔ)句時(shí)的情況:語(yǔ)句時(shí)的情況: do break; continue; while (表達(dá)式)(表達(dá)式);四、語(yǔ)句(循環(huán)語(yǔ)句_3)(二)(二)for 型循環(huán)語(yǔ)句一般格式型循環(huán)語(yǔ)句一般格式for (表達(dá)式(表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語(yǔ)句語(yǔ)句注意注意: “語(yǔ)句語(yǔ)句
21、”為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào)為復(fù)合語(yǔ)句時(shí)應(yīng)加大括號(hào)在語(yǔ)句中應(yīng)有使在語(yǔ)句中應(yīng)有使“表達(dá)式表達(dá)式2”趨于不成立的語(yǔ)句存在趨于不成立的語(yǔ)句存在在復(fù)合語(yǔ)句中含有在復(fù)合語(yǔ)句中含有break和和continue語(yǔ)句時(shí)的情況:語(yǔ)句時(shí)的情況:繁瑣的二維數(shù)組填值問(wèn)題(結(jié)合循環(huán)語(yǔ)句,幾乎每次都考)繁瑣的二維數(shù)組填值問(wèn)題(結(jié)合循環(huán)語(yǔ)句,幾乎每次都考)三種循環(huán)語(yǔ)句相互嵌套使用的情況三種循環(huán)語(yǔ)句相互嵌套使用的情況五、數(shù)組(一維數(shù)組)(一)一維數(shù)組(一)一維數(shù)組定義:定義:類(lèi)型名數(shù)組名類(lèi)型名數(shù)組名常量表達(dá)式常量表達(dá)式;定義并初始化:定義并初始化:類(lèi)型名數(shù)組名類(lèi)型名數(shù)組名常量表達(dá)式常量表達(dá)式表達(dá)式列表;表達(dá)式列表;或:類(lèi)型名數(shù)
22、組名或:類(lèi)型名數(shù)組名表達(dá)式列表;表達(dá)式列表;引用:引用:只能引用下標(biāo)變量。只能引用下標(biāo)變量。注意:注意:、不能定義動(dòng)態(tài)數(shù)組如:、不能定義動(dòng)態(tài)數(shù)組如:int n ; int an;、只能在定義數(shù)組的時(shí)候初始化,以后不可整體賦值、只能在定義數(shù)組的時(shí)候初始化,以后不可整體賦值、除字符數(shù)組外,不可整體引用數(shù)組、除字符數(shù)組外,不可整體引用數(shù)組、一般用單循環(huán)語(yǔ)句引用數(shù)組元素、一般用單循環(huán)語(yǔ)句引用數(shù)組元素、內(nèi)存中連續(xù)存儲(chǔ),數(shù)組名為其存儲(chǔ)的首地址、內(nèi)存中連續(xù)存儲(chǔ),數(shù)組名為其存儲(chǔ)的首地址五、數(shù)組(二維數(shù)組)(二)二維數(shù)組(二)二維數(shù)組定義:定義:類(lèi)型名數(shù)組名類(lèi)型名數(shù)組名常量表達(dá)式常量表達(dá)式1常量表達(dá)式常量表達(dá)式
23、2;定義并初始化:定義并初始化:類(lèi)型名數(shù)組名類(lèi)型名數(shù)組名常量表達(dá)式常量表達(dá)式 ;引用:引用:只能引用下標(biāo)變量。只能引用下標(biāo)變量。注意:注意:、不能定義動(dòng)態(tài)數(shù)組、不能定義動(dòng)態(tài)數(shù)組、只能在定義數(shù)組的時(shí)候初始化,以后不可整體賦值、只能在定義數(shù)組的時(shí)候初始化,以后不可整體賦值、不可整體引用數(shù)組、不可整體引用數(shù)組、一般用雙重循環(huán)語(yǔ)句引用數(shù)組元素、一般用雙重循環(huán)語(yǔ)句引用數(shù)組元素、按行在內(nèi)存中連續(xù)存儲(chǔ),數(shù)組名為行的行地址,、按行在內(nèi)存中連續(xù)存儲(chǔ),數(shù)組名為行的行地址,ai為為第第i行第個(gè)元素的地址如:行第個(gè)元素的地址如:int a33 引用引用 a05 正確正確、與雙重循環(huán)語(yǔ)句一起應(yīng)用(二維數(shù)組填值問(wèn)題)、與
24、雙重循環(huán)語(yǔ)句一起應(yīng)用(二維數(shù)組填值問(wèn)題)五、數(shù)組(字符數(shù)組)(三)字符數(shù)組(一維、二維)(三)字符數(shù)組(一維、二維)具有普通一維數(shù)組和二維數(shù)組的性質(zhì)。具有普通一維數(shù)組和二維數(shù)組的性質(zhì)。特點(diǎn):特點(diǎn):、可以定義時(shí)初始化,也可以后用、可以定義時(shí)初始化,也可以后用strcpy()賦值。賦值。 、可以引用下標(biāo)變量,也可整體引用(一維)、可以引用下標(biāo)變量,也可整體引用(一維) 、一般用于存放字符串、一般用于存放字符串、字符串的基本概念、字符串的基本概念)串結(jié)束符)串結(jié)束符 )內(nèi)存單元地址)內(nèi)存單元地址字符串字符串、字符串操作函數(shù)的使用、字符串操作函數(shù)的使用)串長(zhǎng)度(編程實(shí)現(xiàn))串長(zhǎng)度(編程實(shí)現(xiàn)) )串復(fù)制(
25、賦值)串復(fù)制(賦值)串拼接(編程實(shí)現(xiàn))串拼接(編程實(shí)現(xiàn)) )串比較(不能用關(guān)系運(yùn)算符)串比較(不能用關(guān)系運(yùn)算符)、字符串的輸入和輸出、字符串的輸入和輸出 ( char c20 ; ))gets (c) ; 和和 scanf ( “%s” , c ) ; 區(qū)別區(qū)別、二維字符數(shù)組的引用有下標(biāo)引用法和數(shù)組名加第一維下標(biāo)引用法、二維字符數(shù)組的引用有下標(biāo)引用法和數(shù)組名加第一維下標(biāo)引用法六、函數(shù) 主要內(nèi)容主要內(nèi)容(一一)、函數(shù)的定義、函數(shù)的定義(二二)、函數(shù)的參數(shù)、函數(shù)的參數(shù)(三三)、函數(shù)的返回值、函數(shù)的返回值(四四)、函數(shù)的調(diào)用、函數(shù)的調(diào)用(五五)、數(shù)組作為函數(shù)的參數(shù)、數(shù)組作為函數(shù)的參數(shù)(六六)、局部變
26、量和全局變量、局部變量和全局變量(七七)、變量的存儲(chǔ)類(lèi)別、變量的存儲(chǔ)類(lèi)別六、函數(shù)(函數(shù)的定義)(一一)、函數(shù)的定義、函數(shù)的定義函數(shù)可理解為一個(gè)程序段,給予一定的輸入就會(huì)產(chǎn)生一定的函數(shù)可理解為一個(gè)程序段,給予一定的輸入就會(huì)產(chǎn)生一定的輸出。函數(shù)的定義就是在使用函數(shù)前對(duì)函數(shù)功能的完整性描述。輸出。函數(shù)的定義就是在使用函數(shù)前對(duì)函數(shù)功能的完整性描述。一般形式:一般形式:函數(shù)類(lèi)型函數(shù)名(參數(shù)列表)函數(shù)類(lèi)型函數(shù)名(參數(shù)列表) 函數(shù)體函數(shù)體 注意:注意:、函數(shù)的定義就是函數(shù)的說(shuō)明、函數(shù)的定義就是函數(shù)的說(shuō)明、函數(shù)由、函數(shù)由“頭部頭部”和和“函數(shù)體函數(shù)體”構(gòu)成構(gòu)成、函數(shù)類(lèi)型指函數(shù)返回值的類(lèi)型(可以無(wú)返回值、函數(shù)類(lèi)
27、型指函數(shù)返回值的類(lèi)型(可以無(wú)返回值void)六、函數(shù)(函數(shù)的參數(shù))(二二)、函數(shù)的參數(shù)、函數(shù)的參數(shù) 參數(shù)列表中的參數(shù)為形式參數(shù),它們和函數(shù)體中定義的變量參數(shù)列表中的參數(shù)為形式參數(shù),它們和函數(shù)體中定義的變量一起構(gòu)成該函數(shù)的局部變量,形參是接受數(shù)據(jù)的通道,由于是第一起構(gòu)成該函數(shù)的局部變量,形參是接受數(shù)據(jù)的通道,由于是第一次出現(xiàn),因此要作類(lèi)型說(shuō)明。一次出現(xiàn),因此要作類(lèi)型說(shuō)明。注意:注意:、形參要一一說(shuō)明、形參要一一說(shuō)明、實(shí)參和形參要做到類(lèi)型、順序和數(shù)量一致、實(shí)參和形參要做到類(lèi)型、順序和數(shù)量一致、實(shí)參和形參可以同名,但它們都是所處函數(shù)內(nèi)部的局部數(shù)據(jù)、實(shí)參和形參可以同名,但它們都是所處函數(shù)內(nèi)部的局部數(shù)據(jù)
28、、實(shí)參可以是常量、量變、函數(shù)和表達(dá)式,形參只能是變量、實(shí)參可以是常量、量變、函數(shù)和表達(dá)式,形參只能是變量、在發(fā)生函數(shù)調(diào)用時(shí),實(shí)參是將值(或地址)賦給形參的、在發(fā)生函數(shù)調(diào)用時(shí),實(shí)參是將值(或地址)賦給形參的六、函數(shù)(函數(shù)的返回值)(三三)、函數(shù)的返回值、函數(shù)的返回值通過(guò)調(diào)用函數(shù),從被調(diào)函數(shù)中得到的值稱(chēng)函數(shù)的返回值。通過(guò)調(diào)用函數(shù),從被調(diào)函數(shù)中得到的值稱(chēng)函數(shù)的返回值。注意:注意:、調(diào)用函數(shù)得到返回值有三種途徑:、調(diào)用函數(shù)得到返回值有三種途徑:)在被調(diào)用函數(shù)中用)在被調(diào)用函數(shù)中用return語(yǔ)句可以(且只可)得到一個(gè)返回值語(yǔ)句可以(且只可)得到一個(gè)返回值 )使用全局變量,全局變量對(duì)所有函數(shù)都有效)使用
29、全局變量,全局變量對(duì)所有函數(shù)都有效 )實(shí)參和形參采用地址復(fù)用的方法(考點(diǎn))實(shí)參和形參采用地址復(fù)用的方法(考點(diǎn))、被調(diào)用函數(shù)有時(shí)沒(méi)有返回值,此時(shí)定義為、被調(diào)用函數(shù)有時(shí)沒(méi)有返回值,此時(shí)定義為void型型、被調(diào)用函數(shù)返回值類(lèi)型由函數(shù)的類(lèi)型確定、被調(diào)用函數(shù)返回值類(lèi)型由函數(shù)的類(lèi)型確定、return表達(dá)式;表達(dá)式;、被調(diào)用函數(shù)返回后,在主調(diào)函數(shù)中繼續(xù)執(zhí)行調(diào)用語(yǔ)句的下一、被調(diào)用函數(shù)返回后,在主調(diào)函數(shù)中繼續(xù)執(zhí)行調(diào)用語(yǔ)句的下一個(gè)語(yǔ)句個(gè)語(yǔ)句六、函數(shù)(函數(shù)的調(diào)用)(四四)、函數(shù)的調(diào)用、函數(shù)的調(diào)用函數(shù)調(diào)用是將程序的執(zhí)行流程轉(zhuǎn)向被調(diào)用函數(shù),函數(shù)調(diào)用是將程序的執(zhí)行流程轉(zhuǎn)向被調(diào)用函數(shù),被調(diào)用函數(shù)執(zhí)行完畢后再回到主調(diào)用函數(shù)繼
30、續(xù)執(zhí)行。被調(diào)用函數(shù)執(zhí)行完畢后再回到主調(diào)用函數(shù)繼續(xù)執(zhí)行。注意:注意:、根據(jù)被調(diào)用函數(shù)的類(lèi)型函數(shù)調(diào)用有三種形式:、根據(jù)被調(diào)用函數(shù)的類(lèi)型函數(shù)調(diào)用有三種形式:)函數(shù)調(diào)用作為表達(dá)式的一部分(被調(diào)用函數(shù)有返回值)函數(shù)調(diào)用作為表達(dá)式的一部分(被調(diào)用函數(shù)有返回值)函數(shù)調(diào)用作為其它函數(shù)的參數(shù)(被調(diào)用函數(shù)有返回值)函數(shù)調(diào)用作為其它函數(shù)的參數(shù)(被調(diào)用函數(shù)有返回值)函數(shù)調(diào)用加)函數(shù)調(diào)用加“;”號(hào)構(gòu)成函數(shù)調(diào)用語(yǔ)句(被調(diào)用函數(shù)無(wú)號(hào)構(gòu)成函數(shù)調(diào)用語(yǔ)句(被調(diào)用函數(shù)無(wú)返回值)返回值)、函數(shù)調(diào)用的形式、函數(shù)調(diào)用的形式)嵌套調(diào)用)嵌套調(diào)用)遞歸調(diào)用:遞歸函數(shù)的編程特點(diǎn))遞歸調(diào)用:遞歸函數(shù)的編程特點(diǎn)遞歸函數(shù)的閱讀特點(diǎn)遞歸函數(shù)的閱讀特點(diǎn)
31、六、函 數(shù)(數(shù)組作函數(shù)的參數(shù)_1)(五五)、數(shù)組作為函數(shù)的參數(shù)、數(shù)組作為函數(shù)的參數(shù)由于可以從數(shù)組名得到數(shù)組在內(nèi)存儲(chǔ)單元存儲(chǔ)的起始位置,由于可以從數(shù)組名得到數(shù)組在內(nèi)存儲(chǔ)單元存儲(chǔ)的起始位置,它是一個(gè)地址常量,因此在計(jì)論數(shù)組作為函數(shù)參數(shù)時(shí)結(jié)合指針一它是一個(gè)地址常量,因此在計(jì)論數(shù)組作為函數(shù)參數(shù)時(shí)結(jié)合指針一并討論。并討論。()一維數(shù)組(指向變量的指針)作為函數(shù)的參數(shù),在實(shí)參和形()一維數(shù)組(指向變量的指針)作為函數(shù)的參數(shù),在實(shí)參和形參位置上共有四種情況參位置上共有四種情況:(假定:(假定int a 10 ; int *p ; )實(shí)參(調(diào)用點(diǎn))實(shí)參(調(diào)用點(diǎn)) 形參(定義點(diǎn))形參(定義點(diǎn)) x=max( a
32、,10 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b , int n ) x=max( a,10 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max ( int *p , int n ) x=max( p=a , 10 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b , int n ) x=max( p=a , 10 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max ( int *p1,int n ) 六、函 數(shù)(數(shù)組作函數(shù)的參數(shù)_2)()二維數(shù)組(指向行的指針)作為函數(shù)的參數(shù),在實(shí)參和形參位置()二維數(shù)組(指向行的指針)作為函數(shù)的參數(shù),在實(shí)參和形參位置 上
33、共有四種情況上共有四種情況:(假定:(假定int a 34 ; int (*p)4 ; ) 實(shí)參(調(diào)用點(diǎn))實(shí)參(調(diào)用點(diǎn)) 形參(定義點(diǎn))形參(定義點(diǎn)) x=max( a,3,4 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b4, int m,int n ) x=max( a,3,4 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max( int (*p)4 , int m,int n ) x=max( p=a , 3,4 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b4 , int m,int n ) x=max( p=a , 3,4 ) ; 賦值調(diào)用關(guān)系賦值調(diào)
34、用關(guān)系 int max ( int (*p1)4,int m,int n ) 六、函數(shù)(局部和全局變量)(六六)、局部變量和全局變量(變量的空間觀)、局部變量和全局變量(變量的空間觀)局部變量局部變量、某函數(shù)內(nèi)部定義的變量,只在該函數(shù)內(nèi)部有效、某函數(shù)內(nèi)部定義的變量,只在該函數(shù)內(nèi)部有效、分程序(復(fù)合語(yǔ)句)內(nèi)部定義的變量,只在分程序中有效、分程序(復(fù)合語(yǔ)句)內(nèi)部定義的變量,只在分程序中有效、形參屬于局部變量、形參屬于局部變量全局變量全局變量、函數(shù)外部定義的變量,作用范圍從定義點(diǎn)開(kāi)始到程序最后、函數(shù)外部定義的變量,作用范圍從定義點(diǎn)開(kāi)始到程序最后定義點(diǎn)之前的函數(shù)可用定義點(diǎn)之前的函數(shù)可用extern進(jìn)行
35、申明來(lái)擴(kuò)展其作用范圍進(jìn)行申明來(lái)擴(kuò)展其作用范圍、在全局變量的作用范圍內(nèi)如遇同名的宏定義,則在宏定義、在全局變量的作用范圍內(nèi)如遇同名的宏定義,則在宏定義之后,同名應(yīng)該用宏名置換(之后,同名應(yīng)該用宏名置換(2004年秋選擇題年秋選擇題26題)題)六、函數(shù)(變量的存儲(chǔ)類(lèi)別)(七七)、變量的存儲(chǔ)類(lèi)別(變量的時(shí)間觀)、變量的存儲(chǔ)類(lèi)別(變量的時(shí)間觀) 存儲(chǔ)方法分兩大類(lèi):存儲(chǔ)方法分兩大類(lèi): 、靜態(tài)存儲(chǔ)區(qū):、靜態(tài)存儲(chǔ)區(qū):全局變量全局變量(程序開(kāi)始執(zhí)行賦值程序開(kāi)始執(zhí)行賦值)、局部靜態(tài)變量局部靜態(tài)變量(編譯時(shí)賦初值,只賦一次編譯時(shí)賦初值,只賦一次)、動(dòng)態(tài)存儲(chǔ)區(qū):、動(dòng)態(tài)存儲(chǔ)區(qū):局部變量局部變量(含形參、函數(shù)內(nèi)定義的變
36、量和分程序中定義的變量含形參、函數(shù)內(nèi)定義的變量和分程序中定義的變量)具體分四種:具體分四種:、自動(dòng)變量、自動(dòng)變量auto 動(dòng)態(tài)局部變量動(dòng)態(tài)局部變量、static 申明的變量申明的變量 靜態(tài)局部變量靜態(tài)局部變量、register 變量變量 動(dòng)態(tài)局部變量動(dòng)態(tài)局部變量、extern 申明變量申明變量 擴(kuò)展全局變量作用范圍擴(kuò)展全局變量作用范圍七、編譯預(yù)處理處理工作在編譯前完成。處理工作在編譯前完成。(一一)、宏定義、宏定義用宏體置換程序中的宏名。不要將宏體化簡(jiǎn)后代入,有嵌套用宏體置換程序中的宏名。不要將宏體化簡(jiǎn)后代入,有嵌套定義的宏名需逐層代入。定義的宏名需逐層代入。(二二)、文件包含、文件包含 和和
37、“”“”的搜索包含文件區(qū)別:的搜索包含文件區(qū)別:在庫(kù)函數(shù)頭文件所在庫(kù)函數(shù)頭文件所在的目錄中尋找(標(biāo)準(zhǔn)方式)、在的目錄中尋找(標(biāo)準(zhǔn)方式)、“”“”先在用戶的當(dāng)前目錄中尋找,先在用戶的當(dāng)前目錄中尋找,找不至再按標(biāo)準(zhǔn)方式尋找。找不至再按標(biāo)準(zhǔn)方式尋找。 文件包含不但可以包含函數(shù)的頭文件,也可包含文件包含不但可以包含函數(shù)的頭文件,也可包含*.文件。文件。(三三)、條件編譯、條件編譯八、指針(基本概念)(一一)、地址和指針、地址和指針 變量變量i 地址變量地址變量 i_point (存儲(chǔ)其它變量地址的變量存儲(chǔ)其它變量地址的變量) 指針變量作為函數(shù)的參數(shù)指針變量作為函數(shù)的參數(shù)i_point2000i2000
38、指針變量指針變量i_point 指向變量指向變量 i八、指針(數(shù)組和指針)(二二)、數(shù)組的指針和指向數(shù)組的指針變量、數(shù)組的指針和指向數(shù)組的指針變量由于數(shù)組連續(xù)存放的特性,當(dāng)指針指向數(shù)組(即數(shù)組元素)時(shí),由于數(shù)組連續(xù)存放的特性,當(dāng)指針指向數(shù)組(即數(shù)組元素)時(shí),通過(guò)指針指向的連續(xù)變化來(lái)指向數(shù)組中不同的元素以獲取對(duì)數(shù)組元通過(guò)指針指向的連續(xù)變化來(lái)指向數(shù)組中不同的元素以獲取對(duì)數(shù)組元素的操作。素的操作。例:例:int a5,int a5,* *p ; p ; p=&a3;p=&a3; * *p a3p a3 *p的計(jì)算結(jié)果找到了整型數(shù)組成員的計(jì)算結(jié)果找到了整型數(shù)組成員a3 * *&
39、a3 a3 &a3 a3 對(duì)對(duì)a3a3的地址的地址作間接存取運(yùn)算,結(jié)果為變量作間接存取運(yùn)算,結(jié)果為變量a3a3 & &* *p &a3p &a3對(duì)對(duì)* *p p的計(jì)算結(jié)果的計(jì)算結(jié)果進(jìn)行取址運(yùn)算得到進(jìn)行取址運(yùn)算得到a3a3的地址的地址a0a1 a2a3a4p八、指針(數(shù)組和指針_續(xù))數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù) 實(shí)參(調(diào)用點(diǎn))實(shí)參(調(diào)用點(diǎn)) 形參(定義點(diǎn))形參(定義點(diǎn)) x=max( a,10 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b , int n ) x=max( a,10 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max
40、( int *p , int n ) x=max( p=a , 10 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b , int n ) x=max( p=a , 10 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max ( int *p1,int n ) 指向多維數(shù)組的指針指向多維數(shù)組的指針 實(shí)參(調(diào)用點(diǎn))實(shí)參(調(diào)用點(diǎn)) 形參(定義點(diǎn))形參(定義點(diǎn)) x=max( a,3,4 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b4, int m,int n ) x=max( a,3,4 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max( int (*p)4 , i
41、nt m,int n ) x=max( p=a , 3,4 ) ; 地址復(fù)用關(guān)系地址復(fù)用關(guān)系 int max ( int b4 , int m,int n ) x=max( p=a , 3,4 ) ; 賦值調(diào)用關(guān)系賦值調(diào)用關(guān)系 int max ( int (*p1)4,int m,int n )八、指針(表達(dá)式類(lèi)型的判斷) 如何判斷一個(gè)是數(shù)組元素、數(shù)組元素的地址?如何判斷一個(gè)是數(shù)組元素、數(shù)組元素的地址?一、一維數(shù)組一、一維數(shù)組int aN;、a是該數(shù)組在內(nèi)存中的起始地址。是該數(shù)組在內(nèi)存中的起始地址。、取地址運(yùn)算、取地址運(yùn)算、間接訪問(wèn)運(yùn)算、間接訪問(wèn)運(yùn)算*、下標(biāo)運(yùn)算、下標(biāo)運(yùn)算二、二維數(shù)組二、二維數(shù)
42、組int aMN;、a是該數(shù)組的行起始地址。是該數(shù)組的行起始地址。、*(a+i) 或或 ai 表示第行的第一個(gè)元素地址表示第行的第一個(gè)元素地址、取地址運(yùn)算、取地址運(yùn)算、間接訪問(wèn)運(yùn)算、間接訪問(wèn)運(yùn)算*、下標(biāo)運(yùn)算、下標(biāo)運(yùn)算取地址間接訪問(wèn)元素:元素:ai、*(a+i)、*&ai、*a地址:地址:a、a+i、&ai行地址:行地址:a+i i 行第個(gè)元素地址:行第個(gè)元素地址:*(a+i)、ai元素:元素:aij、*(*(a+i)+j)、*(ai+j)、(*(a+i)j地址:地址:&aij、*(a+i)+j、ai+j、&(*(a+i)j八、指針(字符串的指針) 字符串概念字符
43、串概念、以內(nèi)存某一起始字節(jié)開(kāi)始到、以內(nèi)存某一起始字節(jié)開(kāi)始到0字符結(jié)束的若干字節(jié)。字符結(jié)束的若干字節(jié)。、字符、字符0的的ASCII碼值為。碼值為。、字符串所占內(nèi)存空間為串長(zhǎng)加。、字符串所占內(nèi)存空間為串長(zhǎng)加。、從語(yǔ)言角度對(duì)字符串的理解:從內(nèi)存某一起始字節(jié)開(kāi)始,、從語(yǔ)言角度對(duì)字符串的理解:從內(nèi)存某一起始字節(jié)開(kāi)始,向地址值增大的方向以字節(jié)為單位連續(xù)尋找,如向地址值增大的方向以字節(jié)為單位連續(xù)尋找,如ASCII碼不等于碼不等于,則其所代表的字符為字符串中有效字符,如,則其所代表的字符為字符串中有效字符,如ASCII碼等于,碼等于,則字符串結(jié)束。則字符串結(jié)束。、內(nèi)存單元某一字節(jié)的地址。、內(nèi)存單元某一字節(jié)的地
44、址。、可用一維字符數(shù)組存放。、可用一維字符數(shù)組存放。、可用指向字符變量的指針存放。、可用指向字符變量的指針存放。、看見(jiàn)常量字符串應(yīng)將其理解為第一個(gè)字符的地址。、看見(jiàn)常量字符串應(yīng)將其理解為第一個(gè)字符的地址。八、指針(字符串的指針_續(xù))例:例:main()main() printf( printf(“ “%s,%u,%cn%s,%u,%cn” ”, ,” ”WeWe” ”, ,” ”lovelove” ”, ,* *” ”figsfigs” ”);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:We,417,f We,417,f 說(shuō)明說(shuō)明: “l(fā)ovelove” ”為指針,以為指針,以%u%u格式輸出格式輸出“l(fā)ove
45、love” ”的值的值, , 即輸出該字符串的首地址。即輸出該字符串的首地址。 * *“figsfigs” ”為該字符串的第一個(gè)字符。為該字符串的第一個(gè)字符。例:例:main()main() if( if(“ “abcabc” ”=“ “abcabc” ”) printf() printf(“ “Same!nSame!n” ”);); else printf( else printf(“ “Not same!nNot same!n” ”); ); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:Not same!Not same! 說(shuō)明說(shuō)明:比較兩個(gè)字符串的起始地址,它們不可能相同。:比較兩個(gè)字符串的起始地址,它們不可能
46、相同。八、指針(指針數(shù)組)(3)(3)使用指針數(shù)組處理二維數(shù)組使用指針數(shù)組處理二維數(shù)組 例:例:int a34,int a34,* *p3p3,i ; ,i ; ( (* *p3p3是指針數(shù)組是指針數(shù)組) ) for(i=0;i3;i+) pi=ai; for(i=0;i3;i+) pi=ai;說(shuō)明說(shuō)明:p p 數(shù)組的三個(gè)元素?cái)?shù)組的三個(gè)元素分別是指向整型變量的指分別是指向整型變量的指針(元素指針)針(元素指針), , 指針數(shù)指針數(shù)組名組名p p 的增值為一維數(shù)組的增值為一維數(shù)組長(zhǎng)度長(zhǎng)度。a00a10a20p0p1p2pp+1p+2通過(guò)指針通過(guò)指針p p引用數(shù)組元素的方式:引用數(shù)組元素的方式:
47、pijpij * *(pi+j)(pi+j) * *( (* *(p+i)+j)(p+i)+j) ( (* *(p+i)j(p+i)j注意:a為二維字符數(shù)組的情況為地址的地址,即指針的指針八、指針(指針的指針) 指針的指針(二級(jí)間址訪問(wèn))指針的指針(二級(jí)間址訪問(wèn))指向指針數(shù)據(jù)的指針變量又稱(chēng)為指針的指針,或指向指針數(shù)據(jù)的指針變量又稱(chēng)為指針的指針,或指針鏈。其定義的一般格式:指針鏈。其定義的一般格式: 類(lèi)型說(shuō)明符類(lèi)型說(shuō)明符 *指針變量名指針變量名例:例:static char *name=“book”,”print”,”gread”; char *p ; 定義指針的指針定義指針的指針p p=nam
48、e ; p指向指針數(shù)組指向指針數(shù)組name 則:則: *p 即即 name0 *(p+1) 即即 name1 *(p+i) 即即 nameiname name0 name1 name2b o o k 0p r i n t 0g r e a d 0pname數(shù)組數(shù)組字符串字符串八、指針(指針的指針_續(xù))例:例:main() char *p ; static char *d=“up”,”down”,”left”,”right”; int i ; p=d ; for(i=0;i4;i+) printf(“%sn”,*p+);八、指針(返回指針值的函數(shù))返回指針值的函數(shù)返回指針值的函數(shù)( (指針函數(shù)指
49、針函數(shù)) ) 一個(gè)函數(shù)的返回值為某種數(shù)據(jù)類(lèi)型的地址值,即指針類(lèi)型數(shù)一個(gè)函數(shù)的返回值為某種數(shù)據(jù)類(lèi)型的地址值,即指針類(lèi)型數(shù)據(jù),稱(chēng)該函數(shù)為指針型函數(shù)。據(jù),稱(chēng)該函數(shù)為指針型函數(shù)。 說(shuō)明返回指針型函數(shù)的格式:說(shuō)明返回指針型函數(shù)的格式: 類(lèi)型說(shuō)明符類(lèi)型說(shuō)明符 * *函數(shù)名函數(shù)名( (參數(shù)表參數(shù)表) ); 例:例:int *a(x , y);八、指針(返回指針值的函數(shù)_續(xù))void main() static float score4= ; float *search(); /*search()返回返回指向?qū)嵭蛿?shù)據(jù)的指針指向?qū)嵭蛿?shù)據(jù)的指針*/ float *p; int i,m ; /* p為指向?qū)嵭蛿?shù)據(jù)的
50、指針為指向?qū)嵭蛿?shù)據(jù)的指針*/ scanf(“%d”,&m); printf(“The scores of No.%d are:n”,m); p=search(score,m); /* score為行指針為行指針 */ for(i=0;iy) z=x; if(xy) z=x; else z=y; else z=y; return(z); return(z); 八、指針(函數(shù)的指針_續(xù))/ /* *函數(shù)函數(shù)max(),min(),add()max(),min(),add()定義略定義略* */ /main()main() int max(),min(),add();int max(),mi
51、n(),add(); int a,b ; int a,b ; printf( printf(“ “Enter a and b:Enter a and b:” ”);); scanf( scanf(“ “%d%d%d%d” ”,&a,&b);,&a,&b); printf( printf(“ “max=max=” ”); process(a,b,); process(a,b,maxmax);); printf( printf(“ “min=min=” ”); process(a,b,); process(a,b,minmin);); printf( printf(
52、“ “sum=sum=” ”); process(a,b,); process(a,b,addadd);); process(int x,int y,int (process(int x,int y,int (* *fun)()fun)() int result; int result; result= result=( (* *fun)(x,y)fun)(x,y); ; printf( printf(“ “%dn%dn” ”,result); ,result); 三次調(diào)用傳遞了三個(gè)三次調(diào)用傳遞了三個(gè)不同的函數(shù)入口地址不同的函數(shù)入口地址利用函數(shù)指針調(diào)用不同利用函數(shù)指針調(diào)用不同的函數(shù),增加了函數(shù)
53、調(diào)的函數(shù),增加了函數(shù)調(diào)用的靈活性用的靈活性九、結(jié)構(gòu)體與共用體結(jié)構(gòu)體結(jié)構(gòu)體一、結(jié)構(gòu)體變量的定義一、結(jié)構(gòu)體變量的定義struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名1 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名2 . 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名n ;只定義了結(jié)構(gòu)體類(lèi)型只定義了結(jié)構(gòu)體類(lèi)型struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名1 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名2 . 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名n a , b , c3;定義了結(jié)構(gòu)體類(lèi)型和變量定義了結(jié)構(gòu)體類(lèi)型和變量struct 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名1 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員
54、名2 . 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名n a , b , c3;只定義了結(jié)構(gòu)體變量只定義了結(jié)構(gòu)體變量typedef struct DATEa , b , c3; 定義,為結(jié)構(gòu)體變量定義,為結(jié)構(gòu)體變量 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名1 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名2注意:考試中多采用此種形式注意:考試中多采用此種形式 . 類(lèi)型標(biāo)識(shí)符類(lèi)型標(biāo)識(shí)符 成員名成員名n(可嵌套定義)(可嵌套定義) DATE;定義定義DATE為結(jié)構(gòu)體類(lèi)型為結(jié)構(gòu)體類(lèi)型九、結(jié)構(gòu)體與共用體二、結(jié)構(gòu)體變量的引用二、結(jié)構(gòu)體變量的引用只可引用最低級(jí)成員只可引用最低級(jí)成員struct data int month; int
55、 day; int year;struct int num; char name20; char sex; int age; struct data birthday; char addr30; stud;串首地址串首地址0 正確引用正確引用stud.birthday.daystud.birthday.year注意:注意:、運(yùn)算符、運(yùn)算符“.”為左結(jié)合性,第一級(jí)為左結(jié)合性,第一級(jí)、成員類(lèi)型決定引用類(lèi)型、成員類(lèi)型決定引用類(lèi)型、引用結(jié)構(gòu)體成員可像普通變量一樣、引用結(jié)構(gòu)體成員可像普通變量一樣賦值、輸入、輸出、運(yùn)算賦值、輸入、輸出、運(yùn)算九、結(jié)構(gòu)體與共用體三、指向結(jié)構(gòu)
56、體類(lèi)型數(shù)據(jù)的指針三、指向結(jié)構(gòu)體類(lèi)型數(shù)據(jù)的指針# include string.hmain() struct student long int num; char name20; char sex; float score; ; struct student stu_1; struct student *p; p=&stu_1; stu_1.num=89101; strcpy(stu_1.name,Li Lin); stu_1.sex=M; stu_1.score=89.5;定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體變量 stu_1定義結(jié)構(gòu)體類(lèi)型指針定義結(jié)構(gòu)體類(lèi)型指針P指向指向stu_1首地址首地址九、結(jié)
57、構(gòu)體與共用體有了指向結(jié)構(gòu)體變量的指針,對(duì)結(jié)構(gòu)體變量中成有了指向結(jié)構(gòu)體變量的指針,對(duì)結(jié)構(gòu)體變量中成員引用的三種方法員引用的三種方法:1、結(jié)構(gòu)體變量名、結(jié)構(gòu)體變量名.成員名成員名2、(*p).成員名成員名3、 p - 成員名成員名“*”號(hào)運(yùn)算低于號(hào)運(yùn)算低于“.”運(yùn)算運(yùn)算P-n+p-n(+p)-n九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體四、用指針處理鏈表四、用指針處理鏈表、有關(guān)函數(shù)、有關(guān)函數(shù)malloc(size); malloc(sizeof(數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型) calloc(n,size); calloc(n,sizeof(數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型) free(p);、鏈表結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu):、鏈表結(jié)點(diǎn)的數(shù)據(jù)結(jié)
58、構(gòu):struct student int num; float score; struct student *next;/*特殊成員鏈接需要特殊成員鏈接需要*/ ;結(jié)點(diǎn)自身需要結(jié)點(diǎn)自身需要九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體、鏈表的操作、鏈表的操作 鏈表創(chuàng)建鏈表創(chuàng)建 結(jié)點(diǎn)插入結(jié)點(diǎn)插入 結(jié)點(diǎn)刪除結(jié)點(diǎn)刪除 鏈表輸出鏈表輸出注意:注意: 得到鏈表只要得到鏈?zhǔn)字羔?。得到鏈表只要得到鏈?zhǔn)字羔槨?調(diào)用函數(shù)對(duì)已知鏈表實(shí)施操作只要傳遞鏈?zhǔn)字羔樥{(diào)用函數(shù)對(duì)已知鏈表實(shí)施操作只要傳遞鏈?zhǔn)字羔?被調(diào)用函數(shù)都是返回指針值的函數(shù)被調(diào)用函數(shù)都是返回指針值的函數(shù)九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體共用體共用體一、共用體變量的定
59、義一、共用體變量的定義union data char ch; float f; int i ; ;union data a,b,c;union data char ch; float f; int i ; a,b,c;union char ch; float f; int i ; a,b,c;union data char ch10; float f; int b5 ; a;占10個(gè)字節(jié)內(nèi)存空間九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體二、共用體變量的引用二、共用體變量的引用只可引用最低級(jí)成員只可引用最低級(jí)成員共用體變量名共用體變量名. .成員名成員名不能引用共用體變量,只能引用其成員。不能引用共用
60、體變量,只能引用其成員。出現(xiàn)在結(jié)構(gòu)體的定義中。出現(xiàn)在結(jié)構(gòu)體的定義中。#include stdio.hstruct int num; char name10; char sex; char job; union int class; char position10; category; person2;同一內(nèi)存段放不同類(lèi)型成員同一內(nèi)存段放不同類(lèi)型成員, ,某一某一時(shí)刻只有一個(gè)即最后存放的成員起作用。時(shí)刻只有一個(gè)即最后存放的成員起作用。九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體枚舉類(lèi)型枚舉類(lèi)型一、枚舉類(lèi)型定義和枚舉變量一、枚舉類(lèi)型定義和枚舉變量: : enum weekday sun,mon,tue,wed,thu,fri,sat day; 變量變量 day 只可取只可取 sun 到到 sat 之間的單個(gè)值之間的單個(gè)值二、枚舉類(lèi)型的引用說(shuō)明二、
溫馨提示
- 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-2025學(xué)年陽(yáng)江市陽(yáng)東縣三年級(jí)數(shù)學(xué)第一學(xué)期期末聯(lián)考試題含解析
- 2025年氧化鋯陶瓷粉料項(xiàng)目提案報(bào)告模范
- 公司文員的辭職報(bào)告模板集合7篇
- 2023三年級(jí)語(yǔ)文下冊(cè) 第一單元 語(yǔ)文園地配套教學(xué)實(shí)錄 新人教版
- 北師大五年級(jí)語(yǔ)文下冊(cè)的教案
- 銷(xiāo)售年終工作總結(jié)集錦15篇
- 小學(xué)美術(shù)教案合集九篇
- 江蘇地區(qū)高一年級(jí)信息技術(shù)一年教學(xué)實(shí)錄15使用搜索引擎教學(xué)實(shí)錄
- 我的寒假學(xué)習(xí)計(jì)劃(15篇)
- 小學(xué)教師自我鑒定范文15篇
- 廣東省江門(mén)市2022-2023學(xué)年高一上學(xué)期期末調(diào)研考試物理試題(一)
- (完整版)成人學(xué)士學(xué)位英語(yǔ)考試歷年真題
- 蘇州市蘇教版五年級(jí)下冊(cè)數(shù)學(xué)第三單元第12課《因數(shù)和倍數(shù)整理練習(xí)(第2課時(shí))》課件
- JJF 1806-2020微小孔徑測(cè)量?jī)x校準(zhǔn)規(guī)范
- 干部履歷表-干部履歷表
- GB/T 19929-2014土方機(jī)械履帶式機(jī)器制動(dòng)系統(tǒng)的性能要求和試驗(yàn)方法
- GB 2714-2015食品安全國(guó)家標(biāo)準(zhǔn)醬腌菜
- 年度先進(jìn)員工選票標(biāo)準(zhǔn)格式
- 業(yè)委會(huì)年終總結(jié)報(bào)告
- 廣東省深圳市羅湖區(qū)五年級(jí)上冊(cè)期末數(shù)學(xué)試卷(及答案)
- 中國(guó)移動(dòng)集團(tuán)客戶經(jīng)理的工作總結(jié)
評(píng)論
0/150
提交評(píng)論