C語言強(qiáng)化訓(xùn)練(第一、二部分)ppt課件_第1頁
C語言強(qiáng)化訓(xùn)練(第一、二部分)ppt課件_第2頁
C語言強(qiáng)化訓(xùn)練(第一、二部分)ppt課件_第3頁
C語言強(qiáng)化訓(xùn)練(第一、二部分)ppt課件_第4頁
C語言強(qiáng)化訓(xùn)練(第一、二部分)ppt課件_第5頁
已閱讀5頁,還剩132頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C言語強(qiáng)化訓(xùn)練第一部分 語法與語義第二部分 程序構(gòu)造方法C+言語程序設(shè)計(jì)強(qiáng)化訓(xùn)練目的:加強(qiáng)程序設(shè)計(jì)根底知識(shí)掌握與C言語根本編程才干的培育。包括根本語法、數(shù)據(jù)構(gòu)造和根本算法。 內(nèi)容重點(diǎn)突出,注重適用的原那么。關(guān)于計(jì)算機(jī)根底部分:計(jì)算機(jī)根底涉及范圍廣,第一靠平常的積累;第二關(guān)注計(jì)算機(jī)領(lǐng)域的新開展和我國(guó)在計(jì)算機(jī)方面的新成就。關(guān)于C言語學(xué)習(xí)方法: 學(xué)習(xí)計(jì)算機(jī)言語的目的是為了程序設(shè)計(jì),因此計(jì)算機(jī)言語的學(xué)習(xí)不僅僅是掌握知識(shí),更注重于運(yùn)用才干的培育,因此學(xué)習(xí)過程中,應(yīng)從兩方面著手:掌握知識(shí):熟記相關(guān)的語法、語義;運(yùn)用才干培育:程序設(shè)計(jì)方式、方法的學(xué)習(xí);經(jīng)過實(shí)驗(yàn)、總結(jié),把知識(shí)轉(zhuǎn)變?yōu)檫\(yùn)用才干。C言語難點(diǎn):C言語

2、是眾多計(jì)算機(jī)高級(jí)言語中最難學(xué)的言語之一。 C言語有很強(qiáng)的特性,數(shù)據(jù)類型豐富,語法語義變化繁多、既嚴(yán)謹(jǐn)又靈敏。要消化這些,需求投入大量的時(shí)間和精神。學(xué)習(xí)C言語,一方面學(xué)生缺乏這方面的學(xué)習(xí)閱歷,對(duì)于這門全新、枯燥、龐大的課程,心有余而力缺乏。 更重要的是經(jīng)過一段時(shí)間學(xué)習(xí)缺乏應(yīng)有的自信心。學(xué)習(xí)計(jì)算機(jī)言語時(shí)的思想:學(xué)習(xí)計(jì)算機(jī)言語的思想是一種自頂向下的思想方式,可用八個(gè)字來描畫:自頂而下,逐漸細(xì)化。也就是從宏觀到微觀,從整體到部分。這種思想符合我們大學(xué)計(jì)算機(jī)的教學(xué)。這種思想強(qiáng)調(diào)的是“綱舉目張,強(qiáng)調(diào)的是分層次思索。關(guān)于該講義內(nèi)容闡明:該講義的大部分例題來自C言語等級(jí)考試真題。但也有部分標(biāo)題來自其他言語等級(jí)

3、考試真題或自擬的標(biāo)題。第一部分 語法與語義一、C言語最根本部分1. 保管字與標(biāo)識(shí)符 標(biāo)識(shí)符是指常量、變量、語句標(biāo)號(hào)以及用戶自定義函數(shù)的稱號(hào)。作為標(biāo)識(shí)符必需滿足以下規(guī)那么:標(biāo)識(shí)符必需由字母、下劃線或數(shù)字(09)組成;標(biāo)識(shí)符的第一個(gè)字符可以是字母(az, AZ)或下劃線(_);保管字不能作標(biāo)識(shí)符。 第一部分 語法與語義 特別提示:C言語是一種大小寫敏感的言語。 如:Test、test是2個(gè)不同的標(biāo)識(shí)符。 例:以下選項(xiàng)中,_B_是C言語關(guān)鍵字。 A. printf B. include C. fun D. default第一部分 語法與語義2. 常量整數(shù):留意八和十六進(jìn)制數(shù);實(shí)數(shù):用指數(shù)方式表示小數(shù)

4、時(shí),方冪e(或E)前后必需是數(shù)字,e的前面可以是整數(shù)也可以是小數(shù),但e后面只能為13位整數(shù)。如:1.24e3、-4.3e-2是合法的實(shí)數(shù)。但1.3e、e2、1.2e3.1等是不合法的實(shí)數(shù)。 第一部分 語法與語義字符數(shù):字符常量是用單引號(hào)括起來的一個(gè)字符,如e、E;或“開場(chǎng),后跟一個(gè)字符或一個(gè)整型常量字符的ASCII碼值的方法來表示另一個(gè)字符。 如:0、n、20等。 字符串常量:用一對(duì)雙引號(hào)將0個(gè)或假設(shè)干個(gè)字符括起來。留意中間0字符、字符串長(zhǎng)度和占用內(nèi)存字節(jié)數(shù)。 如:1231230abc 第一部分 語法與語義符號(hào)常量: #define a 10 const int b=20; 字符常量是用單引號(hào)

5、括起來的一個(gè)字符,如e、E;或“開場(chǎng),后跟一個(gè)字符或一個(gè)整型常量字符的ASCII碼值的方法來表示另一個(gè)字符。符號(hào)常量在程序中不能被改動(dòng)。第一部分 語法與語義 例:1. 設(shè)有定義和聲明如下: #define d 2 int x=5;float y=383; char c=d; 以下表達(dá)式中有語法錯(cuò)誤的選項(xiàng)是 D 。 Ax+ By+ Cc+ Dd+ 2. 以下語句中有語法錯(cuò)誤的選項(xiàng)是 A 。 Aprintf(%d“,0e); Bprintf(%f“,0e2); Cprintf(%d,0 x2);Dprintf(%s,“0 x2);第一部分 語法與語義3.表達(dá)式算術(shù)運(yùn)算符與表達(dá)式 運(yùn)算符有:+、-、

6、*、/、%。 特別關(guān)注:/和%運(yùn)算。 對(duì)于除法運(yùn)算,假設(shè)運(yùn)算符兩邊的操作數(shù)都是整數(shù),其運(yùn)算結(jié)果也是整數(shù),即兩數(shù)整除;假設(shè)兩個(gè)操作符中有一個(gè)是實(shí)數(shù),其運(yùn)算結(jié)果就是實(shí)數(shù)。 4/5 運(yùn)算結(jié)果為0 4.0/5或4.0/5或4.0/5.0運(yùn)算結(jié)果為0.8 5/4 運(yùn)算結(jié)果為1 5.0/4或5/4.0運(yùn)算結(jié)果為1.25。第一部分 語法與語義 例:1. 知有聲明“int a=3,b=4,c;,那么執(zhí)行語句“c=1/2*(a+b);后,c的值為_A_。 A. 0 B. 3 C. 3.5 D. 4 2. 以下雙目運(yùn)算符中要求兩個(gè)操作數(shù)均為整型的運(yùn)算符是_D_ 。 A| B& C D第一部分 語法與語義關(guān)

7、系運(yùn)算符與表達(dá)式 運(yùn)算符有:、=、=、=、!=。 特別關(guān)注:1. 把=了解=或把=寫成=。重點(diǎn)在上機(jī)改錯(cuò)題。 2. 留意類似式子:設(shè)有定義 int x=3;計(jì)算5x10的值。 例:int k=0;while(k=1)k+;問while的循環(huán)次數(shù)。第一部分 語法與語義邏輯運(yùn)算符與表達(dá)式 運(yùn)算符有:!、&、|。 特別關(guān)注:邏輯表達(dá)式優(yōu)化所帶來的影響(也稱副作用)。 例:知有聲明“int a=12,b=15,c;,那么執(zhí)行表達(dá)式“c=(a|(b-=a)后,變量b和c的值分別為_b=15,c=1_。 第一部分 語法與語義賦值運(yùn)算符與表達(dá)式 運(yùn)算符有:=和與算術(shù)、位的復(fù)合賦值。 特別關(guān)注:多重賦

8、值的實(shí)現(xiàn)方式。 例:知有聲明“int n;float x,y;,那么執(zhí)行語句“y=n=x=3.89;后,Y的值為_。 A3 B3.0 C3.89 D4.0第一部分 語法與語義 賦值運(yùn)算符左邊必需是內(nèi)存中一個(gè)可以訪問且可以合法修正的對(duì)象,可以是變量名、援用名、數(shù)組的元素、指針變量所指向的合法空間,而不能是常量或表達(dá)式。 看下面的賦值運(yùn)算:3.1415926=pi; x+y=z;const int N=30;N=40;第一部分 語法與語義逗號(hào)運(yùn)算符與表達(dá)式 逗號(hào)也稱順序求值表達(dá)式,最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的結(jié)果。 例:設(shè)有語句: int i=1,s=1; for(;s+i6,i=5;i

9、+)s+=i; 以下for循環(huán)語句的循環(huán)次數(shù)為_。 位運(yùn)算符第一部分 語法與語義類型轉(zhuǎn)換-自動(dòng)類型轉(zhuǎn)換 類型轉(zhuǎn)換有自動(dòng)類型轉(zhuǎn)換和強(qiáng)迫類型轉(zhuǎn)換。 關(guān)注轉(zhuǎn)換原那么。 例:1. 假設(shè)有聲明“float y=3.14619;int x;,那么計(jì)算表達(dá)式“x=y*100+0.5,y=x/100.0后y的值是 。 2. 知有聲明“char ch=g;,那么表達(dá)式ch=ch-a+A的值為字符_的編碼。 第一部分 語法與語義類型轉(zhuǎn)換-強(qiáng)迫類型轉(zhuǎn)換 例:設(shè)有聲明“int a=3,b=4;float x=4.5,y=3.5;,那么表達(dá)式“(float)(a+b)/2+(int)x(int)y的值是 。 第一部分

10、語法與語義+與- 特別關(guān)注:前置與后置的問題,圓括號(hào)不能改動(dòng)后置的問題。 例:有如下程序段: int a5=1,3,5,7,9,*p=a; printf(%dn,*(p+); 那么執(zhí)行的結(jié)果是_。 第一部分 語法與語義二、輸入/輸出 輸入和輸出是計(jì)算機(jī)言語的重要組成部分。 常用輸入/輸出函數(shù)putchar():把變量中的一個(gè)字符常量輸出到顯示器屏幕上;getchar():從鍵盤上輸入一字符常量,此常量是該函數(shù)的值;printf():把各類數(shù)據(jù),加以格式控制輸出到顯示器屏幕上;scanf():從鍵盤上輸入各類數(shù)據(jù),并存放到程序變量中;puts():把一個(gè)字符串常量輸出到顯示器屏幕上;gets()

11、:從鍵盤上輸入一個(gè)字符串常量并放到程序的數(shù)組中。第一部分 語法與語義l最常用的最常用的“格式控制字符串闡明如下。格式控制字符串闡明如下。 (1)(1)%d%d:是按十進(jìn)制整型數(shù)據(jù)格式輸出,數(shù)據(jù):是按十進(jìn)制整型數(shù)據(jù)格式輸出,數(shù)據(jù)長(zhǎng)度為實(shí)踐長(zhǎng)度。長(zhǎng)度為實(shí)踐長(zhǎng)度。% %與與d d之間可以加正數(shù)之間可以加正數(shù)m m,控制,控制輸出寬度。輸出寬度。l(2)(2)%s%s:控制輸出一個(gè)字符串。:控制輸出一個(gè)字符串。 l(3)(3)%f%f:按小數(shù)方式輸出十進(jìn)制實(shí)數(shù)包括:按小數(shù)方式輸出十進(jìn)制實(shí)數(shù)包括單、雙精度,實(shí)數(shù)的整數(shù)部分全部輸出,并單、雙精度,實(shí)數(shù)的整數(shù)部分全部輸出,并輸出輸出6 6位小數(shù)。位小數(shù)?!?

12、m.nf“%m.nf表示輸出實(shí)數(shù)共占表示輸出實(shí)數(shù)共占m m個(gè)個(gè)字符位置,其中字符位置,其中n n位小數(shù),多余位左端補(bǔ)空格。位小數(shù),多余位左端補(bǔ)空格。 第一部分 語法與語義本卷須知:本卷須知:(1) (1) 掌握常用的一些格式控制字符;掌握常用的一些格式控制字符;(2)(2)格式闡明中格式闡明中% %與后面格式符之間不能有空格,與后面格式符之間不能有空格,除了除了X X,E E,G G格式符外,其他格式符必需用小寫格式符外,其他格式符必需用小寫字母。字母。(3) (3) 假設(shè)要輸出假設(shè)要輸出% %可在格式控制字符串中運(yùn)用兩可在格式控制字符串中運(yùn)用兩個(gè)延續(xù)的個(gè)延續(xù)的% %。例如:。例如:print

13、f(“%d%nprintf(“%d%n,5);5);輸出結(jié)果:輸出結(jié)果:5%5%第一部分 語法與語義第一部分 語法與語義三、三、C言語程序構(gòu)造言語程序構(gòu)造1. 程序的三種根本構(gòu)造程序的三種根本構(gòu)造順序構(gòu)造:是指程序按照語句在程序的先后順順序構(gòu)造:是指程序按照語句在程序的先后順序逐句運(yùn)轉(zhuǎn)。沒有分支、跳轉(zhuǎn)。序逐句運(yùn)轉(zhuǎn)。沒有分支、跳轉(zhuǎn)。 分支分支(或選擇或選擇)構(gòu)造:是指程序根據(jù)不同的條件構(gòu)造:是指程序根據(jù)不同的條件執(zhí)行不同的分支的語句,如執(zhí)行不同的分支的語句,如C言語中的言語中的if、switch語句、條件運(yùn)算符語句。語句、條件運(yùn)算符語句。 循環(huán)構(gòu)造:是指程序在滿足一定的條件下循環(huán)循環(huán)構(gòu)造:是指程

14、序在滿足一定的條件下循環(huán)執(zhí)行的相關(guān)語句,如執(zhí)行的相關(guān)語句,如C言語中的言語中的while、do while、for語句。語句。 由這由這3種根本構(gòu)造可以組成任何復(fù)雜邏輯的程種根本構(gòu)造可以組成任何復(fù)雜邏輯的程序。序。第一部分 語法與語義2. C言語的語句有以下六大類言語的語句有以下六大類:闡明語句:在闡明語句:在C+中,實(shí)現(xiàn)對(duì)數(shù)據(jù)構(gòu)造的定義中,實(shí)現(xiàn)對(duì)數(shù)據(jù)構(gòu)造的定義和描畫、對(duì)變量的定義性闡明的語句被稱為闡和描畫、對(duì)變量的定義性闡明的語句被稱為闡明語句。如:明語句。如:int a;表達(dá)式語句:在合法的表達(dá)式后面加上分號(hào),表達(dá)式語句:在合法的表達(dá)式后面加上分號(hào),即構(gòu)成了表達(dá)式語句。即構(gòu)成了表達(dá)式語句。

15、a=10;控制語句:控制改動(dòng)程序運(yùn)轉(zhuǎn)順序的語句被稱控制語句:控制改動(dòng)程序運(yùn)轉(zhuǎn)順序的語句被稱為控制語句。包括:選擇語句、循環(huán)語句、流為控制語句。包括:選擇語句、循環(huán)語句、流程跳轉(zhuǎn)語句等。如:程跳轉(zhuǎn)語句等。如:break;第一部分 語法與語義l函數(shù)調(diào)用語句:在函數(shù)的調(diào)用后面加上分號(hào),函數(shù)調(diào)用語句:在函數(shù)的調(diào)用后面加上分號(hào),即構(gòu)成函數(shù)調(diào)用語句。如:即構(gòu)成函數(shù)調(diào)用語句。如:about();l空語句:只需一個(gè)分號(hào)組成的語句稱為空語空語句:只需一個(gè)分號(hào)組成的語句稱為空語句,它不做任何操作。句,它不做任何操作。l復(fù)合語句:當(dāng)用將假設(shè)干條語句括起來,復(fù)合語句:當(dāng)用將假設(shè)干條語句括起來,C+將其作為一條語句進(jìn)展

16、處置,被稱為復(fù)合將其作為一條語句進(jìn)展處置,被稱為復(fù)合語句。語句。第一部分 語法與語義3. C言語程序組成言語程序組成 任何一個(gè)復(fù)雜的任何一個(gè)復(fù)雜的C言語程序是由一個(gè)言語程序是由一個(gè)main()函數(shù)和假設(shè)干個(gè)用戶自定義函數(shù)組成的。函數(shù)和假設(shè)干個(gè)用戶自定義函數(shù)組成的。main()函數(shù)是整個(gè)程序執(zhí)行時(shí)的入口,必需有函數(shù)是整個(gè)程序執(zhí)行時(shí)的入口,必需有且只能有一個(gè),可放在程序的任何地方。且只能有一個(gè),可放在程序的任何地方。4. 簡(jiǎn)單的設(shè)計(jì)方法簡(jiǎn)單的設(shè)計(jì)方法第一部分 語法與語義例:例:C言語規(guī)定,在一個(gè)源程序中言語規(guī)定,在一個(gè)源程序中main函數(shù)的函數(shù)的位置位置_。 A. 必需在最開場(chǎng)必需在最開場(chǎng) B.

17、必需在最后必需在最后 C. 必需在預(yù)處置命令的后面必需在預(yù)處置命令的后面 D. 可以在其他函數(shù)之前或之后可以在其他函數(shù)之前或之后第一部分 語法與語義四、流程控制語句四、流程控制語句 C言語流程控制語句有:言語流程控制語句有:選擇語句:選擇語句:if語句、語句、switch語句、條件運(yùn)算符語句、條件運(yùn)算符語句;語句;循環(huán)語句:循環(huán)語句:while語句、語句、do_while語句、語句、for語語句;句;控制語句:控制語句:break語句、語句、continue語句。語句。第一部分 語法與語義1.條件語句單分支的if語句 if (表達(dá)式) 語句 if后面的表達(dá)式普通是一個(gè)邏輯表達(dá)式,假設(shè)表達(dá)式的計(jì)

18、算結(jié)果為邏輯真(非0),那么執(zhí)行語句;反之,那么不執(zhí)行這個(gè)語句?!咎崾尽浚篿f后面只能跟一條語句,假設(shè)if后面需求跟多條語句,那么需用“將其變成一條復(fù)合語句。 留意:條件和循環(huán)構(gòu)造中要留意=和=混淆。第一部分 語法與語義雙分支的if語句 if (表達(dá)式) 語句1 else 語句2 這種if 語句格式的含義是:假設(shè)if后面的表達(dá)式求值結(jié)果為非0,那么執(zhí)行語句1,否那么執(zhí)行語句2。同樣要求語句1和語句2是一條語句。第一部分 語法與語義if語句的嵌套 if條件語句嵌套時(shí),else語句總是與最近的、同一塊內(nèi)的,沒有與else配對(duì)的if語句配對(duì)。例: if() if() else ()例:1. 以下程序

19、段的輸出結(jié)果是_x=20,y=0_。 int x=10,y=20,t=0; if(x=y)t=x;x=y;y=t; printf(“%dt%dn,x,y);2. 以下程序段的輸出結(jié)果是_yes_。 int a=1,b=3,c=5; if(c=a+b)cout“yes else cout“no;第一部分 語法與語義2.開關(guān)語句(switch) switch語句也稱開關(guān)語句、多重選擇語句。普通用于“根據(jù)一個(gè)量的多種不同取值實(shí)現(xiàn)程序的執(zhí)行流程的多個(gè)分支。用switch語句可以防止if-else多層嵌套呵斥的書寫錯(cuò)誤,方便程序閱讀。 留意:語句格式、語法和break語句的作用。第一部分 語法與語義 【

20、提示】:a.各個(gè)case包括default分支出現(xiàn)的次序可以恣意; b. case分支是開關(guān)語句的入口,其后面的語句序列可以是一條語句,也可以是多條語句。 c. break語句是可選的,當(dāng)所執(zhí)行的case分支沒有break,那么繼續(xù)往下執(zhí)行其他分支的語句序列,直到遇到break語句或switch語句的關(guān)括號(hào)“為止。 d. case后的常量表達(dá)式需為整型常量,取值可為整型、字符型或枚舉型。第一部分 語法與語義例:執(zhí)行語句序列int n;scanf(“%d,&n);switch(n)case 1:case 2: printf(“1);case 3:case 4: rintf(“2); br

21、eak;default: rintf(“3);時(shí),假設(shè)鍵盤輸入1,那么屏幕顯示BA)1 B)2 C)3 D)12第一部分 語法與語義3.循環(huán)構(gòu)造語句 C言語循環(huán)構(gòu)造語句有:while()、dowhile()、和for()三種循環(huán)語句。第一部分 語法與語義while循環(huán)語句while語句格式為:while (表達(dá)式) 語句 其中,表達(dá)式可以是恣意合法的表達(dá)式,是循環(huán)的控制條件,語句是反復(fù)執(zhí)行的循環(huán)體,可以是C言語的一條語句,也可以是C言語的一條復(fù)合語句。 while語句的執(zhí)行過程是:先判別表達(dá)式的值,假設(shè)表達(dá)式的值為邏輯真非0,那么進(jìn)入循環(huán)執(zhí)行循環(huán)體,然后自動(dòng)回到循環(huán)控制條件的判別點(diǎn),計(jì)算表達(dá)式

22、的值,并反復(fù)以上的過程,直到表達(dá)式的值為假或?yàn)?為止。第一部分 語法與語義學(xué)習(xí)循環(huán)的方式方法:循環(huán)的三個(gè)要素:尋覓反復(fù)執(zhí)行部分;循環(huán)的條件;進(jìn)入循環(huán)前的初始化。第一部分 語法與語義do while 循環(huán)語句do while語句的格式為:do 語句while (表達(dá)式) do while循環(huán)的執(zhí)行過程是先執(zhí)行循環(huán)體語句,后判別循環(huán)條件表達(dá)式的值。表達(dá)式的值為真,繼續(xù)執(zhí)行循環(huán),表達(dá)式的值為假,那么終了循環(huán)。因此,do_while循環(huán)保證了循環(huán)體語句至少執(zhí)行一次。第一部分 語法與語義for循環(huán)語句for循環(huán)語句的格式為:for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 其中表達(dá)式1稱為循環(huán)初值表達(dá)式,

23、表達(dá)式2稱為控制表達(dá)式循環(huán)終值表達(dá)式,表達(dá)式3稱為增量表達(dá)式,語句序列為恣意合法的一條C言語語句或復(fù)合語句。【提示】:for語句中3個(gè)表達(dá)式都可以省略,但兩個(gè)分號(hào)不能省略。表達(dá)式1可以放在for語句之前,表達(dá)式3可以放在循環(huán)體中。表達(dá)式2也可省略。假設(shè)表達(dá)式2省略,表示循環(huán)條件恒成立。第一部分 語法與語義例:1. 以下關(guān)于“for(e1;e2;e3)s1;的描畫中不正確的選項(xiàng)是_B_。 A存在“for(;)s1;的情況 B表達(dá)式e1和e3可為空,但e2不能為空 C表達(dá)式e2的值可增可減 D循環(huán)體e1可以為空,但分號(hào)(;)必需有 2. 以下循環(huán)語句的循環(huán)體的執(zhí)行次數(shù)為_無限次_。 for(int

24、 s=0,j=1;j=10;s+=j);j+; 3.循環(huán)語句:“for(int x=0,y=0;y!=100|x10;)x+;, 執(zhí)行的循環(huán)次數(shù)是_A_。 A. 無限次 B. 10 C. 11 D. 100第一部分 語法與語義4. 分析程序的運(yùn)轉(zhuǎn)結(jié)果: #include void main(void) int n=0,m=0; for(int i=0;i3;i+)for(int j=0;j=i)n+;m+; printf(“%dn%dn,n,m); 第一部分 語法與語義break語句 在switch語句中,break語句終止當(dāng)前所在的case語句表,從而也就終止了整個(gè)switch語句。 在循環(huán)

25、語句中,break語句可以提早終了該語句所在的循環(huán)。在嵌套循環(huán)中,break終止的是其所在的循環(huán)語句,而并非終止一切的循環(huán)。第一部分 語法與語義continue 語句 continue語句用來終止本次循環(huán)。當(dāng)程序執(zhí)行到continue語句時(shí),將跳過其后尚未執(zhí)行的循環(huán)體語句,開場(chǎng)下一次循環(huán),并根據(jù)循環(huán)控制條件決議能否再次執(zhí)行循環(huán)。 在循環(huán)語句的循環(huán)體中假設(shè)執(zhí)行到continue語句,那么跳過循環(huán)體中continue語句的后續(xù)語句,將控制轉(zhuǎn)移到下一輪循環(huán)。第一部分 語法與語義例:1. 有如下程序段:int sum=0,i;for(i=1;i10;i+) if(i%3=0)break;sum+=i;

26、 printf(“sum=%dn,sum);把break改為continue分析結(jié)果。第一部分 語法與語義2. 以下程序運(yùn)轉(zhuǎn)后的輸出結(jié)果是_。#includevoid main() int k=4,n=0; for(;nk;) n+; if(n%3!=0)continue; k-; coutk,n; 第一部分 語法與語義3.在給定范圍內(nèi)查找k使得用公式k2+k+17生成的整數(shù)滿足以下條件:該數(shù)的十進(jìn)制表示中低3位數(shù)字一樣,去掉低3位后的整數(shù)是回文數(shù)。例如,當(dāng)k=461時(shí)用公式生成的整數(shù)是212999,該數(shù)滿足所給條件。第一部分 語法與語義 五、數(shù)組 在構(gòu)造化程序設(shè)計(jì)中,數(shù)組是組織數(shù)據(jù)的最重要、

27、最有效手段。很多算法和編程技巧都是建立在數(shù)組的根底之上的。 數(shù)組是有序的一樣類型數(shù)據(jù)的集合。數(shù)組的特征是:數(shù)組名;數(shù)組類型也就是數(shù)組各元素的類型;維數(shù)(即標(biāo)識(shí)數(shù)組元素所需的下標(biāo)個(gè)數(shù));數(shù)組大小(即可包容數(shù)組元素的個(gè)數(shù))。第一部分 語法與語義1. 一維數(shù)組一維數(shù)組的定義與初始化 一維數(shù)組也稱向量,它是由具有一個(gè)下標(biāo)的數(shù)組元素組成的數(shù)組,它的定義方式為: ; 數(shù)組定義時(shí),闡明數(shù)組大小的表達(dá)式必需是常量表達(dá)式。數(shù)組定義時(shí),沒有初始化時(shí),靜態(tài)或全局?jǐn)?shù)組為0,其他的是不確定的值。當(dāng)只對(duì)部分元素初始化時(shí),其他元素為0。初始化時(shí),初始化值個(gè)數(shù)不能多于數(shù)組元素個(gè)數(shù)。第一部分 語法與語義 例:1. 以下數(shù)組定義

28、中錯(cuò)誤的選項(xiàng)是_D_。 A. int a12=1;B.int a22=1,2; Cint a33; Dint a43; 2. 以下數(shù)組定義中正確的選項(xiàng)是_C_。 A. int n=10;int an; B. int a(10); C. const int n=10;int an; D. int n;scanf(“%d,&n);int an;第一部分 語法與語義 例:3. 以下數(shù)組定義中錯(cuò)誤的選項(xiàng)是_C_。 A. int a4=0,1,2,3; B. int a=0,1,2,3,4; Cint a4=0,1,2,3,4; Dint a4=0;第一部分 語法與語義一維數(shù)組的援用 援用數(shù)組元

29、素的語法格式為: 其中,是非負(fù)的整型表達(dá)式,也就是數(shù)組的下標(biāo),數(shù)組下標(biāo)是用來指定所要訪問的數(shù)組中的元素的位置。提示:數(shù)組下標(biāo)范圍是從0開場(chǎng)的到數(shù)組的大小-1。 如:int a10;那么數(shù)組下標(biāo)范圍是09。 數(shù)值數(shù)組不能整體輸入/輸出,也不能整體援用,包括數(shù)組之間的賦值。第一部分 語法與語義2. 二維數(shù)組二維數(shù)組的定義與初始化 二維數(shù)組對(duì)應(yīng)數(shù)學(xué)中的行列式或矩陣。定義二維數(shù)組的普通格式為: ; 二維數(shù)組中的每個(gè)元素要用兩個(gè)下標(biāo)來表示,規(guī)定表示為二維數(shù)組的行下標(biāo)的大小,表示為二維數(shù)組的列下標(biāo)的大小。 第一部分 語法與語義二維數(shù)組元素的表示方法為: ;提示:兩個(gè)下標(biāo)的取值范圍都從0開場(chǎng)。在C言語中,二

30、維數(shù)組在計(jì)算機(jī)中的存儲(chǔ)順序是按行順序存儲(chǔ)的,即先存儲(chǔ)第1行元素,然后再存儲(chǔ)第2行元素,依次類推。 第一部分 語法與語義例:1.對(duì)二維數(shù)組a進(jìn)展正確初始化的是 D 。Aint a23=1,2,3,4,5,6;Bint a3=1,2,3,4,5,6;Cint a2=1,2,3,4,5,6;Dint a2=1,2,3,4;2. 設(shè)int b5=1,2,3,4,5,6,7;,那么元素b12的值是A。A. 0 B. 2 C. 6 D. 7第一部分 語法與語義3.數(shù)組運(yùn)用-排序和查找 排序和查找是建立在數(shù)組根底上的最重要的算法。排序的算法很多,最根本而常用的算法是選擇排序法和冒泡排序法。 查找是在排序的根

31、底上進(jìn)展的。根本的查找方法有順序查找和折半查找兩種方法。 【例】 :在一個(gè)有10個(gè)元素的數(shù)組a中找出值最大的元素及其位置。分析:這里采用“打擂臺(tái)算法。1、設(shè)置一個(gè)擂臺(tái)(變量max),先將一個(gè)數(shù)(通常是a0)放在擂臺(tái)上(max=a0);2、用下一元素(a1)與擂臺(tái)上的數(shù)(max)進(jìn)展比較,大者留臺(tái)上。3、將第三個(gè)元素(a2)再與臺(tái)上的數(shù)比較,同樣是大者留臺(tái)上。4、如此比下去直到一切的數(shù)(a1a9)都上臺(tái)比過為止。最后留在臺(tái)上的就是大者。#includevoid main() int i,j,max,a10=6,9,8,5,2,4,7,3,1,0; max=a0; j=0;/將a0放在擂臺(tái)上for

32、(i=1;imax) /假設(shè)擂臺(tái)max上的數(shù)字小 max=ai; /就將ai留在擂臺(tái)上j=i; /記錄擂臺(tái)上數(shù)在數(shù)組中的位置 printf(max=%d ,其位置為: %dn,max,j); 【例】用冒泡排序法對(duì)n個(gè)整數(shù)進(jìn)展升序排序。 留意:元素的序號(hào)從0開場(chǎng),程序如下: for (i=0; ii; j-) if (ajaj-1) t=aj; aj=aj-1; aj-1=t; #includevoid main()int a10=12,5,34,26,18,8,4,22,9,15; int n=10,i,j,t; for (i=0; ii; j-) if (ajaj-1) t=aj;aj=aj

33、-1;aj-1=t; for (i=0; in-1; i+)printf(“%dt,ai); printf(“n);【例】用選擇排序法對(duì)10個(gè)整數(shù)進(jìn)展升序排序。 #includevoid main() int a10=12,5,34,26,18,8,4,22,9,15; int n=10,i,j,t; for (i=0; in-1; i+)for (j=i+1;jaj) t=ai;ai=aj;aj=t; for (i=0; in-1; i+)printf(“%dt,ai); printf(“n);【例】用順序查找法在數(shù)組中查找指定的元素。#includevoid main() int a10=

34、12,5,34,26,18,8,4,22,9,15; int x,i,n=10; scanf(“x=%d,&x); for (i=0; in; i+) if (ai=x)break; if(i=n) printf(“%d不在數(shù)組中!n,x); else printf(%d其位置為: %dn,x,i);【例】在具有10個(gè)元素的數(shù)組中,用二分查找法(也稱折半查找法)在數(shù)組中查找指定的元素。 分析:二分法查找要求數(shù)組元素是有序的。 二分法查找根本思緒是(以升序?yàn)槔?:在一個(gè)區(qū)間l,r中計(jì)算中點(diǎn)位置m=(l+r)/2,假設(shè)am就是要查找的x,那么查找勝利!#includevoid main()

35、 int y10=5,7,8,14,25,36,44,50,69,80;int i,n,m,x;scanf(“輸入要查找的數(shù):%d,&x);n=0;m=9; i=(n+m)/2;while(n=m&yi!=x) if(yix) m=i-1; i=(n+m)/2; if(yi!=x) printf(No found!n“);else printf(“數(shù)%d在數(shù)組的第%d個(gè)數(shù)!n“,x,i);第一部分 語法與語義4.字符數(shù)組 字符數(shù)組可以整個(gè)字符串一次輸入/輸出運(yùn)用數(shù)組名,但在運(yùn)用數(shù)組名整體一次輸出時(shí),留意字符串終了符0。 在實(shí)踐操作時(shí),要特別留意字符串中有無字符本義序列。第一部分

36、 語法與語義例:1.以下程序運(yùn)轉(zhuǎn)后的輸出結(jié)果是_7,2_。main() char a7=“a00a00;int i,j; i=sizeof(a);j=strlen(a); printf(“%d %d,i,j);char a=“a1231230ef;第一部分 語法與語義2.在自動(dòng)類型數(shù)組初始化時(shí),假設(shè)初始化的元素比數(shù)組的元素少,那么其他元素初始化為: ;“int a3=3;那么a2 ;“int a3=1,3,5,7;那么會(huì) ;“int a3;那么a2的值 。3.設(shè)有以下語句序列: 。 int x;scanf(“%d,&x); float z,yx=1,2,3,4,5,6,7,8; /A

37、z=y3; /B A.z的值為4 B.z的值為3 C.B行語句錯(cuò) D. A行語句錯(cuò)第一部分 語法與語義4.要定義數(shù)組A,使得其中每個(gè)元素的數(shù)據(jù)依次為:3、9、4、8、0、0、0,錯(cuò)誤的定義語句是:A. int A=3,9,4,8,0,0,0; B. int A7=3,9,4,8,0,0,0; C. int A=3,9,4,8; D. int A7=3,9,4,8;第一部分 語法與語義六、函數(shù)1. 函數(shù)的根本知識(shí)(1).函數(shù)定義 函數(shù)定義時(shí),有前往值要留意函數(shù)的前往值類型與return語句后的表達(dá)式類型相一致,函數(shù)沒有前往值時(shí)void,那么用 return ;語句。 函數(shù)可以嵌套調(diào)用,但不可以嵌

38、套定義。在一個(gè)函數(shù)的函數(shù)體中定義另一個(gè)函數(shù)是非法的。第一部分 語法與語義(2).函數(shù)調(diào)用 調(diào)用函數(shù)時(shí),實(shí)參和形參要求一一對(duì)應(yīng)。 函數(shù)調(diào)用有兩種:作為表達(dá)式的函數(shù)調(diào)用和函數(shù)調(diào)用語句。對(duì)于沒有前往值的函數(shù)調(diào)用只能經(jīng)過函數(shù)調(diào)用語句實(shí)現(xiàn)。(3).函數(shù)調(diào)用參數(shù)傳送 參數(shù)傳送有三種:值傳送、地址傳送和援用傳送。第一部分 語法與語義(4).作用域難點(diǎn)與存儲(chǔ)類 在C+中,作用域共分為五類:塊作用域;文件作用域;函數(shù)原型作用域;函數(shù)作用域;類作用域。 部分變量:在一個(gè)函數(shù)內(nèi)部定義的變量或在一個(gè)塊中定義的變量稱為部分變量。 全局變量:在函數(shù)外定義的變量或用extern闡明的變量稱為全局變量。全局變量的作用域稱為文

39、件作用域,即在整個(gè)文件中都可以訪問。第一部分 語法與語義(1)設(shè)有函數(shù)定義調(diào)用語句“f(e1,e2),(e3,e4,e5);,那么實(shí)參個(gè)數(shù)是 A 。 (A) 2 (B) 3 (C) 4 (D) 5 (2)以下函數(shù)中對(duì)調(diào)用它的函數(shù)沒有起到任何作用的是 C 。 (A) void f1(double &x)-x; (B) double f2(double x)return x-1.5; (C) void f3(double x)-x; (D) double f4(double *x)-*x;return *x;第一部分 語法與語義(3)以下程序輸出的第一行是 0 1 2 3 4 第二行是 1

40、5 。#include (作用域)int k;void main(void) k=10; for(int i=0;i5;i+) int k;k+=i;/由于重新定義變量k,所以就有不同的作用域 coutk ;k+;:k+;coutnkn;第一部分 語法與語義2. 遞歸函數(shù) 在利用遞歸方法求值時(shí),必需留意三點(diǎn): 1.遞歸的公式; 2.遞歸的終了條件; 3.遞歸的約束條件。 關(guān)鍵是找到遞歸公式和遞歸的終了條件。 遞歸函數(shù)在調(diào)用時(shí)分兩部分:遞推和回歸。第一部分 語法與語義(1).以下程序的輸出結(jié)果是vrg 。#includevoid func2(int i);char s=“verygood!voi

41、d func1(int i) coutsti;if(i3)i=+2;func2(i);void func2(int i) coutsti;if(i3)i=+2;func1(i);void main() int i=0;func1(i);第一部分 語法與語義(2).以下程序的輸出結(jié)果是 15 。#includelong fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return 5*n;void main() coutfib(3);第一部分 語法與語義(3)以下程序輸出的第一行是 1 1 第二行是 4 1 最后一行是 x=10 。#includ

42、evoid fun(int n,int *s) int f1,f2; if(n=1|n=2)*s=1; else fun(n-1,&f1);fun(n-2,&f2); *s=2*f1+f2+1; coutf1tf2n;void main(void)int x;fun(4,&x);coutx=xn;第一部分 語法與語義( 4 ) 以 下 程 序 輸 出 的 結(jié) 果 是 dcba 。#includevoid show(char *s)if(*s)show(s+1);cout*s;void main(void) show(“abcd0efg0hij); coutn;第一部分

43、語法與語義(5)以下程序輸出的第一行是 123 第二行是 321 第三行是 123 。#includevoid p1(char s,int i) if(si!=0)p1(s,i+1); coutsi; void p2(char s,int i) coutsi; if(si!=0)p2(s,i+1);void main(void) char str=123;coutstrn; p1(str,0);coutn; p2(str,0);coutn;第一部分 語法與語義3.重載函數(shù) 定義的重載函數(shù)必需具有:一樣的函數(shù)名但具有不同的參數(shù)個(gè)數(shù)或不同的參數(shù)類型。 調(diào)用重載該函數(shù)時(shí),將根據(jù)實(shí)參的數(shù)據(jù)類型和重載函

44、數(shù)的形參匹配,確定調(diào)用其中的一個(gè)重載函數(shù)。第一部分 語法與語義4.靜態(tài)變量 靜態(tài)類型變量有確定的初值。靜態(tài)類型變量對(duì)全局變量和部分變量有不同的含義。 靜態(tài)類型變量只能初試化一次。當(dāng)部分變量運(yùn)用靜態(tài)類型變量時(shí),其作用將保管函數(shù)的運(yùn)轉(zhuǎn)結(jié)果,以便下次調(diào)用函數(shù)時(shí),能繼續(xù)運(yùn)用上次計(jì)算的結(jié)果。但不在變量的作用域時(shí),不能直接運(yùn)用,確需運(yùn)用時(shí),可經(jīng)過變量的地址取值即指針。 當(dāng)全局變量運(yùn)用靜態(tài)類型變量時(shí),表示所闡明的變量?jī)H限于這個(gè)源程序文件內(nèi)運(yùn)用。第一部分 語法與語義(1)以下程序輸出的結(jié)果是 i=105 i=110 。 #include int t() static int i=100; i+=5; retu

45、rn i; void main(void) couti=t()n; couti=t()n; 第一部分 語法與語義(2)以下程序輸出的結(jié)果是 i=105 105 i=105 110 。 #include int t(int *p) static int i=100;*p=&i; i+=5; return i; void main(void) int i,*p;i=t(&p); couti=it *pn; t(&p); couti=it *pn; 第一部分 語法與語義(3)以下程序輸出的第一行是 20 ,第二行是 400 。#includeint f(int x) stat

46、ic int u=1; x+=x;return u*=x;void main(void) int x=10;coutf(x)n;coutf(x)n;第一部分 語法與語義(4)以下程序輸出的第一行是 21 ,第二行是 53 。#includeint f(void) static int a,b=10,c=1; a+=b;b+=c;return c=a+b;void main(void) coutf()n;coutf()n;第一部分 語法與語義5. 編譯預(yù)處置指令 編譯預(yù)處置指令包括三方面的內(nèi)容:文件包含、宏指令和條件編譯,其重點(diǎn)是宏指令-帶參數(shù)的宏定義。 留意:在宏調(diào)用時(shí),將不作任何語法檢查,也

47、不做任何計(jì)算,只作簡(jiǎn)單交換。第一部分 語法與語義(1)假設(shè)有宏定義: #define N 2 #define Y(n) (N+1)*n)那么執(zhí)行語句“z=2*(N+Y(N+2);后,z的值為 20 。(2)假設(shè)有宏定義: #define T(x,y,z) x*y*z/4那么表達(dá)式“z=T(3+4,2*4,4+4);后,z的值為 132 。第一部分 語法與語義(3)假設(shè)有宏定義: 那么 D 。 #define M(a,b) a*b;/E int x=M(3+4,5+6),y;/F y=M(3,4); /GA.編譯時(shí),E行語法錯(cuò) B.編譯時(shí),F行語法錯(cuò)C.編譯時(shí),G行語法錯(cuò) D.編譯時(shí),F行和G行

48、語法錯(cuò)(4)假設(shè)有宏定義: #define P(x,y) x/y #define PP(a,b) a*b int c=P(2+3,2+3)+PP(2+3,2+3);那么c的值為 17 。第一部分 語法與語義(5).編譯以下程序時(shí),結(jié)果是 B 。#include /第1行#define aa 123; /第2行void main(void) /第3行 coutaan; /第4行A.編譯時(shí)第2行出錯(cuò) B.編譯時(shí)第4行出錯(cuò)C.編譯時(shí)第2,4行出錯(cuò) D. 編譯時(shí)無錯(cuò)誤第一部分 語法與語義六、指針、援用和函數(shù)1.指針 指針變量的訪問有兩種方式:訪問指針變量的值和訪問指針的內(nèi)容。 指針可執(zhí)行的運(yùn)算有三種:

49、賦值運(yùn)算、關(guān)系運(yùn)算和算術(shù)運(yùn)算。 指針變量+,-,*,&之間的混合運(yùn)算, *p1+、*+p1、(*p1)+、+*p1 。第一部分 語法與語義2. 指針和一維數(shù)組假設(shè)有:int a10,*point;point=&a0;總結(jié):(1).數(shù)組名等同于數(shù)組的第0個(gè)元素的地址,也是數(shù)組的起始地址。(2).當(dāng)指針變量point指向數(shù)組a的第0個(gè)元素后,那么point+i等同于a+i,為ai的地址。(3).當(dāng)指針變量point指向數(shù)組a的第0個(gè)元素后,那么*(point+i)、*(a+i)、ai、pointi和*&ai都表示元素ai。 留意:point+允許,但a+不允許。第一部分 語

50、法與語義3.指針與二維數(shù)組要留意區(qū)分元素地址和行地址。例:假設(shè)有數(shù)組:int a44,*point;第0行第0列的元素地址:a0,&a00,*&a0,*a 等。第0行的行地址:&a0,a 等。Point指針變量只能存放元素地址值。第一部分 語法與語義(1)以下程序輸出的第一行至第三行分別是 1 1 2 、 3 5 8 、 13 21 34 。#include void f(int *q1,int *q2,int *q3) *q3=*q1+*q2;void main(void) int i,j,a33=1,1,*p1=a0; int *p2=a0+1,*p3=a0+2;

51、for(i=2;i9;i+)f(p1+,p2+,p3+); for(i=0;i3;i+)for(j=0;j3;j+) coutaijt; coutn; 第一部分 語法與語義 4. 指向數(shù)組的指針 對(duì)于一個(gè)m列的二維數(shù)組,我們可以定義一個(gè)指向它的指針:“int (*p)m; 。然后就有:“p=a; 。這里的指針p稱為“指向數(shù)組的指針(也稱指向數(shù)組的指針變量)。 定義指向數(shù)組的指針的普通方式為: (*)【例】運(yùn)用指向數(shù)組的指針輸出數(shù)組中的元素?!纠窟\(yùn)用指向數(shù)組的指針輸出數(shù)組中的元素。 void main() int a34=0,1,2,3,4,5,6,7,8,9,10,11; int (*p)4

52、, i, j; p=a; /指針指針p指向數(shù)組指向數(shù)組a起始地址起始地址 for(i=0;i3;i+) for(j=0;jab; if(ab)exchang( &a,&b ); coutatbn; 實(shí)參為實(shí)參為地址地址第一部分 語法與語義4.指針和字符串 當(dāng)字符串和指針結(jié)合在一同,運(yùn)用起來就特別靈敏。在各類考試中經(jīng)常會(huì)出現(xiàn)相關(guān)的標(biāo)題。 (1)(完善程序題)以下程序的功能是:輸入兩個(gè)字符串,把這兩個(gè)字符串拼成一個(gè)新的字符串,輸出拼接后的字符串。第二部分 構(gòu)造化程序設(shè)計(jì) (1)(完善程序題)以下程序的功能是:輸入兩個(gè)字符串,把這兩個(gè)字符串拼成一個(gè)新的字符串,輸出拼接后的字符串。#i

53、ncludechar *stringcat(char *to,char *from)/實(shí)現(xiàn)拼接 char *p= to ; /把form拼接到to后面 while(*to+); to- ; while( *to+ =*from+) ;return p;(2)以下程序中函數(shù)以下程序中函數(shù)insertstr的功能是:在字符串的功能是:在字符串str中中一切出現(xiàn)子串一切出現(xiàn)子串str1的后面插入子串的后面插入子串str2。如本程序的。如本程序的輸出為:輸出為:“I am a student too.You are a student too.He is a student too.#include#

54、includechar *insertstr(char *str,char *str1,char str2) char *p,*p1,*q1,*t1; int i,len2; if(*str=0| *str1=0| *str2=0) return str; len2=strlen(str2); p=str; t1=str2; while(*p!=0) p1=p;q1=str1; while(*p1=*q1& *q1 ) p1+;q1+; if(p!=p1&*q1=0) p= p1 ;while(*p1+!= 0); for(;p1=p;p1-) *( p1+len2 )=*p1

55、; for(i=0;*(t1+i)!=0;i+) *p+=*(t1+i); p+ ; return str;第一部分 語法與語義 5. 援用援用 援用是某一變量目的的一個(gè)別名,對(duì)援用援用是某一變量目的的一個(gè)別名,對(duì)援用的操作與對(duì)變量直接操作完全一樣。的操作與對(duì)變量直接操作完全一樣。 定義援用的普通格式:定義援用的普通格式: &=; “目的變量名必需是曾經(jīng)定義過的變量或援用。目的變量名必需是曾經(jīng)定義過的變量或援用。符號(hào)符號(hào)“&在不同的場(chǎng)一切不同的含義。在數(shù)據(jù)聲明在不同的場(chǎng)一切不同的含義。在數(shù)據(jù)聲明時(shí)時(shí)(如如int &a),“&意為援用,假設(shè)意為援用,假設(shè)“&

56、;前無類前無類型符,那么是取變量的地址型符,那么是取變量的地址(如如int a,*p=&a)。6.參數(shù)傳送方式有值傳送、地址傳送和援用傳送三種。怎樣了解參數(shù)傳送呢? 前期知識(shí)回想計(jì)算機(jī)內(nèi)存單元、地址與數(shù)據(jù)第一部分第一部分 語法與語義語法與語義了解C言語中,最簡(jiǎn)單的語句: int a=10;10地址地址變量名變量名變量的值變量的值a2000H第一部分第一部分 語法與語義語法與語義形參與實(shí)參的對(duì)應(yīng)關(guān)系假設(shè):主調(diào)函數(shù)中有定義:int x=10,*p=&x,y10; 形參形參實(shí)參實(shí)參值傳遞:類型值傳遞:類型 參數(shù)名參數(shù)名int f(int a)常量、變量、表達(dá)式常量、變量、表達(dá)式f(x

57、)地址傳遞:類型地址傳遞:類型 *參數(shù)名參數(shù)名 類型類型 參數(shù)名參數(shù)名int f(int *a)int f(int a)&變量名、指針變量名、變量名、指針變量名、數(shù)組名數(shù)組名f(p)或或f(&x)f(y)引用傳遞:類型引用傳遞:類型 &參數(shù)名參數(shù)名int f(int &a)變量名變量名f(x) 參數(shù)不同傳送方式對(duì)結(jié)果的影響參數(shù)不同傳送方式對(duì)結(jié)果的影響 #include int f1(int a) a+;return a; int f2(int *a)(*a)+;return *a; int f3(int *a)a+;return *a; int f4(int &

58、amp;a)a+;return a; void main() int y=20,x=10;printf(%d,%dn,x,f1(x);x=10;printf(%d,%dn,x,f2(&x);x=10;printf(%d,%dn,x,f3(&x);x=10;printf(%d,%dn,x,f4(x); 10,11 11,11 10,20 11,11第一部分第一部分 語法與語義語法與語義七、七、 構(gòu)造體構(gòu)造體 有時(shí)需求將不同類型的數(shù)據(jù)有時(shí)需求將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體,以便于援組合成一個(gè)有機(jī)的整體,以便于援用。這些組合在一個(gè)整體中的數(shù)據(jù)用。這些組合在一個(gè)整體中的數(shù)據(jù)是相互

59、聯(lián)絡(luò)的。是相互聯(lián)絡(luò)的。 第一部分第一部分 語法與語義語法與語義1. 構(gòu)造體類型闡明構(gòu)造體類型闡明聲明一個(gè)構(gòu)造體類型的普通方式為聲明一個(gè)構(gòu)造體類型的普通方式為struct 構(gòu)造體名構(gòu)造體名 成員表列成員表列 ; 第一部分第一部分 語法與語義語法與語義2. 構(gòu)造體類型變量定義構(gòu)造體類型變量定義定義構(gòu)造體類型變量的方法定義構(gòu)造體類型變量的方法先聲明構(gòu)造體類型再定義變量名先聲明構(gòu)造體類型再定義變量名structstudent int num; charname20; charsex; ;第一部分第一部分 語法與語義語法與語義聲明構(gòu)造體類型時(shí)定義變量名聲明構(gòu)造體類型時(shí)定義變量名structstudent

60、 int num; charname20; charsex; stu1,stu2;直接定義構(gòu)造體變量直接定義構(gòu)造體變量struct int num; charname20; charsex; stu1,stu2;第一部分第一部分 語法與語義語法與語義3. 構(gòu)造體類型變量援用構(gòu)造體類型變量援用 在定義了構(gòu)造體變量以后在定義了構(gòu)造體變量以后,當(dāng)當(dāng)然可以援用這個(gè)變量。但應(yīng)遵守以然可以援用這個(gè)變量。但應(yīng)遵守以下規(guī)那么下規(guī)那么:(1) 不能將一個(gè)構(gòu)造體變量作為一個(gè)不能將一個(gè)構(gòu)造體變量作為一個(gè)整體進(jìn)展輸入和輸出。例如整體進(jìn)展輸入和輸出。例如,已定已定義義student1和和student2為構(gòu)造體為構(gòu)造體變量并且它們已有值。不能這樣援變量并且它們已有值。不能這樣援用用: printf (%d,%s,%c,%d,%f,%sn,student1); 只能對(duì)構(gòu)造體變量中的各個(gè)只能對(duì)構(gòu)造體變量中的各個(gè)成員分別進(jìn)展輸入和輸出。援用構(gòu)成員分別進(jìn)展輸入和輸出。援用構(gòu)造體變量中成員的方式為:造體變量中成員的方式為: 構(gòu)造體變量名構(gòu)造

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論