北郵C語言復(fù)習(xí)題2014PPT課件_第1頁
北郵C語言復(fù)習(xí)題2014PPT課件_第2頁
北郵C語言復(fù)習(xí)題2014PPT課件_第3頁
北郵C語言復(fù)習(xí)題2014PPT課件_第4頁
北郵C語言復(fù)習(xí)題2014PPT課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、12021/7/24 C語句概述C程序源程序文件1源程序文件2源程序文件n預(yù)處理命令函數(shù)n函數(shù)1數(shù)據(jù)聲明函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語句2021/7/242 C+程序的編寫和實(shí)現(xiàn)源程序源程序(文本文件)(文本文件)*.C目標(biāo)文件目標(biāo)文件(二進(jìn)制文件)(二進(jìn)制文件)*.OBJ可執(zhí)行文件可執(zhí)行文件(二進(jìn)制文件)(二進(jìn)制文件)*.EXE庫文件庫文件(各種函數(shù))(各種函數(shù))有些編輯系統(tǒng),可直接從源程序編譯連接至可執(zhí)行程序,有些編輯系統(tǒng),可直接從源程序編譯連接至可執(zhí)行程序,F(xiàn)7編譯編譯連接連接compilelink2021/7/243 C語言的基本元素一、符號(hào)集(字符集)一、符號(hào)集(字符集)C語言使用的基

2、本符號(hào)共有如下五種: (1)大寫字母:A-Z (3)阿拉伯?dāng)?shù)字0-9(2)小寫字母a-z (4)下劃線:(5)標(biāo)點(diǎn)符號(hào)和運(yùn)算符2021/7/244 C C語言的基本元素語言的基本元素二、標(biāo)識(shí)符二、標(biāo)識(shí)符 用來標(biāo)記常量、變量、函數(shù)及文件名字的字符序列用來標(biāo)記常量、變量、函數(shù)及文件名字的字符序列 標(biāo)識(shí)符的構(gòu)成規(guī)則:標(biāo)識(shí)符的構(gòu)成規(guī)則: 以字母(大小寫都可以)或下劃線開頭以字母(大小寫都可以)或下劃線開頭 隨后可跟若干個(gè)(包括隨后可跟若干個(gè)(包括0 0個(gè))字母、數(shù)字、下劃線個(gè))字母、數(shù)字、下劃線 標(biāo)識(shí)符的長度各個(gè)系統(tǒng)不同,最好不要超過標(biāo)識(shí)符的長度各個(gè)系統(tǒng)不同,最好不要超過8 8個(gè)字符個(gè)字符 注意:區(qū)分

3、大小寫注意:區(qū)分大小寫, ,如:如:sumsum,SUMSUM是兩個(gè)不同的標(biāo)識(shí)符是兩個(gè)不同的標(biāo)識(shí)符2021/7/245C語言的基本元素三、關(guān)鍵字(p375)也稱“保留字” 它是c語言中具有特定含義、專門用作語言特定成分的一類標(biāo)識(shí)符 ANSI推薦的C語言的關(guān)鍵字是32個(gè)(Turbo c另擴(kuò)展了11個(gè)) 如:main、int、char、float、define等 注意:注意: 所有的關(guān)鍵字都有特定的含義不能用作它用 所有的關(guān)鍵字都必須小寫如: else 和ELSE 有不同含義else是關(guān)鍵字,ELSE可是用戶定義的標(biāo)識(shí)符62021/7/24 C的數(shù)據(jù)類型數(shù)據(jù)是操作的對(duì)象,數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)

4、形式(代碼、存儲(chǔ)、運(yùn)算)數(shù)據(jù)是操作的對(duì)象,數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式(代碼、存儲(chǔ)、運(yùn)算)C C語言提供了以下一些數(shù)據(jù)類型:語言提供了以下一些數(shù)據(jù)類型: 72021/7/24 4.1 C語句概述 n語句:語句:用來對(duì)數(shù)據(jù)進(jìn)行加工(完成操作任務(wù)),是構(gòu)成程序的基本單位用來對(duì)數(shù)據(jù)進(jìn)行加工(完成操作任務(wù)),是構(gòu)成程序的基本單位通常一個(gè)通常一個(gè)c c程序由若干函數(shù)(系統(tǒng),用戶)組成程序由若干函數(shù)(系統(tǒng),用戶)組成每個(gè)函數(shù)由若干條語句組成,每條語句總是以每個(gè)函數(shù)由若干條語句組成,每條語句總是以“;”結(jié)束。結(jié)束。nC C語句的分類:語句的分類: 簡單語句 分三大類 復(fù)合語句 空語句 表達(dá)式語句表達(dá)式語句

5、 函數(shù)調(diào)用語句函數(shù)調(diào)用語句 結(jié)構(gòu)控制語句結(jié)構(gòu)控制語句2021/7/248結(jié)構(gòu)控制語句結(jié)構(gòu)控制語句n 構(gòu)成循環(huán)的語句:構(gòu)成循環(huán)的語句: whilewhile語句實(shí)現(xiàn)循環(huán)語句實(shí)現(xiàn)循環(huán) do-whiledo-while語句實(shí)現(xiàn)循環(huán)語句實(shí)現(xiàn)循環(huán) for for 語句實(shí)現(xiàn)循環(huán)語句實(shí)現(xiàn)循環(huán) n breakbreak語句語句continuecontinue和語句和語句n條件判定條件判定 語句語句: : if if語句語句 switchswitch語句語句2021/7/249 學(xué)過的輸入輸出函數(shù) getchar() scanf() putchar(c) printf() Scanf()函數(shù)%c格式存在的問題及

6、解決辦法2021/7/2410 常用 格式輸入與輸出(一)格式輸出函數(shù)(一)格式輸出函數(shù) 作用:向顯示器(或系統(tǒng)隱含指定的輸出設(shè)備)輸出作用:向顯示器(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意若干個(gè)任意類型類型的數(shù)據(jù)。的數(shù)據(jù)。 一般格式:一般格式:printfprintf(格式控制符,輸出項(xiàng)列表)(格式控制符,輸出項(xiàng)列表)雙引號(hào)括起來雙引號(hào)括起來的字符串的字符串要輸出的內(nèi)容(常量、要輸出的內(nèi)容(常量、變量、表達(dá)式等)變量、表達(dá)式等)#includevoid main()int i=5;float f=32.345;printf(“i=%3df=%5.1fn”,i,f);printf(“End.

7、n”);格式控制字符串:格式控制字符串:i=%3d f=%5.1f引導(dǎo)符寬度小數(shù)位數(shù)精度類型符結(jié)果:i= 5 f= 32.3 End.2021/7/24114.5 格式輸入與輸出 格式控制符完整格式:% 0 m.n l/h 格式字符指定輸出的數(shù)據(jù)l類型輸出長度的修正制定輸出域?qū)挾群途戎付瘴惶?指定左對(duì)齊輸出格式說明的引導(dǎo)符號(hào)2021/7/2412 4.5 格式輸入與輸出 %u%u: :以無符號(hào)十進(jìn)制形式輸出整數(shù)以無符號(hào)十進(jìn)制形式輸出整數(shù)%c%c: :以字符形式輸出,輸出一個(gè)字符以字符形式輸出,輸出一個(gè)字符%s%s: :輸出一字符串輸出一字符串%f%f: :以小數(shù)形式輸出實(shí)數(shù),隱含輸出六位小

8、數(shù)以小數(shù)形式輸出實(shí)數(shù),隱含輸出六位小數(shù)%e%e: :以指數(shù)形式輸出實(shí)數(shù)以指數(shù)形式輸出實(shí)數(shù)%g%g: :自動(dòng)選用自動(dòng)選用%f%f或或%e%e格式中輸出寬度較短的一種格式,不輸格式中輸出寬度較短的一種格式,不輸 出無意義的出無意義的0 0%:輸出:輸出% %格式字符格式字符:指定輸出項(xiàng)的數(shù)據(jù)類型和輸出的格式指定輸出項(xiàng)的數(shù)據(jù)類型和輸出的格式%d%d: :以帶符號(hào)的十進(jìn)制形式輸出整數(shù)以帶符號(hào)的十進(jìn)制形式輸出整數(shù)%o%o: :以八進(jìn)制無符號(hào)形式輸出整數(shù)以八進(jìn)制無符號(hào)形式輸出整數(shù)%x%x: :以十六進(jìn)制無符號(hào)形式輸出整數(shù)以十六進(jìn)制無符號(hào)形式輸出整數(shù)2021/7/2413 格式輸入與輸出 格式輸入函數(shù) 作用

9、:按照格式控制符的要求將數(shù)據(jù)從終端傳送到變量地址所指的內(nèi)存空間。 一般格式:scanf(格式控制,變量地址表列)1.1.變量地址變量地址 變量的地址通過對(duì)變量名變量的地址通過對(duì)變量名“求地址求地址”運(yùn)算得到運(yùn)算得到 形式:形式:& &變量名變量名同同printf函數(shù)函數(shù)是由若干個(gè)地址組成的表列,可以是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址是變量的地址,或字符串的首地址2021/7/2414 4.5 格式輸入與輸出 2.格式控制符:% % * * m l/h m l/h 格式字符格式字符輸入的數(shù)據(jù)類型和格式長度修正說明符(了解,不要求)域?qū)捳f明符(了解,不要求

10、)附加說明符(了解,不要求)格式說明的起始符號(hào)2021/7/2415 格式輸入與輸出例: #include#includeint main()int main() int aint a;float b,c;float b,c; printf printf(”input ainput a,b b,c c:”);); scanf(“%d%f%f”,&a,&b,&c);scanf(“%d%f%f”,&a,&b,&c); printf(“a=%d,b=%f,c=%fn”,a,b,c); printf(“a=%d,b=%f,c=%fn”,a,b,c); 結(jié)

11、果:input a,b,c:12 3 4a=12,b=3.000000,c=4.000000n輸入數(shù)據(jù)分隔符:輸入數(shù)據(jù)分隔符:n采用隱含的分隔符:空格、回車鍵、Tab鍵n根據(jù)格式中指定的域?qū)挿指魯?shù)據(jù)項(xiàng)(不提倡)如如“”,只取列;,只取列;n采用用戶指定的分隔符(不提倡),如逗號(hào)scanf(“%3d%2f%2f”,&a,&b,&c);scanf(“%d,%f,%f”,&a,&b,&c);輸入:輸入:12,3,42021/7/2416 數(shù)組 函數(shù) 指針 排序算法2021/7/2417指針指針指針的定義指針運(yùn)算符指針的運(yùn)算指針的應(yīng)用間接地址運(yùn)算 *取地

12、址運(yùn)算符 &指針加減整數(shù)指針間的減指針間的關(guān)系運(yùn)算指針的賦值運(yùn)算指針與數(shù)據(jù)指針與函數(shù)指針對(duì)一維數(shù)組的引用指針對(duì)一維數(shù)組的引用指針對(duì)字符串的引用指針數(shù)組數(shù)組指針指針函數(shù)函數(shù)指針指針作為函數(shù)參數(shù)2021/7/2418應(yīng)用題192021/7/24 例例6.106.10 譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)人再按約定的規(guī)律將其譯回原文。人再按約定的規(guī)律將其譯回原文。 思路:思路:可以按以下規(guī)律將電文變成密碼: 將字母將字母A A變成字母變成字母E E,a a變成變成e e,即變成其后的第,即變成其后的第4 4個(gè)字母,個(gè)

13、字母,W W變成變成A A,X X變變成成B B,Y Y變成變成C C,Z Z變成變成D D。 1F202021/7/24例6.10輸入一行字符,要求輸出其相應(yīng)的密碼include include void main() void main()char c;char c; while(c=getchar()!=n) while(c=getchar()!=n) if(c=a& c=A& c=a& c=A& cZ& cz) c=c-26; if(cZ& cz) c=c-26; printf(%cn printf(%cn,c);c); 1001nnn運(yùn)

14、行結(jié)果:運(yùn)行結(jié)果: China! Glmre! 2021/7/2421/編寫計(jì)算器程序,/主要練習(xí)多條件分支語句if.else/和switch(又稱開關(guān)語句) #include #include main()int data1,data2,i;char op,op1=Y;for(i=1;i3;i+)printf( 請(qǐng)輸入;);scanf(%d%c%d,&data1,&op,&data2);if(op=+)printf(%d%c%d=%dn,data1,op,data2,data1+data2);else if(op=-) printf(%d%c%d=%dn,data1,

15、op,data2,data1-data2); if(op=/) printf(%d%c%d=%dn,data1,op,data2,data1/data2); if(op=*) printf(%d%c%d=%dn,data1,op,data2,data1*data2);/printf(是否結(jié)束?請(qǐng)輸入Y或N:);/scanf( %c,&op1); system(pause);2021/7/2422方法二/編寫計(jì)算器程序,/主要練習(xí)多條件分支語句if.else/和switch(又稱開關(guān)語句) #include #include main()int data1,data2;char op,o

16、p1=y;doprintf( 請(qǐng)輸入;);scanf(%d%c%d,&data1,&op,&data2);switch(op)case +:printf(%d%c%d=%dn,data1,op,data2,data1+data2);break;case -:printf(%d%c%d=%dn,data1,op,data2,data1-data2);break;case /:printf(%d%c%d=%dn,data1,op,data2,data1/data2);break;case *:printf(%d%c%d=%dn,data1,op,data2,data1*da

17、ta2);break;default:; printf(是否繼續(xù)輸入y/n); scanf( %c,&op1);while(op1=y|op1=Y); system(pause);2021/7/24231.結(jié)構(gòu)體的應(yīng)用題 有一個(gè)結(jié)構(gòu)體變量有一個(gè)結(jié)構(gòu)體變量stu,內(nèi)含學(xué)生學(xué)號(hào)、姓名和,內(nèi)含學(xué)生學(xué)號(hào)、姓名和3門門課程的成績。要求在課程的成績。要求在main函數(shù)中賦予值,在函數(shù)中賦予值,在另一函數(shù)另一函數(shù)print中將它們輸出。今用結(jié)構(gòu)體變中將它們輸出。今用結(jié)構(gòu)體變量作函數(shù)參數(shù)。量作函數(shù)參數(shù)。 2021/7/2424 #include #include define FORMAT “%dn%

18、sn%fn%fn%fn” struct student int num; char name20; float score3;void main()void print(struct student); struct student stu; /*聲明結(jié)構(gòu)體變量聲明結(jié)構(gòu)體變量*/ stu.num=12345; strcpy(,LiLin); stu.score0=67.5;stu.score1=89;stu.score2=78.6; print(stu);void print(struct student stu) printf(FORMAT,stu.num,,

19、 stu.score0, stu.score1,stu.score2);); printf(n););運(yùn)行結(jié)果:運(yùn)行結(jié)果: 67.50000089.00000078.599998方法一:用結(jié)構(gòu)體變量作參數(shù)2021/7/2425方法2 將上題改用指向結(jié)構(gòu)體變量的指針作實(shí)參。 #include define FORMAT “%dn%sn%fn%fn%fn”;struct student int num; char name20; float score3;stu=12345, LiLi,67.5,89,78.6;void main()void print(struct student *); pr

20、int(&stu); /*實(shí)參改為stu的起始地址*/void print(struct student *p) /*形參類型修改成指向結(jié)構(gòu)體的指針變量*/ printf(FORMAT,p-num,p-name, p-score0,p-score1,p-score2); /*用指針變量調(diào)用各成員的值*/ printf(”n”);2021/7/2426指針數(shù)組應(yīng)用題指針數(shù)組應(yīng)用題:將若干字符串按字母順序(由小到大)輸出。將若干字符串按字母順序(由小到大)輸出。#include #include void main()void sort(char *name,int n); void pr

21、intf(char *name,int n); char *name=Follow me,BASIC,Great Wall,F(xiàn)ORTRAN,Computer design; int ;sort(name,); print(name,);2021/7/2427void sort (char *name , int n)char *; int ,; for (;-;); for(;) if(strcmp(name,name) 0)=; if (!) temp=namei; namei=namek; namek=temp; void print(char *name ,int ) ; (;) pri

22、ntf(,); 運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:Computer designFORTRANFollow meGreat Wall2021/7/2428指針函數(shù)應(yīng)用題指針函數(shù)應(yīng)用題 有若干個(gè)學(xué)生的成績(每個(gè)學(xué)生有門課程),要求有若干個(gè)學(xué)生的成績(每個(gè)學(xué)生有門課程),要求在用戶輸入學(xué)生序號(hào)以后,能輸出該學(xué)生的全部成績。在用戶輸入學(xué)生序號(hào)以后,能輸出該學(xué)生的全部成績。用指針函數(shù)來實(shí)現(xiàn)。用指針函數(shù)來實(shí)現(xiàn)。 2021/7/2429#include void main() float score 4=60,70,80,90,56,89,67,88,34,78,90,66; float *search(float

23、 (*pointer)4,int n); /*定義指針函數(shù)*/ float *p; int i,m; printf(enter the number of student:); scanf(%d,&m); printf(The scores of No.%d are:n,m); p=search(score,m); for(i=0;i4;i+) printf(%5.2ft,*(p+i); printf(n); float *search(float (*pointer)4,int n) /*返回指針的函數(shù)*/ float *pt; pt=*(pointer+n); /*指向第n行第0列

24、元素, return(pt);運(yùn)行情況如下:運(yùn)行情況如下:enter the number of student:The scores of No. are:56.00 89.00 67.00 88.002021/7/2430 數(shù)組的應(yīng)用:輸入10個(gè)學(xué)生的成績,求平均成績,并將低于平均成績的分?jǐn)?shù)打印出來。#include #include void readdata(float score10) /輸入10個(gè)學(xué)生的成績 coutPlease input 10 students score:endl; for(int i=0;i10;i+) sacnf(“%f”,&scorei); re

25、turn; 2021/7/2431float aver(float score10) /求平均成績 float sum=0; int i; for(i=0;i10;i+) sum+=scorei; return(sum/10); void print(float score10,float ave) /打印低于平均成績的分?jǐn)?shù)。int i; coutthe scores which are below the average:; for(i=0;i10;i+) if(scoreiave) printf(“%f”,scorei); return; 2021/7/2432 void main() v

26、oid readdata ( float score10); /聲明輸入10個(gè)學(xué)生的成績 float aver(float score10); /聲明求平均成績 void print(float score10,float ave); /聲明打印 float ave,score10; readdata(score); ave=aver(score); /返回值給ave /平均值 coutaverage=aveendl; print(score,ave); 2021/7/24332.2.枚舉類型的應(yīng)用題枚舉類型的應(yīng)用題#include enum cityShanghai,Beijing,Nanj

27、ing,Tianjin=5,Guangzhou;void ff(enum city x) switch(x) case 0: printf(Shanghain); break; case 1: printf(Beijingn); break; case 2: printf(Nanjingn); break; case 5: printf(Tianjinn); break; case 6: printf(Guangzhoun); break; default: printf(非法城市 !n); 2021/7/2434int main() enum city c1,c2,c3,c4; int i=

28、7; c1=(enum city)i; /不能:c1=i; c2=Nanjing; c3=(enum city)5; c4=Shanghai; /枚舉變量的賦值:只能為列舉元素之一 ff(c1); ff(c2); ff(c3); ff(c4); printf(%d %d %d %d ,c1,c2,c3,c4); i=Shanghai; printf(%d,i); system(pause);/* 執(zhí)行結(jié)果:非法城市 ! Nanjing Tianjing Shanghai 7 2 5 0 */ 2021/7/2435投骰子游戲 #include #include /投骰子、計(jì)算和數(shù)、輸出和數(shù) int rollDice() i

溫馨提示

  • 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. 人人文庫網(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)論