![C語(yǔ)言程序設(shè)計(jì)案例教程課件_第1頁(yè)](http://file4.renrendoc.com/view/6eae1b398119141ae6c90fa33cba44ad/6eae1b398119141ae6c90fa33cba44ad1.gif)
![C語(yǔ)言程序設(shè)計(jì)案例教程課件_第2頁(yè)](http://file4.renrendoc.com/view/6eae1b398119141ae6c90fa33cba44ad/6eae1b398119141ae6c90fa33cba44ad2.gif)
![C語(yǔ)言程序設(shè)計(jì)案例教程課件_第3頁(yè)](http://file4.renrendoc.com/view/6eae1b398119141ae6c90fa33cba44ad/6eae1b398119141ae6c90fa33cba44ad3.gif)
![C語(yǔ)言程序設(shè)計(jì)案例教程課件_第4頁(yè)](http://file4.renrendoc.com/view/6eae1b398119141ae6c90fa33cba44ad/6eae1b398119141ae6c90fa33cba44ad4.gif)
![C語(yǔ)言程序設(shè)計(jì)案例教程課件_第5頁(yè)](http://file4.renrendoc.com/view/6eae1b398119141ae6c90fa33cba44ad/6eae1b398119141ae6c90fa33cba44ad5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1高級(jí)語(yǔ)言程序設(shè)計(jì)第1頁(yè),共235頁(yè)。第1章 C語(yǔ)言基礎(chǔ)知識(shí)1.3 數(shù)據(jù)類型、常量、變量、輸入輸出與基本運(yùn)算 1.2 C程序的基本結(jié)構(gòu)和運(yùn)行過程 1.1 計(jì)算機(jī)與程序設(shè)計(jì)語(yǔ)言1.4 標(biāo)準(zhǔn)函數(shù)和EasyX庫(kù)函數(shù) 第2頁(yè),共235頁(yè)。1.1 計(jì)算機(jī)與程序設(shè)計(jì)語(yǔ)言計(jì)算機(jī)系統(tǒng)的基本組成包括計(jì)算機(jī)硬件和計(jì)算機(jī)軟件。硬件指構(gòu)成計(jì)算機(jī)系統(tǒng)的元器件、部件和設(shè)備,其中包括運(yùn)算器、控制器、存儲(chǔ)器、輸入和輸出設(shè)備,運(yùn)算器和控制器是計(jì)算機(jī)的核心部分,人們將它們稱為中央處理器(CPU)。軟件是用戶操縱計(jì)算機(jī)的接口界面,通常,按照應(yīng)用層次可以將軟件劃分成系統(tǒng)軟件、支撐軟件和應(yīng)用軟件三個(gè)層次。 第3頁(yè),共235頁(yè)。程序設(shè)計(jì)
2、程序設(shè)計(jì)是指設(shè)計(jì)、編寫和調(diào)試程序的方法與過程,大致經(jīng)歷了以下幾個(gè)階段。1)面向計(jì)算機(jī)的程序設(shè)計(jì)2)面向過程的程序設(shè)計(jì)3)面向?qū)ο蟮某绦蛟O(shè)計(jì)第4頁(yè),共235頁(yè)。程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是用于編寫計(jì)算機(jī)程序的語(yǔ)言。按照語(yǔ)言級(jí)別可以將它分為兩個(gè)類別:低級(jí)語(yǔ)言和高級(jí)語(yǔ)言。低級(jí)語(yǔ)言是一種與特定計(jì)算機(jī)體系結(jié)構(gòu)密切相關(guān)的程序設(shè)計(jì)語(yǔ)言,主要包括機(jī)器語(yǔ)言和匯編語(yǔ)言。 高級(jí)語(yǔ)言是一類采用接近數(shù)學(xué)語(yǔ)言,并力求與具體機(jī)器無(wú)關(guān)的程序設(shè)計(jì)語(yǔ)言形式,它具有描述能力強(qiáng),便于閱讀理解,易于修改維護(hù)等特點(diǎn)。C語(yǔ)言支持結(jié)構(gòu)化程序設(shè)計(jì),C+語(yǔ)言和Java語(yǔ)言支持面向?qū)ο蟪绦蛟O(shè)計(jì)。第5頁(yè),共235頁(yè)。6CC+Java010010010
3、0110110 1000001110011010 00110001計(jì)算機(jī)程序員機(jī)器語(yǔ)言編譯器程序設(shè)計(jì)語(yǔ)言第6頁(yè),共235頁(yè)。C語(yǔ)言發(fā)展過程及特點(diǎn) C語(yǔ)言是應(yīng)用最廣的一種高級(jí)程序設(shè)計(jì)語(yǔ)言,由美國(guó)貝爾實(shí)驗(yàn)室的D. Ritchie設(shè)計(jì),最早用于書寫UNIX操作系統(tǒng)。C語(yǔ)言本身比較簡(jiǎn)單,具有簡(jiǎn)明的數(shù)據(jù)定義和流程控制機(jī)制。它提供的函數(shù)機(jī)制用于描述程序模塊,使得開發(fā)者可以通過模塊的組合來(lái)構(gòu)造結(jié)構(gòu)化的復(fù)雜程序,并且允許軟件系統(tǒng)不同程序模塊的分別開發(fā)。同時(shí),C語(yǔ)言支持底層程序設(shè)計(jì)。利用C語(yǔ)言提供的指針等功能,可以面向計(jì)算機(jī)硬件,直接描述內(nèi)存單元的地址運(yùn)算和二進(jìn)制運(yùn)算,從而編制出高性能的計(jì)算程序和控制程序。第7
4、頁(yè),共235頁(yè)。1.2 C程序的基本結(jié)構(gòu)和運(yùn)行過程 C程序是由若干個(gè)函數(shù)組成的,每個(gè)函數(shù)用于描述一項(xiàng)操作的具體實(shí)現(xiàn)過程。任何一個(gè)完整的C程序都必須有且僅有一個(gè)名為main的主函數(shù)。 當(dāng)程序運(yùn)行后,系統(tǒng)將率先自動(dòng)調(diào)用主函數(shù)。第8頁(yè),共235頁(yè)。例1:文本行的輸出#include main( ) printf(“nThis is a C program.”);主函數(shù)(程序入口)標(biāo)準(zhǔn)函數(shù)(用于輸出)頭文件字符串換行符第9頁(yè),共235頁(yè)。例2:計(jì)算1100的整數(shù)和 #include main() int i, sum; sum = 0; for (i=1; i=100; i+) /*循環(huán)*/ sum
5、= sum+i; printf(n1+2+3+.+99+100=%d, sum); 說明變量 i,sum 是整數(shù)類型賦值輸出格式控制注釋第10頁(yè),共235頁(yè)。例3:通過鍵盤輸入兩個(gè)整數(shù),輸出其中較大的整數(shù) # include int maxValue(int x, int y) int max; if (xy) max=x; else max=y; return max; main( ) int x, y, z; printf(Enter 2 integers:); scanf(%d%d, &x, &y); z = maxValue(x,y); printf(The larger value
6、is %d.,z); 第11頁(yè),共235頁(yè)。運(yùn)行C程序的基本過程第12頁(yè),共235頁(yè)。Visual Studio 2010集成環(huán)境1、用戶界面 第13頁(yè),共235頁(yè)。2、創(chuàng)建工程 第14頁(yè),共235頁(yè)。 3、創(chuàng)建文件 第15頁(yè),共235頁(yè)。4、編譯、連接和運(yùn)行 第16頁(yè),共235頁(yè)。5、運(yùn)行界面第17頁(yè),共235頁(yè)。Dev-C+集成環(huán)境1、用戶界面 第18頁(yè),共235頁(yè)。2、創(chuàng)建一個(gè)新文件或打開一個(gè)已經(jīng)存在的C源文件第19頁(yè),共235頁(yè)。3、編譯、運(yùn)行 第20頁(yè),共235頁(yè)。4、運(yùn)行界面第21頁(yè),共235頁(yè)。1.3 數(shù)據(jù)類型、常量、變量、輸入輸出與基本運(yùn)算 基本數(shù)據(jù)類型與數(shù)據(jù)的表示 1、整型:
7、整型指不帶小數(shù)點(diǎn)的數(shù)據(jù)類型。例如,123、-89、0。常用的整型是基本整型int。對(duì)于32位系統(tǒng),int類型的數(shù)據(jù)用4字節(jié)(32位二進(jìn)制位)表示,字節(jié)(32位二進(jìn)制位)表示,包括1位符號(hào),有效位數(shù)為31位,取值范圍為-21474836482147483647。第22頁(yè),共235頁(yè)。2、實(shí)型 實(shí)型是指帶小數(shù)點(diǎn)的數(shù)據(jù)類型。例如,78.34、0.0、-765.2、76.0。在C語(yǔ)言中,常用的實(shí)型是雙精度型,用double表示。double類型的數(shù)據(jù)用8字節(jié)(64位二進(jìn)制位)表示,包括1位符號(hào),11位指數(shù)和52位尾數(shù), 取值范圍為 -1.79769313486232E3081.797693134862
8、32E308。第23頁(yè),共235頁(yè)。3、字符型字符型是指其值僅含有一個(gè)字符的數(shù)據(jù)類型。在C語(yǔ)言中,字符類型的名稱是char,字符值用一對(duì)單引號(hào)括起來(lái),并且每個(gè)字符對(duì)應(yīng)一個(gè)ASCII編碼,用1個(gè)字節(jié)(8位二進(jìn)制位)表示。例如,0、B、#對(duì)應(yīng)的ASCII編碼分別為48、66和35。 第24頁(yè),共235頁(yè)。常量 常量是指在程序運(yùn)行過程中始終不發(fā)生變化的量。 1、整型常量 在C語(yǔ)言中,整型常量常用十進(jìn)制形式。例如,120、3270、-987、2、實(shí)型常量 在C語(yǔ)言中提供了兩種實(shí)型常量的書寫形式。一種是十進(jìn)制小數(shù)形式,一種是指數(shù)形式。十進(jìn)制小數(shù)形式 :123.45、509.0、-0.98、0.0指數(shù)形式
9、:1.87E+10表示1.871010第25頁(yè),共235頁(yè)。3、字符常量 字符常量由一對(duì)單引號(hào)()括起來(lái),其內(nèi)部存儲(chǔ)表示是相應(yīng)字符的ASCII編碼。普通字符:例如:P、9 轉(zhuǎn)義符是指用一個(gè)反斜杠()后跟一個(gè)特定字符或一個(gè)八進(jìn)制或十六進(jìn)制數(shù)值表示的字符。例如:n, 101 4、字符串常量 字符串常量用一對(duì)雙引號(hào)()括起來(lái)。例如:This is a C program. 、3871 和 K 都是字符串常量 。第26頁(yè),共235頁(yè)。變量變量是指其值可以改變的量,每個(gè)變量代表了不同的存儲(chǔ)單元。C語(yǔ)言規(guī)定:程序中的每一個(gè)變量,必須先定義后使用定義變量的語(yǔ)法格式為: ,.;例如:int count;C語(yǔ)言
10、規(guī)定:變量名用標(biāo)識(shí)符表示。標(biāo)識(shí)符是由字母、數(shù)字和下劃線(_)組成的字符序列,其中第1個(gè)字符必須是字母,字母需要區(qū)分大小寫。第27頁(yè),共235頁(yè)。變量的賦值變量定義之后并沒有一個(gè)確切的初始值,變量賦值就是將變量所屬數(shù)據(jù)類型的某個(gè)數(shù)值(介于取值范圍之中)放入系統(tǒng)為這個(gè)變量分配的存儲(chǔ)空間中的操作。在定義變量的同時(shí)為變量賦予一個(gè)初始值。 = ; 例如:int data = 100;通過賦值操作為變量賦值。 = 例如: x = 64;第28頁(yè),共235頁(yè)。例4:根據(jù)圓半徑,計(jì)算圓的面積和周長(zhǎng)。 #include main( ) double radius, area, perimeter; radius
11、 = 20; area = radius*radius*3.14159; perimeter = 2*radius*3.14159; printf(The radius of the circle is %lfn, radius); printf(The area of the circle is %lfn, area); printf(The perimeter of the circle is %lfn, perimeter); 第29頁(yè),共235頁(yè)。基本的輸入輸出 1、字符的非格式化輸入 getchar( ) 基本執(zhí)行過程為:等待用戶從標(biāo)準(zhǔn)輸入設(shè)備鍵盤輸入一個(gè)字符。如果輸入成功,函數(shù)返回
12、這個(gè)字符的ASCII編碼。 例如: char ch; ch = getchar( );2、字符的非格式化輸出 putchar( ) putchar(ch),輸出參數(shù)ch代表的字符 。第30頁(yè),共235頁(yè)。例5:通過鍵盤輸入兩個(gè)字符,分別在兩行上顯示這兩個(gè)字符,每行顯示2次。 #include main( ) char ch; /* 定義變量ch */ ch = getchar(); /* 從鍵盤讀取一個(gè)字符 */ putchar(ch); /* 在屏幕上顯示2次輸入的字符 */ putchar(ch); putchar(n); /* 在屏幕上顯示換行 */ ch = getchar();/*
13、從鍵盤讀取下一個(gè)字符 */ putchar(ch); /* 繼續(xù)在屏幕上顯示2次輸入的字符 */ putchar(ch); putchar(n); /* 在屏幕上顯示換行 */第31頁(yè),共235頁(yè)。3、格式化輸入 scanf( )scanf(,. );例如:scanf(“%d%d%f%f”, &x, &y, &f1, &f2); 常用的格式控制說明符由“%”后跟一個(gè)特定字符或字符序列組成“%d”表示這個(gè)位置應(yīng)該輸入一個(gè)十進(jìn)制整型數(shù)值;“%c”表示這個(gè)位置應(yīng)該輸入一個(gè)字符;“%f”表示這個(gè)位置應(yīng)該輸入一個(gè)實(shí)型數(shù)值,“%ld”表示這個(gè)位置應(yīng)該輸入一個(gè)長(zhǎng)整型數(shù)值是準(zhǔn)備用來(lái)存放輸入數(shù)據(jù)的變量地址。例如
14、,&a、&value分別表示變量a、value的存儲(chǔ)地址第32頁(yè),共235頁(yè)。例6:將輸入的角度轉(zhuǎn)換成弧度。 #include main( ) int degree; double radian; printf(Enter degree:); scanf(%d, °ree); radian = 3.14159*degree/180; printf(%d degrees equal to %lf radians., degree, radian);第33頁(yè),共235頁(yè)。4、格式化輸出 printf( ) printf(,.);例如: printf(“This value is %dn”,
15、x);的含義與scanf( ) 函數(shù)相同。但在這里,還可以包含一些直接顯示的字符串。printf( )函數(shù)的基本功能是將每個(gè)表達(dá)式的結(jié)果按照格式控制說明符的規(guī)則顯示到標(biāo)準(zhǔn)輸出設(shè)備顯示器上。格式控制說明符需要與將要輸出的表達(dá)式一一對(duì)應(yīng)。第34頁(yè),共235頁(yè)。在很多情況下,人們希望能夠更加準(zhǔn)確地控制每個(gè)數(shù)值輸出時(shí)所占據(jù)的列數(shù),為此,C語(yǔ)言提供了相應(yīng)的功能。其格式為:%m 和 %m.n m表示數(shù)值輸出時(shí)在屏幕上占據(jù)的列數(shù),又稱為場(chǎng)寬,n表示輸出實(shí)型數(shù)值時(shí)小數(shù)點(diǎn)后的位數(shù)例如: int a = 365; char c = Z; double e = 7865.298; printf(%6d%3c%12.
16、6lf, a, c, e);第35頁(yè),共235頁(yè)。算術(shù)運(yùn)算符加(+)、減(-)、乘(*)、除(/)、取余(%)注意:* 不能省略% (求余) 運(yùn)算對(duì)象只能是整型整型整型 相當(dāng)于取整,一個(gè)為實(shí)型即為除法C語(yǔ)言允許char類型的變量或常量參與各種算術(shù)運(yùn)算,但在運(yùn)算時(shí),它將被看成一個(gè)整型數(shù)值,其值為字符對(duì)應(yīng)的ASCII編碼。例如:A+32等于用大寫字符A的ASCII編碼65與32相加結(jié)果為97 第36頁(yè),共235頁(yè)。37/ 兩個(gè)整數(shù)相除,結(jié)果仍為整數(shù) 5 / 2 的結(jié)果為 2 5.0 / 2 的結(jié)果為 2.5 % 求余運(yùn)算 判奇偶時(shí)用此運(yùn)算符5 % 3 的結(jié)果為 2 3 % 5 的結(jié)果為 3第37頁(yè)
17、,共235頁(yè)。#include main( ) int d1, d2, d3, d4, value; printf(Enter 4 characters:); d1 = getchar()-0; /* 輸入數(shù)字字符,并轉(zhuǎn)換為個(gè)位數(shù) */ d2 = getchar()-0; d3 = getchar()-0; d4 = getchar()-0; value = d1*1000 + d2*100 + d3*10 + d4; printf(The value is %dn, value); /* 輸出結(jié)果 */例7:將連續(xù)輸入的4個(gè)數(shù)字字符拼成一個(gè)int類型的數(shù)值。第38頁(yè),共235頁(yè)。自增、自減運(yùn)
18、算符 + -+ - 可以實(shí)現(xiàn)變量的加1、減1操作。這兩個(gè)運(yùn)算符既可以置于變量的前面,也可以置于變量的后面。也就是說,+i、-i、i+、i-、 都是正確的書寫形式,它們的區(qū)別只有在表達(dá)式中才能夠顯現(xiàn)出來(lái)。a = 10; b = +a; 表達(dá)式的值取修改后的值 a 為 11 ,b為11a=10; b=a+; 表達(dá)式的值取修改前的值 a 為 11 ,b為10第39頁(yè),共235頁(yè)。算術(shù)表達(dá)式算術(shù)表達(dá)式是指僅包含算術(shù)運(yùn)算符或自加(+)、自減(-)運(yùn)算符的表達(dá)式。算術(shù)表達(dá)式的結(jié)果一定是數(shù)值類型的,即整型或?qū)嵭?C語(yǔ)言規(guī)定,在書寫表達(dá)式時(shí),應(yīng)該遵循下列規(guī)則:(1)所有內(nèi)容都必須寫在一行上,例如:必須寫成7/
19、8(2)在表達(dá)式中只允許使用圓括號(hào)。為了確保表達(dá)式中的每個(gè)運(yùn)算符能夠按照所期望的順序進(jìn)行計(jì)算,應(yīng)該適當(dāng)?shù)靥砑永ㄌ?hào)。(3)表達(dá)式中的乘號(hào)(*)不允許省略,例如:(a+1)(a-1) 必須寫成 (a+1)*(a-2)第40頁(yè),共235頁(yè)。C語(yǔ)言提供了大量標(biāo)準(zhǔn)函數(shù),包括前面介紹過的getchar、putchar、printf、scanf等輸入/輸出函數(shù),也包括各種數(shù)學(xué)計(jì)算函數(shù)。1.4 標(biāo)準(zhǔn)函數(shù)和EasyX庫(kù)函數(shù)第41頁(yè),共235頁(yè)。數(shù)學(xué)標(biāo)準(zhǔn)函數(shù)函數(shù)原型功能描述int abs(int x);返回int型x的絕對(duì)值double fabs(double x);返回double型x的絕對(duì)值double si
20、n(double x);返回x的正弦,x是弧度double cos(double x);返回x的余弦,x是弧度double tan(double x);返回x的正切,x是弧度double exp(double x);返回exdouble pow(double x,double y);返回xydouble sqrt(double x);返回x的開平方double floor(double x);返回小于x的最大整數(shù)double ceil(double x);返回大于x的最小整數(shù)第42頁(yè),共235頁(yè)。#include #include /*引入數(shù)學(xué)函數(shù)的聲明 */main( )int a, b,
21、c;double S, A, B, AB;printf(輸入兩個(gè)角度和一個(gè)邊長(zhǎng):);scanf(%d%d%d, &a, &b, &c); /* 輸入兩個(gè)角和一條邊*/A = 3.14159*a/180;/* 轉(zhuǎn)換為弧度 */B = 3.14159*b/180;AB = 3.14159*(a+b)/180;S = c*c*sin(A)*sin(B)/sin(AB)/2;/* 計(jì)算三角形面積 */printf(nS=%lfn, S);例8:三角形面積的計(jì)算。第43頁(yè),共235頁(yè)。函 數(shù) 原 型功 能 描 述HWND initgraph(int width, int height, int flag
22、=0);初始化一個(gè)寬width高h(yuǎn)eight的繪圖環(huán)境,返回窗口句柄void cleardevice( );用當(dāng)前背景色清空屏幕void closegraph( );關(guān)閉繪圖環(huán)境void circle(int x, int y, int radius);繪制以(x,y)為圓心,半徑為radius的圓void ellipse(int left, int top, int right, int bottom);以(left,top)為左上角,(right,bottom)為右下角形成的矩形為外接矩形,繪制一個(gè)空心橢圓void rectangle(int left, int top, int righ
23、t, int bottom);以(left,top)為左上角,(right,bottom)為右下角,繪制一個(gè)空心矩形void polygon(const POINT pts , int num);以數(shù)組pts中的num個(gè)點(diǎn)作為頂點(diǎn),繪制一個(gè)空心的橢圓void moveto(int x, int y);設(shè)置繪圖當(dāng)前點(diǎn)為(x,y)void lineto(int x, int y);在當(dāng)前點(diǎn)和(x,y)之間繪制直線,并設(shè)置(x,y)為當(dāng)前點(diǎn)void line(int x1, int y1, int x2, int y2);從繪圖點(diǎn)(x1,y1)到(x2,y2)繪制一條直線void putpixel(
24、int x, int y, COLORREF color);在指定點(diǎn)(x,y)繪制一個(gè)顏色為color的像素點(diǎn)void outtextxy(int x, int y, LPCTSTR text);在指定點(diǎn)(x,y)輸出text給定的字符串EasyX函數(shù)第44頁(yè),共235頁(yè)。第2章 C語(yǔ)言的基本控制結(jié)構(gòu) 2.3 循環(huán)結(jié)構(gòu) 2.2 選擇結(jié)構(gòu) 2.1 順序結(jié)構(gòu)第45頁(yè),共235頁(yè)。2.1 順序結(jié)構(gòu)順序結(jié)構(gòu)是指按照語(yǔ)句的書寫順序依次執(zhí)行每條語(yǔ)句的語(yǔ)句結(jié)構(gòu)。第46頁(yè),共235頁(yè)。2.2 選擇結(jié)構(gòu) 選擇結(jié)構(gòu)是指根據(jù)某些數(shù)據(jù)的取值或計(jì)算結(jié)果選取不同操作的處理方式。選擇結(jié)構(gòu)的描述由兩個(gè)基本部分組成,一是對(duì)選擇
25、條件的描述;二是對(duì)處理分支的描述。 第47頁(yè),共235頁(yè)。關(guān)系運(yùn)算與邏輯運(yùn)算 關(guān)系運(yùn)算符 運(yùn)算符=!=功能大于小于大于等于小于等于等于不等于 邏輯運(yùn)算符 邏輯運(yùn)算符&|!功能邏輯與邏輯或邏輯非第48頁(yè),共235頁(yè)。注意:對(duì)于數(shù)學(xué)表示形式 0 a 10,不能直接地采用這種方式書寫,而需要將它分解成兩個(gè)關(guān)系運(yùn)算,即分解成0小于a并且a小于10,并按照下列格式書寫: 0 a & a = 0 & y+ ,如果x小于0,將不計(jì)算y+。對(duì)于邏輯表達(dá)式 x=0|y+,如果x大于或等于0,將不計(jì)算y+第49頁(yè),共235頁(yè)。if語(yǔ)句 if ( ) 第50頁(yè),共235頁(yè)。if語(yǔ)句 if ( ) else 第51頁(yè)
26、,共235頁(yè)。if( num 0 ) value= -num; else value= num;value = num;if( num 0 ) value= -num;第52頁(yè),共235頁(yè)。例1:北京地鐵票價(jià)的計(jì)算。 #include main( )double num;int price;printf(請(qǐng)輸入千米數(shù)(實(shí)數(shù)):);scanf(%lf, &num);if (num=0 & num6 & num12 & num22 & num32)price = (num-32)/20 + 7;if( num=0 ) printf(非法輸入!n);elseprintf(票價(jià)是 %d 元n,pric
27、e);第53頁(yè),共235頁(yè)。多路選擇和switch語(yǔ)句 switch ( ) case : case : . case : default :執(zhí)行的基本過程:首先計(jì)算充當(dāng)開關(guān)角色的表達(dá)式;然后,根據(jù)計(jì)算結(jié)果進(jìn)行控制的轉(zhuǎn)移,即用開關(guān)值與下面每個(gè)case語(yǔ)句中的常量進(jìn)行比較;如果開關(guān)值等于某個(gè)常量,則執(zhí)行該case語(yǔ)句中的語(yǔ)句序列;如果不存在等于開關(guān)值的case常量,則執(zhí)行default語(yǔ)句中的語(yǔ)句序列。第54頁(yè),共235頁(yè)。 在switch語(yǔ)句中,所有的case常量不允許重復(fù)。在實(shí)際應(yīng)用中,經(jīng)常將break語(yǔ)句作為每個(gè)case分支的語(yǔ)句序列的最后一條語(yǔ)句,以表示該分支的計(jì)算結(jié)束,并隨后跳出swi
28、tch語(yǔ)句,終止switch語(yǔ)句的繼續(xù)執(zhí)行。第55頁(yè),共235頁(yè)。例2:通過鍵盤讀取兩個(gè)復(fù)數(shù)和運(yùn)算符,完成復(fù)數(shù)運(yùn)算的操作,并輸出計(jì)算的結(jié)果。#include int main( )double a, b, c, d, x, y, t;char op;/* 保存運(yùn)算符 */printf( “nEnter the first complex number:” );scanf( “%lf%lf”, &a, &b );getchar(); printf( “nEnter a operator:” );scanf( “%c”, &op );/* 輸入運(yùn)算符 */printf( “nEnter the s
29、econd complex number:” );scanf( “%lf%lf”, &c, &d );switch( op ) /* 檢查運(yùn)算符 */見下頁(yè) printf(The result is %lf + %lfin, x, y );第56頁(yè),共235頁(yè)。case + :x = a + c; y = b + d;break;case - :x = a - c; y = b - d;break;case * :x = a*c - b*d; y = b*c + a*d;break;case / :t = c*c - d*d; if( t = 0 ) printf(The denominato
30、r is 0.n );return0;x = ( a*c + b*d) / t; y = ( b*c - a*d ) / t;break;default:printf(Invalidation operator .n );return0;第57頁(yè),共235頁(yè)。2.3 循環(huán)結(jié)構(gòu) while 語(yǔ)句 語(yǔ)法格式:while ( ) 第58頁(yè),共235頁(yè)。例3:從鍵盤輸入10個(gè)整數(shù),計(jì)算它們的平均值 #include main( )int sum = 0, i = 1; int x; /* 保存當(dāng)前輸入的數(shù)據(jù) */printf( “nEnter 10 integers:” );while( i = 10
31、 ) scanf( “%d”, &x ); /* 讀入整數(shù)x */i+; /* 累加已輸入的數(shù)據(jù)個(gè)數(shù) */sum=sum + x; /* 累加輸入的數(shù)據(jù)總和 */printf( “The average value is %lfn”, sum*1.0/(i-1); 第59頁(yè),共235頁(yè)。for 語(yǔ)句 語(yǔ)法格式:for ( ; ; ) 第60頁(yè),共235頁(yè)。例4:從鍵盤讀入5個(gè)字符,找出其中ASCII值最大的字符,并將該字符輸出10次。#include main( )int i, x, max = 0;for( i=0; i max ) max= x;for( i=0; i10; i+ ) pu
32、tchar( max ); 第61頁(yè),共235頁(yè)。do while 語(yǔ)句 語(yǔ)法格式:do while ( ) ; 第62頁(yè),共235頁(yè)。例int ch, num = 0;do ch= getchar( ); if (ch=0 & ch=9) num+; while( ch != n );第63頁(yè),共235頁(yè)。#include #include #include #include int main( )double A, w, q, k;int x, y;printf(請(qǐng)輸入正弦曲線的振幅、角速度、初相和偏距: n);scanf(%lf%lf%lf%lf, &A, &w, &q, &k);ini
33、tgraph(640, 480);setorigin(40, 240);line(-40, 0, 600, 0);line(0, 240, 0, -240);setaspectratio(1.0, -1.0);for (x=0; x640; x+=10) y = A * sin(w*x + q) + k;if (x=0) moveto(x, y);elselineto(x, y);_getch( );closegraph( );return 0;第64頁(yè),共235頁(yè)。第3章 計(jì)算機(jī)算法初步 3.3 遞推與迭代法 3.2 窮舉法 3.1 算法的概念 第65頁(yè),共235頁(yè)。3.1 算法的概念利用計(jì)
34、算機(jī)求解問題的一般過程(1)問題分析階段 (2)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)階段 (3)算法設(shè)計(jì)階段 (4)編碼與調(diào)試階段 第66頁(yè),共235頁(yè)。 算法描述在計(jì)算機(jī)科學(xué)的發(fā)展過程中,人們已經(jīng)提出了很多種類的算法描述方法。一種是自然語(yǔ)言的描述方法。鑒于自然語(yǔ)言本身過于靈活且又缺乏嚴(yán)謹(jǐn)性,所以容易產(chǎn)生理解上的歧義。還有一種算法的圖形描述方式流程圖。它采用一些標(biāo)準(zhǔn)的圖形符號(hào)描述算法的操作過程,從而避免了人們對(duì)非形式化語(yǔ)言的理解差異。 第67頁(yè),共235頁(yè)。起止框I/O框處理框判斷框調(diào)用框連接框有向邊 常用流程圖符號(hào)第68頁(yè),共235頁(yè)。例1:求解一元二次方程問題分析假設(shè)一元二次方程可以書寫成ax2+bx+c=0???/p>
35、以看出,任何一個(gè)一元二次方程都由三個(gè)系數(shù)a、b、c惟一確定,所以,首先需要用戶輸入三個(gè)系數(shù),然后再根據(jù)一元二次方程的求解規(guī)則計(jì)算最終的結(jié)果,并將結(jié)果顯示輸出。 第69頁(yè),共235頁(yè)。算法描述 第70頁(yè),共235頁(yè)。#include #include main( )int a, b, c, t;printf( “Input a,b,c: ” );scanf( “%d%d%d”, &a, &b, &c );t = b*b 4*a*c;if (t0)printf( “No solutionn” ); else if ( t=0 )printf( “X = %lfn”, -b/(2.0*a) ); e
36、lse double t0;t0 = sqrt( (double)t );printf( “X1 = %lf, X2= %lfn”, (-b+t0)/(2*a), (-b-t0)/(2*a) ); 程序代碼 第71頁(yè),共235頁(yè)。3.2 窮舉法概述窮舉法,又稱為枚舉法,是人們?nèi)粘I钪谐S玫囊环N求解問題的方法。窮舉法的核心在于明確問題的所有可能性,并針對(duì)每種可能情況逐個(gè)進(jìn)行判斷,最終找出正確問題的答案。 第72頁(yè),共235頁(yè)。窮舉法應(yīng)用實(shí)例1:素?cái)?shù)的判斷 所謂素?cái)?shù)是指僅能被1和自身整除,且大于等于2的數(shù)值。判斷一個(gè)給定的數(shù)值是否是素?cái)?shù)是窮舉法的典型實(shí)例。 第73頁(yè),共235頁(yè)。例2:判斷給定整
37、數(shù)是否是素?cái)?shù) 。 問題分析為了檢查一個(gè)整數(shù)是不是素?cái)?shù),可以采用窮舉法。假設(shè)給定的整數(shù)用x表示,則判斷過程就是確認(rèn)x不能整除以2x-1之間的任何整數(shù)。這就需要一一列舉出2x-1之間的每個(gè)整數(shù)進(jìn)行排查。 第74頁(yè),共235頁(yè)。NY開始輸入x2 tt xt 加1x%t=0結(jié)束輸出“不是素?cái)?shù)”輸出“是素?cái)?shù)”YNt = xYN算法描述 第75頁(yè),共235頁(yè)。#include main( )int x, t;printf( “Enter an integer: ” );scanf( “%d”, &x );for (t = 2; tx; t+ ) /* 列舉小于x大于1的所有整數(shù) */ if ( x%t =
38、 0 ) break;if ( t = x )/* 是否通過循環(huán)條件出口 */ printf( “%d is primen”, x );else printf( “%d isnt primen”, x ); 程序代碼 第76頁(yè),共235頁(yè)。窮舉法應(yīng)用實(shí)例2:百錢買百雞 “百錢買百雞”是我國(guó)古代數(shù)學(xué)家張丘建提出的一個(gè)著名的數(shù)學(xué)問題。假設(shè)某人有錢百枚,希望買一百只雞;不同的雞價(jià)格不同,公雞5枚錢一只,母雞3枚錢一只,而小雞3只1枚錢。試問:如果用百枚錢買百只雞,可以包含幾只公雞、幾只母雞和幾只小雞。 第77頁(yè),共235頁(yè)。例3:百錢買百雞。 問題分析從題目要求可知:公雞、母雞和小雞的數(shù)量是有限的,
39、都不會(huì)超過100。通過對(duì)不同數(shù)量的公雞、母雞和小雞進(jìn)行組合,可以計(jì)算出購(gòu)買這些雞所用的花費(fèi),但這個(gè)題目要求找出那些花費(fèi)正好100枚且雞的總數(shù)也為100只的情況。因此,可以采用窮舉法,將不同的公雞、母雞和小雞的數(shù)量枚舉一遍,找出那些符合題目要求的解。 第78頁(yè),共235頁(yè)。算法描述 第79頁(yè),共235頁(yè)。#include #include main( ) int x, y, z; for( x=0; x=100/5; x+ ) for( y=0; y=100/3; y+ ) for( z=0; z=100; z+ ) if (x+y+z =100 &15*x+9*y+z=300) printf(
40、 “x=%d, y=%d, z=%dn”, x, y, z ); 程序代碼 第80頁(yè),共235頁(yè)。3.3 遞推與迭代法 概述遞推常用于序列數(shù)據(jù)的計(jì)算。其基本策略是用已知結(jié)果和特定關(guān)系(遞推公式)計(jì)算中間值。采用遞推法進(jìn)行問題求解的關(guān)鍵在于找出遞推公式和邊界條件。迭代也是計(jì)算機(jī)數(shù)值計(jì)算的一種基本算法,其基本策略是從初值出發(fā),不斷計(jì)算問題的近似解。第81頁(yè),共235頁(yè)。遞推與迭代法應(yīng)用實(shí)例1:等比數(shù)列求和 所謂等比數(shù)列是指在一組數(shù)據(jù)中,后項(xiàng)和前項(xiàng)之前存在著一個(gè)固定的比例關(guān)系。例如:整數(shù)序列3、15、75、375的初值是3,后項(xiàng)與前項(xiàng)是5倍的關(guān)系,即前項(xiàng)乘以5得到后項(xiàng)。本題要求給定等比序列的首項(xiàng)和比
41、例,計(jì)算這個(gè)數(shù)列的前10項(xiàng)之和。第82頁(yè),共235頁(yè)。例4:等比數(shù)列求和。 問題分析等比數(shù)列的遞推公式為: itemi= itemi-1 * ratio后項(xiàng)等于前項(xiàng)乘以比例值sumi= sumi-1 + itemi前i項(xiàng)之和等于前i-1項(xiàng)之和加當(dāng)前項(xiàng)由于在重復(fù)上述遞推計(jì)算之前,需要將第1項(xiàng)的值累加到sum中,所以,需要先將item存入sum中。 第83頁(yè),共235頁(yè)。算法描述 第84頁(yè),共235頁(yè)。#include main( )int item, ratio, sum,i;printf( “nEnter the first item and ratio: ” );scanf( “%d%d”,
42、 &item, &ratio );sum=item;for ( i=1; i10; i+ ) item *= ratio; sum += item; printf( “Sum of 10 items is %dn”, sum );程序代碼 第85頁(yè),共235頁(yè)。遞推與迭代法應(yīng)用實(shí)例2:求圓周率圓周率的計(jì)算公式為: = 4 4/3 + 4/5 4/7 +4/9 4/11 + 第86頁(yè),共235頁(yè)。例5:求圓周率。問題分析圓周率的計(jì)算公式為: = 4 4/3 + 4/5 4/7 +4/9 4/11 + 圓周率是通過將數(shù)列4、-4/3、4/5求和得到的。在這個(gè)數(shù)列中,每個(gè)數(shù)據(jù)項(xiàng)的取值與前一項(xiàng)及該項(xiàng)的
43、序號(hào)存在著一定的關(guān)系??梢酝ㄟ^迭代,逐個(gè)計(jì)算出每一個(gè)數(shù)據(jù)項(xiàng),再將它們累加起來(lái)。為了滿足要求的精度,可以通過檢查數(shù)據(jù)項(xiàng)的大小來(lái)控制循環(huán)的終止。由于數(shù)據(jù)項(xiàng)的絕對(duì)值是遞減的,且相鄰項(xiàng)的符號(hào)不同,如果第n個(gè)數(shù)據(jù)項(xiàng)的絕對(duì)值已經(jīng)小于精度值,則前n項(xiàng)之和一定已經(jīng)滿足精度要求了。第87頁(yè),共235頁(yè)。算法描述 第88頁(yè),共235頁(yè)。#include #include main( )int i = 1, sign = 1; double PI= 0.0, item;do item= sign * 4.0 / (2 * i+ -1);sign= -sign;PI+= item; while (fabs( item
44、 ) 1e-4 ); /* 數(shù)據(jù)項(xiàng)精度控制循環(huán) */ printf( “PI = %lfn”, PI ); 程序代碼 第89頁(yè),共235頁(yè)。第4章 數(shù)據(jù)的組織結(jié)構(gòu)(一) 4.3 字符串的組織 4.2 使用一維數(shù)組組織數(shù)據(jù)的應(yīng)用實(shí)例 4.1 數(shù)組類型 4.4 字符串處理函數(shù)及應(yīng)用實(shí)例 4.5 二維數(shù)組 第90頁(yè),共235頁(yè)。4.1 數(shù)組類型數(shù)組類型的應(yīng)用背景(1)同時(shí)存在若干個(gè)用來(lái)描述同一性質(zhì)且不同個(gè)體的數(shù)據(jù)。(2)只有將這些數(shù)據(jù)組織在一起形成批量數(shù)據(jù),共同參與處理,很多操作才具有實(shí)際意義。例如:要將表示每個(gè)學(xué)生考試成績(jī)的所有整型數(shù)據(jù)組織在一起,以便共同參與諸如統(tǒng)計(jì)考試成績(jī)的分布情況、按照考試成
45、績(jī)由高到低排名等一系列的操作。第91頁(yè),共235頁(yè)。一維數(shù)組類型的定義 定義格式: ;例如: int vote10; C語(yǔ)言規(guī)定:數(shù)組的下標(biāo)從0開始,因此,表示這10個(gè)數(shù)據(jù)的下標(biāo)為09 在C程序中,系統(tǒng)將會(huì)為每個(gè)數(shù)組型變量分配一片連續(xù)的存儲(chǔ)空間,所需要分配的存儲(chǔ)空間總數(shù)將取決于包含的元素個(gè)數(shù)和每個(gè)元素需要的存儲(chǔ)空間。 第92頁(yè),共235頁(yè)。 一維數(shù)組的初始化基本格式為: =,.,;例如:double score5 = 9.2, 9.1, 8.7, 9.1, 8.5; 第93頁(yè),共235頁(yè)。說明:1)為數(shù)組型變量中的每一個(gè)元素都提供了一個(gè)初始值。此時(shí),可以省略方括號(hào)內(nèi)的數(shù)組元素?cái)?shù)量。系統(tǒng)將根據(jù)花
46、括號(hào)中包含的初值數(shù)目推測(cè)出數(shù)組含有的元素?cái)?shù)量。 float score = 9.2, 9.1, 8.7, 9.1, 8.5; 2)對(duì)數(shù)組型變量的前面若干個(gè)元素賦予初值。此時(shí)可以使用下面這種書寫形式: int letter26 = 10, 9, 8, 7; 它的執(zhí)行結(jié)果是:將10、9、8、7分別賦予letter數(shù)組中下標(biāo)為0、1、2、3的元素,后面的所有元素賦予初值0。 3)將數(shù)組型變量中的每一個(gè)元素賦予初值0。此時(shí),可以使用下面這種簡(jiǎn)化的書寫形式: int vote10 = 0;第94頁(yè),共235頁(yè)。一維數(shù)組元素的引用及基本操作數(shù)組元素的引用 數(shù)組的賦值利用賦值語(yǔ)句為數(shù)組賦值 for (i=0
47、; i10; i+) votei = 0; 調(diào)用標(biāo)準(zhǔn)輸入函數(shù)為數(shù)組賦值 for (i=0; i13; i+) scanf(“%f”, &scorei); 數(shù)組的輸出 for (i=0; i10; i+) printf(“%5d”, votei); 第95頁(yè),共235頁(yè)。查找問題 查找是指根據(jù)某個(gè)給定的條件,在一組數(shù)據(jù)中搜索是否存在滿足該條件的數(shù)據(jù)的過程。4.2 使用一維數(shù)組組織數(shù)據(jù)的應(yīng)用實(shí)例第96頁(yè),共235頁(yè)。例1:已知某個(gè)班級(jí)35名學(xué)生的某門課程的考試成績(jī)。請(qǐng)編寫一個(gè)程序,查看在這個(gè)班級(jí)中是否存在不及格的學(xué)生。 問題分析用一維數(shù)組記錄每位學(xué)生的考試成績(jī),下標(biāo)表示每個(gè)學(xué)生的編號(hào),元素內(nèi)容表示
48、考試成績(jī)。 查找可以通過從前往后依次查看每個(gè)元素內(nèi)容的過程實(shí)現(xiàn)。第97頁(yè),共235頁(yè)。算法描述 第98頁(yè),共235頁(yè)。#include #include #include #define NUM 35 /*學(xué)生人數(shù)*/main( ) int scoreNUM; int i; /* 隨機(jī)產(chǎn)生35個(gè)考試成績(jī) */ srand(time(0); for (i=0; iNUM; i+) scorei = rand()%100; /*顯示35名學(xué)生的考試成績(jī)*/ for (i=0; iNUM; i+) printf(nNo.%d: %d, i+1, scorei); 程序代碼第99頁(yè),共235頁(yè)。/*順
49、序查找是否存在不及格的學(xué)生*/ for (i=0; iNUM; i+) if (scorei60) break; /*輸出查找結(jié)果*/ if (iNUM) printf(nNot all pass.); else printf(All pass.); 第100頁(yè),共235頁(yè)。例2:已知一個(gè)按非遞減有序排列的整型數(shù)列(12,23,30,45,48,50,67,82,91,103)。請(qǐng)編寫一個(gè)程序,查找其中是否存在與給定key相等的數(shù)值。 第101頁(yè),共235頁(yè)。算法描述 第102頁(yè),共235頁(yè)。#include #define NUM 10main( ) int valueNUM = 12, 2
50、3, 30, 45, 48, 50, 67, 82, 91, 103; /* 非遞減整型數(shù)列 */ int low, high, mid, key; printf(nEnter a key:); /* 輸入查找的數(shù)值 */ scanf(%d, &key); low = 0;high = NUM-1; while (low=high) mid = (low+high)/2; if (valuemid=key)break; if (valuemidkey) low = mid+1; else high = mid-1; if (low=high) printf(n%d is found at %d
51、., key, mid);/* 確認(rèn)break出口 */ else printf(n%d is not found., key);/* 確認(rèn)循環(huán)正常出口 */程序代碼第103頁(yè),共235頁(yè)。 排序問題 將一組無(wú)序的數(shù)列重新排列成非遞減或非遞增的順序是一種經(jīng)常需要的操作。例如,在管理學(xué)生成績(jī)的應(yīng)用程序中,可以用一個(gè)數(shù)列表示一個(gè)班級(jí)的學(xué)生成績(jī),并按照從高到低的順序重新排列,以便確定獲得獎(jiǎng)學(xué)金的學(xué)生。 第104頁(yè),共235頁(yè)。例3:假設(shè)用戶通過鍵盤輸入一個(gè)整型數(shù)列。請(qǐng)編寫一個(gè)程序,將其按照從小到大的順序重新排列。 問題分析(選擇排序)首先從n個(gè)數(shù)據(jù)中選擇一個(gè)最小的數(shù)據(jù),并將它交換到第1個(gè)位置;然后再
52、從后面n-1個(gè)數(shù)據(jù)中選擇一個(gè)最小的數(shù)據(jù),并將它交換到第2個(gè)位置;以此類推,直至最后從兩個(gè)數(shù)據(jù)中選擇一個(gè)最小的數(shù)據(jù),并將它交換到第n-1個(gè)位置為止,整個(gè)排序操作結(jié)束。 第105頁(yè),共235頁(yè)。算法描述 第106頁(yè),共235頁(yè)。#include #define NUM 10 /* 參與排序的數(shù)據(jù)個(gè)數(shù) */main() int dataNUM; /* 存放參與排序的所有整數(shù) */ int i, j, min, temp; /* 通過鍵盤輸入待排序的整型數(shù)列 */ printf(nEnter %d integers., NUM); for (i=0; iNUM; i+) scanf(%d, &data
53、i); /* 顯示原始整型數(shù)列 */ printf(n%d integers are:, NUM); for (i=0; iNUM; i+) printf(%5d, datai); 程序代碼第107頁(yè),共235頁(yè)。 for (i=0; iNUM-1; i+) min = i; for (j=i+1; jNUM; j+) if (datajdataminValue) minValue = j; if (min!=i) /* 交換 */ temp = datai; datai = datamin; datamin = temp; /* 輸出排序后的結(jié)果 */ printf(nOrdering li
54、st is:n); for (i=0; iNUM; i+) printf(%5d, datai); 第108頁(yè),共235頁(yè)。字符串的組織形式 字符串是指一個(gè)有限長(zhǎng)度的字符序列 ,字符串常量用一對(duì)雙引號(hào)(“”)括起來(lái)。 字符串中所包含的字符個(gè)數(shù)被稱為字符串長(zhǎng)度。 4.3 字符串的組織 第109頁(yè),共235頁(yè)。字符串的初始化char str = “C program”; char str = C, , p, r, o, g, r, a, m, 0; 對(duì)于這種初始化形式,系統(tǒng)將其視為字符操作,而不是字符串操作,因此不會(huì)在尾部添加結(jié)束符0。 “C program”的存儲(chǔ)狀態(tài) 0123456789Cpr
55、ogram0第110頁(yè),共235頁(yè)。字符串的輸入輸出 1、gets(str); 2、scanf(“%s”, str);gets 以換行符作為輸入結(jié)束標(biāo)記,但不保存換行符。scanf 以空格、換行符或制表符作為結(jié)尾。第111頁(yè),共235頁(yè)。字符串的輸出 1、puts(str); 2、printf(%s”, str);puts將字符串的內(nèi)容顯示到標(biāo)準(zhǔn)輸出設(shè)備屏幕上,并換行。 第112頁(yè),共235頁(yè)。字符串標(biāo)準(zhǔn)函數(shù) 在C語(yǔ)言的標(biāo)準(zhǔn)函數(shù)庫(kù)中,提供了30余種與字符串處理有關(guān)的標(biāo)準(zhǔn)函數(shù),從而大大地提高了字符串處理的能力,降低了字符串處理的復(fù)雜程度。 4.4 字符串處理函數(shù)及應(yīng)用實(shí)例 第113頁(yè),共235頁(yè)
56、。計(jì)算字符串長(zhǎng)度 strlen(str);這個(gè)函數(shù)的功能是返回字符串中所包含的字符個(gè)數(shù),即字符串長(zhǎng)度。字符串結(jié)束標(biāo)志0不計(jì)算在內(nèi)。 字符串比較 strcmp(str1, str2);兩個(gè)字符串進(jìn)行比較時(shí)將依據(jù)每個(gè)字符對(duì)應(yīng)的ASCII編碼決定其大小。 例4:用戶注冊(cè)程序。第114頁(yè),共235頁(yè)。#include #include main( )char userid32; char password116, password216;do puts(請(qǐng)輸入用戶名:);gets(userid);if ( userid0!=0 )break; puts(用戶名不能為空); while ( 1 );do
57、 puts(請(qǐng)輸入密碼(六位以上):); gets(password1); if ( strlen(password1)6 ) puts(密碼長(zhǎng)度不足);continue;puts(請(qǐng)?jiān)俅屋斎胪幻艽a);gets(password2);if ( 0=strcmp(password1, password2) )break;puts(兩次輸入密碼不同,請(qǐng)重新輸入); while ( 1 );puts(祝賀您成功注冊(cè)我們的網(wǎng)站); 程序代碼第115頁(yè),共235頁(yè)。字符串拷貝 strcpy(str1, str2);其中str2是將要被拷貝的字符串,str1是用于存放拷貝結(jié)果的存儲(chǔ)區(qū)域。 字符串連接 s
58、trcat(str1, str2);其中str1和str2是兩個(gè)字符串。這個(gè)函數(shù)的功能是:將str2連接在str1之后,并在結(jié)束處添加一個(gè)字符串結(jié)束符0第116頁(yè),共235頁(yè)。字符串轉(zhuǎn)換成數(shù)值類型 atof(str); atoi(str); atol(str);其中str是一個(gè)字符串。atof() 的返回類型是double,它可以將字符串str轉(zhuǎn)換成一個(gè)雙精度數(shù)值;atoi() 的返回類型是int,它可以將字符串str轉(zhuǎn)換成普通整型;atol() 的返回類型是long,它可以將字符串str轉(zhuǎn)換成長(zhǎng)整型(long)。 第117頁(yè),共235頁(yè)。#include #include main( ) c
59、har num120, num220; double d1, d2, sum; printf(nEnter the first number:); gets(num1); /* 輸入第1個(gè)用字符串表示的實(shí)型數(shù)值 */ printf(Enter ths second number:); gets(num2); /* 輸入第2個(gè)用字符串表示的實(shí)型數(shù)值 */ d1 = atof(num1); /* 將第1個(gè)字符串轉(zhuǎn)換成double類型 */ d2 = atof(num2); /* 將第2個(gè)字符串轉(zhuǎn)換成double類型 */ sum = d1+d2; /* 將2個(gè)double類型數(shù)值相加 */ pri
60、ntf(n%s+%s=%.3lf, num1, num2, sum); /* 顯示結(jié)果 */程序代碼第118頁(yè),共235頁(yè)。大小寫轉(zhuǎn)換 strlwr(str); strupr(str);str是一個(gè)字符串。標(biāo)準(zhǔn)函數(shù)strlwr( ) 可以將字符串str中出現(xiàn)的所有大寫字母轉(zhuǎn)換成小寫字母;標(biāo)準(zhǔn)函數(shù)strupr( ) 可以將字符串str中出現(xiàn)的所有小寫字母轉(zhuǎn)換成大寫字母。 第119頁(yè),共235頁(yè)。4.5 二維數(shù)組 二維數(shù)組的定義 定義格式: ; 例如: int value54; value數(shù)組的每個(gè)元素類型為int,包含5行4列共20個(gè)元素 一旦定義了一個(gè)二維數(shù)組型變量,系統(tǒng)就會(huì)立即為其分配相應(yīng)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體驗(yàn)店行業(yè)市場(chǎng)營(yíng)銷總結(jié)
- 2025-2030全球無(wú)DEHP分隔膜無(wú)針輸液接頭行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球基因組注釋服務(wù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球酚醛彩鋼板行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)隧道安全監(jiān)測(cè)系統(tǒng)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球燃?xì)廨啓C(jī)仿真軟件行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)自動(dòng)水力平衡閥行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球辦公室文件柜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)4-苯氧基苯酚行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球太空級(jí)電機(jī)控制器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 護(hù)理人文知識(shí)培訓(xùn)課件
- 建筑工程施工安全管理課件
- 2025年春新人教版數(shù)學(xué)七年級(jí)下冊(cè)教學(xué)課件 7.2.3 平行線的性質(zhì)(第1課時(shí))
- 安徽省合肥市2025年高三第一次教學(xué)質(zhì)量檢測(cè)地理試題(含答案)
- 2025年新合同管理工作計(jì)劃
- 統(tǒng)編版八年級(jí)下冊(cè)語(yǔ)文第三單元名著導(dǎo)讀《經(jīng)典常談》閱讀指導(dǎo) 學(xué)案(含練習(xí)題及答案)
- 風(fēng)光儲(chǔ)儲(chǔ)能項(xiàng)目PCS艙、電池艙吊裝方案
- 統(tǒng)編小學(xué)《道德與法治》三年級(jí)上下冊(cè)教材的解讀
- 產(chǎn)業(yè)鏈競(jìng)爭(zhēng)關(guān)聯(lián)度
- TTJSFB 002-2024 綠色融資租賃項(xiàng)目評(píng)價(jià)指南
- 高考地理一輪復(fù)習(xí)學(xué)案+區(qū)域地理填圖+亞洲
評(píng)論
0/150
提交評(píng)論