《c語(yǔ)言內(nèi)容回顧》PPT課件.ppt_第1頁(yè)
《c語(yǔ)言內(nèi)容回顧》PPT課件.ppt_第2頁(yè)
《c語(yǔ)言內(nèi)容回顧》PPT課件.ppt_第3頁(yè)
《c語(yǔ)言內(nèi)容回顧》PPT課件.ppt_第4頁(yè)
《c語(yǔ)言內(nèi)容回顧》PPT課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩138頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、上次課主要內(nèi)容,第一次課主要內(nèi)容,學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言的目的 學(xué)習(xí)方法和如何學(xué)好編程 程序開發(fā)步驟 用VC6.0開發(fā)C程序步驟 C程序基本結(jié)構(gòu),用計(jì)算機(jī)能識(shí)別的程序設(shè)計(jì)語(yǔ)言來(lái)描述要解決的問(wèn)題的方法和步驟(即算法),以完成特定的任務(wù),編寫程序的步驟:分析問(wèn)題找到解決問(wèn)題的方法和步驟用程序設(shè)計(jì)語(yǔ)言描述編譯、調(diào)試,學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言的目的,學(xué)習(xí)方法和怎樣學(xué)好編程?,多閱讀別人編寫的源代碼 自己多編寫源代碼 擅于利用身邊的工具與環(huán)境 秘訣:編程,編程,再編程 !,舉一反三 融會(huì)貫通,程序開發(fā)步驟,What is to be done?,可執(zhí)行文件 擴(kuò)展名為.exe的文件,How is it to be do

2、ne?,擴(kuò)展名為.c的文件(對(duì)C而言),擴(kuò)展名為.obj的文件,用VC6.0開發(fā)C程序步驟,運(yùn)行VC6.0 文件新建“工程”選項(xiàng)卡里選擇“win32 console application”(倒數(shù)第3個(gè)),輸入工程名,選擇工程保存位置 選擇“an empty project” 文件新建“文件”選項(xiàng)卡里選擇“ Text File”(倒數(shù)第1個(gè)),輸入文件名(注意:擴(kuò)展名為.c),C程序由函數(shù)構(gòu)成.(函數(shù)部分見第五章) 語(yǔ)句結(jié)尾要用分號(hào)“ ; 程序有且只有一個(gè)主函數(shù)main(),且不能省略( ) 程序體用和括起來(lái) 函數(shù)體中又包括說(shuō)明部分和執(zhí)行部分 注釋由符號(hào)對(duì)“ /* */”,一般不允許嵌套注釋,

3、如:/* this is/*a inlay*/comment*/,C程序的基本結(jié)構(gòu) 見教材P15P16,例2.1 舉一反三,1.修改程序,實(shí)現(xiàn)求三個(gè)整數(shù)之和 2.修改程序,實(shí)現(xiàn)求三個(gè)實(shí)數(shù)之和 3.修改程序,去掉Add函數(shù),在main函數(shù)里實(shí)現(xiàn)兩個(gè)數(shù)相加。,OVER,第二次課主要內(nèi)容,C程序的書寫格式 程序的基本邏輯(輸入處理(核心)輸出) 程序的調(diào)試,代碼風(fēng)格,“代碼風(fēng)格”的目標(biāo)是讓代碼清晰,增強(qiáng)可讀性,使代碼更易于維護(hù)。 良好的注釋:解釋清楚此程序的功能和變量含義 整齊的縮進(jìn):讓代碼的邏輯關(guān)系分外明朗 適當(dāng)?shù)目招校菏钩绦虻慕Y(jié)構(gòu)凸現(xiàn) 準(zhǔn)確的變量命名:不需要注釋,便可明辨 恰當(dāng)位置的空格:讓可讀

4、性更上一層樓 每行最多只有一條語(yǔ)句,程序的調(diào)試,錯(cuò)誤信息由四部分組成: 1.給出錯(cuò)誤所在的源程序名 2.錯(cuò)誤所在的行號(hào)(用圓括號(hào)括起來(lái)) 3.錯(cuò)誤號(hào) 4.給出錯(cuò)誤說(shuō)明 定位出錯(cuò)行的方法: 1.根據(jù)行號(hào) 2.雙擊錯(cuò)誤信息說(shuō)明行(最常用的方法),程序的調(diào)試,1.F9:設(shè)置斷點(diǎn)(或按鍵) 2.按F5鍵 3.F10(step over):單步執(zhí)行 4.Ctrl+F10(Run to cursor): 運(yùn)行到光標(biāo)處 5. F11(step into):進(jìn)入函數(shù)(第5章用到) 6.Call Stack:函數(shù)調(diào)用棧(第5章用到) 7.Memory(第6、7章用到),實(shí)驗(yàn)指導(dǎo)書P146P147,常見錯(cuò)誤,在建

5、立工程時(shí),沒(méi)有選擇正確的工程類型 出現(xiàn)多個(gè)main()函數(shù) 雙引號(hào) 或圓括號(hào)不成對(duì) 或放錯(cuò)位置 錯(cuò)誤提示:undeclared identifier(未聲明的標(biāo)識(shí)符) 原因:標(biāo)識(shí)符應(yīng)該先聲明后使用,第三次課主要內(nèi)容,C程序標(biāo)識(shí)符的命名規(guī)則 整型常量和實(shí)型常量的表示 字符常量,C程序中常見符號(hào),關(guān)鍵字 標(biāo)識(shí)符(掌握其命名規(guī)則) 操作符(運(yùn)算符) 標(biāo)點(diǎn)符號(hào) 分隔符,C程序常見符號(hào)分類,關(guān)鍵字(Keyword) (見P425 附錄B) 又稱為保留字,C語(yǔ)言中預(yù)先規(guī)定的具有固定含義的一些單詞 數(shù)據(jù)類型修飾符int,控制語(yǔ)句return等 標(biāo)識(shí)符(Identifier) 系統(tǒng)預(yù)定義標(biāo)識(shí)符,main,pr

6、intf 等 用戶自定義標(biāo)識(shí)符,Add, x, y 等 運(yùn)算符(Operator) 34種,詳見附錄2 分隔符(Separator) 空格、回車/換行、逗號(hào)等 其它符號(hào) 大花括號(hào)“”和“”通常用于標(biāo)識(shí)函數(shù)體或者一個(gè)語(yǔ)句塊 “/*”和“*/”是程序注釋所需的定界符 數(shù)據(jù)(Data) 變量(Variable) 常量(Constant),數(shù)據(jù)類型(Data Type),見附錄C,思考:認(rèn)真閱讀并理解華氏溫度和攝氏溫度轉(zhuǎn)換的程序,編寫下面程序,輸出26個(gè)英文字母和其ascii碼的對(duì)照表 輸出100200的十進(jìn)制、八進(jìn)制和十六進(jìn)制對(duì)照表,第四次課主要內(nèi)容,字符串常量 符號(hào)常量(宏常量、const聲明的常

7、量、枚舉常量) 變量(聲明、定義和初始化) 注:對(duì)于給定問(wèn)題,能夠正確選擇合適的數(shù)據(jù)類型,以定義程序中所需變量。 格式化輸入輸出,變量的聲明和初始化,#include main() int m=0256,n=256; printf(%o%on,m,n); ,格式化輸入輸出,#include main() int i=9; printf(%#on,i); ,格式化輸入輸出,以下程序段執(zhí)行后輸出結(jié)果是:_. main() int m=32767,n=032767; printf(%d,%on,m,n); ,有以下程序段 main() int n1=10,n2=20; printf(“_,n1,n2

8、); 要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開始,請(qǐng)?zhí)羁铡?n1=10 n2=20,有以下程序 main() int x=102,y=012; printf(%2d,%2dn,x,y); 執(zhí)行后輸出結(jié)果是_.,第五次課主要內(nèi)容(見附錄D),格式化輸入函數(shù)scanf()格式轉(zhuǎn)換說(shuō)明符和格式修飾符常見的編程錯(cuò)誤總結(jié)見教材P71使用函數(shù)需要注意的問(wèn)題見教材P60P70,有以下程序 main() char a,b,c,d; scanf(%c,%c,%d,%d, 若運(yùn)行時(shí)從鍵盤輸入:6,5,65,66。則輸出結(jié)果是_.,main() int i=0,j=0,k=0; scanf(%d%*d

9、%d, ,int b,c; float a; scanf(%f,%d,c=%d,以下程序 main() int i,j,k; scanf(_, 要求運(yùn)行時(shí)從鍵盤輸入:123456使變量i,j,k的值分別為1,234,56,請(qǐng)?zhí)羁?實(shí)驗(yàn)指導(dǎo)書P167實(shí)驗(yàn)一,問(wèn)題一 問(wèn)題五,第六次課主要內(nèi)容-字符的輸入輸出,字符的輸入: scanf函數(shù)使用函數(shù)scanf()時(shí)需要注意的問(wèn)題P60P71(格式轉(zhuǎn)換說(shuō)明符?如何忽略整數(shù)?如何忽略任意多的空白符P66 ?如何忽略一個(gè)任意字符P59 ?如何忽略兩個(gè)任意字符?) 字符輸入函數(shù)getchar、getch、getche(調(diào)用的語(yǔ)法形式?區(qū)別?) 字符的輸出 pr

10、intf函數(shù)(格式轉(zhuǎn)換說(shuō)明符?) 字符輸出函數(shù)putchar()(調(diào)用的語(yǔ)法形式?),交互式的字符輸入函數(shù),編譯器定義的兩個(gè)函數(shù): getch() getche() #include 兩個(gè)函數(shù)的相同點(diǎn): 功能相同,在擊鍵后都立即返回,不需要輸入回車鍵 兩個(gè)函數(shù)的區(qū)別: getch()不向屏幕回顯鍵入的字符 getche()向屏幕回顯鍵入的字符,第七次課主要內(nèi)容(見附錄D),算術(shù)運(yùn)算符(優(yōu)先級(jí)和結(jié)合性) 關(guān)系運(yùn)算符 邏輯運(yùn)算符 賦值運(yùn)算符、復(fù)合賦值運(yùn)算符,1 . C 語(yǔ)言中運(yùn)算對(duì)象必需是整型的運(yùn)算符是()。 A ) % B ) / C ) ! D ) *,算術(shù)運(yùn)算符,算術(shù)運(yùn)算符,思考: 任意從鍵

11、盤輸入一個(gè)三位整數(shù)n,要求正確分離出它的個(gè)位、十位和百位,并分別在屏幕上輸出。(提示:用整除運(yùn)算/和取余運(yùn)算%) 如果是任意大小的數(shù)呢?,下列關(guān)于單目運(yùn)算符+的敘述中正確的是() A )它們的運(yùn)算對(duì)象可以是任何變量和常量 B )它們的運(yùn)算對(duì)象可以是 char 型變量和 int 型變量,但不能是 float 型變量 C )它們的運(yùn)算對(duì)象可以是 int 型變量,但不能是 double 型變量和 float 型變量 D )它們的運(yùn)算對(duì)象可以是 char 型變量、 int 型變量和 float 型變量,以下程序的輸出結(jié)果是() main() char a=a,b; printf(%c,+a); pri

12、ntf(%cn,b=a+); ,數(shù)字字符0的ASCII值為48,運(yùn)行以下程序的輸出結(jié)果是() main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a); ,以下程序的輸出結(jié)果是() main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m); ,位運(yùn)算,以上位運(yùn)算符中,只有求反()為單目運(yùn)算符,其余均為雙目運(yùn)算符 各雙目運(yùn)算符與賦值運(yùn)算符結(jié)合可以組成擴(kuò)展的賦值運(yùn)算符。,位運(yùn)算,注意: 位運(yùn)算的操作對(duì)象不能是float,double,long double等類型,只能是標(biāo)準(zhǔn)的char 和

13、int 數(shù)據(jù)類型。,若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是() A ) x1 = 26.8 % 3 ; B ) 1+ 2 = x2 ; C ) x3 = 0 x12 ; D ) x4 = 1 + 2 = 3 ;,以下非法的賦值語(yǔ)句是() A ) n = ( i = 2 , + + i ) ; B ) j + + ; C ) + + ( i + 1 ) ; D ) x = j 0 ;,若 a 、 b 、 c 、 d 都是 int類型變量且初值為 0 ,以下選項(xiàng)中不正確的賦值語(yǔ)句是() A ) b = c = 100 ; B ) d +; C ) c + b D ) d = ( c =

14、22 )-( b + + ) ; 以下合法的 C 語(yǔ)言賦值語(yǔ)句是() A ) a = b = 58B ) k = int ( a + b ) ; C ) a = 58 , b = 58 D ) -i;,下列語(yǔ)句中,符合語(yǔ)法的賦值語(yǔ)句是 _ A ) a=7+b+c=a+7;B ) a=7+b+=a+7;C ) a=7+b,b+,a+7D ) a = 7+b , c+a+7; 下列語(yǔ)句中,正確的語(yǔ)句是_。 A ) int x =y= z = 0 ; B ) int z =( x + y ) + + ;C ) x =+ 3 = 2; D ) x %= 2.5;,關(guān)系運(yùn)算符與關(guān)系運(yùn)算,以下運(yùn)算符中不是

15、關(guān)系運(yùn)算符的是() A ) = C ) ! D ) =! 以下各個(gè)關(guān)系表達(dá)式中非法的是()。 A ) a = b B ) (a = 3 ) ( b = 4 ) C ) a c = c D ) a = = b,1 請(qǐng)寫出以下程序的輸出結(jié)果 #include main( ) int a=100; if (a100) printf(%dn,a100); else printf(%dn,a=100); 2 . C 語(yǔ)言中用 _ 表示邏輯值“真”,用 _表示邏輯值“假”,關(guān)系運(yùn)算符與關(guān)系運(yùn)算,邏輯運(yùn)算符與邏輯運(yùn)算,1、邏輯運(yùn)算符 c 語(yǔ)言提供了三種邏輯運(yùn)算符: “ if ( (j + | k +) 執(zhí)行

16、后輸出結(jié)果是()。,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int a = 1, b = 2, m = 0, n = 0, k; k = ( n = b a ) | ( m = a b ) ; printf(%d,%dn, k, m ); ,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int a = 1, b = 2, m = 0, n = 0, k; k = ( n = b a ) ,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int i = 1, j

17、 = 2, k = 3; if ( i+ = 1 ,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int i = 1, j = 2, k = 3; if ( i+ = 1 | ( +j = 3 | k+ = 3) printf (%d %d %dn, i, j, k ); ,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int a, b, d = 25; a = d / 10 % 9 ; b = a ,邏輯運(yùn)算符與邏輯運(yùn)算,以下程序運(yùn)行后的輸出結(jié)果是()。 #include main( ) int a, b

18、, c; a = 10 ; b = 20; c =( a % b 1); printf(%d %d %dn, a, b, c); ,邏輯運(yùn)算符與邏輯運(yùn)算,已有定義: int x = 3 , y = 4 , z = 5 ; ,則表達(dá)式!(x+y)+z-1 if (ba ,if語(yǔ)句,if語(yǔ)句,下列條件語(yǔ)句中,功能與其他語(yǔ)句不同的是() A ) if (a) prinif(“%dn”,x); else printf (“%dn,y); B ) if(a=0) printf (“%dn”,y); else printf (“%dn,x); C ) if (a!=0) printf(“%dn”,x);

19、else printf (“%dn”,y ); D ) if (a=0) printf (“%dn,x); else prinif (“%dn”,y);,以下程序執(zhí)行后的輸出結(jié)果是_ main ( ) int p , a = 5 ; if (p = a != 0) printf (%dn,p); else prinf(%dn,p+2); ,if語(yǔ)句,以下程序運(yùn)行后的輸出結(jié)果是_ #include main() int a=1,b=3, c=5; if (c=a+b) printf(yesn); else printf(non); ,if語(yǔ)句,下列程序運(yùn)行后的輸出結(jié)果是( ) #include

20、main() int n=0, m=1, x=2; if(!n)x-=1; if(m)x-=2; if(x)x-=3; printf(%dn,x); ,if語(yǔ)句,若從健盤輸入 58 ,則以下程序運(yùn)行后的輸出結(jié)果是_ #include main() int a ; scanf(%d, ,if語(yǔ)句,下列程序運(yùn)行后的輸出結(jié)果是( ) #include main() int x=10,y=20,t=0; if(x=y) t=x;x=y;y=t; printf(%d,%dn,x,y); ,if語(yǔ)句,嵌套的if語(yǔ)句,下列程序運(yùn)行后的輸出結(jié)果是( ) #include main() int a=3,b=4,

21、c=5,d=2; if(ab) if(bc) printf(%d,d+1); else printf(%d,+d+1); printf(%dn,d); ,下列程序運(yùn)行后的輸出結(jié)果是( ) #include main() int a=5,b=4,c=3,d=2; if(abc) printf(%dn,d); else if(c-1=d)=1) printf(%dn,d+1); else printf(%dn,d+2); ,嵌套的if語(yǔ)句,下列程序運(yùn)行后的輸出結(jié)果是( ) #include main() int p=30; printf(%dn,(p/30?p/10:p%3); ,條件運(yùn)算符和條件

22、表達(dá)式,下列程序運(yùn)行后的輸出結(jié)果是( ) main() int w=4,x=3,y=2,z=1; printf(%dn,(wx?w:zy?z:x); ,條件運(yùn)算符和條件表達(dá)式,switch 語(yǔ)句,1 . switch 語(yǔ)句 switch 語(yǔ)句形式如下: switch (表達(dá)式) case 常量表達(dá)式 1 :語(yǔ)句1 case 常量表達(dá)式 2 :語(yǔ)句 2 case 常量表達(dá)式 n :語(yǔ)句 n default :語(yǔ)句 n+1 ,switch 語(yǔ)句,main() int g; printf (Enter a mark:); scanf (%d, ,當(dāng)執(zhí)行左邊程序,輸入一個(gè)85分的學(xué)生成績(jī)后,程序會(huì)輸出

23、( ),switch 語(yǔ)句,思考 讀入一個(gè)年份和月份,打印出該月有多少天(考慮閏年),用 switch 語(yǔ)句編程。提示:閏年的 2 月有 29 天,平年的 2 月有 28 天。 讀入一個(gè)年份和月份,輸出從1月1日到給定月末的總天數(shù)(考慮閏年),用 switch 語(yǔ)句編程。提示:閏年的 2 月有 29 天,平年的 2 月有 28 天。,#include main ( ) int x=1, y=0, a=0, b=0; switch(x) case 1: switch ( y ) case 0: a+;break; case 1: b+; break; case 2: a+;b+; break;

24、printf (%d%dn, a, b); return 0; ,以下程序運(yùn)行后的輸出結(jié)果是:,#include main ( ) int a=15, b=21, m=0; switch (a % 3) case 0: m+; break; case 1: m+; switch (b % 2) default : m+; case 0: m+; break; printf (%dn, m); ,以下程序運(yùn)行后的輸出結(jié)果是:,上節(jié)課主要內(nèi)容,while語(yǔ)句 do-while語(yǔ)句 for語(yǔ)句 break語(yǔ)句 continue語(yǔ)句 主要算法: 求一個(gè)數(shù)的因子、判斷一個(gè)數(shù)是否為素?cái)?shù),#include

25、main ( ) int i, m=0, n=0, k=0; for (i=9; i=11; i+) switch (i/10) case 0: m+; n+; break; case 10: n+; break; default: k+; n+; printf (%d%d%dn, m, n, k); ,以下程序運(yùn)行后的輸出結(jié)果是:,思考,編程找出2000以內(nèi)這樣的正整數(shù)N:它的不同值的因子(包括1和N在內(nèi))之和是一個(gè)素?cái)?shù)。例如,16,1+2+4+8+16=31,思考:求最大數(shù)和最小數(shù),隨機(jī)生成20個(gè)兩位整數(shù),找出其中的最大數(shù)和最小數(shù)。,上節(jié)課主要內(nèi)容,從一組數(shù)里找出最大數(shù)、最小數(shù)的算法(逐一

26、比較) 利用二分法和迭代法求方程的根(注意:不可將浮點(diǎn)變量用“=”或“!=”與任何數(shù)字比較 ),不可將浮點(diǎn)變量用“=”或“!=”與任何數(shù)字比較,如: main() float x; x=5.29-2.3*2.3; if(x=0) printf(x=0n); else printf(x!=0n); ,分析和解決較復(fù)雜問(wèn)題的方法,通常采用“自頂向下、逐步求精”的算法設(shè)計(jì)方法和分而治之的求解問(wèn)題思想進(jìn)行程序的設(shè)計(jì),并把其中功能相對(duì)獨(dú)立的處理定義成函數(shù)。這樣可以滿足“模塊化”設(shè)計(jì)要求,使程序的邏輯結(jié)構(gòu)清晰、易寫、易讀、易懂,并避免在程序中使用重復(fù)代碼。,已學(xué)的常用算法,累加、累乘 求一個(gè)數(shù)的因子 判斷

27、完數(shù) 判斷素?cái)?shù) 求最大公約數(shù)、最小公倍數(shù) 找出一組數(shù)里的最大數(shù)、最小數(shù) 二分法求方程的根 針對(duì)問(wèn)題中出現(xiàn)浮點(diǎn)數(shù)和零進(jìn)行等值比較的處理方法,練習(xí)考試系統(tǒng)中出現(xiàn)的問(wèn)題,條件運(yùn)算符:?: 邏輯運(yùn)算 switch語(yǔ)句(有break語(yǔ)句、無(wú)break語(yǔ)句的區(qū)別),上節(jié)課主要內(nèi)容,變量的作用域(變量能被讀寫訪問(wèn)的范圍):局部變量、全局變量 變量的生存期(從被分配存儲(chǔ)空間到釋放所占存儲(chǔ)空間的時(shí)間) 變量的存儲(chǔ)類型(相關(guān)的說(shuō)明符:auto、register、static、extern):靜態(tài)存儲(chǔ)、動(dòng)態(tài)存儲(chǔ),C中的內(nèi)存分配,程序區(qū),靜態(tài)存儲(chǔ)區(qū),棧,形參、自動(dòng)變量、函數(shù)調(diào)用的現(xiàn)場(chǎng)等,全局變量、 靜態(tài)變量,自由存儲(chǔ)

28、區(qū),molloc()申請(qǐng)的內(nèi)存,static說(shuō)明符,靜態(tài)局部變量(使變量具有記憶功能) 靜態(tài)全局變量:僅限于本編譯單位使用,不能被其它編譯單位所引用 靜態(tài)函數(shù):僅限于本編譯單位的其它函數(shù)調(diào)用它,而不允許其它編譯單位中的函數(shù)對(duì)它進(jìn)行調(diào)用。,extern說(shuō)明符,區(qū)分全局變量的定義和聲明 exter說(shuō)明符用于聲明全局變量 在同一編譯單位內(nèi)(全局變量的定義和聲明在同一個(gè)文件中)用extern說(shuō)明符來(lái)擴(kuò)展全局變量的作用域 在不同的編譯單位內(nèi)(全局變量的定義和聲明在不同文件中)用extern說(shuō)明符用來(lái)擴(kuò)展全局變量的作用域。,同名變量,如果在具有包含關(guān)系的作用域內(nèi)有同名變量,外層作用域的同名變量在內(nèi)層作用域

29、內(nèi)將被屏蔽。,以下敘述中正確的是_,A)局部變量說(shuō)明為 static 的存儲(chǔ)類,其生存期將得到延長(zhǎng) B)全局變量說(shuō)明為 Static 存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大 C)任何存儲(chǔ)類的變量在末賦初值時(shí),其值都是不確定的 D)形參可以使用的存儲(chǔ)類說(shuō)明符與局部變量完全相同,以下敘述中正確的是_,A)全局變量的作用域一定比局部變量的作用域范圍大 B)靜態(tài)( static)類別變量的生存期貫穿于整個(gè)程序運(yùn)行期間 C)函數(shù)的形參都屬于全局變量 D)未在定義語(yǔ)句中賦初值的auto變量和static變量的初值都是隨機(jī)值,上節(jié)課主要內(nèi)容(4.17第9周),一維數(shù)組的定義(數(shù)組應(yīng)先定義后使用)float f4; /定義

30、語(yǔ)句中的下標(biāo)表示數(shù)組元素的個(gè)數(shù)說(shuō)明:定義一個(gè)有4個(gè)浮點(diǎn)型數(shù)據(jù)的數(shù)組f,每個(gè)元素的初始值不確定,定義語(yǔ)句中的下標(biāo)只能是常量或常量表達(dá)式 一維數(shù)組的初始化(定義的時(shí)候賦初值) 給部分元素賦初始值 char c10=2,c,o,c;未賦初值的元素的初始值為_? 給全部元素賦初始值int a5=3,5,7,2,8或?qū)懗蒧? 當(dāng)所賦初值多于所定義數(shù)組的元素個(gè)數(shù)時(shí),將會(huì)怎樣?,上節(jié)課主要內(nèi)容(4.17第9周),一維數(shù)組的使用(使用數(shù)組里的元素)f3=3.4; /執(zhí)行語(yǔ)句中的下標(biāo)表示元素在數(shù)組中的位置第一個(gè)元素的下標(biāo)為0,最后一個(gè)元素的下標(biāo)為?不能對(duì)數(shù)組(除字符數(shù)組)進(jìn)行整體輸入或輸出,只能輸入或輸出數(shù)組元

31、素。,思考:,生成序列:1,1,2,3,5,8,13,21的前35項(xiàng),并以每行5個(gè)輸出,上節(jié)課主要內(nèi)容,排序算法(交換排序法、選擇排序法、直接插入排序法、冒泡排序法、冒泡排序法的改進(jìn)算法) 查找算法 可以把待排序的數(shù)想象成一排書的編號(hào),怎樣把他們按編號(hào)升序(或降序)擺放?怎樣從這一排書里找到指定編號(hào)的一本書? 二維數(shù)組的定義,數(shù)組方面的常見題型,求數(shù)組元素的最大值、最小值和平均值 把二維數(shù)組變?yōu)橐痪S數(shù)組 對(duì)數(shù)組元素排序 在數(shù)組中查找數(shù)據(jù) 移動(dòng)數(shù)組元素 數(shù)組元素分段存放 刪除數(shù)組中相同元素,思考,編程實(shí)現(xiàn)將整型數(shù)組a中的元素逆置(設(shè)數(shù)組a中有10個(gè)元素,元素值分別為:1、2、3、4、5、6、7、

32、8、9、10, 逆置后,元素值為10、9、8、7、6、5、4、3、2、1),思考,求nn方陣的轉(zhuǎn)置,思考:輸出如下形式的數(shù)組,排序,確定排序方式(升序還是降序) 確定排序算法(冒泡排序、選擇排序、插入排序) 分析待排序的數(shù)據(jù)(整型?字符串?),采用選擇排序法把一組數(shù)按升序排列(學(xué)習(xí)過(guò)程),整型數(shù): 如何找出(選擇出)n個(gè)數(shù)中的最小數(shù)?(用變量) 如何找出(選擇出)n個(gè)數(shù)中的最小數(shù)?(用數(shù)組) 如何把n個(gè)數(shù)中從下標(biāo)i開始到下標(biāo)(n-1)結(jié)束的(n-i)個(gè)元素的最小數(shù)調(diào)整到下標(biāo)i的位置? 如果把第3個(gè)操作從(i=0)到(i=n-2)做n-1次,將會(huì)得到什么結(jié)果? 如何用函數(shù)實(shí)現(xiàn)? 字符串:如果是n

33、個(gè)字符串怎么實(shí)現(xiàn)上述操作?,函數(shù),函數(shù)的形式參數(shù)和實(shí)際參數(shù)的區(qū)別與聯(lián)系,函數(shù)的兩種傳遞方式,值傳遞形參是變量,實(shí)參是常量、變量或數(shù)組元素 地址傳遞形參是數(shù)組,實(shí)參是數(shù)組名,上節(jié)課主要內(nèi)容,區(qū)分變量的地址和變量的內(nèi)容 區(qū)分間接尋址、直接尋址 指針的功能(為什么要引入指針?) 兩個(gè)重要的運(yùn)算符: 取地址運(yùn)算符 t=*p; *p=*q; *q=t; int main() int a=8,b=12; swap( ,任何語(yǔ)法都是為了描述 “ 解決問(wèn)題的方法和步驟 ” 的需要而制定的,上節(jié)課主要內(nèi)容,指針變量的賦值 指針與整數(shù)的加減運(yùn)算(一般用于訪問(wèn)數(shù)組元素) 兩指針變量相減(一般用于數(shù)組) 兩指針變量的

34、比較 通過(guò)指針引用一維數(shù)組的元素(數(shù)值、字符)P265,int a10=1,2,3,4,5,6,7,8,9,10; int *p=a; 引用下標(biāo)為i的元素的四種方法:,上節(jié)課主要內(nèi)容,示例:把一組數(shù)逆置(如何用指針實(shí)現(xiàn)?) main() int a10=1,2,3,4,5,6,7,8,9,10; int i=0,j=9; for(;ij;i+,j-) t=ai; ai=aj; aj=t; for(i=0;i10;i+) printf(%d ,ai); ,示例:把一組數(shù)逆置(如何用指針實(shí)現(xiàn)?) main() int a10=1,2,3,4,5,6,7,8,9,10; int i=0,j=9; f

35、or(;i10/2;i+) t=ai; ai=a9-i; a9-i=t; for(i=0;i10;i+) printf(%d ,ai); ,上節(jié)課主要內(nèi)容,示例:把一組數(shù)逆置(用指針實(shí)現(xiàn)) main() int a10=1,2,3,4,5,6,7,8,9,10; int *p= ,示例:把一組數(shù)逆置(用函數(shù)) main() #include void reverse(int *b,int n) int i,t; for(i=0;in/2;i+) t=bi;bi=bn-1-i;bn-1-i=t; main() int a10=1,2,3,4,5,6,7,8,9,10; int i; revers

36、e(a,10); for(i=0;i10;i+) printf(%d ,ai); ,以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。,void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s); 程序運(yùn)行后的輸出結(jié)果是_。,源代碼表達(dá)了解決問(wèn)題的思想、處理過(guò)程、操作方法及算法等,2007

37、秋筆試題,若在一個(gè)C語(yǔ)言源程序中“e1”和”e3”是表達(dá)式,”s;”是語(yǔ)句,則下列選項(xiàng)中與語(yǔ)句“for(e1;e3)s;”功能相同的語(yǔ)句是_A、e1;while(10) s;e3;B、e1;while(10)s;e3;C、e1;while(10)e3;s;D、while(10)e1;s;e3,2007秋筆試題,若有聲明“l(fā)ong fun(int *x, int n, long *s);int a4=1,2,3,4;long b,c;”,則以下函數(shù)調(diào)用形式中正確的是_.A. c=fun(a,4,b);B. c=fun(a,4,2008秋筆試題,若有聲明“double x=3,c,*a=,思考(填

38、空題):,請(qǐng)補(bǔ)充函數(shù)fun(char *s),該函數(shù)的功能是把字符串中的內(nèi)容逆置。例如:字符串中原有的字符串為abcde,則調(diào)用該函數(shù)后,串中的內(nèi)容為edcba。 注意:部分源程序給出如下 請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句,#include #include #define N 81 void fun(char *s) int i,n=strlen(s)-1; char t; for(i=0;in;i+, _1_) t=si; _2_; _3_; ,main() char aN; gets(a);puts(a); fun(a);

39、printf(n); puts(a); ,while(*srcstr !=0) P261 *dststr = *srcstr; srcstr+; dststr+; *dststr=0;,while(*dststr+ = *srcstr+ ) !=0); P 262,思考1:,編寫一個(gè)函數(shù)void fun(char *tt, int pp),統(tǒng)計(jì)在tt字符串中a到z26個(gè)字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。 例如,當(dāng)輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000,思考1 續(xù):,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句: 試題程序: #include void fun(char *tt, int pp) main() char aa50; int bb26,k; scanf(“%s”,aa); fun(aa,b

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論