



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TOC\o"1-5"\h\z\o"CurrentDocument"第一章:進(jìn)制轉(zhuǎn)換問(wèn)題 4\o"CurrentDocument"第二章C語(yǔ)言初步 4\o"CurrentDocument"1:標(biāo)識(shí)符 4\o"CurrentDocument"2:標(biāo)識(shí)符的分類 4\o"CurrentDocument"3:類型關(guān)鍵字的分類: 54:常量 5\o"CurrentDocument"5:變量(什么類型的存儲(chǔ)空間中只能存放相應(yīng)類型的常量值,注:字符類型除外) 6\o"CurrentDocument"7S算術(shù)運(yùn)算符 7\o"CurrentDocument"9:強(qiáng)制類型轉(zhuǎn)換〕 7\o"CurrentDocument"第三章順序結(jié)構(gòu)... 8\o"CurrentDocument"1:輸出函數(shù)的格式: 82:格エし:由%加tit式む呼組成 83:格式字母分類 8\o"CurrentDocument"5:輸入函數(shù)的格式: 10\o"CurrentDocument"7:空語(yǔ)句 12\o"CurrentDocument"第四章選擇結(jié)構(gòu) 14\o"CurrentDocument"1:C語(yǔ)言中的邏輯值只有兩個(gè):真假 142:真值用1表示,假值用〇表示,在使用時(shí)要注意所有的非〇形式的值都可以理解為真值,〇就是假值 14\o"CurrentDocument"3:關(guān)系運(yùn)算 14\o"CurrentDocument"4S關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算之間的優(yōu)先級(jí)問(wèn)題 14\o"CurrentDocument"5:有關(guān)系運(yùn)算符參與的混合運(yùn)算 14\o"CurrentDocument"邏輯運(yùn)算和邏輯表達(dá)式 14\o"CurrentDocument"判斷結(jié)構(gòu): 15\o"CurrentDocument"SWITCH。多分支選擇結(jié)構(gòu) 19GOTO>^角)和語(yǔ)句^Fつフ 22\o"CurrentDocument"第五章循環(huán)結(jié)構(gòu) 22\o"CurrentDocument"1:循環(huán)的基本要求: 22\o"CurrentDocument"3:DO{ } WHILE(條イ-表達(dá)式); 25\o"CurrentDocument"4:FOR( )循環(huán) 276:循環(huán)結(jié)構(gòu)作為循環(huán)結(jié)構(gòu)的子語(yǔ)句(循環(huán)結(jié)構(gòu)的嵌套) 30\o"CurrentDocument"BREAK和CONTINUE語(yǔ)句的用法 32\o"CurrentDocument"第六章字符型數(shù)據(jù) 34\o"CurrentDocument"1:字符常量: 34\o"CurrentDocument"2:在有命令行STDIO.H的前提下,講兩個(gè)函數(shù) 34\o"CurrentDocument"3:解釋 35\o"CurrentDocument"4:多個(gè)不同格式之間不加任何符號(hào)輸入 35\o"CurrentDocument"5:多條輸入語(yǔ)句同時(shí)執(zhí)行 35\o"CurrentDocument"6:在有命令行STDIO.H的情況下,C語(yǔ)言中。、ヘ〇,、NULL意思是等價(jià)的 35\o"CurrentDocument"第七章函數(shù) 37\o"CurrentDocument"2S函數(shù)的分類: 37\o"CurrentDocument"用戶自定義函數(shù)的定義形式: 384:例 38\o"CurrentDocument"5:程序的流程中的問(wèn)題 38\o"CurrentDocument"6:在程序執(zhí)行過(guò)程中有三個(gè)問(wèn)題 39\o"CurrentDocument"第九章:數(shù)組 503:指針變量 70第十章:字符串 74\o"CurrentDocument"1:定義: 74\o"CurrentDocument"3:字符型數(shù)組: 744:在邊定義邊賦值時(shí),沒(méi)有使用完的存儲(chǔ)空間中默認(rèn)存放へ〇’這個(gè)字符常量 75\o"CurrentDocument"5:字符串在內(nèi)存中要占據(jù)ー維字符型數(shù)組的存儲(chǔ)區(qū)域 75\o"CurrentDocument"6:字符串和整型數(shù)組、字符型數(shù)組、實(shí)型數(shù)組的最大區(qū)別是: 75\o"CurrentDocument"8:幾種常見的字符串賦值方法 75\o"CurrentDocument"9:通過(guò)程序來(lái)形成子符串 76\o"CurrentDocument"10:幾種常見的對(duì)字符串處理的函數(shù)的使用方法。 77\o"CurrentDocument"11:二維字符型數(shù)組 79\o"CurrentDocument"第十一章對(duì)函數(shù)的進(jìn)ー步討論 82\o"CurrentDocument"主函數(shù)中的參數(shù) 82\o"CurrentDocument"2:指向函數(shù)的指針 83\o"CurrentDocument"3:遞歸算法: 84\o"CurrentDocument"第十二章:全局變量、局部變量、存儲(chǔ)分類 851:在函數(shù)體外部定義的變量叫全局變量 852:全局變量的作用域從定義語(yǔ)句下面到本程序完為至。 85局部變量的作用域從定義語(yǔ)句下面到本函數(shù)完為至。 853:當(dāng)全局變量與局部變量同名時(shí),在局部范圍內(nèi),以局部變量的值為準(zhǔn) 85\o"CurrentDocument"第十三章宏定義、宏代換、動(dòng)態(tài)存儲(chǔ) 87\o"CurrentDocument"2:宏代換: 87\o"CurrentDocument"第十四章:結(jié)構(gòu)體、共用體 891Z定義形式: 89:纟ロキ勾的使用方5^: 89\o"CurrentDocument"3:結(jié)構(gòu)體變量的定義方法: 90\o"CurrentDocument"4:結(jié)構(gòu)體數(shù)組的使用 90\o"CurrentDocument"5:結(jié)構(gòu)體指針的使用方法: 916:類型聲明符的使用TYPEDEF 917:結(jié)構(gòu)體變量所占據(jù)的存儲(chǔ)空間是它的各個(gè)成員所占據(jù)存儲(chǔ)空間之和 92\o"CurrentDocument"簡(jiǎn)單的單向鏈表 93\o"CurrentDocument"9:共用體 94\o"CurrentDocument"第十五章:位運(yùn)算 95\o"CurrentDocument"第十六章文件 961:文件ih針的疋義 96\o"CurrentDocument"3:關(guān)閉文件 96\o"CurrentDocument"FGETC()FPUTC() 函數(shù)的使用 96FSCANF()和FPRINTF()函數(shù)的用法 97FGETS()和FPUTS()函數(shù)的用法 97\o"CurrentDocument"FREAD()和FWRITE() 函數(shù)的使用方法 98\o"CurrentDocument"8:文件定位函數(shù) 98\o"CurrentDocument"10:REWIND函數(shù)稱為"反饒”函數(shù),調(diào)用格式如下: 99附錄1 100一:C語(yǔ)言常用關(guān)鍵字 100\o"CurrentDocument"二:運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 100附錄2庫(kù)函數(shù) 101\o"CurrentDocument"ー、數(shù)學(xué)函數(shù) 101二、す符困數(shù)和子付申函數(shù) 103\o"CurrentDocument"四、動(dòng)態(tài)分配函數(shù)和隨機(jī)函數(shù) 106第一章:進(jìn)制轉(zhuǎn)換問(wèn)題1:二進(jìn)制每位數(shù)值上面的數(shù)的范圍是0或12:十進(jìn)制每位數(shù)值上面的數(shù)的范圍是01234567893:ハ進(jìn)制每位數(shù)值上面的數(shù)的范圍是012345674:十六進(jìn)制每位數(shù)值上面的數(shù)的范圍是0123456789ABCDEF5:十進(jìn)制轉(zhuǎn)換為二進(jìn)制的方法:除二倒序取余6:二進(jìn)制轉(zhuǎn)換為十進(jìn)制的方法:按權(quán)展開7:二進(jìn)制轉(zhuǎn)換為ハ進(jìn)制的方法:從右邊往左邊按三位二進(jìn)制位來(lái)分段,每ー個(gè)段都對(duì)應(yīng)一位ハ進(jìn)制值,前后段之間沒(méi)有聯(lián)系。8:二進(jìn)制轉(zhuǎn)換為十六進(jìn)制的方法:從右邊往左邊按四位二進(jìn)制位來(lái)分段,每ー個(gè)段都対應(yīng)一位十六進(jìn)制值,前后段之間沒(méi)有聯(lián)系。學(xué)C語(yǔ)言應(yīng)該注意的兩點(diǎn):1:編寫程序過(guò)程中所用到的數(shù)值一定要先用類型關(guān)鍵字在內(nèi)存中開辟能存放該數(shù)值的空間。2:不同的數(shù)值所需要的存儲(chǔ)空間大小是不ー樣,由類型關(guān)鍵字來(lái)區(qū)分。第二章C語(yǔ)言初步例題2.1:計(jì)算矩形面積。#include<stdio.h>main()命令行主函數(shù)stdio.h是標(biāo)準(zhǔn)的輸入、輸出文件{ doublea,b,area ; 定義語(yǔ)句 語(yǔ)句是由 表達(dá)式a=2.1; 賦值語(yǔ)句b=3.6; 賦值語(yǔ)句area=a*b; 計(jì)算語(yǔ)句printf(4<a=%lf,b=%If,area=%lf\n”,a,b,area); 輸岀函數(shù)加:組成1:標(biāo)識(shí)符用途:可用做變量名、符號(hào)名、函數(shù)名、等等。定義:a:只能含有3類字符:字母,數(shù)字,下劃線?!?4b:只能以字母或下劃線開頭。注意:ー個(gè)合法的標(biāo)識(shí)符必須同時(shí)滿足上面兩個(gè)條件。2:標(biāo)識(shí)符的分類1)關(guān)鍵字:由C語(yǔ)言規(guī)定的ー批標(biāo)識(shí)符,它們?cè)诔绦蛑兄荒艽碇潭ǖ暮x,不能另做其它用途。一般情況下分為:類型關(guān)鍵字:imdouble,操作關(guān)鍵字:iffor.2)預(yù)定義標(biāo)識(shí)符:由C語(yǔ)言規(guī)定的ー些標(biāo)識(shí)符,它們?cè)诔绦蛑幸泊碇潭ǖ暮x,但C語(yǔ)言語(yǔ)法允許用戶可以把它們另做其它用意。注意:在編寫程序過(guò)程中盡量不要把關(guān)鍵字和預(yù)定義關(guān)鍵字的用法改動(dòng)、用做其它意思。3)用戶自定義標(biāo)識(shí)符:由用戶根據(jù)需要、通過(guò)類型關(guān)鍵字定義的標(biāo)識(shí)符,一般常用做變量名、函數(shù)名、數(shù)組名等等。3:類型關(guān)鍵字的分類:1)字符型 關(guān)鍵字為 char空間大小:所開辟的存儲(chǔ)空間在內(nèi)存中占據(jù)ー個(gè)字節(jié)作用:用此類型關(guān)鍵字在內(nèi)存中為合法的用戶自定義標(biāo)識(shí)符開辟存儲(chǔ)空間,此存儲(chǔ)空間中只能存放字符常量值。2)整型 分為:a:整型 關(guān)鍵字為 int空間大?。核_辟的存儲(chǔ)空間在內(nèi)存中占據(jù)四個(gè)字節(jié)作用:用此類型關(guān)鍵字在內(nèi)存中為合法的用戶自定義標(biāo)識(shí)符開辟存儲(chǔ)空間,此存儲(chǔ)空間中只能存放整型常量值。b:長(zhǎng)整型關(guān)鍵字為!ong空間大小:所開辟的存儲(chǔ)空間在內(nèi)存中占據(jù)四個(gè)字節(jié)作用:用此類型關(guān)鍵字在內(nèi)存中為合法的用戶自定義標(biāo)識(shí)符開辟存儲(chǔ)空間,此存儲(chǔ)空間中只能存放長(zhǎng)整型常量值。3)實(shí)型 分為:a:?jiǎn)尉葘?shí)型關(guān)鍵字為float空間大?。核_辟的存儲(chǔ)空間在內(nèi)存中占據(jù)四個(gè)字節(jié)作用:用此類型關(guān)鍵字在內(nèi)存中為合法的用戶自定義標(biāo)識(shí)符開辟存儲(chǔ)空間,此存儲(chǔ)空間中只能存放單精度實(shí)型常量值。b:雙精度實(shí)型 關(guān)鍵字為double空間大小:所開辟的存儲(chǔ)空間在內(nèi)存中占據(jù)ハ個(gè)字節(jié)作用:用此類型關(guān)健字在內(nèi)存中為合法的用戶自定義標(biāo)識(shí)符開辟存儲(chǔ)空間,此存儲(chǔ)空間中只能存放雙精度型常量值。注意:VC++6.0環(huán)境中默認(rèn)實(shí)型數(shù)值的小數(shù)部分有六位小數(shù)。4J常量分為:1)字符型常量:定義:用單引號(hào)引起來(lái)、中間有且只有一個(gè)字符例:匕‘'1' 'A' *#' *?)2)字符串常量:定義:只要用雙引號(hào)引起來(lái)的都是。例:“123ab“ilACSW#$"3)整型常量: 定義:就是數(shù)學(xué)里的整數(shù) 例:100,-451,04)實(shí)型常量:分為:a:實(shí)數(shù)形式:定義:由數(shù)字和小數(shù)點(diǎn)組成,就是數(shù)學(xué)里的實(shí)數(shù)例:3.14,-0.0145,-5896.,.1402b:指數(shù)形式標(biāo)準(zhǔn)形式:定義:就像數(shù)學(xué)中的科學(xué)記數(shù)法一樣,規(guī)定小數(shù)點(diǎn)前面只能有一位有效數(shù)字,小數(shù)點(diǎn)后面可跟六位小數(shù),指數(shù)有正、負(fù)之分,指數(shù)的位數(shù)為三位,指數(shù)的格式總共占五位,10要用小寫e或大寫E來(lái)表示。例:321,45可些成:3.214500e+002手寫形式:定義:字母e或E之前必須要有數(shù)字,且之后的指數(shù)必須是整數(shù),且中間不能加入空格。例:錯(cuò)的:e3,.5E3.6,e5)ハ進(jìn)制常量:定義:必須以數(shù)字〇(零)開頭的例:0451,0241, 0778(錯(cuò)的)6)十六進(jìn)制常量:定義:必須以O(shè)x或0X開頭的例:0Xaa,0xl4f,0x1475Z變量 (什么類型的存儲(chǔ)空間中只能存放相應(yīng)類型的常量值,注:字符類型除外)1)作用:?般情況用做存儲(chǔ)空間的名稱2)定義形式:存儲(chǔ)類別存儲(chǔ)類型關(guān)鍵字變量名;3)存儲(chǔ)類別一般情況下可以省略,省略時(shí)默認(rèn)為 auto類別4)常用定義形式:存儲(chǔ)類型關(guān)鍵字變量名:5)例:inta;意義:a:給自定義標(biāo)識(shí)符a在內(nèi)存中開辟合法的存儲(chǔ)空間b:變量名就代表了它在內(nèi)存中所表示的存儲(chǔ)空間中的值c:存儲(chǔ)類別省略的,auto類別變量只定義過(guò),沒(méi)有賦初值,此存儲(chǔ)空間中默認(rèn)存放著不可遇見的值,稱為隨機(jī)值?6)定義的多種形式:(一定要遵守:先定義,后使用原則)例1: int a: 定義aint b; 定義bint c; 定義ca=b=c=10;把!0分別寫入a,b,c三個(gè)名字所代表的不同存儲(chǔ)空間中例2:inta,b,c: 定義a,bca=b=c=10;把!0分別寫入a,b,c三個(gè)名字所代表的不同存儲(chǔ)空間中例3:inta=10,b=10,c=10; ?先從左往右為各個(gè)變量名在內(nèi)存開不同的辟存儲(chǔ)空間< 再把10分別寫入三個(gè)名字所代表的不同存儲(chǔ)空間中7)定義字符類型值例1:charch;ch=65;意義:是把整型常量65當(dāng)成ASCCII碼,把此ASCII碼所對(duì)應(yīng)的字符常量值存放到ch所表示的存儲(chǔ)空間中例2:charch;ch=4; 意義:把字符常量4存放到ch所表示的存儲(chǔ)空間中6:賦值語(yǔ)句1)運(yùn)算符 = 在C語(yǔ)言中它稱為賦值符,意思是寫入或存入、存放到。2)運(yùn)算規(guī)則:把運(yùn)算符れ側(cè)的最終結(jié)果存放到運(yùn)算符左邊的存儲(chǔ)空間中3)要求:賦值運(yùn)算符的左側(cè)只能為變量(只有變量才能在內(nèi)存中代表存儲(chǔ)空間)右側(cè)的表達(dá)式不能是任意表達(dá)式。例:inta=10,b=20,c=30,d=40;a=b+7=c+d; 就是個(gè)錯(cuò)的表達(dá)式4)賦值號(hào)兩側(cè)類型統(tǒng)ー問(wèn)題例1: 大類型存儲(chǔ)空間=小數(shù)值floata;a=10; /?計(jì)算機(jī)系統(tǒng)內(nèi)部先把10這個(gè)整型常量轉(zhuǎn)變?yōu)橄鄳?yīng)的實(shí)型常量,再給a所表示的存儲(chǔ)空間中存?/例2: 小類型存儲(chǔ)空間=大數(shù)值inta;a=3.145;/?計(jì)算機(jī)系統(tǒng)內(nèi)部把實(shí)數(shù)分為三部分,整數(shù)部分?jǐn)?shù)字、小數(shù)部分?jǐn)?shù)字、小數(shù)點(diǎn),只把相應(yīng)的整數(shù)部分?jǐn)?shù)字存放到a所表示的空間中?/7:算術(shù)運(yùn)算符1)單目運(yùn)算符:+表示正值-表示負(fù)值2)雙目運(yùn)算符:?乘/除%求余+加一減3)運(yùn)算符的運(yùn)算優(yōu)先級(jí): 單目高于雙冃4)%符的運(yùn)算規(guī)則 a:運(yùn)算符兩側(cè)只能是整數(shù)值b:例如:m%n時(shí),當(dāng)m<n時(shí),求余的結(jié)果為m5)雙目運(yùn)算符的兩側(cè)類型統(tǒng)ー問(wèn)題a:當(dāng)兩側(cè)運(yùn)算數(shù)的類型統(tǒng)ー時(shí),結(jié)果和運(yùn)算數(shù)的類型保持一致例:3.6+1.2結(jié)果為4.8 三個(gè)數(shù)值的類型是一致的b:當(dāng)兩側(cè)運(yùn)算數(shù)的類型不統(tǒng)ー時(shí),結(jié)果必須和大的存儲(chǔ)類型保持一致例:3.6+50結(jié)果為53.6 實(shí)型值加整型值結(jié)果為實(shí)型值6)1/2 按照第5條的運(yùn)算原則結(jié)果是〇而不是0.5例:用梯形面積公式求面積(1/2)*(a+b)*h 這樣寫的結(jié)果是〇8:復(fù)合的賦值表達(dá)式1)運(yùn)算符 *= /= %= += -=2)解釋為:它是有算術(shù)運(yùn)算符和賦值運(yùn)算符結(jié)合起來(lái)的運(yùn)算符,兩個(gè)符號(hào)之間不能加空格3)運(yùn)算原則: inta=10,b=20;a+=b; 計(jì)算過(guò)程完全等價(jià)于a=a+b;4)%=運(yùn)算符的運(yùn)算原則和%求余運(yùn)算符的原則是ー樣的5)復(fù)合的賦值表達(dá)式左側(cè)只能為變量(必須代表能存數(shù)值的存儲(chǔ)空間)6)例:inta=10;a=a-=a*=a+a;9J強(qiáng)制類型轉(zhuǎn)換1)形式:(存儲(chǔ)類型關(guān)鍵字)對(duì)象2)對(duì)象一般可為常量、變量、表達(dá)式、函數(shù)等。3)例:(int)3.5478 此表達(dá)式的結(jié)果為34)四舍五入例:把3.141592保留3位小數(shù)對(duì)第四位小數(shù)進(jìn)行四舍五入doublea=3.141592;a=(int)(a*1000+0.5)/1000.0;10:++自加一自減
1)在第二章中的使用形式inta=10;a++:意義:先應(yīng)用后自加a++;++a;a+=l;a=a+l;++a;意義:先自加后應(yīng)用a-; 意義:先應(yīng)用后自減-a; 意義:先自減后應(yīng)用應(yīng)用的含義:在有自加或自減的混合表達(dá)式中,根據(jù)運(yùn)算符的優(yōu)先級(jí)從高到低依次執(zhí)行,如果先執(zhí)行自加或自減運(yùn)算,此時(shí)在該表達(dá)式中要是還有其它的運(yùn)算或操作,都要考慮意義,先應(yīng)用就是自加符號(hào)讓它的自加對(duì)象先和表達(dá)式中其它的所有運(yùn)算符結(jié)合完,最后再給自加對(duì)象所表示存儲(chǔ)空間中的值加一個(gè)1,后應(yīng)用就是自加符號(hào)先給自加對(duì)象所表示存儲(chǔ)空間中的值加一個(gè)1。再讓加1后的值和表達(dá)式中的其它運(yùn)算符結(jié)合。2)自加3)自加4)例1:或自減運(yùn)算符執(zhí)行一次只能加一個(gè)1或是減ー個(gè)12)自加3)自加4)例1:或自減運(yùn)算符執(zhí)行一次只能加一個(gè)1或是減ー個(gè)1或自減的對(duì)象只能是變量
inta=10,b=5;a+=b++;過(guò)程分解為:(因?yàn)?+帶有賦值的含義)例2:inta=10,b=5;a+=++b:過(guò)程分解為:a=a+bb=b+la最后為15b最后為6b=b+la=a+b5)像a++;v-;++b;這樣的表達(dá)式中只有自加、b最后為6a最后為16自減運(yùn)算的運(yùn)算式子,就不用考慮它們的意義,直接給自加、自減的對(duì)象所表示存儲(chǔ)空間中的值加、減ー個(gè)111:逗號(hào)表達(dá)式1)形式:(表達(dá)式1,表達(dá)式2,表達(dá)式3,表達(dá)式4)2)運(yùn)算原則:從最左邊的第一個(gè)表達(dá)式開始ー個(gè)、一個(gè)表達(dá)式往右計(jì)算,把最后ー個(gè)表達(dá)式的結(jié)果做為整個(gè)逗號(hào)表達(dá)式的結(jié)果進(jìn)行處理。3)運(yùn)算原則:要是ー個(gè)逗號(hào)表達(dá)式共包含了n個(gè)表達(dá)式,如果前n-1個(gè)表達(dá)式的結(jié)果對(duì)最后一個(gè)表達(dá)式的結(jié)果沒(méi)有影響的話,前n-1個(gè)表達(dá)式就可以不用計(jì)算4>;inta,b;a=(b=3,b++,++b,b+=10); 最后a為15第三章順序結(jié)構(gòu)1:輸出函數(shù)的格式:l:printf("輸出控制格式輸出列表); 2:printf("輸出控制格式");2Z格式:由%加格式字母組成3;格式字與ク類 charcshortintdlongIdfloatfdoubleIf扌旨數(shù) eE ハ進(jìn)制〇!6進(jìn)制xX%d:十進(jìn)制整型 %〇:ハ進(jìn)制整型%x:十六進(jìn)制整型%ld:十進(jìn)制長(zhǎng)整型4:輸出形式:1>:輸出字符類型值charch=,A,;printf(M%c\nM,ch);charch=5;printf("%c\n”,ch);2)輸出整型值inta=10;printf(44%d\n”,a);3)輸出長(zhǎng)整型值longb=100;printf(44%ld\n”,b);4)輸出實(shí)型值doublec=3.145;printf(44%lf\nM,c);5)在%和格式字母之間可以加輸出的總寬度對(duì)字符值和對(duì)整型值charch='D';printf(44%4c\n”,ch);inta=1540;printf(44%7d\n”,a);注意:a:當(dāng)所設(shè)的總寬度比數(shù)值的實(shí)際總寬度大時(shí),數(shù)據(jù)默認(rèn)右對(duì)齊顯示,左側(cè)沒(méi)有占用完的空間上會(huì)顯示空格。b:當(dāng)所設(shè)的總寬度小或等于數(shù)值的實(shí)際總寬度時(shí),所設(shè)的總寬度失效,數(shù)據(jù)按原樣顯示。對(duì)實(shí)型值doublea=3.52;printf(44%101f\nM,a);注意:所設(shè)的總寬度是整數(shù)部分?jǐn)?shù)字、小數(shù)部分?jǐn)?shù)字、小數(shù)點(diǎn)三部分之和的總寬度,輸出時(shí)先輸出標(biāo)準(zhǔn)的6位小數(shù)部分,再輸出一位小數(shù)點(diǎn),此時(shí)要是所剩的總寛度比實(shí)際數(shù)值的整數(shù)部分列寬大,左側(cè)沒(méi)有占用完的空間上會(huì)顯示空格,要是比實(shí)際數(shù)值的整數(shù)部分列寬小或相等,都按原數(shù)值的整數(shù)部分列寬顯示6)對(duì)指數(shù)doublea=325.14;printf("%15e\n",a);注意:所設(shè)的總寬度是整數(shù)部分?jǐn)?shù)字、小數(shù)部分?jǐn)?shù)字、小數(shù)點(diǎn)、指數(shù)格式四部分之和的總寬度,輸出時(shí)先輸出標(biāo)準(zhǔn)的5位指數(shù)部分,再輸出6位小數(shù)部分和一位小數(shù)點(diǎn),此時(shí)要是所剩的總寬度比實(shí)際數(shù)值的整數(shù)部分列寬大,左側(cè)沒(méi)有占用完的空間上會(huì)顯示空格,要是比實(shí)際數(shù)值的整數(shù)部分列寬小或相等,都按原數(shù)值的整數(shù)部分列寬顯示7)改變輸出時(shí)的對(duì)齊方式inta=2124;printf("%-6d\n",a);在%和格式字母之間加一會(huì)使的數(shù)值從左往右顯示,有多余的空間會(huì)在數(shù)值的后面顯示8)加0格式inta=1452;printfC*%010d\n,\a);注意:當(dāng)所設(shè)的總列寬比數(shù)值的實(shí)際列寬大時(shí),會(huì)在前面沒(méi)有占用完的空間上全部顯示〇,當(dāng)沒(méi)有多余的空間時(shí)。格式就失效了9)注意:當(dāng)O格式遇到ー左對(duì)齊時(shí),0格式就失效10)加m.n格式只對(duì)實(shí)型doublea=3541.125;printfC%12.41f\n,,,a);注意:所設(shè)的總寬度是整數(shù)部分?jǐn)?shù)字、小數(shù)部分?jǐn)?shù)字、小數(shù)點(diǎn)三部分之和為12列,輸出時(shí)先輸出標(biāo)準(zhǔn)的4位小數(shù)部分(要是小數(shù)部分的實(shí)際列寬大于所設(shè)置的列寬時(shí),對(duì)多出來(lái)的小數(shù)部分進(jìn)行四舍五入,要是比實(shí)際的小數(shù)部分列寬小,不夠的位用。填補(bǔ),要是兩者相同就按原樣輸出),再輸出一位小數(shù)點(diǎn),此時(shí)要是所剩的總寬度比實(shí)際數(shù)值的整數(shù)部分列寬大,左側(cè)沒(méi)有占用完的空間上會(huì)顯示空格,要是比實(shí)際數(shù)值的整數(shù)部分列寬小或相等,都按原數(shù)值的整數(shù)部分列寬顯示11)當(dāng)輸出格式的個(gè)數(shù)比輸出列表屮值的個(gè)數(shù)多時(shí),多出的格式會(huì)顯示隨機(jī)值inta=l,b=2;printf(**%d,%d,%d”,a,b);12)當(dāng)輸出格式的個(gè)數(shù)比輸出列表中值的個(gè)數(shù)少時(shí),多出的數(shù)值不處理inta=l,b=2,c=3;printf("%d,%d\n”,a,b,c);13)當(dāng)%后面所跟的不是ー個(gè)合法的格式字母時(shí),就把這個(gè)錯(cuò)的格式字母原樣輸出例1:inta=l,b=2,c=3;printf("%D,%D,%D\n”,a,b,c);結(jié)果是:D,D,D例2:inta=l,b=2,c=3;printf(“%%d,%%d,%%d\n”,a,b,c);結(jié)果是:%d,%d,%d5:輸入函數(shù)的格式:Dscanf(“格式控制”,地址列表);2)取地址符 &3)給多個(gè)字符型空間中賦值chara,b,c;scanf(44%c%c%c,,,&a,&b,&c);要求:輸入字符值時(shí),必須挨個(gè)、連續(xù)的輸入,各個(gè)字符值之間不能加任何符號(hào)4)給多個(gè)整型空間中賦值a:多個(gè)格式之間不加任何符號(hào)inta,b,c;scanf(tt%d%d%d,\&a,&b,&c);/*%ld%f%lf*/要求:輸入時(shí)各個(gè)數(shù)值之間必須以空格符或回車符隔開輸入b:多個(gè)格式之間以某中符號(hào)隔開(適合字符型%c、整型%d%ld、實(shí)型%f%lf)inta,b,c;scanf("%d,%d:%d",&a,&b,&c);要求:輸入時(shí),除了用數(shù)值換相應(yīng)的格式以外,其它符號(hào)必須原樣輸入5)給多個(gè)實(shí)型空間中賦值原理和第4條一致6)多個(gè)不同格式之間不加任何符號(hào)輸入a:inta;charb;doublec;scanf(t4%d%c%lf\&a,&b,&c);要求:在非字符型格式和ナ符型格式之間不能加任何符號(hào)、連續(xù)輸入,在字符型格式和非字符型格式之間可以加空格符或回車符或什么都不加b:inta;charb;doublec;scanf(t4a=%d,b=%c,c=%lf;&a,&b,&c);注意:輸入時(shí),除了用數(shù)值換相應(yīng)的格式以外,其它符號(hào)必須原樣輸入7)在%和格式字母之間加輸入總寬度例1:inta,b,c;scanf(“%3d%3d%3d”,&a,&b,&c);運(yùn)行時(shí):輸入的數(shù)值為123456789,結(jié)果是:a中存放了123,b中存放了456,c中存放了789例2:charch;scanf("%4c”,&ch);想給變量ch中存放ー個(gè)大寫字母D,就必須這樣寫:D空格空格空格因?yàn)椋只能從屏幕的右側(cè)取一列字符值8)多條輸入語(yǔ)句同時(shí)執(zhí)行例1:inta,b,c;scanf("%d",&a);scanf("%d”,&b);yscanf("%d%d%d”,&a,&b,&c);scanf("%d",&c);想給變量a中存放100,給b中存放200,給c中存放300,在運(yùn)行輸入時(shí)多個(gè)數(shù)值之間必須、只能以空格符或回車符來(lái)隔開例2:chara,b,c;scanf("%c”,&a);scanf("%c”,&b); \ scanf(4t%c%c%c,\&a,&b,&c);scanf(t4%c,,,&c);J想給變量a中存放A,給b中存放B,給c中存放C,在運(yùn)行輸入時(shí)多個(gè)字符值之間必須、只能挨個(gè)、連續(xù)輸入9)在%和格式字母之間加?inta=O,b=O,c=O;scanf("%d%*d%d",&a,&b,&c);輸入的數(shù)值為:102030結(jié)果:a中是10,b中是30,c中是。*:的意思:跳過(guò)和本身格式相應(yīng)的數(shù)值,把ドー個(gè)數(shù)值輸入到自己的存儲(chǔ)空間中6J復(fù)合語(yǔ)句用ー對(duì){ }括起來(lái)的語(yǔ)句集合就稱為一個(gè)復(fù)合語(yǔ)句7:空語(yǔ)句只有分號(hào)而沒(méi)有表達(dá)式的語(yǔ)句 例:;例1: 用海倫公式求三角型面積#include<stdio.h>#include<math.h>main(){doublea,b,c,h,s;printf(“請(qǐng)輸入三個(gè)邊長(zhǎng):\n"); /?提示語(yǔ)句?/scanf(M%lf,%lf,%lf\&a,&b,&c);h=1.0/2*(a+b+c);s=sqrt(h*(h-a)*(h-b)*(h-c));printfC4s=%lf\n,\s);)例2:用求根公式計(jì)算一元二次方程的兩個(gè)根#include<stdio.h>#include<math.h>main(){doublea,b,c,h,xl,x2,p,q;printf(“請(qǐng)輸入三個(gè)常量:\n");scanf("%lf,%lf,%lf',&a,&b,&c);h=sqrt(b*b-4*a*c);p=-b/(2*a);q=h/(2*a);xl=p+q;x2=p-q;printff'xl=%lf,x2=%lf\nM,x1,x2);|例31分離和組合,把用戶任意輸入的ー個(gè)六位數(shù)的各個(gè)位上的數(shù)字輸出,并把它的十萬(wàn)位、千位、十位上的數(shù)字重新組合成一個(gè)三位數(shù),新三位數(shù)的百位數(shù)字是原六位數(shù)的十位數(shù)字、十位數(shù)字是原六位數(shù)字的千位數(shù)字、新三位數(shù)的個(gè)位數(shù)字是原六位數(shù)的十萬(wàn)位數(shù)字,組成后輸出。#include<stdio.h>main(){longa;intal,a2,a3,a4,a5,a6,a7;printfC4PleaseInputanumber:\n");scanf(u%ldM,&a);al=a/100000;a2=a%100000/10000;a3=a%10000/1000;a4=a%1000/100;a5=a%100/10;a6=a%10;a7=a5*l00+a3*10+a1;printf(“這個(gè)新數(shù)是:%d\n”,a7);)例4:交換算法請(qǐng)用戶任意輸入兩個(gè)整數(shù),交換它們的數(shù)值后再輸出#include<stdio.h>main(){inta,b,t;printff'PleaseInputtwonumbers:\n’');scanf("%d,%d”.&a.&b);printf("原始數(shù)據(jù)為:\n");printf("a=%d,b=%d\n'',a,b);printf("\n交換算法過(guò)程:\n");t=a;a=b; 人/*a=a+b;b=a-b;a=a-b;*/b=t; 丿printf("\n交換后的結(jié)果為:\n");printf("a=%d,b=%d\n”,a,b);)例5:四舍五入的使用用戶任意輸入ー個(gè)實(shí)數(shù),要求保留3位小數(shù),對(duì)第四位小數(shù)進(jìn)行四舍五入后再輸出。#include<stdio.h>main(){doublex;printf("PleaseInputanumber:\n“);x=3.141592;x=x*1000; 】x=x+0.5;x=(int)x; /*x=(int)(x*1000+0.5)/1000.0;*/x=x/1000;printf(4tx=%lf\nM,x);第四章選擇結(jié)構(gòu)1:c語(yǔ)言中的邏輯值只有兩個(gè):真假2:C語(yǔ)言中的邏輯值的表示(都是整形常量)真值用I表示,假值用。表示,在使用時(shí)要注意所有的非〇形式的值都可以理解為真值,〇就是假值3:關(guān)系運(yùn)算1)運(yùn)算符為:> >= < <= == !=前4個(gè)優(yōu)先級(jí)相同優(yōu)先級(jí)依次降低2)關(guān)系運(yùn)算可以理解為比較運(yùn)算,當(dāng)比較符合事實(shí),結(jié)果就是真值,用1表示,比較不符合事實(shí),結(jié)果就是假值,用。表示。4:關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算之間的優(yōu)先級(jí)問(wèn)題算術(shù)運(yùn)算 > 關(guān)系運(yùn)算 > 賦值運(yùn)算5:有關(guān)系運(yùn)算符參與的混合運(yùn)算a>b+cWfa>(b+c)a>b==cCf(a>b)==ca==b<c a==(b<c)例: inta=10,b=50,c=30,d;d=a>b>c;像這樣的語(yǔ)句是正確的,優(yōu)先級(jí)相同的結(jié)合方向是自左向右6Z邏輯運(yùn)算符和邏輯表達(dá)式DC語(yǔ)言中有三種邏輯運(yùn)算符:&&與||或!非2)它們之間的優(yōu)先級(jí)是: ! > && > ||3)邏輯、算術(shù)、關(guān)系、賦值、逗號(hào)表達(dá)式之間的運(yùn)算優(yōu)先級(jí)!>算術(shù)>關(guān)系>&&>||>賦值>逗號(hào)表達(dá)式4)例: a>b&&x>ya==b||x!=y!a||a>b4&&0||25>3&&8<4-!05)&&與運(yùn)算 可以看成是乘法運(yùn)算數(shù)值運(yùn)算符數(shù)值結(jié)果1&&111&&000&& 1 00 && 0 06)!或運(yùn)算 可以看成是 加法運(yùn)算數(shù)值運(yùn)算符數(shù)值結(jié)果1II111II010II110II0()7)兩條原則:〇與任何值都為0 1或任何值都為1所以當(dāng)邏輯與、或左右兩邊的有運(yùn)算時(shí)先計(jì)算左邊,對(duì)與而言,當(dāng)左邊值能為0,右邊的表達(dá)式就必須不能計(jì)算、處理對(duì)或而言,當(dāng)左邊值能為1,右邊的表達(dá)式就必須不能計(jì)算、處理例:#include<stdio.h>main(){inta=-1,b=10,c=5,d;d=(++a)&&(b+=c);printf("d=%d,a=%d,b=%d,c=%d\n”,d,a,b,c);)例:#include<stdio.h>main(){inta=0,b=10,c=5,d;d=(++a)||(b+=c);printf("d=%d,a=%d,b=%d,c=%d\n”,d,a,b,c);}7Z判斷結(jié)構(gòu):1)形式: if(條件表達(dá)式)子語(yǔ)句;2)判斷結(jié)構(gòu)要完整必須包含兩部分a:判斷的條件部分b:判斷的條件所控制的命令部分、動(dòng)作部分、語(yǔ)句部分3)解釋:if理解為:如果條件表達(dá)式的形式有4種:a:常量例:if(100)b:變量例:if(a)c:表達(dá)式例:if(a>b)d:函數(shù)例:if(sqrt(a+b)>100.24 )子語(yǔ)句:是當(dāng)條件表達(dá)式的邏輯值為真時(shí)(判斷成立時(shí)、比較的結(jié)果為真時(shí)),應(yīng)該執(zhí)行的語(yǔ)句形式有兩種:a:一個(gè)命令或一個(gè)動(dòng)作或一條語(yǔ)句b:ー個(gè)用{}括起來(lái)的復(fù)合語(yǔ)句,里面包含了好多個(gè)命令或好多個(gè)動(dòng)作或好多條語(yǔ)句4)例1:請(qǐng)用戶任意輸入兩個(gè)不同的數(shù)值,把大值存放到t所表示的存儲(chǔ)空間中#include<stdio.h>main(){inta,b,t;scanf("%d,%d",&a,&b);if(a>b)t=a;if(b>a)t=b;printf(*<t=%d\n,\t);}例2:請(qǐng)用戶任意輸入兩個(gè)不同的數(shù)值,找出大值并馬上輸出。#include<stdio.h>main(){inta,b,t;scanf("%d,%d'',&a,&b);if(a>b){t=a;printf("t=%d\n”,t);)if(b>a){t=b;printf("t=%d\n”,t);if. else結(jié)構(gòu)if(條件表達(dá)式)子語(yǔ)句1;else子語(yǔ)句2;if和else在結(jié)構(gòu)上都必須包含兩部分才能完整a:判斷的條件部分b:判斷的條件所控制的命令部分、動(dòng)作部分、語(yǔ)句部分7)解釋:if:稱為如果else:稱為否則條件表達(dá)式的形式有4種:a:常量例:if(100)b:變量例:if(a)c:表達(dá)式例:if(a>b)d:函數(shù)例:if(sqrt(a+b)>100.24)子語(yǔ)句:是當(dāng)條件表達(dá)式的邏輯值為真時(shí)(判斷成立時(shí)、比較的結(jié)果為真時(shí)),應(yīng)該執(zhí)行的語(yǔ)句或否則的條件成立時(shí),應(yīng)該
執(zhí)行的語(yǔ)句。形式有兩種:a:ー個(gè)命令或ー個(gè)動(dòng)作或一條語(yǔ)句b:ー個(gè)用{}括起來(lái)的復(fù)合語(yǔ)句,里面包含了好多個(gè)命令或好多個(gè)動(dòng)作或好多條語(yǔ)句8)例1:請(qǐng)用戶任意輸入兩個(gè)不同的值,把大值存放到t 所表示的存儲(chǔ)空間中#include<stdio.h>main(){inta,b,t;scanf("%d,%d",&a,&b);if(a>b)t=a;elset=b;printf(**t=%d\nM,t);}例2:請(qǐng)用戶任意輸入兩個(gè)不同的值,把大值存放到t所表示的存儲(chǔ)空間中并馬上輸出#include<stdio.h>main(){inta,b,t;scanf("%d,%d",&a,&b);if(a>b){t=a;printf(44t=%d\n,\t);)else{t=b;printf(ut=%d\nM,t);注意:else總是和它上面最近的if進(jìn)行組合,形成一條“如果條件成立,則執(zhí)行if的子語(yǔ)句,否則,則執(zhí)行else的子語(yǔ)句”選擇結(jié)構(gòu)的語(yǔ)句。例3:#include<stdio.h>main(){inta=2,b=-l,c=2;if(a<b)if(b<0) c=0;elsec+=l;if(a<b)if(b<0) c=0;elsec+=l;printf("%d\n”,c);/*a<b&&b<0當(dāng)前條件?/例4:用假設(shè)法求解方程'-1(x<0)/*a<b&&b>=0例4:用假設(shè)法求解方程'-1(x<0)y= 0(x=0)1(x>0)#include<stdio.h>main(){doublex,y;scanf(t4%lf\&x);y=0; /*x==0*/if(x!=0)if(x>0)y=l; /*x!=0&&x>0*/elsey=-1; /*x!=0&&x<0*/printf(uy=%lf\n,\y);)9)多個(gè)if else 嵌套結(jié)構(gòu),if和else必須成對(duì)出現(xiàn)(或搭配)。if(條件表達(dá)式1)子語(yǔ)句1;elseif(條件表達(dá)式2)子語(yǔ)句2;else if(表達(dá)式3)子語(yǔ)句3;else子語(yǔ)句4;注意:當(dāng)else僅表示一種條件的時(shí)候就不在繼續(xù)嵌套if…??else結(jié)構(gòu)了例1:把學(xué)生的考試成績(jī)劃分檔次#include<stdio.h>main(){inta;scanf("%d”,&a);if(a>=90&&a<=100)primf("A\n”);elseif(a>=80&&a<90)printf(44B\n");elseif(a>=70&&a<80)primf("C\n”);elseif(a>=60&&a<70)primf("D\n”);elseprintf(44E\n");)例2:判斷用戶所輸入的數(shù)值是不是閏年#include<stdio.h>main(){inta;scanf("%d”,&a);if((a%4==0&&a%100!=0)||(a%400==0)printfC4YES\n");elseprintf("NO\nM);}8:三目運(yùn)算符 條件表達(dá)式a:形式: 表達(dá)式1?表達(dá)式2:表達(dá)式3;b:處理原則:當(dāng)表達(dá)式1的邏輯結(jié)果為真時(shí),只把表達(dá)式2的最終結(jié)果作為整個(gè)三目運(yùn)算符的最終結(jié)果進(jìn)行處理,當(dāng)表達(dá)式1的邏輯結(jié)果為假時(shí),只把表達(dá)式3的最終結(jié)果作為整個(gè)三目運(yùn)算符的最終結(jié)果進(jìn)行處理。例1:#include<stdio.h>main(){chart;intx;scanf("%d”,&x);printf(44t=%c\n,,,t);)例2:請(qǐng)用戶任意輸入一個(gè)字母,最后要求按大寫字母輸出#include<stdio.h>main(){charch;scanf("%c”,&ch);ch=(ch>=97&&ch<=122)?ch-32:ch;printf(4ich=%c\n,,,ch);9:switch() 多分支選擇結(jié)構(gòu)1)switch(表達(dá)式){case常量:子語(yǔ)句1;子語(yǔ)句2; 子語(yǔ)句n;case常量:子語(yǔ)句1:子語(yǔ)句2; 子語(yǔ)句n;case常量:子語(yǔ)句1;子語(yǔ)句2; 子語(yǔ)句n;case常量:子語(yǔ)句1;子語(yǔ)句2: 子語(yǔ)句n;default:子語(yǔ)句1;子語(yǔ)句2; 子語(yǔ)句n;|2)解釋:case叫分支,表示一種可能情況default叫其它情況下(除了所有case所列的可能情況以外的其他所有可能情況)3)注意:a:表達(dá)式一般為整型值或字符值,常量值之間不能重復(fù)的出現(xiàn)b:case與常量之間至少要有一個(gè)空格c:case后面可跟多條子語(yǔ)句,而不需要用{}括起來(lái)組成復(fù)合語(yǔ)句,都能執(zhí)行完d:多分支選擇語(yǔ)句的執(zhí)行流程:先計(jì)算表達(dá)式的最終值,再用此值先從上往下和case后的常量值ーー做比較,直到找到和表達(dá)式值相同的常量時(shí)就不再比較了,便開始執(zhí)行語(yǔ)句?;蛘?比較后找不到相同的常量時(shí),就只執(zhí)行default后的語(yǔ)句。e:一?個(gè)switch()結(jié)構(gòu)的停止標(biāo)志有兩個(gè):*:在執(zhí)行它的子語(yǔ)句時(shí)遇到了break;語(yǔ)句 二:當(dāng)它的子語(yǔ)句執(zhí)行完時(shí)f:當(dāng)每個(gè)case和default后都跟ー-條break;語(yǔ)句時(shí),case和default語(yǔ)句的上、下位置關(guān)系不會(huì)影響計(jì)算結(jié)果。g:default語(yǔ)句根據(jù)題意,可有、可無(wú)4)break;語(yǔ)句的作用:終止或停止繼續(xù)執(zhí)行在子語(yǔ)句關(guān)系上最近的ー個(gè)switch()結(jié)構(gòu)。5)例1:請(qǐng)用戶任意輸入一個(gè)學(xué)生的成績(jī),要求輸出這個(gè)學(xué)生的成績(jī)檔次#include<stdio.h>main(){inta;scanf("%d”,&a);switch(a/10){case10:case9:printf("A\n");case8:printf("B\n”);case7:printf("C\n”);case6:printf("D\n”);default:printf("E\n”);))當(dāng)上面的程序運(yùn)行時(shí),用戶要是輸入60分以上的成績(jī)時(shí),都會(huì)顯示兩個(gè)或兩個(gè)以上的分?jǐn)?shù)檔次。正確的程序應(yīng)該是:#include<stdio.h>main(){inta;scanf("%d”,&a);switch(a/10){case 10:case 9:printf(“A\n");break;case 8:printf("B\n");break;case 7:printf(“C\n");break;case 6:printf(“D\n");break;default:printf("E\n");break;例2:下面程序的輸出結(jié)果為#include<stdio.h>main(){intx=1,y=O,a=O,b=O;switch(x){case1:switch(y){case0:a++;break;case10:b++;break;}case2:a++;b++;break;case9:a++;b++;break;default:a++;b++;}printf(44a=%d,b=%d\n,,,a,b);}例3:下面程序的輸出結(jié)果為#include<stdio.h>main(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case10:b++;break;}break;case2:a++;b++;break;case9:a++;b++;break;default:a++;b++;}printf("a二%d,b二%d\n”,a,b);)例4:用switchい語(yǔ)句來(lái)求解下列函數(shù)fx (-5<x<0)y二〈 x-1 (x=0)ゝx+1 (0<x<10)#include<stdio.h>main(){doublex,y;scanf("%lド,&x);switch(x>-5&&x<10){case〇:prinlf("所輸入的數(shù)值越界、n");break;case1:switch(x>-5&&x<0){case0:break;case1:printf(4ty=%lf\n,\x);break;)case2:switch(x==0){case0:break;case1:printf(44y=%lf\n,,,x-l);break;)case3:switch(x>0&&x<10){case0:break;case1:printf(44y=%lf\n,\x+l);break;1}}另ー種算法:#include<stdio.h>main(){doublex,y;scanf(44%lf\&x);if(x==0)y=x-l;elsey=x>0?x+l:x;printf(My=%lf\n,,,y);)10:goto語(yǔ)句和語(yǔ)句標(biāo)號(hào)例:計(jì)算1+2+3+4+5+、、、、、、、+100之和#include<stdio.h>main(){intn=l,sum=0;loop:if(n<=100){sum+=n;n++; /*++n; n+=l; */gotoloop;}printf(44sum=%d\n,,,sum);第五章循環(huán)結(jié)構(gòu)1:循環(huán)的基本要求:
1)循環(huán)結(jié)構(gòu)在結(jié)構(gòu)上一定要包含兩部分:a:循環(huán)的條件、判斷部分b:循環(huán)條件所控制的動(dòng)作、命令、子語(yǔ)句部分2)一般情況下要求在循環(huán)的條件中有一個(gè)循環(huán)變量,作用:用來(lái)存放控制循環(huán)多次執(zhí)行的數(shù)值。3)好的循環(huán)(不是死循環(huán)的)一般要求在循環(huán)的條件部分或循環(huán)的子語(yǔ)句部分一定要使循環(huán)變量更新,作用:使循環(huán)的次數(shù)向終點(diǎn)移動(dòng)2:while()循環(huán)1)形式while(循環(huán)條件部分)子語(yǔ)句:2)解釋while循環(huán)理解為"當(dāng)"型循環(huán)3)執(zhí)行流程:先判斷條件表達(dá)式的邏輯值,當(dāng)值為真時(shí),就執(zhí)行循環(huán)體的子語(yǔ)句,執(zhí)行完一邊后,再次回到循環(huán)體的判斷部分,再次計(jì)算當(dāng)前條件表達(dá)式的邏輯值,當(dāng)值又為真時(shí),則繼續(xù)執(zhí)行循環(huán)體的子語(yǔ)句,直到條件表達(dá)式的值為假時(shí),就不執(zhí)行循環(huán)體的子語(yǔ)句4)條件表達(dá)式的形式有四種:a:常量例:while(100)b:變量例:while(a)c:表達(dá)式例:while(a>b)d:函數(shù)例:while(sqrt(a+b)>100.24)5)子語(yǔ)句的形式有兩種: a:ー個(gè)命令或ー個(gè)動(dòng)作或一條語(yǔ)句b:ー個(gè)用{}括起來(lái)的復(fù)合語(yǔ)句,里面包含了好多個(gè)命令或好多個(gè)動(dòng)作或好多條語(yǔ)句6)程序流程:例1:計(jì)算I+2+3+4+5+ +100 之和#include<stdio.h>main(){intn=l,sum=0;while(n<=100){sum+=n;n++;)printf(t4sum=%d\n,,,sum);)例2:計(jì)算下面程序的結(jié)果#include<stdio.h>main(){intn=l,sum;while(n<=3){sum+=n;n++;printfC4sum=%d\n,\sum);例3:計(jì)算下面程序的結(jié)果#include<stdio.h>main(){intn=1,sum=O;while(n++<=4)sum4-=n;printf(4tsum=%d\n,\sum);)例4:計(jì)算下面程序的結(jié)果#include<stdio.h>main(){intn=l,sum=O;while(n++<=10);sum+=n;printf(ttsum=%d\n,\sum);)例5:計(jì)算Fibonacci數(shù)列,直到某項(xiàng)大于1000為止,并輸出該項(xiàng)的值Fibonacci數(shù)歹リ:ft)=0,fl=l,f2=l,(3=2,(4=3…fn=fn-2+fn-l.#include<stdio.h>main(){intn=1000,ro,fl,fn;(0=0;fl=l;fn=fO+fl;while(fn<n){ (0=fl;fl=fn;fn=ft)+fl;)printf(“小于n的最大值為%d\n”,fl);printf(“大于n的最小值為%d\n”,fn);)數(shù)列中:第1項(xiàng)第2項(xiàng)第3項(xiàng)第4項(xiàng)第五項(xiàng)第六項(xiàng)TOC\o"1-5"\h\zf0+fl—?fn nI* I終fO+fl —?fn I點(diǎn)I;Ift) +fl—?fnI I▼ ▼ft)+fl——?fn例6:用迭代法求方程x=cos(x)的跟,要求誤差小于10"le-60.000001此方程沒(méi)有解,只能通過(guò)迭代法等方法求數(shù)值跟,步驟如下:1:使xl=0,x2=cosx12:判|x2?xl|>10*\若x2?xl的絕對(duì)值大于10”,則執(zhí)行xl=x2,重復(fù)執(zhí)行步驟1,否則執(zhí)行步驟3。3:計(jì)算結(jié)果,輸出結(jié)果。#include<math.h>#include<stdio.h>main(){doublexl,x2;x1=0.0;x2=cos(x1);while(fabs(x2-xl)>le-6) /*fabs()是求絕對(duì)值函數(shù) ?/{xl=x2;x2=cos(xl);)printfC4x=%lf\n,,,x2);}例1:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){intn=10;while(n>7){n-;printf(<<%d\n,,,n);)1例2:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inta=10,c=5,j=0;while(a>++c)j++;printf(44a=%d,c=%d,j=%d\n,,,a,c,j);}例3:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){intx=2;while(x—);printf("x:%d\n”,x);}3:do{ } while(條件表達(dá)式);1)形式do{子語(yǔ)句;}while(條件表達(dá)式);2)解釋 do{…ハ}while(條件表達(dá)式);理解為“宜到型”循環(huán)
3)執(zhí)行流程:先執(zhí)行do{…}while。;循環(huán)體內(nèi)部的語(yǔ)句,執(zhí)行ー邊后再判斷條件表達(dá)式的邏輯值,當(dāng)值為真時(shí)就又繼續(xù)執(zhí)行do后面循環(huán)體內(nèi)部的子語(yǔ)句,直到條件表達(dá)式的值為假時(shí),就不再往上執(zhí)行循環(huán)體內(nèi)部的子語(yǔ)句了4)條件表達(dá)式的形式有四種:常量 例:do{...}while(100)變量 例:do{...}while(a)c:表達(dá)式例:do{....}while(a>b)d:函數(shù)例:do{..}while(sqrt(a+b)>100.24)5)子語(yǔ)句的形式有兩種:a:ー個(gè)命令或ー個(gè)動(dòng)作或一條語(yǔ)句b:ー個(gè)用{ }括起來(lái)的復(fù)合語(yǔ)句,里面包含了好多個(gè)命令或好多個(gè)動(dòng)作或好多條語(yǔ)句6)程序流程:7)例1:計(jì)算1+2+3+4+5+ +100 之和#include<stdio.h>main(){intn=1,sum=0;do{sum+=n;n++;)while(n<=100);printf("sum=%d\n”,sum);)例2:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){intx=3;do{primf("%3d”,x-=2);}while(!(-x));printfC4x=%d\n,,,x);)例3:以下敘述中正確的是A:do-while()語(yǔ)句構(gòu)成的循環(huán)不能用其他語(yǔ)句構(gòu)成的循環(huán)來(lái)代替B:do-while()語(yǔ)句構(gòu)成的循環(huán)只能用break語(yǔ)句退出C:用do-while()語(yǔ)句構(gòu)成的循環(huán)時(shí),只有在while后的表達(dá)式為非零時(shí)結(jié)束循環(huán)D:用do-while()語(yǔ)句構(gòu)成的循環(huán)時(shí),只有在while后的表達(dá)式為零時(shí)結(jié)束循環(huán)例4:計(jì)算下列程序的結(jié)果#include<stdio.h>main()
{inta=10,k=0,d=5;dok++;while(a>d++);printfCta=%d,k=%d,d=%d\n,\a,k,d);)例5:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inti=0,sum=l;do{sum+=i++;}while(i<5);printf('‘%d'n",sum);)4:for( )循環(huán)1)形式 for(表達(dá)式1;表達(dá)式2;表達(dá)式3)子語(yǔ)句;2)解釋:表達(dá)式1常為賦值式的逗號(hào)表達(dá)式,可省略,例如:a=1,b=2,c=3,d=100表達(dá)式2為循環(huán)條件判斷語(yǔ)句表達(dá)式3為循環(huán)變量更新語(yǔ)句,可省略for(....)內(nèi)部的兩個(gè)分號(hào)是用于分隔用的3)執(zhí)行流程:"假 ?跳出for()的循環(huán)體表達(dá)式! ?表達(dá)式2イ|,真 ?執(zhí)行子語(yǔ)句 ?表彳式3流程:先執(zhí)行表達(dá)式1,再執(zhí)行條件表達(dá)式2,當(dāng)表達(dá)式2的邏輯結(jié)果為真時(shí),就執(zhí)行完一次for(…)循環(huán)體的子語(yǔ)句,再執(zhí)行表達(dá)式3,再次去判斷表達(dá)式2的邏輯真、假,當(dāng)值又為真時(shí),則又執(zhí)行完ー邊f(xié)or(…)循環(huán)體的子語(yǔ)句,然后再執(zhí)行表達(dá)式3,又判斷表達(dá)式2的邏輯真、假值,直到表達(dá)式2的邏輯值為假時(shí),就跳出當(dāng)前的for(….)循環(huán)體。a:常量例:100b:變量例:ac:表達(dá)式例:a>bd:函數(shù)例:sqrt(a+b)>100.24ー個(gè)命令或ー個(gè)動(dòng)作或一條語(yǔ)句4)條件表達(dá)式的形式有四種:5)子語(yǔ)句的形式有兩種:a:b:ー個(gè)用{}括起來(lái)的復(fù)合語(yǔ)句,里面包含了好多個(gè)命令或好多個(gè)動(dòng)作或好多條語(yǔ)句6):圖解過(guò)程:7)例1:計(jì)算1+2+3+4+5+ +100 之和#include<stdio.h>main(){intn,sum;for(n=1,sum=O;n<=100;n++)sum+=n;printf(t4sum=%d\n,\sum);}或:#include<stdio.h>main(){intn=1,sum=O;for(;n<=100;){sum+=n;n++;)printf(4fcsum=%d\n,,,sum);}例2:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inta,k,d;for(a=10,k=0,d=5;a>d;d++)k++;printf("a=%d,k=%d,d二%d\n”,a,k,d);)5, 判斷結(jié)構(gòu)作為循環(huán)結(jié)構(gòu)的子語(yǔ)句1)循環(huán)的作用:循環(huán)結(jié)構(gòu)為判斷結(jié)構(gòu)提供多個(gè)數(shù)值作為子語(yǔ)句的判斷結(jié)構(gòu)的作用用來(lái)決定循環(huán)結(jié)構(gòu)所提供的數(shù)值中哪些是可要的,哪些是不可要的2)例!:請(qǐng)輸出10(包含10)以內(nèi)所有的偶數(shù)#include<stdio.h>main(){intn;for(n二l;nv二100;n++)if(n%2ニニ〇)printf("%d”,n);}例2:請(qǐng)找出10以內(nèi)所有的偶數(shù)或奇數(shù),找出后馬上輸出#include<stdio.h>main(){intn;for(n二l;nv二10;n++)if(n%2二=0){ printf("偶數(shù)為:つ;printf("%d\n”,n);
)else{ prind"(“奇數(shù)為:");printf("%d\n",n);)}例3:請(qǐng)用戶任意輸入ー個(gè)正整數(shù),要求輸出它的所有因子#include<stdio.h>main(){intn,m;scanf(t*%d,\&m);for(n=l;n<=m;n++)/*循環(huán)體為m在1?m之間提供所有的因子?/if(m%n==0)printf("%d”再);例4:請(qǐng)用戶任意輸入ー個(gè)iE整數(shù),要求判斷它是不是素?cái)?shù),是就輸出YES,否則輸出N0#include<stdio.h>main(則輸出N0#include<stdio.h>main(){intn,m;scanf("%d”,&m);for(n=2;n<=m/2;n++)子語(yǔ)句:(break;)if(n>m/2)則是素?cái)?shù)for(n=2;n<=sqrt(m);n++)子語(yǔ)句;(break;)if(n>sqrt(m))則是素?cái)?shù)for(n=2;n<m;n++)/?循環(huán)體為m在2的后面,m的前面提供所有的因子?/if(m%n==0) /*判斷結(jié)構(gòu)用來(lái)決定當(dāng)前的n是不是m的因子?/n=m+l; /*break;*/prinlf("YES'n");printf("NO'n");else)prinlf("YES'n");printf("NO'n");else)例5:11111 1 1 1 F H
1x22x33x44x5 10x11#include<stdio.h>main(){intn;doublesum;for(n=l,sum=0.0;n<=10;n++)sum+=1.0/(n*(n+l));printf("sum二%lf\n”,sum);3 5 R 13 〇1例6:求—I 1 1 FH 數(shù)列中前20項(xiàng)的和2 3 5 8 13#include<stdio.h>main()
{doublea=2.0,b=3.0,sum=0.0;intn;for(n=0;n<20;n++)/?循環(huán)體的變量n只用來(lái)控制循環(huán)的執(zhí)行次數(shù)?/{sum+=b/a;t=a;a=b;b+=t;)printf(4tsum=%lf\n,,?sum);)例7:求出:aaa....aaa-aa....aa-a....a- aaaa-aaa-aa-a的最終結(jié)果,如果有n個(gè)a減去n-!個(gè)a?再減去n-2個(gè)a等等,直到減去三個(gè)、兩個(gè)、ー個(gè)a為止。#include<stdio.h>main(){inta=3,n=6,j;longs=0,t=0;for(j=0;jvn;j++) /*用于構(gòu)造n個(gè)a*/t=t*10+a;s=t;for(j=Oy<n-l;j++){ t/=10;s-=t;}printf('*s=%ld\n,,,s);6:循環(huán)結(jié)構(gòu)作為循環(huán)結(jié)構(gòu)的子語(yǔ)句(循環(huán)結(jié)構(gòu)的嵌套)注意:外循環(huán)體執(zhí)行一邊,內(nèi)循環(huán)體從頭到尾執(zhí)行完例1:計(jì)算下列程序的結(jié)果。#include<stdio.h>main(){intn,m,sum;for(n=1;n<3;n++)稱為外循環(huán)體稱為內(nèi)循環(huán)體fbr(m=l;m<3;m++)sum+=n*m;稱為外循環(huán)體稱為內(nèi)循環(huán)體printf("sum二%d\n”,sum);}解釋過(guò)程:m=l1<3成立執(zhí)行子語(yǔ)句sum+=n*mWfsum+=1*1(1:n=l2:1<3成立執(zhí)行子語(yǔ)句(1:n=l2:1<3成立執(zhí)行子語(yǔ)句for(m)循環(huán)ノヽ2次,"2:2<3成立外循環(huán)執(zhí)行第執(zhí)行子語(yǔ)句sum+=n*mぐf外循環(huán)執(zhí)行第3:m++m為3「2:3<3不成立跳出本循環(huán)體
次次3:n++n為21:m=l1次J2:1<3成立執(zhí)行子語(yǔ)sum+=n*msum+=2*lゝ3:m++m為2外循環(huán)執(zhí)行第次2:2<3外循環(huán)執(zhí)行第次2:2<3成立執(zhí)行子語(yǔ)句for(m)循環(huán)執(zhí)行子語(yǔ)sum+=n*mWBsum+=2*23:m++m為3,2:3<3不成立跳出本循環(huán)體3:n++n為3外,循2:3<3不成立跳出本循環(huán)體環(huán)執(zhí)イ行<第三次〔例:求出200以內(nèi)的所有的素?cái)?shù)#include<stdio.h>main(){intn,m;for(n=2;n<200;n++){for(m=2;m<n;m++)if(n%m==0)m=n+l;/*break;*/if(n==m)printf(<4%d",n);}}1)計(jì)數(shù)器的作用例:求出200以內(nèi)的所有的素?cái)?shù),要求每行放8個(gè)數(shù)值#include<stdio.h>main(){intn,m,cnt=0;for(n=2;n<200;n++){for(m=2;m<n;m++)if(n%m==0)m=n+1;if(n==m){printf("%5d”,n);cnt++;if(cnt%8==0)printf(u\nM);})}例:輸出大于m且緊靠m的k個(gè)素?cái)?shù)#include<stdio.h>main(){intm,k,cnt=0,n,t;scanf("%d,%d",&m,&k);fbr(n=m+l;cnt<k;n++){fbr(t=2;t<n;t++)if(n%t==0)t=n+l;/*break;*/if(t==n){cnt++;printf(u%d"m);7:break和continue語(yǔ)句的用法1)意思:break:叫終止或停止,break要和子語(yǔ)句關(guān)系上最近的循環(huán)或swilch()搭配,若執(zhí)行了break語(yǔ)句,就應(yīng)該使程序的流程馬上跳出子語(yǔ)句關(guān)系上最近的循環(huán)結(jié)構(gòu)或switch()結(jié)構(gòu)continue:叫停止本次循環(huán)接著繼續(xù)執(zhí)行下一次循環(huán),continue只能和f語(yǔ)句關(guān)系上最近的循環(huán)搭配,若執(zhí)行了continue語(yǔ)句,它會(huì)把所有屬于當(dāng)前子語(yǔ)句關(guān)系上最近循環(huán)的、且在它下放的所有子語(yǔ)句統(tǒng)統(tǒng)本次失效,馬上執(zhí)行下一次循環(huán)2)例!:#include<stdio.h>main(){intn;for(n=l;n<10;n++){if(n%2==0)break;printf(44%d”,n);)} 結(jié)果為:1例2:#include<stdio.h>main(){intn;for(n=I;n<10;n++){if(n%2==0)continue;printf("%d”,n);)) 結(jié)果為:1 3 5 7 9例題1:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inti,j,m=0;for(i=l;i<=15;i++)for(j=3;j<=19;j++)m++; /*m=15*17 */printf("%d\n”,m);)例題2:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inty=10;for(;y>0;y-)if(y%3==0){printf("%dこ-y);continue;}}例題3:計(jì)算下列程序的結(jié)果#include<stdio.h>main(){inti;for(i=1;i<
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年一年級(jí)下學(xué)期英語(yǔ)教學(xué)設(shè)計(jì)(牛津上海版(試用本))
- 12 干點(diǎn)家務(wù)活 (教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版道德與法治一年級(jí)下冊(cè)
- 核心價(jià)值觀友善教育
- 樹干兒童畫課件
- 三年級(jí)英語(yǔ)上冊(cè) Unit 2 Friends and Colours Lesson 8 Letters教學(xué)設(shè)計(jì) 冀教版(三起)
- 七年級(jí)英語(yǔ)上冊(cè) Unit 4 Food and Restaurants Lesson 22 In the Restaurant教學(xué)設(shè)計(jì) (新版)冀教版
- Unit 7 Happy Birthday Section A(2a-2e)教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 23《月跡》教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文五年級(jí)上冊(cè)統(tǒng)編版
- 藝術(shù)培訓(xùn)年終工作總結(jié)
- 七年級(jí)生物下冊(cè) 第四單元 生物圈中的人 第八章 人是生殖和發(fā)育 第二節(jié) 人的生長(zhǎng)發(fā)育和青春期教學(xué)設(shè)計(jì)(1)(新版)蘇教版
- 仿生原理與創(chuàng)新設(shè)計(jì)課件
- 小學(xué)英語(yǔ)《I could eat a horse》優(yōu)質(zhì)教學(xué)課件
- 22、小便斗-工程建筑類
- 《滅火器維修》GA95-2015(全文)
- 學(xué)校學(xué)生特異體質(zhì)調(diào)查表
- vmvare虛擬化平臺(tái)巡檢細(xì)則和方法
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- 剪刀式升降機(jī)
- 法院辦公室廉政風(fēng)險(xiǎn)防控責(zé)任清單
- 并聯(lián)高抗中性點(diǎn)小電抗補(bǔ)償原理分析及參數(shù)選擇方法
- 水蛭深加工提取天然水蛭素項(xiàng)目資金申請(qǐng)報(bào)告寫作模板
評(píng)論
0/150
提交評(píng)論