C語言編程入門教程2_第1頁
C語言編程入門教程2_第2頁
C語言編程入門教程2_第3頁
C語言編程入門教程2_第4頁
C語言編程入門教程2_第5頁
已閱讀5頁,還剩428頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言編程入門教程演示文稿目前一頁\總數(shù)四百三十三頁\編于十二點第一章計算機語言與C語言概述

1.1計算機語言概念■計算機語言定義計算機能夠識別和接受的語言。要使計算機按自己的意圖工作,必須使用計算機所能接受、理解和執(zhí)行的指令指揮計算機工作。目前二頁\總數(shù)四百三十三頁\編于十二點

■計算機語言的種類

機器語言

低級語言匯編語言(面向計算機)

BASIC入門語言

F77科學計算

高級語言Foxpro數(shù)據(jù)庫管理(面向問題)C多用途

計算機語言…………目前三頁\總數(shù)四百三十三頁\編于十二點?機器語言最早問世,用二進制代碼構(gòu)成指令。如:100000(+)110000(-)用機器語言編程的缺點:─繁瑣、不直觀、不易調(diào)試。如計算y=2x2+3x-1需要七八條指令。─移植性差。依賴于計算機。

目前四頁\總數(shù)四百三十三頁\編于十二點?匯編語言用符號構(gòu)成指令,如:MOV、ADD用匯編語言編程:相對直觀,但仍繁瑣,仍是面向計算機的語言。匯編語言是計算機間接接受的語言目前五頁\總數(shù)四百三十三頁\編于十二點?高級語言與低級語言相比,有根本性的區(qū)別:是面向問題的語言。高級語言的一條指令(語句):y=2*x*x+3*x-1;對應(yīng)于:y=2x2+3x-1y=sin(x);對應(yīng)于:y=sinx用高級語言編程:直觀、易懂、移植性好(不依賴于具體計算機)目前六頁\總數(shù)四百三十三頁\編于十二點上機運行高級語言程序需經(jīng)過編譯:編譯執(zhí)行

要上機完成一個計算問題,主要的任務(wù)就是用高級語言編寫出相應(yīng)的源程序。即至少要學會一種計算機語言。

高級語言源程序

機器指令目的程序結(jié)果編譯程序目前七頁\總數(shù)四百三十三頁\編于十二點1.2C語言的特點

集高級語言和低級語言的優(yōu)點于一身:●能實現(xiàn)低級語言的大部分功能(如直接訪問內(nèi)存物理地址、進行位操作等)?!駡D形功能強?!襁\算符和數(shù)據(jù)結(jié)構(gòu)豐富。

●語法限制不太嚴格,程序設(shè)計自由度大。●生成目標代碼質(zhì)量高,程序執(zhí)行效率高。目前八頁\總數(shù)四百三十三頁\編于十二點1.3簡單的C程序介紹例1:

main()

主函數(shù)說明

{

程序框架

printf(“abcdef”);

函數(shù)體

}

語句程序的功能是輸出字符串:abcdef

目前九頁\總數(shù)四百三十三頁\編于十二點例2:求兩數(shù)之和。main(){inta,b,c;a

a=100;b=50;bc=a+b;cprintf(“\nc=%d”,c);}程序運行結(jié)果:c=150目前十頁\總數(shù)四百三十三頁\編于十二點例3:求兩數(shù)中的最大值。

函數(shù)類型函數(shù)名形參main()intmax(intx,inty){inta,b,c;{intz;scanf(“%d,%d”,&a,&b);if(x>y)z=x;c=max(a,b);elsez=y;printf(“\nmaxis:%d”,c);return(z);}}axbycz(兩個函數(shù)組成)353555目前十一頁\總數(shù)四百三十三頁\編于十二點

總結(jié)上例可知:(1)C程序由函數(shù)構(gòu)成。(2)函數(shù)由兩部分組成:函數(shù)說明部分:函數(shù)名、函數(shù)類型、形參名、形參類型。函數(shù)體:實現(xiàn)函數(shù)的具體操作;由語句構(gòu)成。(3)程序總是從main函數(shù)開始執(zhí)行。(4)書寫格式自由。(5)語句必須有分號。:

目前十二頁\總數(shù)四百三十三頁\編于十二點

第二章算法

2.1算法的概念

要利用計算機處理問題,光學習語言的語法規(guī)則還不夠,最重要的是要學會針對各類型的問題,擬定出有效的解題方法和步驟。解題方法和步驟就是算法。目前十三頁\總數(shù)四百三十三頁\編于十二點算法:為了解決一個問題而采取的有限步驟。計算機算法:如何使計算機一步一步地工作的具體過程。目前十四頁\總數(shù)四百三十三頁\編于十二點

利用計算機處理問題的步驟:1)設(shè)計好算法——算法設(shè)計;2)用計算機語言實現(xiàn)算法——程序設(shè)計。算法必須是“有效”的。算法設(shè)計還要充分考慮算法的好壞。衡量算法好壞的主要標準:①程序簡練。②執(zhí)行速度快。③占空間少。

目前十五頁\總數(shù)四百三十三頁\編于十二點例:考慮的算法。算法①:直接表達。直接用語句s=1+2+3+4+5+6+7+8+9+10當項數(shù)較多時該算法不適用s=∑i110目前十六頁\總數(shù)四百三十三頁\編于十二點算法②:迭代法(累加求和法)s=1+2+3+4+5+6+7+8+9+10算法步驟:si

①使s=0+②使i=1累加器記數(shù)器③s+i→s④i+1→i⑤若i≤10轉(zhuǎn)③,否則轉(zhuǎn)⑥⑥輸出s01123364105該算法通用,是好算法目前十七頁\總數(shù)四百三十三頁\編于十二點2.2算法的表示

算法需要有統(tǒng)一的表示方法常用的表示方法有:自然語言流程圖結(jié)構(gòu)化流程圖N-S流程圖.

目前十八頁\總數(shù)四百三十三頁\編于十二點1、自然語言

對于計算s=1+2+3+4+5+6+7+8+9+10

用自然語言表示為:

使s=0(s為累加器)②

使i=1(i為計數(shù)器)③

s+i→s(累加求和公式)④

i+1→i(計數(shù)器加1)⑤

若i≤10轉(zhuǎn)③,否則轉(zhuǎn)⑥⑥輸出s的值

特點:通俗易懂、文字冗長、含義不大嚴格。

目前十九頁\總數(shù)四百三十三頁\編于十二點2、流程圖

用流程圖符號表示算法。常用的流程圖符號起止框輸入輸出框處理框流程線

判斷框

目前二十頁\總數(shù)四百三十三頁\編于十二點

對于計算s=1+2+3+4+5+6+7+8+9+10用流程圖表示為:s+i→s

i+1→i

S+i→s

S+i→s

i≤10輸出s

0→s1→i

直觀形象,易于理解,次序清楚YN目前二十一頁\總數(shù)四百三十三頁\編于十二點3、結(jié)構(gòu)化流程圖

傳統(tǒng)的流程圖有一個弊端:對流程線沒有嚴格的限制,對于較復雜的算法可能會變成亂麻一般(BS型算法)。為克服這一弊端,提出了由三個基本結(jié)構(gòu)組成算法流程圖的思想:結(jié)構(gòu)化流程圖

目前二十二頁\總數(shù)四百三十三頁\編于十二點

三個基本結(jié)構(gòu):①

順序結(jié)構(gòu)

按固定順序(從上到下或從左到右)執(zhí)行的結(jié)構(gòu)。

ABab目前二十三頁\總數(shù)四百三十三頁\編于十二點

選擇結(jié)構(gòu)

根據(jù)條件P選擇執(zhí)行哪一個分支。

成立不成立

pABab成立不成立目前二十四頁\總數(shù)四百三十三頁\編于十二點例:計算y=1/x當x≠0時y=10000當x=0時的算法流程圖圖:選擇結(jié)構(gòu)

輸入xX=0?10000→y1/x→y輸出yYN目前二十五頁\總數(shù)四百三十三頁\編于十二點

循環(huán)結(jié)構(gòu)重復執(zhí)行某些操作的結(jié)構(gòu)。分為兩種:當型循環(huán)和直到型循環(huán)。

當型循環(huán)直到型循環(huán)P1AAP2aabbYYNN目前二十六頁\總數(shù)四百三十三頁\編于十二點

可以看出,每個基本結(jié)構(gòu)都只有一個入口和一個出口,因此,用三個基本結(jié)構(gòu)構(gòu)成的流程圖不會象亂麻一般,用三個基本結(jié)構(gòu)構(gòu)成的流程圖就成為結(jié)構(gòu)化流程圖,用結(jié)構(gòu)化流程圖描述的算法稱為結(jié)構(gòu)化算法,相應(yīng)的程序設(shè)計就稱為結(jié)構(gòu)化程序設(shè)計。

目前二十七頁\總數(shù)四百三十三頁\編于十二點觀察前例:

0→s1→i

S+i→s

i+1→i

i≤10輸出s順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)yn目前二十八頁\總數(shù)四百三十三頁\編于十二點4

N-S流程圖N-S流程圖的三個基本結(jié)構(gòu):

ABP成立不成立ABAB當P1直到P2順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)目前二十九頁\總數(shù)四百三十三頁\編于十二點例:計算

y=1/x當x≠0時y=10000當x=0時的N-S流程圖:輸入xX=0?是否10000→y1/x→y輸出y目前三十頁\總數(shù)四百三十三頁\編于十二點

例:計算s=1+2+3+4+5+6+7+8+9+10的N-S流程圖:

i≤10

直到i>10

直到型

當型

0→s1→i

輸出s1→i

0→ss+i→s

i+1→i

s+i→s

i+1→i

輸出s目前三十一頁\總數(shù)四百三十三頁\編于十二點

第三章數(shù)據(jù)類型、運算符

與表達式

3.1C的數(shù)據(jù)類型

●基本類型(整型、實型、字符型、枚舉型)

●構(gòu)造類型(略)

●指針類型(略)

●空類型各類型包含常量與變量目前三十二頁\總數(shù)四百三十三頁\編于十二點3.2常量與變量■常量與符號常量常量在程序運行過程中其值保持不變的量。符號常量用來代表一個常量的標識符。

#definePI3.1415926目前三十三頁\總數(shù)四百三十三頁\編于十二點

例:#definePI3.1415926main(){floatr=2,c;c=2*PI*r;printf(“%f”,c);}目前三十四頁\總數(shù)四百三十三頁\編于十二點■變量

其值可以改變的量。

變量的三要素:

變量名每個變量有一個名字,作為識別該變量的標識符。②變量的值每個變量有一個值,變量的值是隨時可以改變的。

目前三十五頁\總數(shù)四百三十三頁\編于十二點

③變量的存儲單元

每個變量占據(jù)一個內(nèi)存單元,用于存放變量的值。

變量名a

變量值

存儲單元

3目前三十六頁\總數(shù)四百三十三頁\編于十二點

變量的命名規(guī)則:由字母、數(shù)字和下劃線組成以字母或下劃線開頭a、x1、y_2、_b1、_1c合法1x、a+2、Ф、Ω不合法變量必須先定義后使用。程序中何時使用常量?何時使用變量?目前三十七頁\總數(shù)四百三十三頁\編于十二點

3.3整型數(shù)據(jù)■整型常量

即整常數(shù),c的整常數(shù)有三種形式:①十進制整數(shù)與數(shù)學中的整數(shù)一致,如:100,123,15等。

②八進制整數(shù)以0開頭的整數(shù),如:010,07,020等。

③十六進制整數(shù)以0x開頭的整數(shù),如:0x10,0xff,0x2a等。目前三十八頁\總數(shù)四百三十三頁\編于十二點■整型變量

用于存放整數(shù)的變量。分4種類型:①基本型:inta16位,可表示的數(shù)值范圍:-32768—32767②短整型:shortintb16位,可表示的數(shù)值范圍:-32768—32767③長整型:longintc32位,數(shù)值范圍:-2147483648—2147483647目前三十九頁\總數(shù)四百三十三頁\編于十二點

④無符號型:加上unsigned只存放正數(shù)。如:unsignedintx變量x為無符號整數(shù),16位全表示數(shù)碼,數(shù)值范圍:0—65535在程序設(shè)計中,如果要使用整型變量,必須首先選擇以上類型符來定義變量,然后才能使用;目前四十頁\總數(shù)四百三十三頁\編于十二點

例:main()定義

{inta,b,c;a=100;b=50;使用c=a+b;printf(“%d”,c);}一般根據(jù)什么原則選擇變量的類型?目前四十一頁\總數(shù)四百三十三頁\編于十二點3.4實型數(shù)據(jù)■實型常量

可使用兩種形式表示:①小數(shù)形式:如1.23,3.141592615.48②指數(shù)形式:如1e-201.23e5

目前四十二頁\總數(shù)四百三十三頁\編于十二點■實型變量

用于存放實數(shù)的變量分單精度和雙精度兩種:floata,b定義a和b為單精度型變量32位,7位有效數(shù)字,10-38—1038doublex,y定義x和y為雙精度型變量64位,15位有效數(shù)字,10-308—10308目前四十三頁\總數(shù)四百三十三頁\編于十二點

例:main(){floatr,c;doubler,c;r=5;c=2*3.1415926*r;printf(“%f”,c);}

目前四十四頁\總數(shù)四百三十三頁\編于十二點

3.5字符型數(shù)據(jù)■字符常量

用單引號括起來的一個字符。’a’,’x’,’*’,’1’等除此外,以’\’開頭的字符如’\n’,’\t’等稱為轉(zhuǎn)義字符,祥見書表3.3目前四十五頁\總數(shù)四百三十三頁\編于十二點

■字符型變量

用于存放字符的變量。charc1,c2定義c1和c2為字符型變量c1=’a’;c2=’b’;字符賦值字符型變量存放一個字符,占據(jù)一個字節(jié)目前四十六頁\總數(shù)四百三十三頁\編于十二點■字符型數(shù)據(jù)的存儲形式存放ASCII碼不是而是

如字符’a’在內(nèi)存中存放97,’b’存放98。與整數(shù)的存儲形式一致,它們之間可以通用一個字符數(shù)據(jù)既可以作字符用,也可以作整數(shù)用(取其ASCII代碼)。如:32+’a’相當于32+97若intx;charc;則x=’a’;c=97;x=97;c=’a’;都允許

a97目前四十七頁\總數(shù)四百三十三頁\編于十二點

■字符串常量

用雙引號括起來的字符序列。

如:”abcde”,”china””a”也屬字符串。注意”a”與’a’的區(qū)別。對于:charc;c=”a”;用法錯誤目前四十八頁\總數(shù)四百三十三頁\編于十二點

字符串中每個字符各占一個字節(jié),并且在字符串結(jié)尾加上一個結(jié)束標記’\0’如:”china”在內(nèi)存中占6個字節(jié)。

china\0

C語言中專門的字符串變量,可用字符數(shù)組存放(以后介紹)。目前四十九頁\總數(shù)四百三十三頁\編于十二點3.6變量賦初值

在定義變量的同時給相應(yīng)的變量賦初值。如:inta=3;afloatb=5.2;charc=’a’;intx=y=z=6;效果:在給變量分配內(nèi)存單元的同時在相應(yīng)的單元中存放初值。3目前五十頁\總數(shù)四百三十三頁\編于十二點3.7各數(shù)值型數(shù)據(jù)間的混合運算

整型、實型、字符型數(shù)據(jù)間可以進行混合運算,如:10-‘a(chǎn)’*1.5運算時,參加運算的兩個數(shù)據(jù)如果類型不同,則首先將其類型轉(zhuǎn)換成一致再運算,轉(zhuǎn)換規(guī)則是:

將優(yōu)先級低的類型轉(zhuǎn)換到優(yōu)先級高的類型目前五十一頁\總數(shù)四百三十三頁\編于十二點

數(shù)據(jù)類型的優(yōu)先級:高doublefloatlongunsignde低intchar目前五十二頁\總數(shù)四百三十三頁\編于十二點3.8算術(shù)運算符與算術(shù)表達式■基本的算術(shù)運算符+-*/%

■算術(shù)表達式

用算術(shù)運算符將運算對象連接起來的式子用于表達數(shù)學公式的式子如:2*x+y-1/a表達式經(jīng)過運算最終得到一個值:算術(shù)表達式的值目前五十三頁\總數(shù)四百三十三頁\編于十二點■運算符的優(yōu)先級與結(jié)合性

優(yōu)先級:在對表達式求值時,如果存在多個運算符,則運算的先后次序按運算符的優(yōu)先級別從高到底進行。運算符的優(yōu)先級關(guān)系為:高:*/%低:+-如:a-2*x先算*2*(a+2)有括號的情況?

目前五十四頁\總數(shù)四百三十三頁\編于十二點

結(jié)合性:如果在一個運算對象兩邊的運算符的優(yōu)先級相同,則按規(guī)定的“結(jié)合方向”處理。如:a-b+cb與-結(jié)合是從左到右,稱“左結(jié)合性”。b與+結(jié)合是從右到左,稱“右結(jié)合性”。每個運算符都有相應(yīng)的優(yōu)先級和結(jié)合性?;舅阈g(shù)運算符都是左結(jié)合性。

目前五十五頁\總數(shù)四百三十三頁\編于十二點計算表達式例:2+’A’-1/2.01+3/2-1構(gòu)造表達式例2x2+3x-1

a+ba-b

a+ba-b

x+yx-ya+b/a-b?(a+b)/(a-b)2*x*x+3*x-1(*不能?。?a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/((x+y)/(x-y))(a+b)/(a-b)/(x+y)*(x-y)目前五十六頁\總數(shù)四百三十三頁\編于十二點■強制類型轉(zhuǎn)換可以用強制類型轉(zhuǎn)換運算符將一個表達式的值轉(zhuǎn)換成所需類型:如:(int)(x+y)(float)(7%3)目前五十七頁\總數(shù)四百三十三頁\編于十二點

應(yīng)用舉例:

inta=200,b=300,c;c=a*b/100;?

可知,有自動轉(zhuǎn)換和強制轉(zhuǎn)換,當自動轉(zhuǎn)換達不到目的時,可用強制轉(zhuǎn)換。c=(long)a*b/100;c=(long)(a*b)/100;目前五十八頁\總數(shù)四百三十三頁\編于十二點■自增、自減運算符

自增運算符:++使變量值加1自減運算符:--使變量值減1兩種用法:++i,--i先加(減)后用i++,i--先用后加(減)兩種用法對i效果一樣,但表達式的值不同。例:假設(shè)i的原值為5:j=++i;j=?j=i++;j=?目前五十九頁\總數(shù)四百三十三頁\編于十二點

注意:●++和--只能用于變量。如:3++和(a+1)++不合法●++和--為右結(jié)合性。(-i)++-i++-(i++)

若i的原值是5,則該表達式的值是多少?目前六十頁\總數(shù)四百三十三頁\編于十二點

例:分析執(zhí)行下列語句后的結(jié)果:

a=5;abcd

b=a++;c=--a-b++;d=(a++)-(++b)+c--;

5565067-26-1目前六十一頁\總數(shù)四百三十三頁\編于十二點

兩種特殊情況:①k=(i++)+(i++)+(i++)

②i+++j是i+(++j)還是(i++)+j?

i++雖然與i=i+1等效,但使用自增自減運算符的代碼優(yōu)化程度好,因而經(jīng)常使用;但用時需特別小心。目前六十二頁\總數(shù)四百三十三頁\編于十二點3.9賦值運算符和賦值表達式■賦值運算符

“=”稱賦值運算符,其作用是將一個數(shù)據(jù)賦給一個變量。如:a=5不要理解為“等號”。執(zhí)行賦值運算的結(jié)果,是將右邊的數(shù)據(jù)存入左邊變量所對應(yīng)的內(nèi)存單元中。目前六十三頁\總數(shù)四百三十三頁\編于十二點■賦值規(guī)則

如果賦值運算符兩側(cè)的類型不一致,則在賦值時要進行類型轉(zhuǎn)換,轉(zhuǎn)換規(guī)則為:●實型→整變量舍去小數(shù)部分。inta=5.5;a中為5?!裾汀鷮嵶兞繑?shù)值不變,以浮點形式存儲?!褡址汀兞糠旁谡巫兞康?位。保持原值不變原則。inta=‘A’;目前六十四頁\總數(shù)四百三十三頁\編于十二點■復合賦值運算符

在賦值運算符前加上其它運算符,可以構(gòu)成復合賦值運算符。a+=3——a=a+3b-=x+5——b=b-(x+5)x*=c-6——x=x*(c-6)y/=a*4——y=y/(a*4)k%=b-2——k=k%(b-2)

屬于高效率運算符。目前六十五頁\總數(shù)四百三十三頁\編于十二點■賦值表達式

主要實現(xiàn)賦值運算的表達式。

一般形式:<變量>=<表達式>如:a=5y=2*x+3a=a+1不是衡等作用:將右邊表達式的值賦給左邊的變量。賦值表達式的值取左邊變量的值。目前六十六頁\總數(shù)四百三十三頁\編于十二點

賦值表達式右邊的<表達式>可以是任何表達式,如:a=(b=5)賦值表達式中包含賦值表達式賦值運算符的優(yōu)先級低于所有算術(shù)運算符,且是右結(jié)合性。a=(b=5)與a=b=5等效。

目前六十七頁\總數(shù)四百三十三頁\編于十二點

例:計算以下表達式的值:a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=4.5)+(c=6.5)(a、b、c為整型變量)a+=a-=a*a(設(shè)a的原值為3)目前六十八頁\總數(shù)四百三十三頁\編于十二點

賦值表達式是C語言中的一個重要成分,在賦值表達式后加一分號就成為常用的賦值語句。如y=2*x+1;賦值表達式作為表達式的一種,可以出現(xiàn)在任何表達式中,如:x+2-(b/3-(a=k-5)+’b’目前六十九頁\總數(shù)四百三十三頁\編于十二點

3.10逗號表達式

逗號也是一種運算符,用它對兩個表達式實現(xiàn)連接運算。3+5,6+8稱逗號表達式。逗號表達式的一般形式:表達式1,表達式2取表達式2的值作為整個逗號表達式的值。如:a=3*5,a*4逗號表達式的值為:60目前七十頁\總數(shù)四百三十三頁\編于十二點

一個逗號表達式又可以與另一個表達式組成一個新的逗號表達式,如:(a=3*5,a*4),a+5因此,逗號表達式的一般形式可以擴展為:表達式1,表達式2,表達式3,……,表達式n取表達式n的值作為整個逗號表達式的值。逗號運算符的優(yōu)先級最低,且是左結(jié)合性。

逗號運算符只起到連接作用,沒有實際操作。

目前七十一頁\總數(shù)四百三十三頁\編于十二點

第四章最簡單的C程序設(shè)計

C程序最基本的成分是語句目前我們已掌握的語句:變量說明語句:inta,b,c;表達式語句:x+y;特別地:a=5;賦值語句目前七十二頁\總數(shù)四百三十三頁\編于十二點可以編寫簡單程序如:

main(){intx,y;x=5;y=2*x*x+3*x-1;}該程序語法上完整,但還缺少輸出。

目前七十三頁\總數(shù)四百三十三頁\編于十二點

■數(shù)據(jù)的輸出

用輸出函數(shù)實現(xiàn),其中的兩種輸出函數(shù):1.putchar函數(shù)(字符輸出函數(shù))用于輸出一個字符。

如:

putchar(‘a(chǎn)’);putchar(100);charc=’b’;putchar(c);目前七十四頁\總數(shù)四百三十三頁\編于十二點

例:輸出單詞Boy的完整程序:

#include“stdio.h”注意該語句的作用main(){chara,b,c;a=’B’;b=’o’;c=’y’;putchar(a);putchar(b);putchar(c);}目前七十五頁\總數(shù)四百三十三頁\編于十二點

2.printf函數(shù)(格式輸出函數(shù))

任意類型、任意格式、任意個數(shù)。例如:inta=100,b=56;

printf(“a=%d,b=%d”,a,b);

普通字符格式說明格式控制輸出表列

輸出結(jié)果:a=100,b=56“%”后的字符稱格式字符,不同格式字符對應(yīng)不同的數(shù)據(jù)類型。目前七十六頁\總數(shù)四百三十三頁\編于十二點d格式符:按整數(shù)格式輸出

幾種用法:%d不指定寬度,按實際寬度輸出%md按指定寬度輸出,m為寬度%ld用于輸出長整型數(shù)目前七十七頁\總數(shù)四百三十三頁\編于十二點

例:inta=125,b=453;longc=65535;printf(“a=%d,b=%5d,c=%ld”,a,b,c);

輸出結(jié)果:a=125,b=453,c=65535目前七十八頁\總數(shù)四百三十三頁\編于十二點

%ld也可以按指定寬度輸出:

printf(“c=%8ld”,c);

輸出結(jié)果:c=65535注意:格式字符的類型要與對應(yīng)的輸出對象的類型一致。

目前七十九頁\總數(shù)四百三十三頁\編于十二點c格式符:用于輸出字符

charc=’A’;printf(“c=%c,%c”,c,’B’);

輸出結(jié)果:c=A,B

輸出對象既可以是字符變量、字符常量,還可以是整型表達式。

目前八十頁\總數(shù)四百三十三頁\編于十二點

如:inta=100;charb=’A’;printf(“\n%d,%c”,a,a);printf(“\n%c,%d”,b,b);

輸出結(jié)果:100,dA,65目前八十一頁\總數(shù)四百三十三頁\編于十二點s格式符:用于輸出字符串

%s不指定寬度%-ms指定寬度,左靠齊%ms指定寬度,右靠齊%m.ns指定寬度m,只取左端n個字符,右靠齊%-m.ns指定寬度m,只取左端n個字符,左靠齊目前八十二頁\總數(shù)四百三十三頁\編于十二點例:

printf(“1:%s”,”abcd”);printf(“2:%8s”,”abcd”);printf(“3:%-8s”,”abcd”);printf(“4:%8.3s”,”abcd”);printf(“5:%-8.3s”,”abcd”);1:abcd2:abcd3:abcd4:abc5:abc目前八十三頁\總數(shù)四百三十三頁\編于十二點f格式符:按小數(shù)形式輸出實數(shù)%f由系統(tǒng)指定寬度(6位小數(shù))%m.nf指定寬度m,小數(shù)位數(shù)n,右靠齊%-m.nf指定寬度m,小數(shù)位數(shù)n,左靠齊

注意:寬度包括符號和小數(shù)點。

目前八十四頁\總數(shù)四百三十三頁\編于十二點例:floata=3.141592654,b=14.326795,c=-125.2468;printf(“\na=%f,b=%8.3f,c=%-10.2f”,a,b,c);輸出結(jié)果:a=3.141592,b=14.326,c=-125.24

目前八十五頁\總數(shù)四百三十三頁\編于十二點完整前面的程序:main(){intx,y;x=5;y=2*x*x+3*x-1;printf(“\ny=%d”,y);}目前八十六頁\總數(shù)四百三十三頁\編于十二點程序設(shè)計例:

編寫程序計算如圖中的電流I.

假設(shè)U=220,R1=30,R2=60,R3=45UIR1R2R3目前八十七頁\總數(shù)四百三十三頁\編于十二點算法設(shè)計:I=U/R1+U/R2+U/R3程序設(shè)計:main(){

}I=U/R1+U/R2+U/R3;intU=220,R1=30,R2=60,R3=45;floatI;printf(“\nI=%f”,I);目前八十八頁\總數(shù)四百三十三頁\編于十二點

正確的程序:main(){intU=220,R1=30,R2=60,R3=45;floatI;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}目前八十九頁\總數(shù)四百三十三頁\編于十二點

考慮通用:main(){intU,R1,R2,R3;floatI;輸入U,R1,R2,R3I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}目前九十頁\總數(shù)四百三十三頁\編于十二點

■數(shù)據(jù)的輸入getchar函數(shù)(字符輸入)

#include“stdio.h”main(){charc;c=getchar();等待鍵盤輸入putchar(c);}

目前九十一頁\總數(shù)四百三十三頁\編于十二點scanf函數(shù)(格式輸入)

與printf函數(shù)相反。用于輸入若干任意類型的數(shù)據(jù)。scanf(“%d%d%d”,&a,&b,&c);格式控制地址列表

目前九十二頁\總數(shù)四百三十三頁\編于十二點

scanf(“%d%d%d”,&a,&b,&c);

執(zhí)行此函數(shù)時,等待從鍵盤輸入三個整數(shù)給a,b,c

若從鍵盤輸入358則系統(tǒng)即從鍵盤緩沖區(qū)取出這三個數(shù)分別賦給a,b,c注意與printf的區(qū)別,注意格式的匹配目前九十三頁\總數(shù)四百三十三頁\編于十二點如:scanf(“%3d%2d%4d”,&a,&b,&c);若從鍵盤輸入123456789a=123,b=45,c=6789若想使a=12,b=5,c=100則鍵盤輸入應(yīng)為:125100方便的輸入格式一般不指定寬度,如:scanf(“%d%d%d”,&a,&b,&c);目前九十四頁\總數(shù)四百三十三頁\編于十二點

在鍵盤輸入時,用分隔符把每個數(shù)據(jù)隔開,標準的分隔符是空格。如:12315023若想用逗號作分隔符,則:scanf(“%d,%d,%d”,&a,&b,&c);不要隨便使用普通字符,如使用:scanf(“a=%d,b=%dc=%d”,&a,&b,&c)對應(yīng)數(shù)據(jù)輸入:a=123,b=150,c=23目前九十五頁\總數(shù)四百三十三頁\編于十二點

前面的歐姆定律:main(){intU,R1,R2,R3;floatI;scanf(“%d%d%d%d”,&U,&R1,&R2,&R3);I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“\nI=%f”,I);}目前九十六頁\總數(shù)四百三十三頁\編于十二點求三角形面積#include“math.h”main(){floata,b,c,area,s;scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“\narea=%f”,area);}使用數(shù)學函數(shù)目前九十七頁\總數(shù)四百三十三頁\編于十二點使用三角函數(shù)#include“math.h”main(){floatx,y;scanf(“%f”,&x);y=sin(x*3.1415926/180);以弧度為單位printf(“\ny=%f”,y);}目前九十八頁\總數(shù)四百三十三頁\編于十二點第五章

選擇結(jié)構(gòu)程序設(shè)計

對于如下的函數(shù)計算,算法上屬于一個選擇結(jié)構(gòu)。

y=用于實現(xiàn)選擇結(jié)構(gòu)的主要是if語句。1/x當x≠0時

10000當x=0時目前九十九頁\總數(shù)四百三十三頁\編于十二點if語句的最常見形式為:if(關(guān)系表達式)語句1;else語句2;如:if(x!=0)y=1/x;elsey=10000;其中x!=0就是一個關(guān)系表達式!=就是一個關(guān)系運算符目前一百頁\總數(shù)四百三十三頁\編于十二點5.1關(guān)系運算符和關(guān)系表達式1、關(guān)系運算符用于進行比較運算的運算符。共有六種:<<=>>===!=■優(yōu)先級與結(jié)合性:①前4種大于后兩種。②低于算術(shù)運算符而高于賦值運算符。③左結(jié)合性。目前一百零一頁\總數(shù)四百三十三頁\編于十二點2、關(guān)系表達式一般形式:〈表達式〉〈關(guān)系運算符〉〈表達式〉如:a>ba+b>b+c經(jīng)過關(guān)系運算后最終有一個值--關(guān)系表達式的值。關(guān)系表達式的值只有0(假)或1(真)目前一百零二頁\總數(shù)四百三十三頁\編于十二點例:設(shè)a=2,b=4,c=1計算以下關(guān)系表達式的值:

a>ba+b>b+c‘a(chǎn)’>’b’可以是字符表達式(x=2)>(y=5)可以是賦值表達式(a<b)>(b<c)甚至可以是關(guān)系表達式a<b==b<c目前一百零三頁\總數(shù)四百三十三頁\編于十二點例:假設(shè)x=3,y=5,z=1,計算以下關(guān)系表達式的值:x+z>yx<y==y<zy>z==x>zy>x>z(x==y-2)<z+1==x+ya=x+y==x+z<y+x!=z+1>x+1目前一百零四頁\總數(shù)四百三十三頁\編于十二點5.2邏輯運算符和邏輯表達式有時,只用一個簡單的關(guān)系表達式無法完整地表達一個條件,如:y=

其中的條件需要用邏輯表達式來表達:x!=0&&a!=0&&就是一種邏輯運算符。1/x+1/a當x≠0,a≠0時

10000其它目前一百零五頁\總數(shù)四百三十三頁\編于十二點1、邏輯運算符&&邏輯與兩個操作數(shù)都為真時&&運算結(jié)果為真。||邏輯或兩個操作數(shù)之一為真時即為真。!邏輯非(單目運算)操作數(shù)為真(假)時為假(真)。如:若a=2,b=3,c=0則:a<b&&b<c0a<b||b<c1!(a<b)0目前一百零六頁\總數(shù)四百三十三頁\編于十二點■優(yōu)先級(由高到低):!邏輯非算術(shù)運算符關(guān)系運算符&&邏輯與||邏輯或賦值運算符■結(jié)合性:左結(jié)合性目前一百零七頁\總數(shù)四百三十三頁\編于十二點2、邏輯表達式實際上,前面所舉例子即為邏輯表達式:a<b&&b<ca<b||b<c!(a<b)邏輯表達式的值同樣只有1和0,但參加邏輯運算的操作數(shù)可以是任意類型的數(shù)據(jù),可以是任意大小。例:a+b&&b+c是合法的邏輯表達式。此時以0代表假,非0代表真。目前一百零八頁\總數(shù)四百三十三頁\編于十二點例:設(shè)a=2,b=3,c=0,計算以下表達式的值:

a&&bb&&ca||c

!a+c&&b+c

!c+a==b||b<a

a+c||a+b>c+10

目前一百零九頁\總數(shù)四百三十三頁\編于十二點對于邏輯表達式的兩種基本技能:①邏輯表達式的計算。②邏輯表達式的構(gòu)造。目前一百一十頁\總數(shù)四百三十三頁\編于十二點邏輯表達式的構(gòu)造舉例:a≥b≥c

a和b之一為0,但不同時為0a>=b>=c5>=4>=3a>=b&&b>=ca==0&&b!=0||a!=0&&b==0a*b==0a*b==0&&a+b!=0目前一百一十一頁\總數(shù)四百三十三頁\編于十二點對于a==0&&b!=0||a!=0&&b==0

a==0可以用!a代替a!=0可以直接用a!a&&b||a&&!b但必須是運算結(jié)果作為邏輯量的情況下。y=(a!=0)與y=a不等效目前一百一十二頁\總數(shù)四百三十三頁\編于十二點5.3if語句1、if語句的三種形式①

if(表達式)語句;有一分支為空。scanf(“%d”,&score);if(score>=60)printf(“pass”);

目前一百一十三頁\總數(shù)四百三十三頁\編于十二點

if(表達式)語句1;else語句2;if(x!=0)y=1/x;elsey=10000;目前一百一十四頁\總數(shù)四百三十三頁\編于十二點

if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;┇else語句n;if(score==100)printf(“A”);elseif(score>=90)printf(“B”);elseif(score>=80)printf(“C”);elseif(score>=70)printf(“D”);elseif(score>=60)printf(“E”);elseprintf(“F”);目前一百一十五頁\總數(shù)四百三十三頁\編于十二點

對于:

1/x當x≠0時10000當x=0時一般用:if(x!=0)y=1/x;elsey=10000;也可用:y=10000;if(x!=0)y=1/x;y=?y=1/x;if(x==0)y=10000目前一百一十六頁\總數(shù)四百三十三頁\編于十二點

例:(習題5.5):x(x<1)2x-1(1≤x<10)

3x-11(x≥10)y=目前一百一十七頁\總數(shù)四百三十三頁\編于十二點

main(){floatx,y;scanf(“%f”,&x);if(x<1)y=x;elseif(x<10)y=2*x-1;elsey=3*x-11;printf(“\ny=%f”,y);}目前一百一十八頁\總數(shù)四百三十三頁\編于十二點說明:①

語句中的表達式可以是任意表達式:if(x)y=1/x;elsey=10000;②一個if結(jié)構(gòu)不可分割:if(x)y=1/x;z=10;elsey=10000;③一個分支中包含多個語句時,要用{}:if(a<0){x=1;y=2;}else{x=10;y=20;}目前一百一十九頁\總數(shù)四百三十三頁\編于十二點分支程序設(shè)計舉例(基本技巧和算法)例:從鍵盤輸入三個整數(shù)到變量a,b,c,輸出其中最大的數(shù)。兩種典型算法:①枚舉法(將各種可能性枚舉出來)。②選擇法(先假設(shè)后判斷更新)。

目前一百二十頁\總數(shù)四百三十三頁\編于十二點選擇法main(){inta,b,c,max;scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(b>max)max=b;if(c>max)max=c;printf(“\nmax=%d”,max);}}目前一百二十一頁\總數(shù)四百三十三頁\編于十二點例:從鍵盤輸入三個整數(shù)到變量a,b,c,要求按從大到小的順序輸出。

兩種典型算法:①枚舉法(將各種可能的排列枚舉出來)。②換位法(將a,b,c中的數(shù)據(jù)換位)。目前一百二十二頁\總數(shù)四百三十三頁\編于十二點換位法main(){inta,b,c,t;scanf(“%d,%d,%d”,&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf(“\n%d,%d,%d”,a,b,c);}}358538553abc目前一百二十三頁\總數(shù)四百三十三頁\編于十二點2、if語句的嵌套在if語句中,又包含一個或多個if語句:if(score>=80)if(score>=90)printf(“A”);elseprintf(“B”);elseif(score>=60)printf(“C”);elseprintf(“D”);注意else與if的匹配目前一百二十四頁\總數(shù)四百三十三頁\編于十二點3、條件運算符如果兩個分支的內(nèi)容都是給同一個變量賦值,則可用簡單的條件運算符處理:if(a>b)max=a;elsemax=b;可用:max=a>b?a:b;賦值運算符右邊為一條件表達式。條件表達式的一般形式:表達式1?表達式2:表達式3目前一百二十五頁\總數(shù)四百三十三頁\編于十二點條件表達式的執(zhí)行過程:a>b?a:b

優(yōu)先級:低于關(guān)系運算符,高于賦值運算符。結(jié)合性:右結(jié)合性。

表達式1條件表達式取表達式3的值條件表達式取表達式2的值

非00目前一百二十六頁\總數(shù)四百三十三頁\編于十二點

例:求a,b,c中的最大值:max=a>b?(a>c?a:c):(b>c?b:c);目前一百二十七頁\總數(shù)四百三十三頁\編于十二點5.4switch語句(多分支)適用于根據(jù)一個表達式的值就可確定走哪個分支的情況。switch(表達式){常量表達式1:語句1常量表達式2:語句2┋常量表達式n:語句ndefault:語句n+1}目前一百二十八頁\總數(shù)四百三十三頁\編于十二點例:成績分檔:switch(score/10){case10:printf(“A”);case9:printf(“B”);case8:printf(“C”);case7:printf(“E”);case6:printf(“F”);default:printf(“G”);}注:應(yīng)使用break.目前一百二十九頁\總數(shù)四百三十三頁\編于十二點switch(score/10){case10:printf(“A”);break;case9:printf(“B”);break;case8:printf(“C”);break;case7:printf(“E”);break;case6:printf(“F”);break;default:printf(“G”);}目前一百三十頁\總數(shù)四百三十三頁\編于十二點5.5程序舉例(習題5.10)有4個圓塔,圓心分別為:(2,2),(-2,2),(-2,-2),(2,-2),圓半徑為1。這4個塔的高度為10m,塔以外無建筑物。今輸入任一點的坐標,求該點的建筑高度(塔外的高度為0)。目前一百三十一頁\總數(shù)四百三十三頁\編于十二點

算法設(shè)計:

條件“在某一圓內(nèi)”:“在圓1內(nèi)或在圓2內(nèi)或在圓3內(nèi)或在圓4內(nèi)”若設(shè)變量c1、c2、c3、c4分別代表是否在相應(yīng)的圓內(nèi),則以上條件為:c1||c2||c3||c4

10在某一圓內(nèi)0在圓外

(x,y)

h=目前一百三十二頁\總數(shù)四百三十三頁\編于十二點c1=(x-2)2+(y-2)2≤1c2=(x+2)2+(y-2)2≤1c3=(x+2)2+(y+2)2≤1c4=(x-2)2+(y+2)2≤1目前一百三十三頁\總數(shù)四百三十三頁\編于十二點main(){inth,c1,c2,c3,c4;floatx,y;scanf(“%f%f”,&x,&y);c1=(x-2)*(x-2)+(y-2)*(y-2)<=1;c2=(x+2)*(x+2)+(y-2)*(y-2)<=1;c3=(x+2)*(x+2)+(y+2)*(y+2)<=1;c4=(x-2)*(x-2)+(y+2)*(y+2)<=1;if(c1||c2||c3||c4)h=10;elseh=0;printf(“\nh=%d”,h);}

目前一百三十四頁\總數(shù)四百三十三頁\編于十二點第六章循環(huán)控制6.1概述

所謂循環(huán)控制,就是如何實現(xiàn)循環(huán)結(jié)構(gòu)的控制問題。有4種方法:①

用goto語句和if構(gòu)成循環(huán)。

用while語句。

用do-while語句。

用for語句。目前一百三十五頁\總數(shù)四百三十三頁\編于十二點6.2用goto語句和if語句構(gòu)成循環(huán)例:對于計算s=1+2+3+4+5+6+7+8+9+100s1is+i→s

i+1→ii≤10輸出syn目前一百三十六頁\總數(shù)四百三十三頁\編于十二點s=0;i=1;lable:s+=i;i++;if(i<=10)gotolable;

printf(“%d”,s);語句標號

無條件轉(zhuǎn)向語句goto語句可以構(gòu)造循環(huán),但不主張用,因為它容易破壞結(jié)構(gòu)化程序設(shè)計。

goto語句可以構(gòu)造循環(huán),但不主張用,因為它容易破壞結(jié)構(gòu)化程序設(shè)計。目前一百三十七頁\總數(shù)四百三十三頁\編于十二點6.3while語句while語句是專門用于實現(xiàn)循環(huán)控制的語句之一。其一般形式為:while(表達式)語句

含義:當表達式的值為非0時,執(zhí)行循環(huán)體,否則執(zhí)行后續(xù)語句。語句關(guān)鍵

表達循環(huán)條件的表達式循環(huán)體

語句關(guān)鍵字目前一百三十八頁\總數(shù)四百三十三頁\編于十二點

執(zhí)行過程:

while(表達式)語句

表達式循環(huán)體0非0目前一百三十九頁\總數(shù)四百三十三頁\編于十二點i≤10?s=0i=1s=s+ii=i+1例:用while語句實現(xiàn)前面算法:main(){inti=1,s=0;while(i<=10){s=s+i;i++;}printf(“\n%d”,s);}

注意與if語句的區(qū)別。循環(huán)體中要有使循環(huán)條件趨于成立的條件yn目前一百四十頁\總數(shù)四百三十三頁\編于十二點while(i<=10){s=s+i;i++;}

可簡寫為:

while(i<=10)s+=i++;目前一百四十一頁\總數(shù)四百三十三頁\編于十二點非0(真)0(假)表達式循環(huán)體6.4do-while語句

do-while語句主要用于實現(xiàn)直到型循環(huán)。

其一般形式為:do循環(huán)體while(表達式);執(zhí)行過程:目前一百四十二頁\總數(shù)四百三十三頁\編于十二點真s=0i=1i≤10?s=s+ii=i+1假例:用do-while語句實現(xiàn)前面算法:main(){inti=1,s=0;dos+=i++;while(i<=10);printf(“\n%d”,s);}注意與while語句的區(qū)別。目前一百四十三頁\總數(shù)四百三十三頁\編于十二點假表達式2求解表達式1循環(huán)體求解表達式3真6.5for語句

for語句是一種使用最為靈活,并且是用得最多的循環(huán)控制語句,其一般形式為:for(表達式1;表達式2;表達式3)循環(huán)體大體含義:對于()的情況執(zhí)行循環(huán)體內(nèi)容。目前一百四十四頁\總數(shù)四百三十三頁\編于十二點例:用for語句實現(xiàn)前面的算法:s=0;for(i=1;i<=10;i++)s+=i;標準形式表達式1表達式2表達式3循環(huán)體可以理解:循環(huán)變量i從初值1開始到終值10,步長為1,重復執(zhí)行循環(huán)體。目前一百四十五頁\總數(shù)四百三十三頁\編于十二點for語句的常見變化:s=0;i=1;for(;i<=10;i++)s+=i;s=0;

for(i=1;i<=10;)s+=i++;

s=0;i=1;

for(;i<=10;)s+=i++;

省略表達式1省略表達式3省略表達式1和3目前一百四十六頁\總數(shù)四百三十三頁\編于十二點

s=0;i=1;for(;;){s+=i++;if(i>10)break;}s=10;i=10;for(;--i;)s+=i;省略表達式2表達式2是任意表達式目前一百四十七頁\總數(shù)四百三十三頁\編于十二點

s=0;for(i=1,j=10;i<j;i++,j--)s+=i+j;

12345678910在程序設(shè)計中不要過分追求它的多變性ij用逗號表達式目前一百四十八頁\總數(shù)四百三十三頁\編于十二點例:求n!n!=1*2*3…(n-1)*n參照累加求和main(){inti,n=5,s=1;for(i=1;i<=n;i++)s*=i;printf(“\ns=%d”,s);}注意s的初值。注意當n較大時的情況。求和與連乘都是最常用的算法,要熟練掌握。

目前一百四十九頁\總數(shù)四百三十三頁\編于十二點例:求自然數(shù)1-100中能被3整除的數(shù)之和。main(){inti,s=0;

printf(“\n%d”,s);}求能被3整除但不被7整除的數(shù)之和?for(i=1;i<=100;i++)s+=i;for(i=1;i<=100;i++)if(i%3==0)s+=i;for(i=3;i<=100;i+=3)s+=i;for(i=3;i<=100;i+=3)if(i%7)s+=i;目前一百五十頁\總數(shù)四百三十三頁\編于十二點例:求任意100個數(shù)中的最大值。main(){inti,a,max;max=?for(i=1;i<=100;i++){scanf(“%d”,&a);if(a>max)max=a;}printf(“\nmax=%d”,max);}循環(huán)體中沒有引用循環(huán)變量。i的作用?求任意個數(shù)中的最大值?for(i=1;;i++)if(a==-9999)break;max=-32768;目前一百五十一頁\總數(shù)四百三十三頁\編于十二點外重循環(huán)內(nèi)重循環(huán)執(zhí)行200次要掌握多重循環(huán)執(zhí)行的全過程6.6循環(huán)的嵌套循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)(多重循環(huán))。for(i=1;i<=10;i++){for(j=1;j<=20;j++){s+=i+j;}}目前一百五十二頁\總數(shù)四百三十三頁\編于十二點以上多重循環(huán)結(jié)構(gòu)可以簡寫為:

for(i=1;i<=10;i++)for(j=1;j<=20;j++)s+=i+j;目前一百五十三頁\總數(shù)四百三十三頁\編于十二點例:找出行號乘以列號等于100的座位。

main(){inti,j;for(i=1;i<=30;i++)for(j=1;j<=20;j++)if(i*j==100)printf(“\n%d,%d”,i,j);}注意循環(huán)的關(guān)系目前一百五十四頁\總數(shù)四百三十三頁\編于十二點例:百錢買百雞問題。給定100塊錢,要求正好買100只雞,已知公雞5元/只,母雞3元/只,小雞1元/3只,問公雞、母雞和小雞應(yīng)各買多少只?若考慮用方程組:x+y+z=1005x+3y+z/3=100

是一多解問題。目前一百五十五頁\總數(shù)四百三十三頁\編于十二點用測試法求解的程序:main(){intx,y,z;for(x=1;x<=100;x++)for(y=1;y<=100;y++)for(z=1;z<=100;z++)if(x+y+z==100&&5*x+3*y+z/3.0==100)printf(“\n%d,%d,%d”,x,y,z);}目前一百五十六頁\總數(shù)四百三十三頁\編于十二點程序可進一步簡化為:main(){intx,y,z;for(x=1;x<=20;x++)for(y=1;y<=33;y++){z=100-x-y;if(5*x+3*y+z/3.0==100)printf(“\n%d,%d,%d”,x,y,z);}}用測試法求解問題的典型例子目前一百五十七頁\總數(shù)四百三十三頁\編于十二點測試法求解的程序設(shè)計有兩個要點:

⑴通過循環(huán)列出所有可能的解。⑵對所有列出的可能的解進行條件測試。目前一百五十八頁\總數(shù)四百三十三頁\編于十二點例:判斷一個數(shù)m是否為素數(shù)。main(){inti,m;scanf(“%d”,&m);for(i=2;i<m;i++)if(m%i==0)break;if(i==m)printf(“\n%disaprime”,m);elseprintf(“\n%disnotaprime”,m);}用測試法求解目前一百五十九頁\總數(shù)四百三十三頁\編于十二點例:(習題6.6)打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。如:153是一水仙花數(shù),因為153=13+53+33。目前一百六十頁\總數(shù)四百三十三頁\編于十二點main(){inti,j,k,n;for(n=100;n<=999;n++){i=?j=?k=?if(i*i*i+j*j*j+

溫馨提示

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

評論

0/150

提交評論