C語(yǔ)言教學(xué)課件探討_第1頁(yè)
C語(yǔ)言教學(xué)課件探討_第2頁(yè)
C語(yǔ)言教學(xué)課件探討_第3頁(yè)
C語(yǔ)言教學(xué)課件探討_第4頁(yè)
C語(yǔ)言教學(xué)課件探討_第5頁(yè)
已閱讀5頁(yè),還剩285頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言教學(xué)課件探討教學(xué)內(nèi)容第一章 C語(yǔ)言概述第三章 數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式第四章 最簡(jiǎn)單的C第五章 選擇結(jié)構(gòu)程序設(shè)計(jì)第六章 循環(huán)控制第九章 預(yù)處理命令第十一章結(jié)構(gòu)體第十三章文件2前言前言一、計(jì)算機(jī)語(yǔ)言1、機(jī)器語(yǔ)言2、匯編語(yǔ)言3、高級(jí)語(yǔ)言4、高級(jí)語(yǔ)言向機(jī)器語(yǔ)言的過(guò)渡高級(jí)語(yǔ)言源程序機(jī)器語(yǔ)言目標(biāo)程序計(jì)算結(jié)果編譯解釋執(zhí)行——機(jī)器指令的集合——符號(hào)化的機(jī)器語(yǔ)言——通用自然的算法語(yǔ)言3前言二、程序與程序設(shè)計(jì)——完成某一功能的計(jì)算機(jī)指令的有序集合1、程序2、程序設(shè)計(jì)——設(shè)計(jì)、編制、調(diào)試程序的過(guò)程43、程序設(shè)計(jì)的基本步驟(1)分析問(wèn)題(2)確定解題思路和算法(3)編制流程圖(4)編寫(xiě)源程序(5)靜態(tài)檢查(6)上機(jī)調(diào)試(7)正式運(yùn)行前言5本章內(nèi)容1.1C語(yǔ)言發(fā)展史1.2C語(yǔ)言特點(diǎn)1.3簡(jiǎn)單C程序分析第一章C語(yǔ)言概述返回6第一章C語(yǔ)言概述第一章C語(yǔ)言概述§1.1C語(yǔ)言發(fā)展史1960ALGOL60(AlgorithmicLanguage)198787ANSIC1990ISOC1972C(取BCPL第二個(gè)字母)1970B(取BCPL第一個(gè)字母)1978標(biāo)準(zhǔn)C1983ANSIC 1967BCPL(BasicCombinedProgrammingLanguage)跳轉(zhuǎn)7第一章C語(yǔ)言概述§1.2C語(yǔ)言特點(diǎn)1、簡(jiǎn)練、自由、結(jié)構(gòu)化(32個(gè)關(guān)鍵字、9種控制語(yǔ)句)2、運(yùn)算符豐富(附錄Ⅲ)34種3、數(shù)據(jù)結(jié)構(gòu)豐富4、可直接對(duì)硬件進(jìn)行操作5、目標(biāo)程序質(zhì)量高6、可移植性好8第一章C語(yǔ)言概述§1.3簡(jiǎn)單C程序分析例1.1打印(顯示)一串字符。運(yùn)行結(jié)果:Thisisanexle./*exle1.1*/main(){printf(“Thisisanexle.\n”);}9第一章C語(yǔ)言概述例1.2已知角度值45°,求正弦值的2倍。

/*exle1.2*/#include“math.h”main(){floatx,y;x=45;y=2*sin(x*3.14/180);printf(“Y=%f\n”,y);}運(yùn)行結(jié)果:Y=1.41365010第一章C語(yǔ)言概述例1.3已知三角形三邊a,b,c,求面積。/*exle1.3*/#include“math.h”main(){floata,b,c,p,s;scanf(“%f,%f,%f”,&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“P=%f\nS=%f”,p,s);}輸入:4,5,6↙輸出:P=7.500000S=9.92156711第一章C語(yǔ)言概述max(intx,inty)main()/*maxnumber*/{{intz; inta,b,c;if(x>y)z=x; scanf(“%d,%d”,&a,&b);elsez=y; c=max(a,b); return(z); printf(“max=%d\n”,c);} }例1.4已知整數(shù)a,b,求其中的最大數(shù)。12第一章C語(yǔ)言概述C程序結(jié)構(gòu)1、C程序由函數(shù)構(gòu)成C程序={一個(gè)主函數(shù)(main函數(shù))一個(gè)主函數(shù)+若干其他函數(shù)(子或庫(kù))說(shuō)明部分2、函數(shù){{函數(shù)體}數(shù)據(jù)定義執(zhí)行部分(語(yǔ)句){TurboC有300多個(gè)跳轉(zhuǎn)3、語(yǔ)句書(shū)寫(xiě)自由,后帶分號(hào)“;”4、可用/*……*/對(duì)C程序作注釋前一頁(yè)13本章內(nèi)容2.1算法的概念2.4算法的表示2.5結(jié)構(gòu)化程序設(shè)計(jì)第二章算法返回14第二章算法第二章算法程序=數(shù)據(jù)結(jié)構(gòu)+算法程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境數(shù)據(jù)結(jié)構(gòu):對(duì)數(shù)據(jù)的描述算法:對(duì)操作的描述#include“math.h”

main(){floatx,y;

x=45;

y=2*sin(x*3.14/180);printf(“Y=%f\n”,y);}15例如:1+2+3+……+100=5050或100+1+99+2+98+……+49+51+50=100+49*100+50=5050第二章算法§2.1算法的概念算法:為解決一個(gè)問(wèn)題而采取的方法和步驟。16第二章算法§2.4算法的表示(用流程圖表示算法)起止框處理框判斷框輸入/出框流程線連接點(diǎn)注釋框17第二章算法例2.1計(jì)算265的平方根順序結(jié)構(gòu)開(kāi)始X=265Y=√X輸出Y結(jié)束N—S圖X=265Y=√XY開(kāi)始結(jié)束18第二章算法例2.2打印X的絕對(duì)值分支結(jié)構(gòu)N—S圖X>=0yn

打印x打印

-xX>=0?x-x結(jié)束開(kāi)始19第二章算法例2.3計(jì)算 1到100的和循環(huán)結(jié)構(gòu)i<=100nN—S圖i=1,s=0s=s+ii=i+1打印syi=1,s=0s=s+ii=i+1打印s當(dāng)i<=10020(1)自頂向下(2)逐步細(xì)化(3)模塊化設(shè)計(jì)(4)結(jié)構(gòu)化編碼第二章算法§2.5結(jié)構(gòu)化程序設(shè)計(jì)方法(了解內(nèi)容)結(jié)構(gòu)化程序便于編寫(xiě)、閱讀、修改和維護(hù)。可以減少程序出錯(cuò)的機(jī)會(huì),提高程序的可靠性,保證程序的質(zhì)量。結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路是:把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行,每個(gè)階段處理的問(wèn)題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。21本章內(nèi)容3.1C的數(shù)據(jù)類(lèi)型3.2

常量與變量3.3整型數(shù)據(jù)3.4實(shí)型數(shù)據(jù)3.5字符型數(shù)據(jù)3.6變量賦初值3.8

算術(shù)運(yùn)算符與算術(shù)表達(dá)式3.9賦值運(yùn)算符和賦值表達(dá)式3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式返回22第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式空類(lèi)型void(無(wú)return的函數(shù))C數(shù)據(jù)類(lèi)型基本類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型整型實(shí)型字符型枚舉型數(shù)組型結(jié)構(gòu)體型共用體型單精度雙精度

第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式§3.1C的數(shù)據(jù)類(lèi)型23第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式§3.2常量與變量一、常量1、整型常量——0和正負(fù)整數(shù)4、字符串常量——“”括起來(lái)的字符串5、符號(hào)常量——#define符號(hào)名常量2、實(shí)型常量小數(shù)形式(12.34、-0.65)指數(shù)形式(0.1234e2)3、字符型常量‘’括起來(lái)的一個(gè)字符或以\開(kāi)頭的字符序列跳轉(zhuǎn)24第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式#definePI3.1415926例3.1判斷下列是否是C語(yǔ)言的常量

’1’-123’internet’2/4100.0-12e2.5"t"0.4e-4(字符型)(整型)(

)(

)(實(shí)型)(

)(字符串)(實(shí)型)例3.2定義一個(gè)符號(hào)常量PI,其值為

25第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式二、變量1、變量名——以標(biāo)識(shí)符命名由字母、數(shù)字或下劃線組成首字符為字母或下劃線用來(lái)標(biāo)識(shí)變量、符號(hào)常量、數(shù)組、函數(shù)、文件等標(biāo)識(shí)符例:sumgood123student_name26第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式2、變量的定義用變量定義語(yǔ)句定義變量及其類(lèi)型(1)變量定義語(yǔ)句的格式類(lèi)型關(guān)鍵字變量名或賦值表達(dá)式表;實(shí)型字符型(2)類(lèi)型關(guān)鍵字整型基本型int短整型short長(zhǎng)整型long無(wú)符號(hào)型unsigned單精度型float雙精度型doublechar27第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(3)說(shuō)明①必須在程序執(zhí)行部分之前對(duì)程序中的所有變量進(jìn)行定義②C語(yǔ)言中整型和字符型數(shù)據(jù)通用可在定義變量的同時(shí)給其賦初值例:inta=3,b=4,c=5;floatx,y,z=0.5;charw=‘a(chǎn)’;⑤變量名不能用關(guān)鍵字④變量區(qū)分大小寫(xiě)28第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(4)舉例3.3#definePI3.1415926#include“math.h”main(){floatx,y;x=67;y=2*sin(x*PI/180);printf(“y=%f”,y);}{floatx=67,y;注意區(qū)分:返回29第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式1、常量:十進(jìn)制567,-789,0八進(jìn)制0567,-0753十六進(jìn)制0x567,-0xa12、變量:inti,j;i=10;j=-10;i100000000000001010j-101111111111110110§3.3整型數(shù)據(jù)30第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式3、整型變量數(shù)的表示范圍:(-32768~32767)4、整型變量的分類(lèi):有符號(hào)基本整型[signed]int無(wú)符號(hào)基本整型unsignedint有符號(hào)短整型[signed]short[int]無(wú)符號(hào)短整型unsignedshort[int]有符號(hào)長(zhǎng)整型[signed]long[int]無(wú)符號(hào)長(zhǎng)整型unsignedlong[int]31第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式a0111111111111111b5、無(wú)符號(hào)和有符號(hào)數(shù)的比較:inta;(-32768~32767)unsignedintb;(0~65535)符號(hào)位數(shù)據(jù)位327676553511111111111111112152142132122112102928272625242322212032768、16384、8192、4096、2048、1024…32第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.4main(){inta,b,c,d;unsignedintu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}運(yùn)行結(jié)果:a+u=22,b+u=-14

33第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式a01111111111111116、整型數(shù)據(jù)的溢出:符號(hào)位32767a+11000000000000000符號(hào)位-327681111111111111111-134第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.5main(){inta,b;a=32767;b=a+1;printf(“a=%d,b=%d\n”,a,b);}運(yùn)行結(jié)果:a=32767,b=-32768

35第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式7、整型常量的類(lèi)型使用整型常量時(shí)應(yīng)注意以下幾點(diǎn):在(-32768~32767)范圍內(nèi)的整數(shù)賦給int型或long型變量 如:

inta;longb;a=0xb4;b=12;在(-2147483648~2147483647)范圍內(nèi)的整數(shù)賦給long型變量 如:

longb;b=50000;如果機(jī)器中短整型和基本整型所占字節(jié)數(shù)相同,則同等對(duì)待

如:

inta;shortb;a=0576;b=a;常量無(wú)unsigned型,賦值時(shí)注意溢出問(wèn)題一個(gè)整型常量后面加一個(gè)l

或L則認(rèn)為是long型常量(虛實(shí)對(duì)應(yīng)) 如:

inta;longb;a=1234;b=12L;36第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式1、常量:小數(shù)形式.567,-789.,0.0,5.0指數(shù)形式123e4,-753E-5(輸出時(shí)規(guī)范化1.23000e+06)2、變量:floatx;doubley;longdoublez;x=3.14159;y=7.86e12x.314159+1數(shù)符小數(shù)部分指數(shù)+.314159×103.141591+§3.4實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù))37第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式main(){floata,b;a=123456.789e5;b=a+20;printf(“a=%f,b=%f\n”,a,b);}運(yùn)行結(jié)果:

3、實(shí)型數(shù)據(jù)的舍入誤差舉例3.638第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式4、實(shí)型常量的類(lèi)型許多編譯系統(tǒng)均將實(shí)型常量按照雙精度數(shù)處理,結(jié)果存入單精度變量,降低了運(yùn)算速度,可以在實(shí)型常量的后邊加一個(gè)f或F以表示單精度數(shù)。如:floatf;f=2.45678f*4523.65f;5、單精度變量有6~

7位有效數(shù)字(10-37~1038)雙精度變量有15~16位有效數(shù)字(10-307

~10308)39第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式1、常量:(a)‘a(chǎn)’、‘x’、‘?’、‘$’(b)‘\n’、‘\t’、‘\’’(c)‘\101’、‘\x41’(d)‘\0’或‘\000’ASCII值為0的空操作字符2、變量:charc1,c2;c1=‘a(chǎn)’;c2=‘b’;3、內(nèi)存中的存儲(chǔ)形式c19701100001c29801100010八進(jìn)制十六進(jìn)制§3.5字符型數(shù)據(jù)‘A’40第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式4、字符型數(shù)據(jù)的使用舉例3.7main(){charc1,c2;c1=97;c2=98;printf(“c1=%c,c2=%c\n”,c1,c2);printf(“c1=%d,c2=%d\n”,c1,c2);}

運(yùn)行結(jié)果:c1=a,c2=bc1=97,c2=98

41第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.8main(){charc1,c2;c1=‘a(chǎn)’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“c1=%c,c2=%c\n”,c1,c2);printf(“c1=%d,c2=%d\n”,c1,c2);}運(yùn)行結(jié)果:c1=A,c2=Bc1=65,c2=6642第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.9main(){inti;charc;i=‘a(chǎn)’;c=97;printf(“c=%c,c=%d\n”,c,c);printf(“i=%c,i=%d\n”,i,i);}運(yùn)行結(jié)果:c=a,c=97i=a,i=9743第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式5、字符串常量“Howdoyoudo.”、“CHINA”、“a”、“$123.45”注意:(1)沒(méi)有字符串變量(可用字符數(shù)組存儲(chǔ))

(2)字符串常量在內(nèi)存中的存儲(chǔ)形式CHINA\0(3)在輸出語(yǔ)句中的應(yīng)用

printf(“Howdoyoudo.”);

printf(“c=%c,c=%d\n”,c,c);44第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式inta=3;floatf=3.14;charc=‘a(chǎn)’;inta,b=3,c;inta=3,b=3,c=3;

注意:變量的初始化不是在編譯階段完成的,而是在程序運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦予初始值的。§3.6變量賦初值45第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式§3.8算術(shù)運(yùn)算符與算術(shù)表達(dá)式一、C運(yùn)算符簡(jiǎn)介(13類(lèi))算術(shù)運(yùn)算符+-

*/%++-

-關(guān)系運(yùn)算符><==>=<=!=邏輯運(yùn)算符!&&||賦值運(yùn)算符=條件運(yùn)算符?:逗號(hào)運(yùn)算符,指針運(yùn)算符*&強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符(類(lèi)型關(guān)鍵字)46第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式二、算術(shù)表達(dá)式1、定義:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)且符合C語(yǔ)法規(guī)則的式子2、運(yùn)算順序a*b/c-1.5+‘a(chǎn)’473、運(yùn)算類(lèi)型(§3.7混合運(yùn)算

)(1)同類(lèi)型運(yùn)算結(jié)果類(lèi)型不變不同類(lèi)型運(yùn)算先按類(lèi)型級(jí)別低向高轉(zhuǎn)換成同一類(lèi)型,再計(jì)算doublefloatlongunsignedintchar,short

高低

10+‘a(chǎn)’+i*f-d/l②double④double⑤double①int4、優(yōu)先級(jí)和結(jié)合性③double第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式48第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式(類(lèi)型關(guān)鍵字)(表達(dá)式)例:(int)a(float)(5%3)(double)(x+y)三、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算注意:(int)x+y只轉(zhuǎn)換x的類(lèi)型后與y相加(int)x不等同于int(x)49第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.10main(){inti;floatx;x=3.6;i=(int)x;printf(“x=%f,i=%d\n”,x,i);}運(yùn)行結(jié)果:x=3.600000,i=350第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式四、自增、自減運(yùn)算1、運(yùn)算規(guī)則++i--i使用前使i值加(減)1i++i--使用后使i值加(減)12、注意(1)只能用于變量(2)右結(jié)合方向(3)使用時(shí)謹(jǐn)防出錯(cuò){j=++i;j=i++;相當(dāng)于{i=i+1;j=i;j=i;i=i+1;51第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式3、例52第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式§3.9賦值運(yùn)算符和賦值表達(dá)式一、賦值運(yùn)算符及其操作=將一個(gè)表達(dá)式的值賦給一個(gè)變量二、賦值表達(dá)式<變量><賦值運(yùn)算符><表達(dá)式>說(shuō)明:(1)發(fā)生類(lèi)型轉(zhuǎn)換(自學(xué)60-61頁(yè))(2)右結(jié)合例:x=-b/(2*a)a=b=c=5a=(b=4)+(c=6)那么a=5=b=c?53第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式三、復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算符=運(yùn)算符+賦值號(hào)例:a+=3 a+=3 a=a+3a*=x+y a*=x+y a=a*(x+y) a%=b a%=b a=a%b 例:設(shè)a=3求下列表達(dá)式的值a+=a-=a*aa+=(a-=a*a)a+=(a=a-a*a)a=a+(a=a-a*a)-1254第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式§3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式1、逗號(hào)表達(dá)式表達(dá)式1,表達(dá)式2,

,表達(dá)式n2、運(yùn)算規(guī)則從左到右依次計(jì)算各表達(dá)式的值,以表達(dá)式n的值作為最終值(其優(yōu)先級(jí)最低)例:比較(設(shè)a=3)a=3*5,a*4a=(3*5,a*4)計(jì)算后:值60,a=15a=1255第三章數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式舉例3.11main(){inti;floatf=7.2;printf(“i=%d\n”,(f+=4,i=f));printf(“f=%f\n”,f);}運(yùn)行結(jié)果:i=11f=11.20000056本章內(nèi)容4.1C語(yǔ)句概述4.2賦值語(yǔ)句4.3I/O的概念及在C語(yǔ)言中的實(shí)現(xiàn)4.4字符數(shù)據(jù)的輸入/輸出4.5格式輸入與輸出第四章最簡(jiǎn)單的C程序設(shè)計(jì)返回57第四章最簡(jiǎn)單的C程序設(shè)計(jì)§4.1C語(yǔ)句概述第四章最簡(jiǎn)單的C程序設(shè)計(jì)C語(yǔ)句控制語(yǔ)句(條件、分支、循環(huán))函數(shù)調(diào)用語(yǔ)句(函數(shù)加分號(hào))表達(dá)式語(yǔ)句(表達(dá)式加分號(hào))空語(yǔ)句(一個(gè)單獨(dú)的分號(hào))復(fù)合語(yǔ)句(用{}將若干語(yǔ)句括起)58第四章最簡(jiǎn)單的C程序設(shè)計(jì)§4.2賦值語(yǔ)句語(yǔ)句格式:賦值表達(dá)式;例如:if((a=b)>0)t=a;if((a=b))x=a;if(a==b)y=a;在if后面的小括號(hào)內(nèi)必須是表達(dá)式59

C程序最基本的成分是語(yǔ)句目前我們已掌握的語(yǔ)句:變量說(shuō)明語(yǔ)句:inta,b,c;

表達(dá)式語(yǔ)句:x+y;

特別地:a=5;賦值語(yǔ)句60可以編寫(xiě)簡(jiǎn)單程序如:

main(){intx,y;x=5;y=2*x*x+3*x-1;}

該程序語(yǔ)法上完整,但還缺少輸出。

61

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

用輸出函數(shù)實(shí)現(xiàn),其中的兩種輸出函數(shù):

1.putchar函數(shù)(字符輸出函數(shù))用于輸出一個(gè)字符。

如:

putchar(‘a(chǎn)’);putchar(100);charc=’b’;putchar(c);62

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

#include“stdio.h”注意該語(yǔ)句的作用

main(){chara,b,c;a=’B’;b=’o’;c=’y’;putchar(a);putchar(b);putchar(c);}63

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

任意類(lèi)型、任意格式、任意個(gè)數(shù)。例如:

inta=100,b=56;

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

普通字符格式說(shuō)明格式控制輸出表列

輸出結(jié)果:a=100,b=56“%”后的字符稱(chēng)格式字符,不同格式字符對(duì)應(yīng)不同的數(shù)據(jù)類(lèi)型。64

d格式符:按整數(shù)格式輸出

幾種用法:

%d不指定寬度,按實(shí)際寬度輸出

%md按指定寬度輸出,m為寬度

%ld用于輸出長(zhǎng)整型數(shù)65

例:

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

輸出結(jié)果:

a=125,b=453,c=6553566

c格式符:用于輸出字符

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

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

輸出對(duì)象既可以是字符變量、字符常量,還可以是整型表達(dá)式。

67

如:

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

輸出結(jié)果:

100,dA,6568完整前面的程序:main(){intx,y;x=5;y=2*x*x+3*x-1;printf(“\ny=%d”,y);}69例4.1已知三角形三邊a,b,c,求面積#include“math.h”main(){floata,b,c,p,s;scanf(“%f,%f,%f”,&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“p=%f\ns=%f\n”,p,s);}第四章最簡(jiǎn)單的C程序設(shè)計(jì)70第四章最簡(jiǎn)單的C程序設(shè)計(jì)例4.2已知整型變量x,y的值分別是3和5,

試將它們的值互換。intx=3,y=5,z;z=x;x=y;y=z;zy35x35371第四章最簡(jiǎn)單的C程序設(shè)計(jì)§4.3字符數(shù)據(jù)的輸入/輸出2、語(yǔ)句功能:從指定設(shè)備讀一個(gè)字符輸出c的值(字符)1、語(yǔ)句格式輸入:getchar();輸出:putchar(c);3、說(shuō)明使用標(biāo)準(zhǔn)I/O函數(shù)時(shí),應(yīng)在程序前加預(yù)編譯命令:#include“stdio.h”字符變量72第四章最簡(jiǎn)單的C程序設(shè)計(jì)例4.3輸入一個(gè)字符并把它輸出出來(lái)#include“stdio.h”main(){charc;c=getchar();putchar(c);}73第四章最簡(jiǎn)單的C程序設(shè)計(jì)1、語(yǔ)句格式輸入scanf(格式控制,地址表列);輸出printf(格式控制,輸出表列);2、語(yǔ)句功能按格式控制描述的格式給地址表列中的量輸入值或輸出輸出表列中各量的值3、格式控制“”括起來(lái)的一串格式字符和其它字符§4.4格式輸入與輸出74第四章最簡(jiǎn)單的C程序設(shè)計(jì)4、格式字符指定輸出寬度在格式符中插入:m.n例:%10d%10.4f%12.5e75本章內(nèi)容5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式5.2邏輯運(yùn)算符和邏輯表達(dá)式5.3if語(yǔ)句5.4switch語(yǔ)句4.5格式輸入與輸出第五章選擇結(jié)構(gòu)程序設(shè)計(jì)返回76第五章邏輯運(yùn)算和判斷選取控制第五章選擇結(jié)構(gòu)程序設(shè)計(jì)§5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、運(yùn)算符與優(yōu)先級(jí)(左結(jié)合性)<<=>>===!=同級(jí)同級(jí)高低算術(shù)運(yùn)算關(guān)系運(yùn)算賦值運(yùn)算高低77第五章邏輯運(yùn)算和判斷選取控制二、關(guān)系表達(dá)式1、關(guān)系表達(dá)式的形式<表達(dá)式><關(guān)系運(yùn)算符><表達(dá)式>2、關(guān)系表達(dá)式的值1——真0——假下列是合法的關(guān)系表達(dá)式:a+b>c+d(a=3)<(b=5)‘a(chǎn)’!=‘A’(a>b)==(c<d)注意:f=a<b<c表達(dá)式的值。如:0<x<5當(dāng)x=10時(shí),表達(dá)式成立78第五章邏輯運(yùn)算和判斷選取控制§5.2邏輯運(yùn)算符和邏輯表達(dá)式一、運(yùn)算符與優(yōu)先級(jí)!算術(shù)運(yùn)算關(guān)系運(yùn)算&&||高低邏輯運(yùn)算真值表79第五章邏輯運(yùn)算和判斷選取控制二、邏輯表達(dá)式1、邏輯表達(dá)式的值1——真0——假例:設(shè)a=4,b=5,則!a為0(假)a&&b-1為1(真)5>3&&2||2<4-!0結(jié)果為1①②③④⑤⑥逆波蘭表達(dá)式計(jì)算過(guò)程:從左到右,運(yùn)算符和其后面的比較,級(jí)別底的和前面的數(shù)一起進(jìn)棧,級(jí)別高的運(yùn)算,最后全部出棧同時(shí)完成計(jì)算。80第五章邏輯運(yùn)算和判斷選取控制(m=a>b)&&(n=c>d)

當(dāng)a=1,b=2,c=3,d=4,m=1,n=1時(shí),執(zhí)行結(jié)果m=0,(n=c>d)不被執(zhí)行,n仍然為13、運(yùn)算中一旦能確定其值,終止計(jì)算如計(jì)算:a&&b&&ca||b||c2、邏輯運(yùn)算的對(duì)象并非僅限于邏輯量C判斷處理的原則非0——真0——假例if(-5)x=10;elsex=0;思考題:上式去掉括號(hào)后m=a>b&&n=c>d結(jié)果如何?81第五章邏輯運(yùn)算和判斷選取控制§5.3if語(yǔ)句(條件語(yǔ)句)一、語(yǔ)句格式任意表達(dá)式可以是復(fù)合語(yǔ)句格式1:if(e)語(yǔ)句格式2:if(e)語(yǔ)句1else語(yǔ)句2格式3:if(e1)語(yǔ)句1

else

if(e2)語(yǔ)句2

else

if(e3)語(yǔ)句3…...

else

if(em)語(yǔ)句melse語(yǔ)句n82第五章邏輯運(yùn)算和判斷選取控制二、語(yǔ)句功能格式1:if(e)語(yǔ)句計(jì)算e的值并判斷。e值非0,則執(zhí)行語(yǔ)句;否則,執(zhí)行下條語(yǔ)句。格式2:if(e)語(yǔ)句1else語(yǔ)句2計(jì)算e的值并判斷。e值非0,則執(zhí)行語(yǔ)句1;否則,執(zhí)行語(yǔ)句2。下條語(yǔ)句語(yǔ)句1語(yǔ)句2e非00下條語(yǔ)句e語(yǔ)句非00goto83第五章邏輯運(yùn)算和判斷選取控制格式3:if(e)語(yǔ)句1

else

if(e)語(yǔ)句2

else

if(e)語(yǔ)句3…...

else

if(e)語(yǔ)句melse語(yǔ)句n123m計(jì)算e1

的值并判斷,其值非0執(zhí)行語(yǔ)句1;否則,判斷e2

的值,其值非0執(zhí)行語(yǔ)句2;否則,判斷e3

的值,其值非0執(zhí)行語(yǔ)句3;否則,.…..判斷em

的值,其值非0執(zhí)行語(yǔ)句m;否則,執(zhí)行語(yǔ)句n00e1e3eme2語(yǔ)句1語(yǔ)句3語(yǔ)句2語(yǔ)句m語(yǔ)句n

下條語(yǔ)句非0非0非0非000….84第五章邏輯運(yùn)算和判斷選取控制例5.1從鍵盤(pán)輸入兩個(gè)整型數(shù),輸出最大數(shù)。main(){inta,b;scanf(“%d,%d”,&a,&b);if(a>=b)printf(“max=%d\n”,a);if(b>a)printf(“max=%d\n”,b);}開(kāi)始enda,ba>ba<bab非0非00085第五章邏輯運(yùn)算和判斷選取控制例5.1從鍵盤(pán)輸入兩個(gè)整型數(shù),輸出最大數(shù)。main(){inta,b;scanf(“%d,%d”,&a,&b);if(b>a)a=b;printf(“max=%d\n”,a);}開(kāi)始enda,bb>aaa=b非0086第五章邏輯運(yùn)算和判斷選取控制例5.2輸入兩個(gè)整型數(shù),按大小輸出。main(){inta,b,temp;scanf(“%d,%d”,&a,&b);if(b>a){temp=a;a=b;b=temp;}printf(“%d,%d\n”,a,b);}開(kāi)始enda,bb>aa,bab非0087第五章邏輯運(yùn)算和判斷選取控制例5.3輸入互不相等的三個(gè)數(shù),按從小到大順序輸出它們。分析:設(shè)已知的三個(gè)數(shù)為a,b,c。(1)可直接通過(guò)邏輯表達(dá)式和條件語(yǔ)句設(shè)計(jì)程序。(2)可通過(guò)條件語(yǔ)句和互換變量值設(shè)計(jì)程序,即經(jīng)過(guò)處理后使:a<b<c88第五章邏輯運(yùn)算和判斷選取控制方法(1):main(){floata,b,c;scanf(“%f%f%f”,&a,&b,&c);if(a<b&&b<c)printf(“%f,%f,%f”,a,b,c);if(a<c&&c<b)printf(“%f,%f,%f”,a,c,b);

if(b<a&&a<c)printf(“%f,%f,%f”,b,a,c);if(b<c&&c<a)printf(“%f,%f,%f”,b,c,a);

if(c<b&&b<a)printf(“%f,%f,%f”,c,b,a);if(c<a&&a<b)printf(“%f,%f,%f”,c,a,b);}89第五章邏輯運(yùn)算和判斷選取控制方法(2):main(){floata,b,c,t;scanf(“%f%f%f”,&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(“%5.2f,%5.2f,%5.2f”,a,b,c);}90例5.4求一元二次方程ax2+bx+c=0的解第五章邏輯運(yùn)算和判斷選取控制求x1、x2x1、x2endd>=0無(wú)實(shí)根yn開(kāi)始d=b2-4aca,b,c開(kāi)始求根:x1、x2x1、x2enda,b,cd=b2-4ac91第五章邏輯運(yùn)算和判斷選取控制#include<math.h>main(){

float

a,b,c,d,x1,x2;scanf(“%f%f%f”,&a,&b,&c);d=b*b-4*a*c;if

(d>=0){

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);printf(“x1=%f,x2=%f\n”,x1,x2);}elseprintf(“Itisnorealroots.”);}92第五章邏輯運(yùn)算和判斷選取控制例5.5某運(yùn)輸公司噸公里基本運(yùn)費(fèi)為p,根據(jù)距離s的遠(yuǎn)近計(jì)費(fèi)標(biāo)準(zhǔn)如下:

s<250km 沒(méi)有折扣

250

s<500 2%折扣 500

s<1000 5%折扣 1000

s<2000 8%折扣 2000

s<3000 10%折扣 3000

s 15%折扣根據(jù)貨物重量w和運(yùn)距s,求運(yùn)費(fèi)f。返回93第五章邏輯運(yùn)算和判斷選取控制main(){floatp,s,w,d,f;scanf(“%f%f%f”,&p,&s,&w);if(s>=3000)d=0.15;elseif(s>=2000)d=0.10;elseif(s>=1000)d=0.08;elseif(s>=500)d=0.05;elseif(s>=250)d=0.02;elsed=0.0;f=p*w*s*(1-d);printf(“f=%15.2f”,f);}94第五章邏輯運(yùn)算和判斷選取控制三、if

語(yǔ)句的嵌套嵌套if

的一般形式if()if()語(yǔ)句1

else語(yǔ)句2elseif()語(yǔ)句3

else語(yǔ)句4內(nèi)嵌if內(nèi)嵌if注意:else總是與它上面最近的if配對(duì)95第五章邏輯運(yùn)算和判斷選取控制if()if()語(yǔ)句1elseif()語(yǔ)句2

else語(yǔ)句3內(nèi)嵌ifif()if()語(yǔ)句1elseif()語(yǔ)句2

else語(yǔ)句3內(nèi)嵌ifif()if()語(yǔ)句1else語(yǔ)句2if(){if()語(yǔ)句1}else語(yǔ)句296第五章邏輯運(yùn)算和判斷選取控制分析:a=0不是二次方程。

b2-4ac=0有兩個(gè)相等實(shí)根。b2-4ac>0有兩不等實(shí)根。b2-4ac<0有兩共軛復(fù)根。

#include“math.h”main(){floata,b,c,d,x,x1,x2,xr,xi;scanf(“%f%f%f”,&a,&b,&c);編程:例5.6求一元二次方程ax2+bx+c=0的解97第五章邏輯運(yùn)算和判斷選取控制求x1、x2x求xr、xix1、x2xr、xiNO!d=0d>0求xyynnd=b-4ac2yna=0開(kāi)始a,b,cend98第五章邏輯運(yùn)算和判斷選取控制if

(

fabs(a)<1e-6)printf(“No!”);else{d=b*b-4*a*c;if

(

fabs(d)<1e-6

){x=-b/(2*a);printf(“Twoequalroots:%f”,x);}else

if

(

d>0

){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(“Tworealroots:%f,%f”,x1,x2);}else{xr=-b/(2*a);xi=sqrt(-d)/(2*a);printf(“Complexroots:%f,%f”,xr,xi);}

}}99第五章邏輯運(yùn)算和判斷選取控制四、條件運(yùn)算符與條件表達(dá)式1、條件表達(dá)式的一般形式<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>2、運(yùn)算規(guī)則先計(jì)算表達(dá)式1,若為非0,則以表達(dá)式2的值作為條件表達(dá)式的值;否則,以表達(dá)式3的值為條件表達(dá)式的值。3、優(yōu)先級(jí)算術(shù)關(guān)系邏輯運(yùn)算(!除外)條件運(yùn)算賦值運(yùn)算高低右結(jié)合100第五章邏輯運(yùn)算和判斷選取控制(1)輸出x和y當(dāng)中的最大值

z=x>y?x:y;printf(“max=%d”,z);或printf(“max=%d”,x>y?x:y);或x>y?printf(“%d”,x):printf(“%d”,y);舉例:(2)a>b?a:b+1等價(jià)于a>b?a:(b+1)而不是(a>b?a:b)+1(3)a>b?a:c>d?c:d等價(jià)于a>b?a:(c>d?c:d)(4)x>y?1:5.6表達(dá)式的值的類(lèi)型取高的(5)ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;101第五章邏輯運(yùn)算和判斷選取控制§5.4switch語(yǔ)句一、語(yǔ)句格式switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1

case常量表達(dá)式2:語(yǔ)句2

……

case常量表達(dá)式n:語(yǔ)句ndefault:語(yǔ)句n+1}102第五章邏輯運(yùn)算和判斷選取控制二、執(zhí)行過(guò)程當(dāng)switch后的表達(dá)式的值與某一個(gè)case后的常量表達(dá)式的值相等時(shí),執(zhí)行其后的語(yǔ)句;若無(wú)匹配,則執(zhí)行default后的語(yǔ)句。三、break語(yǔ)句使流程跳出switch結(jié)構(gòu),終止switch語(yǔ)句的執(zhí)行。103第五章邏輯運(yùn)算和判斷選取控制例5.7用switch語(yǔ)句設(shè)計(jì)“例5.5運(yùn)費(fèi)程序”跳轉(zhuǎn)s<1d=01<s<2d=0.22<s<4d=0.054<s<8d=0.088<s<12d=0.112<s d=0.15104第五章邏輯運(yùn)算和判斷選取控制main(){floatp,w,s,d,f;intc;scanf(“%f”,&s);scanf(“%f%f”,&p,&w);if(s>=3000)c=12;elsec=s/250;switch(c){case0:d=0;break;case1:d=0.02;break;case2:case3:d=0.05;break;case4:

case5:case6:case7:d=0.08;break;case8:case9:case10:case11:d=0.1;break;case12:d=.15;break;}f=p*w*s*(1-d);printf(“f=%15.2f”,f);}105第五章作業(yè)第111頁(yè)5.3、5.5、5.7上機(jī)調(diào)試作業(yè)第111-112頁(yè)5.6、

5.7第五章邏輯運(yùn)算和判斷選取控制106第五章邏輯運(yùn)算和判斷選取控制習(xí)題5.5已知x,求分段函數(shù)值y

main() {floatx,y; scanf(“%f”,&x); if(x<1)y=x; if(x>=1&&x<10)y=2*x-1; if(x>=10)y=3*x-11; printf(“x=%f,y=%f\n”,x,y);}程序1:107第五章邏輯運(yùn)算和判斷選取控制

main() {floatx,y; scanf(“%f”,&x); if(x<1)y=x; elseif(x<10)y=2*x-1; elsey=3*x-11; printf(“x=%f,y=%f\n”,x,y);}程序2:108第五章邏輯運(yùn)算和判斷選取控制習(xí)題5.6分析:設(shè)百分制成績(jī)?yōu)閤,成績(jī)等級(jí)為y‘A’ x90‘B’ 80

x<90‘C’ 70

x<80‘D’ 60

x<70‘E’ x<60y=109第五章邏輯運(yùn)算和判斷選取控制習(xí)題5.1010 a||b||c||d0 其他h=分析:設(shè)坐標(biāo)為(x,y),高度為h 設(shè): a=(x-2)+(y-2)1 b=(x+2)+(y-2)1 c=(x+2)+(y+2)1 d=(x-2)+(y+2)122222222110本章內(nèi)容6.1概述6.2goto語(yǔ)句6.3while語(yǔ)句6.4do-while語(yǔ)句6.5for語(yǔ)句6.6循環(huán)的嵌套6.7幾種循環(huán)的比較6.8break語(yǔ)句和continue語(yǔ)句第六章循環(huán)控制返回111第六章循環(huán)控制第六章循環(huán)控制C循環(huán)控制if-goto循環(huán) (§6.2)while循環(huán) (§6.3)do-while循環(huán) (§6.4)for循環(huán) (§6.5)§6.1概述112第六章循環(huán)控制§6.2goto語(yǔ)句及其構(gòu)成的循環(huán)一、goto語(yǔ)句2、語(yǔ)句功能使控制轉(zhuǎn)到語(yǔ)句標(biāo)號(hào)所標(biāo)識(shí)的語(yǔ)句

gotoL1; L2:語(yǔ)句…… …...L1:語(yǔ)句 gotoL2;例:1、語(yǔ)句格式goto語(yǔ)句標(biāo)號(hào)寫(xiě)在語(yǔ)句前的標(biāo)識(shí)符(后加:)113第六章循環(huán)控制二、用法1、與if語(yǔ)句聯(lián)合使用構(gòu)成循環(huán)2、用來(lái)實(shí)現(xiàn)從多重循環(huán)體內(nèi)轉(zhuǎn)出L1:if(e) {循環(huán)體

gotoL1;}(當(dāng)型循環(huán))L2:循環(huán)體

if(e)

gotoL2;(直到型循環(huán))114第六章循環(huán)控制例6.1求s=1+2+3+….+n的值。

main(){inti=1,sum=0,n;scanf(“%d”,&n);L1:sum=sum+i;i++;if(i<=n)gotoL1;printf(“s=%d”,sum);}

main(){inti=1,sum=0,n;scanf(“%d”,&n);L1:if(i<=n){sum=sum+i;i++;gotoL1;}printf(“s=%d”,sum);}115第六章循環(huán)控制§6.3while語(yǔ)句—“當(dāng)型”循環(huán)一、語(yǔ)句格式while(e)循環(huán)體二、執(zhí)行過(guò)程(先判斷后執(zhí)行)當(dāng)表達(dá)式e值為非0時(shí),執(zhí)行循環(huán)體,然后重復(fù)執(zhí)行while語(yǔ)句;當(dāng)e的值為0時(shí),結(jié)束循環(huán),執(zhí)行后繼語(yǔ)句。非00循環(huán)體e單語(yǔ)句或復(fù)合語(yǔ)句116第六章循環(huán)控制例6.2求s=1+2+3+….+n的值(用while循環(huán)n=100)。main(){inti=1,s=0,n;scanf(“%d”,&n);while(i<=n){s=s+i;i++;}printf(“s=%d”,s);}main(){inti=1,s=0,n;scanf(“%d”,&n);while(i<=n)s+=i++;printf(“s=%d”,s);}117第六章循環(huán)控制§6.4do-while語(yǔ)句—“直到型”循環(huán)一、語(yǔ)句格式do循環(huán)體while(e);二、執(zhí)行過(guò)程(先執(zhí)行后判斷)先執(zhí)行do后的循環(huán)體,然后判斷表達(dá)式e的值,若為非0,重復(fù)執(zhí)行循環(huán)體,直到while中的表達(dá)式e為0,結(jié)束循環(huán)。循環(huán)體e0非0單語(yǔ)句或復(fù)合語(yǔ)句118第六章循環(huán)控制例6.3求s=1+2+….+n的值(用do-while循環(huán)n=100)。main(){inti=1,s=0,n;scanf(“%d”,&n);do{s=s+i;i++;}while(i<=n);printf(“s=%d”,s);}main(){inti=1,s=0,n;scanf(“%d”,&n);dos+=i++;while(i<=n);printf(“s=%d”,s);}119第六章循環(huán)控制§6.5for語(yǔ)句及其構(gòu)成的循環(huán)一、語(yǔ)句格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體計(jì)算表達(dá)式1計(jì)算表達(dá)式3表達(dá)式2循環(huán)體下一條語(yǔ)句0非0二、執(zhí)行過(guò)程1、計(jì)算表達(dá)式1。2、判斷表達(dá)式2。若非0,執(zhí)行循環(huán)體,轉(zhuǎn)3;否則,結(jié)束循環(huán),轉(zhuǎn)4。3、計(jì)算表達(dá)式3。轉(zhuǎn)2。4、執(zhí)行for語(yǔ)句的下一條語(yǔ)句。120第六章循環(huán)控制三、說(shuō)明1、for語(yǔ)句最簡(jiǎn)單、最常用的應(yīng)用形式for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)循環(huán)體例6.4求s=1+2+….+n的值(用for循環(huán)n=100)。main(){inti,s=0,n;scanf(“%d”,&n);for(i=1;i<=n;i++)s=s+i;printf(“s=%d”,s);}121第六章循環(huán)控制2、for語(yǔ)句中的三個(gè)表達(dá)式均可省略注意:(1)分號(hào)不能省略。(2)應(yīng)保證循環(huán)正確執(zhí)行。例main(){inti,s,n;scanf(“%d”,&n);for(i=1,s=0;i<=n;)s+=i++;printf(“s=%d”,s);}main(){inti=1,s=0,n;scanf(“%d”,&n);for(;i<=n;)s+=i++;printf(“s=%d”,s);}main(){inti=1,s=0,n;scanf(“%d”,&n);for(;;){s+=i++;if(i>n)break;}

printf(“s=%d”,s);}122第六章循環(huán)控制例6.5給一年級(jí)的小學(xué)生出10道100以?xún)?nèi)的加法練習(xí)題。分析:1、出題2、回答3、判斷對(duì)錯(cuò)#include“stdlib.h”main(){inti,x,y,z;randomize();for(i=1;i<=10;i++){x=random(99);y=random(99);printf(“%d+%d=”,x,y);scanf(“%d”,&z);if(z==x+y)printf(“\nright!\n”);elseprintf(“\nwrong!\n”);}}思考:1、做對(duì)幾題2、總成績(jī)#include“stdlib.h”main(){inti,x,y,z;intcount=0,score=0;randomize();for(i=1;i<=10;i++){x=random(99);y=random(99);printf(“%d+%d=”,x,y);scanf(“%d”,&z);if(z==x+y){printf(“\nright!\n”);count++;score+=10;}elseprintf(“\nwrong!\n”);}printf(“%d,%d\n”,count,score);}123第六章循環(huán)控制例6.6求Fibonacci數(shù)列:1,1,2,3,5,8,….的前30項(xiàng)。分析:f1=f2=1,fn=fn-1+fn-2(n>=3)

(注:一行打印3個(gè)數(shù)字)main(){longi=1,j=1,k;intn;printf(“%8ld%8ld”,i,j);for(n=3;n<=30;n++){k=i+j;printf(“%8ld”,k);if(n%3==0)printf(“\n”); i=j;j=k;}}124第六章循環(huán)控制例6.7求分?jǐn)?shù)序列:1/2,2/3,3/5,5/8,8/13,13/21,….的前20項(xiàng)之和。main(){int

k;floati=1,j=2,s=0;for(k=1;k<=20;k++){s=s+i/j;j=i+j;i=j-i;}

printf(“sum=%10.6f\n”,s);}125第六章循環(huán)控制1、循環(huán)的嵌套概念對(duì)各種循環(huán)結(jié)構(gòu)是一樣的,即某一循環(huán)的循環(huán)體內(nèi)包含另一循環(huán)結(jié)構(gòu)。2、各種循環(huán)結(jié)構(gòu)可以互相嵌套。例for嵌套for(;;){….for(;;){….}….}for-while嵌套for(;;){….while(){….}….}§6.6循環(huán)的嵌套—多重循環(huán)126第六章循環(huán)控制1、各種循環(huán)結(jié)構(gòu)可以互相替代,但不提倡使用用goto構(gòu)成的循環(huán)。2、在while和do-while語(yǔ)句構(gòu)成的循環(huán)體中必須有使循環(huán)趨于結(jié)束的語(yǔ)句,如i++。§6.7幾種循環(huán)的比較3、在while和do-while語(yǔ)句構(gòu)成的循環(huán)中,循環(huán)變量的初始化必須在循環(huán)之前完成。4、在while、do-while和for語(yǔ)句構(gòu)成的循環(huán)中,可以用break和continue跳出或結(jié)束本次循環(huán)

127第六章循環(huán)控制§6.8break語(yǔ)句和continue語(yǔ)句一、break語(yǔ)句1、用來(lái)跳出switch結(jié)構(gòu)。2、用來(lái)跳出當(dāng)前循環(huán)。循環(huán)break;二、continue語(yǔ)句用來(lái)結(jié)束本次循環(huán),即跳過(guò)當(dāng)前循環(huán)中后繼尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次循環(huán)循環(huán)continue;128第六章循環(huán)控制例6.8利用公式

2/6=1-2+2-2+3-2+4-2+….求的近似值,直到最后一項(xiàng)的值小于10-8為止。#include“math.h”main(){longi=1;doublepi=0;while(i*i<=1e8){pi=pi+1.0/(i*i);i++;}

pi=sqrt(6.0*pi);printf(“pi=%10.6f\n”,pi);}§6.9程序舉例129第六章循環(huán)控制例6.8利用公式

2/6=1-2+2-2+3-2+4-2+….求的近似值,直到最后一項(xiàng)的值小于10-8為止。#include“math.h”main(){longi;doublepi=0;for(i=1;i<10000;i++){if(i*i>=1e8)break;pi=pi+1.0/(i*i);}

pi=sqrt(6.0*pi);printf(“pi=%10.6f\n”,pi);}130第六章循環(huán)控制例6.9打印100以?xún)?nèi)個(gè)位數(shù)為6,且能被3整除的數(shù)。main(){inti,j;for(i=0;i<=9;i++){j=i*10+6;if(j%3!=0)continue;

printf("%d",j);}}可以省略131第六章循環(huán)控制例6.10寫(xiě)出下列程序的運(yùn)行結(jié)果。main(){inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++){if(j%2)break;a++;}a++;}printf("%d\n",a);}132第六章循環(huán)控制例6.11打印99表。1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81133第六章循環(huán)控制例6.11打印99表。main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf(“

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論