




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機等級考試二級語言考前輔導主要內(nèi)容一、試卷分析一、試卷分析二、語言概述二、語言概述三、數(shù)據(jù)類型及其運算三、數(shù)據(jù)類型及其運算四、語句四、語句五、數(shù)組五、數(shù)組六、函數(shù)六、函數(shù)七、編譯預(yù)處理七、編譯預(yù)處理八、指針八、指針九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體十、文件十、文件十一、主要算法分析十一、主要算法分析C語言復(fù)習考試的五大要點 了解試卷,胸中有數(shù) 深刻理解,強化概念 歸納整理,適當記憶 注重實踐,融會貫通 多做練習,查漏補缺 命題基本原則及考核點命題基本原則及考核點語法:一、源程序結(jié)構(gòu)一、源程序結(jié)構(gòu)二、基本類型數(shù)據(jù)的表示和引用二、基本類型數(shù)據(jù)的表示和引用1.系統(tǒng)預(yù)定義數(shù)據(jù)類型系統(tǒng)預(yù)定義數(shù)據(jù)類
2、型2.基本類型常量的表示基本類型常量的表示3.基本類型變量的聲明和直接引用基本類型變量的聲明和直接引用4.基本類型變量的間接引用(指針應(yīng)用)基本類型變量的間接引用(指針應(yīng)用) 三、表達式三、表達式四、標準輸入四、標準輸入/輸出輸出五、語句五、語句命題基本原則及考核點命題基本原則及考核點 難題難題: : 語法語法: : 單選, 基本概念填空, 閱讀程序部分 算法和數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用算法和數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用: : 閱讀程序 完善程序 上機上機 填空 改錯:語法錯,語義錯,算法錯 編程:主函數(shù),功能函數(shù)命題基本原則及考核點命題基本原則及考核點語法:六、函數(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. 標識符作用域規(guī)則標識符作用域規(guī)則 七、構(gòu)造類型數(shù)據(jù)成員的引用七、構(gòu)造類型數(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ù)處理命令命題基本原則及考核點一、常用算法一、常用算法1.
4、分類分類(排序排序)算法算法冒泡冒泡,選擇選擇,插入插入2.檢索檢索(查找查找)算法算法(1) 無序數(shù)據(jù)序列的查找無序數(shù)據(jù)序列的查找(見遍歷算法見遍歷算法)(2) 有序數(shù)據(jù)序列的查找有序數(shù)據(jù)序列的查找:二分法二分法3.遍歷算法遍歷算法(1) 一維數(shù)組和二維數(shù)組的遍歷一維數(shù)組和二維數(shù)組的遍歷(2) 單向鏈表的遍歷單向鏈表的遍歷(3) 文件的遍歷文件的遍歷4.其它基本算法其它基本算法遞推法遞推法,窮舉法窮舉法,二分法二分法,牛頓法求方程根牛頓法求方程根,梯形法求定積分等梯形法求定積分等. 命題基本原則及考核點二、典型問題二、典型問題數(shù)值問題數(shù)值問題1.素數(shù)問題素數(shù)問題2.求因子求因子3. 整數(shù)拆位
5、、反序數(shù)、回文數(shù)整數(shù)拆位、反序數(shù)、回文數(shù)4. 最大公約數(shù)最大公約數(shù),最小公倍數(shù)最小公倍數(shù)5. 求最值、平均值求最值、平均值6. 累加累加,累乘、階乘、級數(shù)累乘、階乘、級數(shù)(近似值計算近似值計算)命題基本原則及考核點三、典型問題三、典型問題一維數(shù)組數(shù)據(jù)處理一維數(shù)組數(shù)據(jù)處理1.生成(數(shù)列)生成(數(shù)列)2.變換(編碼變換(編碼/解碼,壓縮解碼,壓縮/還原還原 ,循環(huán)移位等 )3.查找(指定值,最大值,最小值)4.排序5.插入(一個數(shù))6.刪除(一個數(shù),重復(fù)的多個數(shù))7.更新(一個數(shù))更新(一個數(shù))8.統(tǒng)計統(tǒng)計9.合并(兩個數(shù)列)合并(兩個數(shù)列)10.集合運算集合運算 11.模擬高精度算術(shù)運算模擬高精
6、度算術(shù)運算四、典型問題四、典型問題字符串數(shù)據(jù)處理字符串數(shù)據(jù)處理1. 子串查找,子串查找,2. 子串統(tǒng)計,子串統(tǒng)計,3. 子串刪除,子串刪除,4. 子串替換子串替換 ,5. 整型/實型機器數(shù)與字符串表示相互轉(zhuǎn)換6. 字符串變換(編碼字符串變換(編碼/解碼,壓縮解碼,壓縮/還原)還原)命題基本原則及考核點命題基本原則及考核點命題基本原則及考核點五、典型問題五、典型問題二維數(shù)組數(shù)據(jù)處理數(shù)據(jù)處理1.生成(矩陣)生成(矩陣)2.變換(改變數(shù)值,改變數(shù)據(jù)存儲位置)變換(改變數(shù)值,改變數(shù)據(jù)存儲位置)3.查找(指定值,最小值,最大值)查找(指定值,最小值,最大值)4.排序(按行排序,按列排序)排序(按行排序,
7、按列排序)5.插入(一個數(shù),一行數(shù),一列數(shù))插入(一個數(shù),一行數(shù),一列數(shù))6.刪除(一個數(shù),一行數(shù),一列數(shù))刪除(一個數(shù),一行數(shù),一列數(shù))7.更新(一個數(shù),一行數(shù),一列數(shù))更新(一個數(shù),一行數(shù),一列數(shù))8.統(tǒng)計統(tǒng)計9.合并(兩個矩陣)合并(兩個矩陣)命題基本原則及考核點命題基本原則及考核點六、典型問題六、典型問題一維結(jié)構(gòu)數(shù)組數(shù)據(jù)處理數(shù)據(jù)處理1.查找查找(直接查找,通過指向結(jié)構(gòu)數(shù)組的指針數(shù)組查找)(直接查找,通過指向結(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)計統(tǒng)計筆試形式 基礎(chǔ)知識基礎(chǔ)知識和和c語言程序設(shè)計語言程序設(shè)計兩部分組成兩部分組成 基礎(chǔ)知識全部為基礎(chǔ)知識全部為單選題單選題 c語言程序設(shè)計部分分為語言程序設(shè)計部分分為單選題單選題和和填空題填空題 答題要求:答題要求: 單選題單選題的答案必須涂劃在的答案必須涂劃在專用答題卡上專用答題卡上; 填空題填空題的答案必須寫在的答案必須寫在專用答題紙上專用答題紙上(填空時注意:填空時注意:每個填空要每個填空要按標號順序填按標號順序填,一空占一行,不是一題,一空占一行,不是一題一行;因為一行;因為有的題目一題包含多個空有的題目一題包含多個空)。上機考
9、試形式 上機題總分為上機題總分為 填空題填空題 改錯題改錯題:改錯題中所:改錯題中所存在的錯誤存在的錯誤主要是主要是語法錯誤語法錯誤(如數(shù)組如數(shù)組的聲明錯誤、函數(shù)定義錯誤等的聲明錯誤、函數(shù)定義錯誤等)、運行錯誤運行錯誤(如包含不正確如包含不正確的頭文件的頭文件)、邏輯錯誤邏輯錯誤等。等。 編程題:編程題程序中,通常都涉及一個編程題:編程題程序中,通常都涉及一個有一定難度的有一定難度的算法算法,考生須按題目要求實現(xiàn),考生須按題目要求實現(xiàn)二、C語言概述、 C程序的結(jié)構(gòu)、程序的結(jié)構(gòu)、main函數(shù)函數(shù)一個程序可由多個函數(shù)構(gòu)成,其中必有唯一的一個主函數(shù)。一個程序可由多個函數(shù)構(gòu)成,其中必有唯一的一個主函數(shù)
10、。它是整個程序的入口,也是整個程序的出口。它是整個程序的入口,也是整個程序的出口。、標識符的命名規(guī)則、標識符的命名規(guī)則規(guī)則:字母或下劃線開始的字母、下劃線和數(shù)字串。規(guī)則:字母或下劃線開始的字母、下劃線和數(shù)字串。語句中的保留字不能作為標識符。(教材語句中的保留字不能作為標識符。(教材375)所有的函數(shù)名可以作為標識符。所有的函數(shù)名可以作為標識符。、C程序的上機過程程序的上機過程編輯編輯編譯編譯連接連接運行運行三、數(shù)據(jù)類型及其運算1、常量、變量、常量、變量 常量:固定不變的量。常量:固定不變的量。 整型常量:整型常量: 十進制(十進制(29)、八進制()、八進制(029)和十六進制()和十六進制(
11、0 x29) 實型常量:實型常量: 小數(shù)表示(小數(shù)表示(123.456)、指數(shù)表示)、指數(shù)表示(1.23456e+002) 字符常量:字符常量: 普通字符(普通字符(A a 2 + ,)、轉(zhuǎn)義字符()、轉(zhuǎn)義字符(qqq xhh) 符號常量:(一般用大寫字符表示)符號常量:(一般用大寫字符表示) # define PI 3.1415936三、數(shù)據(jù)類型及其運算(續(xù)一) 變量:變量: 整型:整型:基本整型:基本整型:2字節(jié)字節(jié)int ( -32768-+32767 )無符號基本整型:無符號基本整型: 2字節(jié)字節(jié)unsigned int ( 065535 )長整型:長整型: 4字節(jié)字節(jié) long in
12、t 或或long無符號長整型:無符號長整型: 4字節(jié)字節(jié) unsigned long int 或或 unsigned long 實型:實型:單精度單精度: 4字節(jié)字節(jié)float雙精度雙精度: 8字節(jié)字節(jié) double 字符型:字符型:有符號字符有符號字符: 1字節(jié)字節(jié)char ( -128127 )無符號字符無符號字符: 1字節(jié)字節(jié) unsigned char ( 0255 )三、數(shù)據(jù)類型及其運算(續(xù)二)2、不同類型數(shù)據(jù)之間的混合運算、不同類型數(shù)據(jù)之間的混合運算 表達式值的類型由該式子中最長的數(shù)據(jù)類型決定。表達式值的類型由該式子中最長的數(shù)據(jù)類型決定。 float 型無條件轉(zhuǎn)換成型無條件轉(zhuǎn)換成d
13、ouble型。型。 char型無條件轉(zhuǎn)換成型無條件轉(zhuǎn)換成int型。型。 * 注意強制類型轉(zhuǎn)換的用法。(類型名)注意強制類型轉(zhuǎn)換的用法。(類型名) (int)x+y 等價于(等價于(int)x)+y參與運算的數(shù)據(jù)類型改變了,參與運算的數(shù)據(jù)類型改變了,x的類型不變。的類型不變。3、算術(shù)運算符和運算表達式(、算術(shù)運算符和運算表達式(+ - * / %)/ : a / b a,b都是整型都是整型 結(jié)果是整型結(jié)果是整型% : a % b a ,b 都必須是整型都必須是整型三、數(shù)據(jù)類型及其運算(續(xù)三)4、賦值運算符和賦值表達式(右結(jié)合性)、賦值運算符和賦值表達式(右結(jié)合性)號號 左邊只能出現(xiàn)變量,具有強制
14、類型轉(zhuǎn)換作用左邊只能出現(xiàn)變量,具有強制類型轉(zhuǎn)換作用if ( (c=getchar() ) !=n) 復(fù)合賦值運算復(fù)合賦值運算a*=x+y 等價于等價于a=a*(x+y)5、逗號運算符和逗號表達式、逗號運算符和逗號表達式 加加;號構(gòu)成表達式語句號構(gòu)成表達式語句作為其它語句的一部分或函數(shù)的參數(shù)時要加括號作為其它語句的一部分或函數(shù)的參數(shù)時要加括號6、表達式的類型識別、表達式的類型識別7、有關(guān)運算符、有關(guān)運算符功能:優(yōu)先級:結(jié)合性:表達式的值:功能:優(yōu)先級:結(jié)合性:表達式的值:三、數(shù)據(jù)類型及其運算(續(xù)四)8、關(guān)系運算符和關(guān)系表達式、關(guān)系運算符和關(guān)系表達式 = (6級級)= != (7級級)注意:注意:
15、等于零和不等于零的表示方式等于零和不等于零的表示方式a !a兩個實數(shù)判相等和判不相等的方法兩個實數(shù)判相等和判不相等的方法ax & xb 不能寫成不能寫成ax b ? x : y ? m : n y應(yīng)先與后面的運算符結(jié)合應(yīng)先與后面的運算符結(jié)合12、位運算符、位運算符 (按位取反(按位取反2級)級) &(按位與(按位與8級)級) (按位異或(按位異或9級)級) |(按位或(按位或10級)級)13、數(shù)學算式的數(shù)學算式的C語言表示語言表示三、數(shù)據(jù)類型及其運算(續(xù)八)14、輸入輸出函數(shù)、輸入輸出函數(shù)輸入函數(shù):輸入函數(shù):getchar() gets() scanf()輸出函數(shù):輸出函數(shù):
16、putchar() puts() printf()注意:注意:1)getchar() 是無參函數(shù),從輸入設(shè)備讀取一個字符,包括不是無參函數(shù),從輸入設(shè)備讀取一個字符,包括不可顯示字符(一般形式可顯示字符(一般形式c=getchar())。)。2)gets()和和puts()函數(shù)只有一個參數(shù),且為字符串的首地址。函數(shù)只有一個參數(shù),且為字符串的首地址。 3)scanf()函數(shù)的格式控制符中的普通字符照原樣輸入。函數(shù)的格式控制符中的普通字符照原樣輸入。4)printf()函數(shù)中的實參的求值順序從右向左。函數(shù)中的實參的求值順序從右向左。四、語句、表達式語句、表達式語句、函數(shù)調(diào)用語句、函數(shù)調(diào)用語句、復(fù)合語
17、句、復(fù)合語句、空語句、空語句、控制語句、控制語句四、語句(選擇語句)(一)(一)if 語句一般格式語句一般格式if(表達式)語句(表達式)語句或或if(表達式)語句(表達式)語句1 else語句語句2注意:注意:“表達式表達式”應(yīng)有括號,且可為各種類型的表達式應(yīng)有括號,且可為各種類型的表達式“語句語句”如是復(fù)合語句應(yīng)有括號如是復(fù)合語句應(yīng)有括號“語句語句”還可以是還可以是 if 語句語句數(shù)學分段函數(shù)的求值問題數(shù)學分段函數(shù)的求值問題繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)四、語句(選擇語句_續(xù))(二)(二)switch 語句一般格式語
18、句一般格式switch(表達式)(表達式) case 常量表達式常量表達式1 : 語句語句1;break; case 常量表達式常量表達式2 : 語句語句2;break; case 常量表達式常量表達式n : 語句語句n;break; default : 語句語句n+1 ; 注意:注意:執(zhí)行流程執(zhí)行流程“語句語句”可為多個單個語句,此時不必加大括號可為多個單個語句,此時不必加大括號default 語句可缺省語句可缺省switch 語句嵌套使用時,語句嵌套使用時,break語句只跳出它所處的哪層語句只跳出它所處的哪層switch整型、字符型或枚舉類型根據(jù)需要選擇四、語句(循環(huán)語句_1)(一)當型
19、循環(huán)語句一般格式(一)當型循環(huán)語句一般格式while(表達式)語句(表達式)語句注意:注意:“表達式表達式”應(yīng)有括號應(yīng)有括號“語句語句”為復(fù)合語句時應(yīng)加大括號為復(fù)合語句時應(yīng)加大括號在語句中應(yīng)有使在語句中應(yīng)有使“表達式表達式”趨于不成立的語句存在趨于不成立的語句存在在復(fù)合語句中含有在復(fù)合語句中含有break和和continue語句時的情況:語句時的情況:while (表達式)(表達式) break; continue; 四、語句(循環(huán)語句_2)(二)直到型循環(huán)語句一般格式(二)直到型循環(huán)語句一般格式do 語句語句 while (表達式)(表達式);注意注意: 無論表達式是否成立,循環(huán)體至少執(zhí)行一
20、遍無論表達式是否成立,循環(huán)體至少執(zhí)行一遍 “表達式表達式”應(yīng)有括號,后面的應(yīng)有括號,后面的“;”號不能丟號不能丟 “語句語句”為復(fù)合語句時應(yīng)加大括號為復(fù)合語句時應(yīng)加大括號 在語句中應(yīng)有使在語句中應(yīng)有使“表達式表達式”趨于不成立的語句存在趨于不成立的語句存在 在復(fù)合語句中含有在復(fù)合語句中含有break和和continue語句時的情況:語句時的情況: do break; continue; while (表達式)(表達式);四、語句(循環(huán)語句_3)(二)(二)for 型循環(huán)語句一般格式型循環(huán)語句一般格式for (表達式(表達式1;表達式;表達式2;表達式;表達式3) 語句語句注意注意: “語句語句
21、”為復(fù)合語句時應(yīng)加大括號為復(fù)合語句時應(yīng)加大括號在語句中應(yīng)有使在語句中應(yīng)有使“表達式表達式2”趨于不成立的語句存在趨于不成立的語句存在在復(fù)合語句中含有在復(fù)合語句中含有break和和continue語句時的情況:語句時的情況:繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)三種循環(huán)語句相互嵌套使用的情況三種循環(huán)語句相互嵌套使用的情況五、數(shù)組(一維數(shù)組)(一)一維數(shù)組(一)一維數(shù)組定義:定義:類型名數(shù)組名類型名數(shù)組名常量表達式常量表達式;定義并初始化:定義并初始化:類型名數(shù)組名類型名數(shù)組名常量表達式常量表達式表達式列表;表達式列表;或:類型名數(shù)
22、組名或:類型名數(shù)組名表達式列表;表達式列表;引用:引用:只能引用下標變量。只能引用下標變量。注意:注意:、不能定義動態(tài)數(shù)組如:、不能定義動態(tài)數(shù)組如:int n ; int an;、只能在定義數(shù)組的時候初始化,以后不可整體賦值、只能在定義數(shù)組的時候初始化,以后不可整體賦值、除字符數(shù)組外,不可整體引用數(shù)組、除字符數(shù)組外,不可整體引用數(shù)組、一般用單循環(huán)語句引用數(shù)組元素、一般用單循環(huán)語句引用數(shù)組元素、內(nèi)存中連續(xù)存儲,數(shù)組名為其存儲的首地址、內(nèi)存中連續(xù)存儲,數(shù)組名為其存儲的首地址五、數(shù)組(二維數(shù)組)(二)二維數(shù)組(二)二維數(shù)組定義:定義:類型名數(shù)組名類型名數(shù)組名常量表達式常量表達式1常量表達式常量表達式
23、2;定義并初始化:定義并初始化:類型名數(shù)組名類型名數(shù)組名常量表達式常量表達式 ;引用:引用:只能引用下標變量。只能引用下標變量。注意:注意:、不能定義動態(tài)數(shù)組、不能定義動態(tài)數(shù)組、只能在定義數(shù)組的時候初始化,以后不可整體賦值、只能在定義數(shù)組的時候初始化,以后不可整體賦值、不可整體引用數(shù)組、不可整體引用數(shù)組、一般用雙重循環(huán)語句引用數(shù)組元素、一般用雙重循環(huán)語句引用數(shù)組元素、按行在內(nèi)存中連續(xù)存儲,數(shù)組名為行的行地址,、按行在內(nèi)存中連續(xù)存儲,數(shù)組名為行的行地址,ai為為第第i行第個元素的地址如:行第個元素的地址如:int a33 引用引用 a05 正確正確、與雙重循環(huán)語句一起應(yīng)用(二維數(shù)組填值問題)、與
24、雙重循環(huán)語句一起應(yīng)用(二維數(shù)組填值問題)五、數(shù)組(字符數(shù)組)(三)字符數(shù)組(一維、二維)(三)字符數(shù)組(一維、二維)具有普通一維數(shù)組和二維數(shù)組的性質(zhì)。具有普通一維數(shù)組和二維數(shù)組的性質(zhì)。特點:特點:、可以定義時初始化,也可以后用、可以定義時初始化,也可以后用strcpy()賦值。賦值。 、可以引用下標變量,也可整體引用(一維)、可以引用下標變量,也可整體引用(一維) 、一般用于存放字符串、一般用于存放字符串、字符串的基本概念、字符串的基本概念)串結(jié)束符)串結(jié)束符 )內(nèi)存單元地址)內(nèi)存單元地址字符串字符串、字符串操作函數(shù)的使用、字符串操作函數(shù)的使用)串長度(編程實現(xiàn))串長度(編程實現(xiàn)) )串復(fù)制(
25、賦值)串復(fù)制(賦值)串拼接(編程實現(xiàn))串拼接(編程實現(xiàn)) )串比較(不能用關(guān)系運算符)串比較(不能用關(guān)系運算符)、字符串的輸入和輸出、字符串的輸入和輸出 ( char c20 ; ))gets (c) ; 和和 scanf ( “%s” , c ) ; 區(qū)別區(qū)別、二維字符數(shù)組的引用有下標引用法和數(shù)組名加第一維下標引用法、二維字符數(shù)組的引用有下標引用法和數(shù)組名加第一維下標引用法六、函數(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、量和全局變量、局部變量和全局變量(七七)、變量的存儲類別、變量的存儲類別六、函數(shù)(函數(shù)的定義)(一一)、函數(shù)的定義、函數(shù)的定義函數(shù)可理解為一個程序段,給予一定的輸入就會產(chǎn)生一定的函數(shù)可理解為一個程序段,給予一定的輸入就會產(chǎn)生一定的輸出。函數(shù)的定義就是在使用函數(shù)前對函數(shù)功能的完整性描述。輸出。函數(shù)的定義就是在使用函數(shù)前對函數(shù)功能的完整性描述。一般形式:一般形式:函數(shù)類型函數(shù)名(參數(shù)列表)函數(shù)類型函數(shù)名(參數(shù)列表) 函數(shù)體函數(shù)體 注意:注意:、函數(shù)的定義就是函數(shù)的說明、函數(shù)的定義就是函數(shù)的說明、函數(shù)由、函數(shù)由“頭部頭部”和和“函數(shù)體函數(shù)體”構(gòu)成構(gòu)成、函數(shù)類型指函數(shù)返回值的類型(可以無返回值、函數(shù)類
27、型指函數(shù)返回值的類型(可以無返回值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),因此要作類型說明。一次出現(xiàn),因此要作類型說明。注意:注意:、形參要一一說明、形參要一一說明、實參和形參要做到類型、順序和數(shù)量一致、實參和形參要做到類型、順序和數(shù)量一致、實參和形參可以同名,但它們都是所處函數(shù)內(nèi)部的局部數(shù)據(jù)、實參和形參可以同名,但它們都是所處函數(shù)內(nèi)部的局部數(shù)據(jù)
28、、實參可以是常量、量變、函數(shù)和表達式,形參只能是變量、實參可以是常量、量變、函數(shù)和表達式,形參只能是變量、在發(fā)生函數(shù)調(diào)用時,實參是將值(或地址)賦給形參的、在發(fā)生函數(shù)調(diào)用時,實參是將值(或地址)賦給形參的六、函數(shù)(函數(shù)的返回值)(三三)、函數(shù)的返回值、函數(shù)的返回值通過調(diào)用函數(shù),從被調(diào)函數(shù)中得到的值稱函數(shù)的返回值。通過調(diào)用函數(shù),從被調(diào)函數(shù)中得到的值稱函數(shù)的返回值。注意:注意:、調(diào)用函數(shù)得到返回值有三種途徑:、調(diào)用函數(shù)得到返回值有三種途徑:)在被調(diào)用函數(shù)中用)在被調(diào)用函數(shù)中用return語句可以(且只可)得到一個返回值語句可以(且只可)得到一個返回值 )使用全局變量,全局變量對所有函數(shù)都有效)使用
29、全局變量,全局變量對所有函數(shù)都有效 )實參和形參采用地址復(fù)用的方法(考點)實參和形參采用地址復(fù)用的方法(考點)、被調(diào)用函數(shù)有時沒有返回值,此時定義為、被調(diào)用函數(shù)有時沒有返回值,此時定義為void型型、被調(diào)用函數(shù)返回值類型由函數(shù)的類型確定、被調(diào)用函數(shù)返回值類型由函數(shù)的類型確定、return表達式;表達式;、被調(diào)用函數(shù)返回后,在主調(diào)函數(shù)中繼續(xù)執(zhí)行調(diào)用語句的下一、被調(diào)用函數(shù)返回后,在主調(diào)函數(shù)中繼續(xù)執(zhí)行調(diào)用語句的下一個語句個語句六、函數(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ù)的類型函數(shù)調(diào)用有三種形式:、根據(jù)被調(diào)用函數(shù)的類型函數(shù)調(diào)用有三種形式:)函數(shù)調(diào)用作為表達式的一部分(被調(diào)用函數(shù)有返回值)函數(shù)調(diào)用作為表達式的一部分(被調(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)用加“;”號構(gòu)成函數(shù)調(diào)用語句(被調(diào)用函數(shù)無號構(gòu)成函數(shù)調(diào)用語句(被調(diào)用函數(shù)無返回值)返回值)、函數(shù)調(diào)用的形式、函數(shù)調(diào)用的形式)嵌套調(diào)用)嵌套調(diào)用)遞歸調(diào)用:遞歸函數(shù)的編程特點)遞歸調(diào)用:遞歸函數(shù)的編程特點遞歸函數(shù)的閱讀特點遞歸函數(shù)的閱讀特點
31、六、函 數(shù)(數(shù)組作函數(shù)的參數(shù)_1)(五五)、數(shù)組作為函數(shù)的參數(shù)、數(shù)組作為函數(shù)的參數(shù)由于可以從數(shù)組名得到數(shù)組在內(nèi)存儲單元存儲的起始位置,由于可以從數(shù)組名得到數(shù)組在內(nèi)存儲單元存儲的起始位置,它是一個地址常量,因此在計論數(shù)組作為函數(shù)參數(shù)時結(jié)合指針一它是一個地址常量,因此在計論數(shù)組作為函數(shù)參數(shù)時結(jié)合指針一并討論。并討論。()一維數(shù)組(指向變量的指針)作為函數(shù)的參數(shù),在實參和形()一維數(shù)組(指向變量的指針)作為函數(shù)的參數(shù),在實參和形參位置上共有四種情況參位置上共有四種情況:(假定:(假定int a 10 ; int *p ; )實參(調(diào)用點)實參(調(diào)用點) 形參(定義點)形參(定義點) 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ù),在實參和形參位置 上
33、共有四種情況上共有四種情況:(假定:(假定int a 34 ; int (*p)4 ; ) 實參(調(diào)用點)實參(調(diào)用點) 形參(定義點)形參(定義點) 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ù)合語句)內(nèi)部定義的變量,只在分程序中有效、分程序(復(fù)合語句)內(nèi)部定義的變量,只在分程序中有效、形參屬于局部變量、形參屬于局部變量全局變量全局變量、函數(shù)外部定義的變量,作用范圍從定義點開始到程序最后、函數(shù)外部定義的變量,作用范圍從定義點開始到程序最后定義點之前的函數(shù)可用定義點之前的函數(shù)可用extern進行
35、申明來擴展其作用范圍進行申明來擴展其作用范圍、在全局變量的作用范圍內(nèi)如遇同名的宏定義,則在宏定義、在全局變量的作用范圍內(nèi)如遇同名的宏定義,則在宏定義之后,同名應(yīng)該用宏名置換(之后,同名應(yīng)該用宏名置換(2004年秋選擇題年秋選擇題26題)題)六、函數(shù)(變量的存儲類別)(七七)、變量的存儲類別(變量的時間觀)、變量的存儲類別(變量的時間觀) 存儲方法分兩大類:存儲方法分兩大類: 、靜態(tài)存儲區(qū):、靜態(tài)存儲區(qū):全局變量全局變量(程序開始執(zhí)行賦值程序開始執(zhí)行賦值)、局部靜態(tài)變量局部靜態(tài)變量(編譯時賦初值,只賦一次編譯時賦初值,只賦一次)、動態(tài)存儲區(qū):、動態(tài)存儲區(qū):局部變量局部變量(含形參、函數(shù)內(nèi)定義的變
36、量和分程序中定義的變量含形參、函數(shù)內(nèi)定義的變量和分程序中定義的變量)具體分四種:具體分四種:、自動變量、自動變量auto 動態(tài)局部變量動態(tài)局部變量、static 申明的變量申明的變量 靜態(tài)局部變量靜態(tài)局部變量、register 變量變量 動態(tài)局部變量動態(tài)局部變量、extern 申明變量申明變量 擴展全局變量作用范圍擴展全局變量作用范圍七、編譯預(yù)處理處理工作在編譯前完成。處理工作在編譯前完成。(一一)、宏定義、宏定義用宏體置換程序中的宏名。不要將宏體化簡后代入,有嵌套用宏體置換程序中的宏名。不要將宏體化簡后代入,有嵌套定義的宏名需逐層代入。定義的宏名需逐層代入。(二二)、文件包含、文件包含 和和
37、“”“”的搜索包含文件區(qū)別:的搜索包含文件區(qū)別:在庫函數(shù)頭文件所在庫函數(shù)頭文件所在的目錄中尋找(標準方式)、在的目錄中尋找(標準方式)、“”“”先在用戶的當前目錄中尋找,先在用戶的當前目錄中尋找,找不至再按標準方式尋找。找不至再按標準方式尋找。 文件包含不但可以包含函數(shù)的頭文件,也可包含文件包含不但可以包含函數(shù)的頭文件,也可包含*.文件。文件。(三三)、條件編譯、條件編譯八、指針(基本概念)(一一)、地址和指針、地址和指針 變量變量i 地址變量地址變量 i_point (存儲其它變量地址的變量存儲其它變量地址的變量) 指針變量作為函數(shù)的參數(shù)指針變量作為函數(shù)的參數(shù)i_point2000i2000
38、指針變量指針變量i_point 指向變量指向變量 i八、指針(數(shù)組和指針)(二二)、數(shù)組的指針和指向數(shù)組的指針變量、數(shù)組的指針和指向數(shù)組的指針變量由于數(shù)組連續(xù)存放的特性,當指針指向數(shù)組(即數(shù)組元素)時,由于數(shù)組連續(xù)存放的特性,當指針指向數(shù)組(即數(shù)組元素)時,通過指針指向的連續(xù)變化來指向數(shù)組中不同的元素以獲取對數(shù)組元通過指針指向的連續(xù)變化來指向數(shù)組中不同的元素以獲取對數(shù)組元素的操作。素的操作。例:例:int a5,int a5,* *p ; p ; p=&a3;p=&a3; * *p a3p a3 *p的計算結(jié)果找到了整型數(shù)組成員的計算結(jié)果找到了整型數(shù)組成員a3 * *&
39、a3 a3 &a3 a3 對對a3a3的地址的地址作間接存取運算,結(jié)果為變量作間接存取運算,結(jié)果為變量a3a3 & &* *p &a3p &a3對對* *p p的計算結(jié)果的計算結(jié)果進行取址運算得到進行取址運算得到a3a3的地址的地址a0a1 a2a3a4p八、指針(數(shù)組和指針_續(xù))數(shù)組名作函數(shù)參數(shù)數(shù)組名作函數(shù)參數(shù) 實參(調(diào)用點)實參(調(diào)用點) 形參(定義點)形參(定義點) 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ù)組的指針 實參(調(diào)用點)實參(調(diào)用點) 形參(定義點)形參(定義點) 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 )八、指針(表達式類型的判斷) 如何判斷一個是數(shù)組元素、數(shù)組元素的地址?如何判斷一個是數(shù)組元素、數(shù)組元素的地址?一、一維數(shù)組一、一維數(shù)組int aN;、a是該數(shù)組在內(nèi)存中的起始地址。是該數(shù)組在內(nèi)存中的起始地址。、取地址運算、取地址運算、間接訪問運算、間接訪問運算*、下標運算、下標運算二、二維數(shù)組二、二維數(shù)
42、組int aMN;、a是該數(shù)組的行起始地址。是該數(shù)組的行起始地址。、*(a+i) 或或 ai 表示第行的第一個元素地址表示第行的第一個元素地址、取地址運算、取地址運算、間接訪問運算、間接訪問運算*、下標運算、下標運算取地址間接訪問元素:元素:ai、*(a+i)、*&ai、*a地址:地址:a、a+i、&ai行地址:行地址:a+i i 行第個元素地址:行第個元素地址:*(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é)開始到、以內(nèi)存某一起始字節(jié)開始到0字符結(jié)束的若干字節(jié)。字符結(jié)束的若干字節(jié)。、字符、字符0的的ASCII碼值為。碼值為。、字符串所占內(nèi)存空間為串長加。、字符串所占內(nèi)存空間為串長加。、從語言角度對字符串的理解:從內(nèi)存某一起始字節(jié)開始,、從語言角度對字符串的理解:從內(nèi)存某一起始字節(jié)開始,向地址值增大的方向以字節(jié)為單位連續(xù)尋找,如向地址值增大的方向以字節(jié)為單位連續(xù)尋找,如ASCII碼不等于碼不等于,則其所代表的字符為字符串中有效字符,如,則其所代表的字符為字符串中有效字符,如ASCII碼等于,碼等于,則字符串結(jié)束。則字符串結(jié)束。、內(nèi)存單元某一字節(jié)的地址。、內(nèi)存單元某一字節(jié)的地
44、址。、可用一維字符數(shù)組存放。、可用一維字符數(shù)組存放。、可用指向字符變量的指針存放。、可用指向字符變量的指針存放。、看見常量字符串應(yīng)將其理解為第一個字符的地址。、看見常量字符串應(yīng)將其理解為第一個字符的地址。八、指針(字符串的指針_續(xù))例:例:main()main() printf( printf(“ “%s,%u,%cn%s,%u,%cn” ”, ,” ”WeWe” ”, ,” ”lovelove” ”, ,* *” ”figsfigs” ”);); 運行結(jié)果:運行結(jié)果:We,417,f We,417,f 說明說明: “l(fā)ovelove” ”為指針,以為指針,以%u%u格式輸出格式輸出“l(fā)ove
45、love” ”的值的值, , 即輸出該字符串的首地址。即輸出該字符串的首地址。 * *“figsfigs” ”為該字符串的第一個字符。為該字符串的第一個字符。例:例:main()main() if( if(“ “abcabc” ”=“ “abcabc” ”) printf() printf(“ “Same!nSame!n” ”);); else printf( else printf(“ “Not same!nNot same!n” ”); ); 運行結(jié)果:運行結(jié)果:Not same!Not same! 說明說明:比較兩個字符串的起始地址,它們不可能相同。:比較兩個字符串的起始地址,它們不可能
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;說明說明:p p 數(shù)組的三個元素數(shù)組的三個元素分別是指向整型變量的指分別是指向整型變量的指針(元素指針)針(元素指針), , 指針數(shù)指針數(shù)組名組名p p 的增值為一維數(shù)組的增值為一維數(shù)組長度長度。a00a10a20p0p1p2pp+1p+2通過指針通過指針p p引用數(shù)組元素的方式:引用數(shù)組元素的方式:
47、pijpij * *(pi+j)(pi+j) * *( (* *(p+i)+j)(p+i)+j) ( (* *(p+i)j(p+i)j注意:a為二維字符數(shù)組的情況為地址的地址,即指針的指針八、指針(指針的指針) 指針的指針(二級間址訪問)指針的指針(二級間址訪問)指向指針數(shù)據(jù)的指針變量又稱為指針的指針,或指向指針數(shù)據(jù)的指針變量又稱為指針的指針,或指針鏈。其定義的一般格式:指針鏈。其定義的一般格式: 類型說明符類型說明符 *指針變量名指針變量名例:例: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ù)) ) 一個函數(shù)的返回值為某種數(shù)據(jù)類型的地址值,即指針類型數(shù)一個函數(shù)的返回值為某種數(shù)據(jù)類型的地址值,即指針類型數(shù)據(jù),稱該函數(shù)為指針型函數(shù)。據(jù),稱該函數(shù)為指針型函數(shù)。 說明返回指針型函數(shù)的格式:說明返回指針型函數(shù)的格式: 類型說明符類型說明符 * *函數(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)用傳遞了三個三次調(diào)用傳遞了三個不同的函數(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)體名 類型標識符類型標識符 成員名成員名1 類型標識符類型標識符 成員名成員名2 . 類型標識符類型標識符 成員名成員名n ;只定義了結(jié)構(gòu)體類型只定義了結(jié)構(gòu)體類型struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 類型標識符類型標識符 成員名成員名1 類型標識符類型標識符 成員名成員名2 . 類型標識符類型標識符 成員名成員名n a , b , c3;定義了結(jié)構(gòu)體類型和變量定義了結(jié)構(gòu)體類型和變量struct 類型標識符類型標識符 成員名成員名1 類型標識符類型標識符 成員名成員
54、名2 . 類型標識符類型標識符 成員名成員名n a , b , c3;只定義了結(jié)構(gòu)體變量只定義了結(jié)構(gòu)體變量typedef struct DATEa , b , c3; 定義,為結(jié)構(gòu)體變量定義,為結(jié)構(gòu)體變量 類型標識符類型標識符 成員名成員名1 類型標識符類型標識符 成員名成員名2注意:考試中多采用此種形式注意:考試中多采用此種形式 . 類型標識符類型標識符 成員名成員名n(可嵌套定義)(可嵌套定義) DATE;定義定義DATE為結(jié)構(gòu)體類型為結(jié)構(gòu)體類型九、結(jié)構(gòu)體與共用體二、結(jié)構(gòu)體變量的引用二、結(jié)構(gòu)體變量的引用只可引用最低級成員只可引用最低級成員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注意:注意:、運算符、運算符“.”為左結(jié)合性,第一級為左結(jié)合性,第一級、成員類型決定引用類型、成員類型決定引用類型、引用結(jié)構(gòu)體成員可像普通變量一樣、引用結(jié)構(gòu)體成員可像普通變量一樣賦值、輸入、輸出、運算賦值、輸入、輸出、運算九、結(jié)構(gòu)體與共用體三、指向結(jié)構(gòu)
56、體類型數(shù)據(jù)的指針三、指向結(jié)構(gòu)體類型數(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)體類型指針定義結(jié)構(gòu)體類型指針P指向指向stu_1首地址首地址九、結(jié)
57、構(gòu)體與共用體有了指向結(jié)構(gòu)體變量的指針,對結(jié)構(gòu)體變量中成有了指向結(jié)構(gòu)體變量的指針,對結(jié)構(gòu)體變量中成員引用的三種方法員引用的三種方法:1、結(jié)構(gòu)體變量名、結(jié)構(gòu)體變量名.成員名成員名2、(*p).成員名成員名3、 p - 成員名成員名“*”號運算低于號運算低于“.”運算運算P-n+p-n(+p)-n九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體四、用指針處理鏈表四、用指針處理鏈表、有關(guān)函數(shù)、有關(guān)函數(shù)malloc(size); malloc(sizeof(數(shù)據(jù)類型數(shù)據(jù)類型) calloc(n,size); calloc(n,sizeof(數(shù)據(jù)類型數(shù)據(jù)類型) free(p);、鏈表結(jié)點的數(shù)據(jù)結(jié)構(gòu):、鏈表結(jié)點的數(shù)據(jù)結(jié)
58、構(gòu):struct student int num; float score; struct student *next;/*特殊成員鏈接需要特殊成員鏈接需要*/ ;結(jié)點自身需要結(jié)點自身需要九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體、鏈表的操作、鏈表的操作 鏈表創(chuàng)建鏈表創(chuàng)建 結(jié)點插入結(jié)點插入 結(jié)點刪除結(jié)點刪除 鏈表輸出鏈表輸出注意:注意: 得到鏈表只要得到鏈首指針。得到鏈表只要得到鏈首指針。 調(diào)用函數(shù)對已知鏈表實施操作只要傳遞鏈首指針調(diào)用函數(shù)對已知鏈表實施操作只要傳遞鏈首指針 被調(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個字節(jié)內(nèi)存空間九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體二、共用體變量的引用二、共用體變量的引用只可引用最低級成員只可引用最低級成員共用體變量名共用體變量名. .成員名成員名不能引用共用體變量,只能引用其成員。不能引用共用
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)存段放不同類型成員同一內(nèi)存段放不同類型成員, ,某一某一時刻只有一個即最后存放的成員起作用。時刻只有一個即最后存放的成員起作用。九、結(jié)構(gòu)體與共用體九、結(jié)構(gòu)體與共用體枚舉類型枚舉類型一、枚舉類型定義和枚舉變量一、枚舉類型定義和枚舉變量: : enum weekday sun,mon,tue,wed,thu,fri,sat day; 變量變量 day 只可取只可取 sun 到到 sat 之間的單個值之間的單個值二、枚舉類型的引用說明二、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度退股及員工持股計劃合同
- 個人股權(quán)轉(zhuǎn)讓合同2025年度含業(yè)績對賭條款
- 二零二五年度臨時項目經(jīng)理職務(wù)聘用與成果轉(zhuǎn)化合同
- 二零二五年度旅游團隊保險責任免除聲明
- 電線電纜購銷合同
- 管理層勞動合同工資
- 個人數(shù)字資產(chǎn)管理協(xié)議
- 全新池塘出租協(xié)議
- 月餅產(chǎn)品代銷合同
- 鄉(xiāng)村旅游發(fā)展策略與實施方案
- 體育競賽的組織與編排
- 動靜脈內(nèi)瘺的圍手術(shù)期護理-課件
- reaxys使用介紹課件
- 工程建設(shè)項目管理培訓教材課件
- 11-化學動力學基礎(chǔ)-2-考研試題資料系列
- 《簡愛》課本劇劇本
- 社區(qū)獲得性肺炎臨床路徑
- 產(chǎn)品品質(zhì)檢驗流程標準規(guī)范模板()
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報告
- 安全文明施工管理(EHS)方案(24頁)
- 水廠項目基于BIM技術(shù)全生命周期解決方案-城市智慧水務(wù)講座課件
評論
0/150
提交評論