




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院計算機(jī)等級考試二級C語言考前輔導(dǎo)第一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院主
要
內(nèi)
容一、試卷分析二、C語言概述三、數(shù)據(jù)類型及其運算四、語句五、數(shù)組六、函數(shù)七、編譯預(yù)處理八、指針九、結(jié)構(gòu)體與共用體十、文件十一、主要算法分析第二頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院C語言復(fù)習(xí)考試的五大要點了解試卷,胸中有數(shù)深刻理解,強(qiáng)化概念歸納整理,適當(dāng)記憶注重實踐,融會貫通多做練習(xí),查漏補缺第三頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點語法:一、源程序結(jié)構(gòu)二、基本類型數(shù)據(jù)的表示和引用系統(tǒng)預(yù)定義數(shù)據(jù)類型基本類型常量的表示基本類型變量的聲明和直接引用基本類型變量的間接引用(指針應(yīng)用)三、表達(dá)式四、標(biāo)準(zhǔn)輸入/輸出五、語句第四頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點難題:語法:單選,基本概念填空,閱讀程序部分算法和數(shù)據(jù)結(jié)構(gòu)的綜合應(yīng)用:閱讀程序完善程序上機(jī)填空改錯:語法錯,語義錯,算法錯編程:主函數(shù),功能函數(shù)第五頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點語法:六、函數(shù)函數(shù)定義函數(shù)聲明函數(shù)直接調(diào)用、間接調(diào)用(指針應(yīng)用)遞歸函數(shù)的定義與調(diào)用執(zhí)行流程標(biāo)識符作用域規(guī)則七、構(gòu)造類型數(shù)據(jù)成員的引用數(shù)組聲明和數(shù)組元素的直接引用結(jié)構(gòu)定義、結(jié)構(gòu)變量聲明和結(jié)構(gòu)變量成員的直接引用數(shù)組元素、結(jié)構(gòu)變量成員的間接引用(指針應(yīng)用)八、文件輸入/輸出九、預(yù)處理命令第六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點一、常用算法
分類(排序)算法冒泡,選擇,插入檢索(查找)算法無序數(shù)據(jù)序列的查找(見遍歷算法)有序數(shù)據(jù)序列的查找:二分法遍歷算法一維數(shù)組和二維數(shù)組的遍歷單向鏈表的遍歷文件的遍歷其它基本算法遞推法,窮舉法,二分法,牛頓法求方程根,梯形法求定積分等.第七頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點二、典型問題·數(shù)值問題素數(shù)問題求因子整數(shù)拆位、反序數(shù)、回文數(shù)最大公約數(shù),最小公倍數(shù)求最值、平均值累加,累乘、階乘、級數(shù)(近似值計算)第八頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點三、典型問題·一維數(shù)組數(shù)據(jù)處理生成(數(shù)列)變換(編碼/解碼,壓縮/還原,循環(huán)移位等)查找(指定值,最大值,最小值)排序插入(一個數(shù))刪除(一個數(shù),重復(fù)的多個數(shù))更新(一個數(shù))統(tǒng)計合并(兩個數(shù)列)集合運算模擬高精度算術(shù)運算第九頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、典型問題·字符串?dāng)?shù)據(jù)處理子串查找,子串統(tǒng)計,子串刪除,子串替換,整型/實型機(jī)器數(shù)與字符串表示相互轉(zhuǎn)換字符串變換(編碼/解碼,壓縮/還原)命題基本原則及考核點第十頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點五、典型問題·二維數(shù)組數(shù)據(jù)處理生成(矩陣)變換(改變數(shù)值,改變數(shù)據(jù)存儲位置)查找(指定值,最小值,最大值)排序(按行排序,按列排序)插入(一個數(shù),一行數(shù),一列數(shù))刪除(一個數(shù),一行數(shù),一列數(shù))更新(一個數(shù),一行數(shù),一列數(shù))統(tǒng)計合并(兩個矩陣)第十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院命題基本原則及考核點六、典型問題·一維結(jié)構(gòu)數(shù)組數(shù)據(jù)處理查找(直接查找,通過指向結(jié)構(gòu)數(shù)組的指針數(shù)組查找)排序(結(jié)構(gòu)數(shù)組排序,指向結(jié)構(gòu)數(shù)組的指針數(shù)組排序)插入(一條記錄)刪除(一條記錄)更新(一條記錄)統(tǒng)計第十二頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院筆試形式基礎(chǔ)知識和c語言程序設(shè)計兩部分組成基礎(chǔ)知識全部為單選題c語言程序設(shè)計部分分為單選題和填空題答題要求:單選題的答案必須涂劃在專用答題卡上;填空題的答案必須寫在專用答題紙上(填空時注意:每個填空要按標(biāo)號順序填,一空占一行,不是一題
一行;因為有的題目一題包含多個空)。第十三頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院上機(jī)考試形式上機(jī)題總分為填空題
改錯題:改錯題中所存在的錯誤主要是語法錯誤(如數(shù)組的聲明錯誤、函數(shù)定義錯誤等)、運行錯誤(如包含不正確的頭文件)、邏輯錯誤等。
編程題:編程題程序中,通常都涉及一個有一定難度的算法,考生須按題目要求實現(xiàn)第十四頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院二、C語言概述1、C程序的結(jié)構(gòu)、main函數(shù)一個C程序可由多個函數(shù)構(gòu)成,其中必有唯一的一個主函數(shù)。它是整個程序的入口,也是整個程序的出口。2、標(biāo)識符的命名規(guī)則規(guī)則:字母或下劃線開始的字母、下劃線和數(shù)字串。C語句中的保留字不能作為標(biāo)識符。(教材P375)所有的函數(shù)名可以作為標(biāo)識符。3、C程序的上機(jī)過程編輯編譯連接運行第十五頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算1、常量、變量常量:固定不變的量。整型常量:十進(jìn)制(29)、八進(jìn)制(029)和十六進(jìn)制(0x29)實型常量:小數(shù)表示(123.456)、指數(shù)表示(1.23456e+002)字符常量:普通字符(‘A’
‘a(chǎn)’
‘2’
‘+’
‘,’)、轉(zhuǎn)義字符(‘\qqq’
‘\x符號常量: (一般用大寫字符表示)#
define
PI
3.1415936第十六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)一)變量:整型:基本整型:
2字節(jié)無符號基本整型:
2字節(jié)長整型:
4字節(jié)int
(
-32768--+32767
)unsigned
int
(
0—65535
)long
int
或
long無符號長整型:實型:單精度:雙精度:4字節(jié)unsigned
long
int
或unsigned
long4字節(jié)8字節(jié)floatdouble字符型:有符號字符:無符號字符:1字節(jié)1字節(jié)char
(
-128—127
)unsigned
char
(
0—255
)第十七頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)二)2、不同類型數(shù)據(jù)之間的混合運算表達(dá)式值的類型由該式子中最長的數(shù)據(jù)類型決定。float型無條件轉(zhuǎn)換成double型。char型無條件轉(zhuǎn)換成int型。*注意強(qiáng)制類型轉(zhuǎn)換的用法。(類型名)(int)x+y
等價于
((int)x)+y參與運算的數(shù)據(jù)類型改變了,x的類型不變。3、算術(shù)運算符和運算表達(dá)式
(+
-
*
/
%)/
: a/b
a,b都是整型結(jié)果是整型%
:a%b a,b
都必須是整型第十八頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)三)4、賦值運算符和賦值表達(dá)式(右結(jié)合性)‘=’號左邊只能出現(xiàn)變量,具有強(qiáng)制類型轉(zhuǎn)換作用if
(
(c=getchar()
)
!=‘\n’)
…
…a*=x+y
等價于復(fù)合賦值運算
a=a*(x+y)5、逗號運算符和逗號表達(dá)式加‘;’號構(gòu)成表達(dá)式語句作為其它語句的一部分或函數(shù)的參數(shù)時要加括號6、表達(dá)式的類型識別7、有關(guān)運算符功能:
優(yōu)先級:
結(jié)合性:
表達(dá)式的值:第十九頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)四)8、關(guān)系運算符和關(guān)系表達(dá)式<
<=
>
>=
(6級)
==
!=
(7級)注意:等于零和不等于零的表示方式
a
!a兩個實數(shù)判相等和判不相等的方法
a<x&&
x<b
不能寫成
a<x<b
形式a==b
不能寫成a=b
形式在多分枝if語句中的作用第二十頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)五)9、邏輯運算符和邏輯表達(dá)式&&(11級)!(2級)
||(12級)注意:a
&&
b
&&
c
和
a
||
b
||
c
表達(dá)式!優(yōu)先級比算術(shù)運算高!(a
&&
b
&&
c)等價于!a
||
!b
||
!c!a
&&
!b
&&
!c!(a
||
b
|| c)等價于復(fù)雜邏輯表達(dá)式出現(xiàn)在算術(shù)表達(dá)式中第二十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)六)10、自增自減運算符(右結(jié)合性)++
--
(2級)注意:a++和++a
的區(qū)別對整型、實型和字符型都可進(jìn)行在運算符為多個字符時,盡可能多地自左而右組成完整的運算符tc
對含運算符++和--等表達(dá)式的處理形如
printf(“
%d
%d
\n”,i,i++);中函數(shù)參數(shù)求值出現(xiàn)在其它表達(dá)式中注意值的變化第二十二頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)七)11、條件運算符和條件表達(dá)式(右結(jié)合性)?
:
(13級)注意:唯一三目運算符不能和if語句完全等價右結(jié)合性12、位運算符~
(按位取反a
>
b
?
x
:
y
?
m
:
ny應(yīng)先與后面的運算符結(jié)合^
(按位異或
9級)2級)
&(按位與
8級)|(按位或
10級)13、數(shù)學(xué)算式的C語言表示第二十三頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院三、數(shù)據(jù)類型及其運算(續(xù)八)14、輸入輸出函數(shù)輸入函數(shù):輸出函數(shù):getchar()putchar()gets()puts()scanf()printf()注意:1)
getchar()是無參函數(shù),從輸入設(shè)備讀取一個字符,包括不可顯示字符(一般形式c=getchar())。gets()和puts()函數(shù)只有一個參數(shù),且為字符串的首地址。scanf()函數(shù)的格式控制符中的普通字符照原樣輸入。printf()函數(shù)中的實參的求值順序從右向左。第二十四頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句1、表達(dá)式語句2、函數(shù)調(diào)用語句3、復(fù)合語句4、空語句5、控制語句第二十五頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句(選擇語句)(一)if 語句一般格式或if
(表達(dá)式)
語句if
(表達(dá)式)
語句1else
語句2注意:“表達(dá)式”應(yīng)有括號,且可為各種類型的表達(dá)式“語句”如是復(fù)合語句應(yīng)有括號“語句”還可以是
if
語句數(shù)學(xué)分段函數(shù)的求值問題繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)第二十六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句(選擇語句_續(xù))(二)switch
語句一般格式switch
(表達(dá)式){
case
常量表達(dá)式1
:
語句1;break;case
常量表達(dá)式2
:
語句2;break;…
…case
常量表達(dá)式n:語句n;break;default:語句n+1
;}注意:執(zhí)行流程“語句”可為多個單個語句,此時不必加大括號default
語句可缺省switch語句嵌套使用時,break語句只跳出它所處的哪層switch整型、字符型或枚舉類型根據(jù)需要選擇第二十七頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句(循環(huán)語句_1)(一)當(dāng)型循環(huán)語句一般格式while
(表達(dá)式)
語句注意:“表達(dá)式”應(yīng)有括號“語句”為復(fù)合語句時應(yīng)加大括號在語句中應(yīng)有使“表達(dá)式”趨于不成立的語句存在在復(fù)合語句中含有break和continue語句時的情況:while
(表達(dá)式){
…
…break;…
…continue;}第二十八頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句(循環(huán)語句_2)(二)直到型循環(huán)語句一般格式do
語句
while
(表達(dá)式);注意:無論表達(dá)式是否成立,循環(huán)體至少執(zhí)行一遍“表達(dá)式”應(yīng)有括號,后面的“;”號不能丟“語句”為復(fù)合語句時應(yīng)加大括號在語句中應(yīng)有使“表達(dá)式”趨于不成立的語句存在在復(fù)合語句中含有break和continue語句時的情況:do{
…
…break;…
…continue;}
while
(表達(dá)式);第二十九頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院四、語
句(循環(huán)語句_3)(二)for 型循環(huán)語句一般格式for
(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句注意:“語句”為復(fù)合語句時應(yīng)加大括號在語句中應(yīng)有使“表達(dá)式2”趨于不成立的語句存在在復(fù)合語句中含有break和continue語句時的情況:繁瑣的二維數(shù)組填值問題(結(jié)合循環(huán)語句,幾乎每次都考)三種循環(huán)語句相互嵌套使用的情況第三十頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院五、數(shù)
組(一維數(shù)組)(一)一維數(shù)組定義:定義并初始化:類型名
數(shù)組名〔常量表達(dá)式〕;類型名
數(shù)組名〔常量表達(dá)式〕={表達(dá)式列表};或:類型名
數(shù)組名〔〕={表達(dá)式列表};引用:
只能引用下標(biāo)變量。注意:1、不能定義動態(tài)數(shù)組
如:int
n
;int
a[n];2、只能在定義數(shù)組的時候初始化,以后不可整體賦值3、除字符數(shù)組外,不可整體引用數(shù)組4、一般用單循環(huán)語句引用數(shù)組元素5、內(nèi)存中連續(xù)存儲,數(shù)組名為其存儲的首地址第三十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院五、數(shù)
組(二維數(shù)組)(二)二維數(shù)組定義:
類型名
數(shù)組名〔常量表達(dá)式1〕〔常量表達(dá)式2〕;定義并初始化:類型名
數(shù)組名〔〕〔常量表達(dá)式〕={…
…};引用:
只能引用下標(biāo)變量。注意:1、不能定義動態(tài)數(shù)組2、只能在定義數(shù)組的時候初始化,以后不可整體賦值3、不可整體引用數(shù)組4、一般用雙重循環(huán)語句引用數(shù)組元素5、按行在內(nèi)存中連續(xù)存儲,數(shù)組名為0行的行地址,a[i]為第i行第1個元素的地址
如:
int
a[3][3]
引用
a[0][5]
正確6、與雙重循環(huán)語句一起應(yīng)用(二維數(shù)組填值問題)第三十二頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院五、數(shù)
組(字符數(shù)組)(三)字符數(shù)組(一維、二維)具有普通一維數(shù)組和二維數(shù)組的性質(zhì)。特點:1、可以定義時初始化,也可以后用strcpy()賦值。2、可以引用下標(biāo)變量,也可整體引用(一維)3、一般用于存放字符串4、字符串的基本概念1)串結(jié)束符5、字符串操作函數(shù)的使用1)串長度(編程實現(xiàn))3)串拼接(編程實現(xiàn))2)內(nèi)存單元地址
字符串2)串復(fù)制(賦值)4)串比較(不能用關(guān)系運算符)6、字符串的輸入和輸出(char
c[20];)1)gets(c);和scanf(“%s”,c);區(qū)別7、二維字符數(shù)組的引用有下標(biāo)引用法和數(shù)組名加第一維下標(biāo)引用法第三十三頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院六、函
數(shù)(函數(shù)的定義)(一)、函數(shù)的定義函數(shù)可理解為一個程序段,給予一定的輸入就會產(chǎn)生一定的輸出。函數(shù)的定義就是在使用函數(shù)前對函數(shù)功能的完整性描述。一般形式:函數(shù)類型
函數(shù)名(參數(shù)列表){
…
…函數(shù)體…
…}注意:1、函數(shù)的定義就是函數(shù)的說明1、函數(shù)由“頭部”和“函數(shù)體”構(gòu)成2、函數(shù)類型指函數(shù)返回值的類型(可以無返回值void)第三十五頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院六、函
數(shù)(函數(shù)的調(diào)用)(四)、函數(shù)的調(diào)用函數(shù)調(diào)用是將程序的執(zhí)行流程轉(zhuǎn)向被調(diào)用函數(shù),被調(diào)用函數(shù)執(zhí)行完畢后再回到主調(diào)用函數(shù)繼續(xù)執(zhí)行。注意:1、根據(jù)被調(diào)用函數(shù)的類型函數(shù)調(diào)用有三種形式:1)函數(shù)調(diào)用作為表達(dá)式的一部分(被調(diào)用函數(shù)有返回值)2)函數(shù)調(diào)用作為其它函數(shù)的參數(shù)(被調(diào)用函數(shù)有返回值)3)函數(shù)調(diào)用加“;”號構(gòu)成函數(shù)調(diào)用語句(被調(diào)用函數(shù)無返回值)2、函數(shù)調(diào)用的形式1)嵌套調(diào)用2)遞歸調(diào)用:遞歸函數(shù)的編程特點遞歸函數(shù)的閱讀特點第三十八頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院六、函
數(shù)(局部和全局變量)(六)、局部變量和全局變量(變量的空間觀)局部變量1、某函數(shù)內(nèi)部定義的變量,只在該函數(shù)內(nèi)部有效2、分程序(復(fù)合語句)內(nèi)部定義的變量,只在分程序中有效3、形參屬于局部變量全局變量1、函數(shù)外部定義的變量,作用范圍從定義點開始到程序最后定義點之前的函數(shù)可用extern進(jìn)行申明來擴(kuò)展其作用范圍2、在全局變量的作用范圍內(nèi)如遇同名的宏定義,則在宏定義同名應(yīng)該用宏名置換(2004年秋選擇題26題)之后,第四十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指
針(基本概念)(一)、地址和指針變量
i地址變量
i_point
(存儲其它變量地址的變量)指針變量作為函數(shù)的參數(shù)i_point20002000指針變量i_point指向變量ii第四十四頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指
針(數(shù)組和指針)(二)、數(shù)組的指針和指向數(shù)組的指針變量由于數(shù)組連續(xù)存放的特性,當(dāng)指針指向數(shù)組(即數(shù)組元素)時,通過指針指向的連續(xù)變化來指向數(shù)組中不同的元素以獲取對數(shù)組元素的操作。例:int
a[5],*p
;p=&a[3];*p
<==>
a[3]*&a[3]<==>a[3]
對a[3]的地址作間接存取運算,結(jié)果為變量a[3]&*p
<==>
&a[3]
對*p的計算結(jié)果進(jìn)行取址運算得到a[3]的地址a[0]
a[1]
a[2]
a[3]
a[4]*p的計算結(jié)果找到了整型數(shù)組成員a[p3]第四十五頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指針(數(shù)組和指針_續(xù))數(shù)組名作函數(shù)參數(shù) 實參(調(diào)用點)x=max(
a,10
)
;x=max(
a,10
)
;x=max(
p=a
,
10
)
;形參(定義點)int
max
(
int
b[]
,
int
n
)int
max
(
int
*p
,
int
n
)int
max
(
int
b[]
,
int
n
)地址復(fù)用關(guān)系賦值調(diào)用關(guān)系地址復(fù)用關(guān)系x=max(
p=a
,
10
)
;指向多維數(shù)組的指針實參(調(diào)用點)賦值調(diào)用關(guān)系
int
max
(
int
*p1,int
n
)形參(定義點)地址復(fù)用關(guān)系
int
max
(
int
b[][4],
int
m,int
n
)x=max(
a,3,4
)
;x=max(a,3,4);
賦值調(diào)用關(guān)系int
max(
int
(*p)[4]
,
int
m,int
n
)int
max
(
int
b[][4]
,
int
m,int
n
)x=max(p=a,3,4);地址復(fù)用關(guān)系x=max(
p=a
,
3,4
)
;
賦值調(diào)用關(guān)系
intmax
(
int
(*p1)[4],int
m,int
n
)第四十六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八s指 針(表達(dá)式類型的判斷)如何判斷一個是數(shù)組元素s數(shù)組元素的地址?一s一維數(shù)組int
a[N];1sa是該數(shù)組在內(nèi)存中的起始地址。2s取地址運算
&3s間接訪問運算
*4s下標(biāo)運算
〔〕二s二維數(shù)組1sa是該數(shù)組的行起始地址。2s*(a+i)或a[i]表示第i行的第一個元素地址2s取地址運算
&3s間接訪問運算
*4s下標(biāo)運算
〔〕間接訪問int
a[M][N];取地址元素:
a[i]s*(a+i)s*&a[i]s*a地址:
asa+is&
a[i]行地址:a+ii
行第1個元素地址:*(a+i)sa[i]元素:a[i][j]s*(*(a+i)+j)s*(a[i]+j)s(*(a+i))[j]地址:&a[i][j]s*(a+i)+jsa[i]+js&(*(a+i))[j]第四十七頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指 針(字符串的指針)字符串概念1、以內(nèi)存某一起始字節(jié)開始到‘\0’字符結(jié)束的若干字節(jié)。2、字符‘\0’的ASCII碼值為0。
3、字符串所占內(nèi)存空間為串長加1。4、從C語言角度對字符串的理解:從內(nèi)存某一起始字節(jié)開始,向地址值增大的方向以字節(jié)為單位連續(xù)尋找,如ASCII碼不等于0,則其所代表的字符為字符串中有效字符,如ASCII碼等于0,則字符串結(jié)束。5、內(nèi)存單元某一字節(jié)的地址。6、可用一維字符數(shù)組存放。7、可用指向字符變量的指針存放。8、看見常量字符串應(yīng)將其理解為第一個字符的地址。第四十八頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指 針(指針的指針)指針的指針(二級間址訪問)指向指針數(shù)據(jù)的指針變量又稱為指針的指針,或指針鏈。其定義的一般格式:類型說明符**指針變量名例:static
char
*name[]={“book”,”print”,”gread”};char
**p
;p=name
;定義指針的指針pp指向指針數(shù)組name則:*p即name[0]1)即name[1]name[1]name[2]*(p+i)
即name[i]0book\*0(p+print
\gread
\0pnamename數(shù)組
name[0]字符串第五十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指 針(返回指針值的函數(shù)_續(xù))void
main(){
static
float
score[][4]={
…………
};/*search()返回指向?qū)嵭蛿?shù)據(jù)的指針*//*
p為指向?qū)嵭蛿?shù)據(jù)的指針*/float
*search();float
*p;
int
i,m
;scanf(“%d”,&m);printf(“The
scores
of
No.%d
are:\n”,m);p=search(score,m);
/*
score為行指針*/for(i=0;i<4;i++)printf(“%5.2f\t”,*(p+i));}float
*search(float
(*pointer)[4],int
n){
float
*pt;pt=*(pointer+n);return(pt);
}pointer+n為第n行的首地址,行指針。*(pointer+n)將指針從行控制轉(zhuǎn)化為列控制,等價于pointer[n],元素指針。第五十四頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指
針(函數(shù)的指針_續(xù)1)幾點說明:函數(shù)指針指向程序代碼區(qū),一般數(shù)據(jù)變量指針指向數(shù)據(jù)區(qū)。(*p)(),注意運算符()優(yōu)先級高于*,*p兩側(cè)括號不能省。*p()表示返回指針值的函數(shù)。函數(shù)指針不能進(jìn)行++、--、+、-等運算。函數(shù)可以通過函數(shù)名調(diào)用,也可通過函數(shù)指針調(diào)用。如果函數(shù)指針p指向函數(shù)f1,則對函數(shù)f1的調(diào)用方式是:(*p)(實參表);第五十六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院八、指 針(函數(shù)的指針_續(xù)4)/*函數(shù)max(),min(),add()定義略*/main(){
int
max(),min(),add();int
a,b
;printf(“Enter
a
and
b:”);scanf(“%d%d”,&a,&b);printf(“max=”);
process(a,b,max);printf(“min=”);
process(a,b,min);printf(“sum=”);
process(a,b,add);}process(int
x,int
y,int
(*fun)()){
int
result;result=(*fun)(x,y);printf(“%d\n”,result);
}三次調(diào)用傳遞了三個不同的函數(shù)入口地址利用函數(shù)指針調(diào)用不同的函數(shù),增加了函數(shù)調(diào)用的靈活性第五十九頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院九、結(jié)構(gòu)體與共用體二、結(jié)構(gòu)體變量的引用只可引用最低級成員struct
data{
int
month;int
day;int
year;};struct{
int
num;
char
name[20];char
sex;int
age;structdata
birthday;charaddr[30];}
stud;
[0]串首地址正確引用注意:1、運算符“.”為左結(jié)合性,第一級2、成員類型決定引用類型3、引用結(jié)構(gòu)體成員可像普通變量一樣賦值、輸入、輸出、運算第六十一頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院九、結(jié)構(gòu)體與共用體有了指向結(jié)構(gòu)體變量的指針,對結(jié)構(gòu)體變量中成員引用的三種方法:1、結(jié)構(gòu)體變量名.成員名2、(*p).成員名3、p->成員名“*”號運算低于“.”運算P->n++++p->n(++p)->n第六十三頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院九、結(jié)構(gòu)體與共用體共用體一、共用體變量的定義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
ch[10];float
f;int
b[5]
;}
a;占10個字節(jié)內(nèi)存空間第六十六頁,共七十六頁。計算機(jī)等級考試二級C語言計算機(jī)與軟件學(xué)院九、結(jié)構(gòu)體與共用體二、共用體變量的引用只可引用最低級成員
共用體變量名.成員名不能引用共用體變量,只能引用其成員。出現(xiàn)在結(jié)構(gòu)體的定義中。#include
"stdio.h"struct{
int
num;char
name[10];char
sex;char
job;union{int
class;char
p
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 27403:2024 EN Cybersecurity – IoT security and privacy – Guidelines for IoT-domotics
- 2025年無機(jī)分離膜材料合作協(xié)議書
- 2025版安置房買賣合同范本:限價房交易政策范本
- 2025年度廠區(qū)門衛(wèi)智能化升級改造服務(wù)合同范本
- 2025年高壓清洗車合作協(xié)議書
- 社團(tuán)活動反饋與改進(jìn)方案計劃
- 教學(xué)資源整合與優(yōu)化策略計劃
- 企業(yè)未來發(fā)展的創(chuàng)新思考計劃
- 財務(wù)企劃管理計劃
- 建立健全院內(nèi)溝通反饋機(jī)制的計劃
- 蛤蟆先生去看心理醫(yī)生
- 懸挑式卸料平臺安拆作業(yè)安全技術(shù)交底
- 疾病診斷編碼庫ICD-10
- 蘭州市規(guī)范醫(yī)療服務(wù)價格項目基準(zhǔn)價格表
- 西漢-北京大學(xué)歷史學(xué)系教學(xué)課件
- 產(chǎn)品設(shè)計材料及工藝PPT完整版全套教學(xué)課件
- 2006年度銀行業(yè)金融機(jī)構(gòu)信息科技風(fēng)險評價審計要點
- 反恐C-TPAT程序文件整套(通用)
- 2022年全國高考詩歌鑒賞試題-教學(xué)課件
- 化學(xué)檢驗工高級工理論知識試題題及答案
- 廣東省五年一貫制語文試卷
評論
0/150
提交評論