![《郝斌C語言自學視頻》筆記_第1頁](http://file4.renrendoc.com/view/c407f9086aa9065ce792a36cf06e1c00/c407f9086aa9065ce792a36cf06e1c001.gif)
![《郝斌C語言自學視頻》筆記_第2頁](http://file4.renrendoc.com/view/c407f9086aa9065ce792a36cf06e1c00/c407f9086aa9065ce792a36cf06e1c002.gif)
![《郝斌C語言自學視頻》筆記_第3頁](http://file4.renrendoc.com/view/c407f9086aa9065ce792a36cf06e1c00/c407f9086aa9065ce792a36cf06e1c003.gif)
![《郝斌C語言自學視頻》筆記_第4頁](http://file4.renrendoc.com/view/c407f9086aa9065ce792a36cf06e1c00/c407f9086aa9065ce792a36cf06e1c004.gif)
![《郝斌C語言自學視頻》筆記_第5頁](http://file4.renrendoc.com/view/c407f9086aa9065ce792a36cf06e1c00/c407f9086aa9065ce792a36cf06e1c005.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)郝斌C語言自學視頻筆記v1.1作者:星辰變71目錄的編號對應視頻的編號,專為懶得打字做筆記的吧友所著!再次感謝郝斌老師,帶我們裝逼帶我們飛(_)目錄 TOC o 1-3 h z u 1.所用編程軟件視頻中用的編程軟件是VC+6.0,本筆記用的編程軟件是VS2010和Dev C+5.11。要求變量定義寫在最前面,不能中途定義,否則編譯時會出錯。17.什么是數(shù)據(jù)類型整型:整型int-4字節(jié) 長整型long int-8 短整型short int-2浮點型:float-4 do
2、uble-8字符char-1所占字節(jié)數(shù)不一定都是這樣,但是比如長整型所占一定大于等于整型。復合數(shù)據(jù)類型:結構體 枚舉 共用體18.什么是變量int i; /VC+6.0請求操作系統(tǒng)把內(nèi)存條中的一個空閑單元和i產(chǎn)生關聯(lián)i=3; /3最終是存放在內(nèi)存中,程序終止之后3所站的空間被釋放如果不使用變量,要自己去找內(nèi)存中的空閑單元,有了變量就不用考慮了。變量的本質(zhì)就是內(nèi)存中一段存儲空間20.變量為什么必須初始化所謂初始化,就是賦值。當軟件運行完畢后,操作系統(tǒng)將回收該內(nèi)存空間,以便再次分配給其他軟件使用。(注意:操作系統(tǒng)并不清空該內(nèi)存空間中遺留下來的數(shù)據(jù))綜上,一個軟件所分配的空間中極可能存在著以前其他軟
3、件使用過后的殘留數(shù)據(jù)(垃圾數(shù)據(jù))。所以通常我們?yōu)橐粋€變量,為一個數(shù)組,分配好存儲空間之后都要對該內(nèi)存空間初始化!21.如何定義變量int i=3;等價于int i; i=3;int i,j;等價于int i; int j;int i,j=3;等價于int i; int j; j=3;int j=3,j=5;等價于int i; int j; i=3; j=5;int i,j;i=j=5;等價于int i,j; i=5; j=5;22.什么是進制N進制就是指逢N進1。我們計算機只識別二進制。C語言規(guī)定八進制前要加0(注意是零不是字母O),十六進制前要加0 x或者0X,十進制前什么都不加。在匯編中:
4、在數(shù)字后加字母B表示二進制,加O表示八進制,加D表示十進制,加H表示十六進制。例如:1011B也記為(1011)2 1357O也記為(1357)8 2049D也記為(2049)10 3FB9H也記為(3FB9)16printf中,%d表示以十進制輸出;%x或%X(決定輸出字母的大小寫)以十六進制輸出;%O(這次是字母不是零了!)表示以八進制輸出。23.常量在C語言中是如何表示的A整數(shù):八進制前要加0(注意是零不是字母O),十六進制前要加0 x或者0X,十進制前什么都不加。B浮點數(shù):傳統(tǒng)的寫法float = 3.2;科學計數(shù)法float x = 3.2e3; /x的值是3200float x =
5、123.45e-2; /x的值是是1.2345編譯時會有個警告,如圖為什么呢?C語言中,無論是傳統(tǒng)寫法還是科學計數(shù)法,默認是double型。double賦給float會丟失精度??梢赃x擇忽略警告,也可以選擇加個F變成123.45e-2F。這樣編譯時就沒有警告了。注意一個問題,為了解決上述窗口一閃而過,我們要加上頭文件(如圖)并在main函數(shù)結尾前加上(如圖)。C字符:單個字符用單引號括起來,如A。AB錯誤,”AB”正確。字符串用雙引號括起來。A正確,因為A代表了A 0的組合??梢韵氤梢粋€字符串就一個字符。24.常量是以什么樣的二進制代碼存儲在計算機中整數(shù)是以補碼的形式轉換為二進制代碼存儲在計算
6、中的。實數(shù)是以IEEE754標準轉換為二進制代碼存儲在計算中的。字符本質(zhì)上與整數(shù)的存儲方式相同。26.代碼的規(guī)范化A. 括號一敲敲一對(),敲完括號再寫內(nèi)容B注意加空格。比如if ()/if要敲空格再加括號比如Int a = 1; /等號兩邊要加空格比如x1 = (-b + sqrt(delta) / (2*a); /這些運算之間要加空格C注意從屬關系要進行縮進。選中要縮進的多行代碼按Tab,就一起右移了,Shift+Tab就一起左移回來了。D代碼之間要適當?shù)目招小O嗤δ艿膶懺谝黄?,然后空一行再寫下一部分相對獨立功能的代碼。27.什么是字節(jié)字節(jié)是存儲數(shù)據(jù)的單位,并且是硬件所能訪問的最小單位。
7、1字節(jié)=8位,這是固定不變的。CPU只能直接處理內(nèi)存里面的數(shù)據(jù),硬盤的數(shù)據(jù)必須調(diào)入內(nèi)存才能處理。硬件上最小的單位是位,不是0就是1。但是CPU只能到字節(jié)上,不能準確控制到某一位??刂频轿簧峡赏ㄟ^位運算符。下面是內(nèi)存條28.不同類型數(shù)據(jù)之間相互賦值的問題這個問題是C和C+所獨有的,如果想深入了解C和C+必須搞清楚。如果想搞清楚必須懂補碼。29Char使用常見問題A. char ch = A; /正確 char ch =”AB”; /錯誤,不能把字符串賦給單個字符char ch =”A” ; /錯誤char ch =AB; /錯誤B以下寫法是錯誤的! 下面這么寫就對了。30.什么是ASCII碼 A
8、SCII不是一個值,是一種規(guī)定。它規(guī)定不同的字符是使用哪個整數(shù)值去表示。比如A-65 /A這個字符在ASCII中是用65來表示的a-97,0-48所以說字符本質(zhì)上與整數(shù)的存儲方式相同。33.printf();將變量的內(nèi)容輸出到顯示器上四種用法:A.printf(”字符串”);B.printf(”輸出控制符”,輸出參數(shù));C.printf(”輸出控制符1 輸出控制符2”,輸出參數(shù)1,輸出參數(shù)2);要是想讓35之間有空格要是想讓35之間有逗號還有更清楚的,寫上i = 3,j = 5如下圖注意一個問題,下面寫法是錯誤的,雖然編譯時沒有問題。因為輸出控制符和輸出參數(shù)的個數(shù)不一一對應。D. printf
9、(”輸出控制符 非輸出控制符”,輸出參數(shù)); 輸出控制符包括%d %ld %c %f %lf %o %s %x(或%X或%#X或%#x)這么看還是%#X比較好!非輸出控制符原樣輸出,在上面C中就是例子。34.如何讓程序更有保存價值在開頭加上時間,功能,目的等。在末尾加上在某款軟件中的輸出結果和總結。補充:怎么復制.exe黑窗口中的數(shù)據(jù)右鍵標記或者全選,標記完了再點右鍵,然后就不是被選中狀態(tài)了。這時到目標處ctrl+V就OK了。36.為什么需要輸出控制符A.0和1組成的代碼可以表示數(shù)據(jù)也可以表示指令。一串01代碼本身沒有實際含義,關鍵是看怎么用輸出控制符去解讀。B. 0和1組成的代碼表示的是數(shù)據(jù)
10、的話,那么用不同的輸出格式輸出就會有不同的結果。38+39.scanf();用法:通過鍵盤將數(shù)據(jù)輸入到變量中scanf(”輸入控制符”,輸入?yún)?shù));/當然可以含有非輸入控制符功能:將從鍵盤輸入的字符,轉化為輸入控制符所規(guī)定格式的數(shù)據(jù),然后存入以輸入?yún)?shù)的值為地址的變量中。解析:A.讀著云里霧里。在鍵盤輸入123不是整型數(shù)字123,而是字符1字符2字符3,操作系統(tǒng)就是這么規(guī)定的。%d的作用就是把字符1字符2字符3轉換成一個十進制整數(shù)。B.輸入?yún)?shù)是&i,就是存入以i的地址為地址的變量,就是i變量!就像把我的家作為家的人,就是我這個人!服了下面是含有非輸入控制符的例子。 注意:A.不要忘了加上取地
11、址符&。B.如果scanf();中含有非輸入控制符,那么輸入時要把它對著輸一遍,非輸入控制符不會和printf();一樣顯示在黑窗口上!C.因為是%d輸入,所以輸入m123n時自動把n屏蔽了。D.有了scanf了就不需要在定義變量時賦初值了,當然附了無影響。E.scanf中不要加非輸入控制符,用戶并不知道你加的是什么,沒法照著再輸一遍!40.一次給多個鍵盤變量賦值就算我把%d%d連在一起寫,我輸入12按回車也不會i = 1,j = 2,他會一直換行光標閃爍等我我輸入j的值。還是%d%d連在一起寫,我輸入1,空格/回車,輸入2,輸完后回車就i = 1,j = 2。A.就是我%d%d不管之間連在一
12、起還是加幾個空格,我都可以在黑窗口中用空格把輸入的三個數(shù)分開。B.但是我要是之間加逗號和若干空格,那我輸入的兩個值需要以逗號(或逗號加若干空格)相隔。如果仍然以空格相隔,那么只能是第一個值正確。41.第一部分:如何優(yōu)雅地使用scanfA.上面先加一條提示信息,例如printf(”請輸入兩個值中間以空格/逗號分隔:”);B.scanf盡量不使用非輸入控制符,尤其是n!有時候莫名其妙的不好用就是隨手加了個n引起的!不過加空格沒事(_)scanf(%dn,&i); / n加進來后你想輸出123就要輸入123n總結:一個取地址符&,一個換行符n,scanf和printf不要弄混了!C.(難點!)sca
13、nf對用戶非法輸入的處理() C-1. i和j都是%d輸出,i在前面,輸入123m,它找到了123作為合法的%d字符,然后j開始從m開始讀,開始就出錯了。但是我要是定義char j; 然后scanf和printf都用%c那就i = 123,j = m,當然這也是錯誤的輸入方式。 然后還有一個問題,我要是輸入123mn呢?j = mn?別忘了char 只能存放一個字符??!所以只能放m?。-2. 如果輸入m123,開始讀就錯了,往后都錯了,如下圖。注意啊,這個地方要好好的理解一下啊!上面的例子是說輸入錯誤的情況下是輸一次值回車就報錯了。因為出錯的部分不會自動丟棄,等待下一次輸入時再把出錯的部分賦
14、給下一個變量!直接就不用你給下一個變量輸入了!然后往后就全錯了!好賤啊!上句話不理解可以看C-6,C-7。C-3. 我再次輸錯值,我輸入123空格456還是一次輸入,按回車就這個結果。C-4. 我要是輸入123空格456空格789,結果如圖。個人猜測應該是檢測到123遇到空格就把123給i,但是空格不影響往下檢測,檢測到456遇到空格就把456給了j,再沒有輸入的值了就停了。C-5. 我要是輸入123(可以加一堆空格),他會繼續(xù)光標閃爍提醒我輸入第二個值,我輸入456(可以加一堆空格)再按回車結果如下 C-6. 正確的輸入方式也就是按照流程的意思就是C-5中輸入123回車輸入456回車。所以編
15、寫程序時可以按照下圖,這樣就引導用戶按照正確的輸入方式輸入。 C-7. 按照上面的引導出錯的話,結果如下圖。41.第二部分:保證前面輸入的垃圾值不會被接受這樣就出現(xiàn)一個問題,當我需要對變量鍵盤賦值時,前面的輸入可能會遺留一些垃圾的輸入值,就像上面例子以前有些值沒有放進去,而是放進這次輸入了,然后往后就全錯了。真不知道為什么設計者不直接自動丟棄錯誤部分呢?!所以我們需要這樣一個功能,輸入值時要保證前面輸入的垃圾值不會被接收。兩個scanf之間加入兩行代碼while(ch = getchar()!= n) continue;如圖,這樣在輸入時前面輸入的垃圾值就沒有影響了,好神奇啊(_)ch是cha
16、r類型的! 另外很多編好的代碼拿過來就能用,不必自己再絞盡腦汁的去想!42.運算符的分類算數(shù)運算符:+ - * /(除) %(取余)關系運算符: = 關系邏輯賦值43.除法與取余除法/的運算結果和運算對象的數(shù)據(jù)類型有關,兩個都是int,則商就是int,若商有小數(shù),則去除小數(shù)部分;被除數(shù)和除數(shù)中有一個或兩個是浮點型,那結果就是浮點型,不去除小數(shù)部分。如16/5=3 16/5.0=3.2 -13/4=-3 -13/-3=4 3/5=0 有一個常用的計算:m = 1234; m /= 10;第1次m = 123 第2次m = 12 第3次m = 1 第4次m = 0取余%的運算對象必須是整數(shù),結果是
17、整除后的余數(shù),余數(shù)的符號與被除數(shù)相同。13%3=1 13%-3=1 -13%3=-1 -13%-3=-1 3%5=3 44.邏輯運算符 &:真&真為真,其余都是假 |:假|(zhì)假為假,其余都是真A. C語言對真假的處理:非零是真,零是假。真用1表示,假用零表示。分析:m的值不是0就是1。32是真,k = 8也是真,所以m是1。B. 要是k = 0結果為 C. k的值不是想得那么簡單! 我擦,k = 20!為什么k = 5沒有被執(zhí)行!&左邊的表達式為假的時候,右邊的表達式就不執(zhí)行了!因為一個是假的肯定就是假的了!同樣啊,對于|,左邊的表達式為真的時候,右邊的表達式就不執(zhí)行了!45.初學者學習運算符的
18、一些建議。A忘了的話就查運算符和結合性表。B. 為了讓別人更好清楚,把想讓它優(yōu)先級高的用括號括起來。附:譚浩強 著C程序設計(第四版)P378運算符和結合性表運算符與結合性優(yōu)先級運算符含義要求運算對象的個數(shù)結合方向1( )圓括號左-右 下標-指向結構體成員.結構體成員2!邏輯非1(單目運算符)右-左按位取反+自增-自減-負號(類型)類型轉換*指針&取地址sizeof長度3*乘法2(雙目運算符)左-右/除法%求余4+加法2左-右-減法5右移6 =關系2左-右7=等于2左-右!=不等于8&按位與2左-右9按位異或2左-右10|按位或2左-右11&邏輯與2左-右12|邏輯或2左-右13 ? :條件3
19、(三目運算符)右-左14= += -= *= /= %= = . 單目 算術(先乘除,后加減) 關系 邏輯(不包括!)條件 賦值 逗號以上優(yōu)先級從高到低。位運算符的優(yōu)先級比較分散:有的在算術之前如,有的在關系之前如,有的在關系之后如&、|。為了容易記憶,使用位運算符時可加圓括號。46.黑窗口不要重復打開和其屬性修改注意一個問題:經(jīng)常已經(jīng)打開.exe的黑窗口了,還去點擊啟動調(diào)試(F5)又打開第二個黑窗口了。要把前一個黑窗口關了,再修改再打開第二個!要是已經(jīng)有黑窗口了,再點擊編譯(Ctrl+F7)就會彈出一個對話框,這時候別困惑啥意思,就是把已經(jīng)打開的黑窗口關了!在黑窗口的邊框上右鍵-屬性,可以修
20、改光標大小,字體,布局,顏色等,不過默認的挺好的。52.if最簡單用法流程控制的分類:順序、選擇(if和switch)、循環(huán) 53.if的范圍A. if (表達式) 語句A;語句B;if默認只能控制語句A是否執(zhí)行,語句B一定會執(zhí)行。它正確的格式應該是if (表達式) 語句A;語句B;B. if (表達式) 語句A;語句B; 此時if 可以控制語句A和語句B。綜上所述,if默認只能控制一個語句是否執(zhí)行。如果想控制多個語句是否執(zhí)行,就要把它們用括起來。54.ifelse的用法注意一個問題啊,在新建的時候起名叫ifelse會有問題,因為else后面有三個點,加上.c作后綴就是ifelse.c,這樣命
21、名不行!新建命名的時候不要加點?。ǜ剑?cpp是C+的源程序。在國內(nèi),C+讀作”C加加”,在國外讀作”C Plus Plus”,即”.cpp”。C的源程序后綴就是.c。) else后面也是默認只能控制一個語句是否執(zhí)行。如果想控制多個語句是否執(zhí)行,就要把它們用括起來。 55-1.ifelse ifelse的用法格式:if (1) A;else if (2) B;else if (3) C;else /注意!最后一個else后面沒有括號了!D;說明:(1)成立A執(zhí)行;如果(1)不成立(2)成立B執(zhí)行;如果(1)(2)都不成立執(zhí)行C;(1)(2)(3)都不成立就執(zhí)行D了。 注意啊!有個容易犯的錯誤用
22、法! 55-2. if中容易犯的錯誤這是1個語句,不是3個!要是3個都會執(zhí)行那是3個語句,可是只會執(zhí)行一個所以是1個語句。下面的寫法就是錯誤的!加了哈哈這個語句之后把這個整體分成了3個語句,語句1沒問題,語句2也沒問題,但是語句3就錯了!因為沒有語句以else開頭()當然,編譯(Ctrl + F7)時會提示錯誤:57.if 舉例求分數(shù)的等級注意:一種錯誤的表達式寫法!90 = score = 100是XX的()這式子一看覺得是沒啥問題,但是是XX的!因為從45節(jié)運算符表可以看出關系運算符是自左至右執(zhí)行的,就是先算90 = score,這就出問題了!90 = score的值是個邏輯值,要不是真要
23、不是假,就說結果不是1就是0,不管是1還是0 小于等于100一定成立()綜上,90 = score = 90 & score b則a與c比較 ac則輸出a ac則輸出b b 再每個語句的功能 - 試數(shù)(最后一步尤其重要)試數(shù)兩個原則:一個是把自己當計算機,一步一步來。一個是寫整齊。就一些小算法的程序:嘗試自己去編程解決它,基本不太可能()如果解決不了,就看答案關鍵要把答案看懂,這個要花很大的精力,也是我們學習的重點看懂之后嘗試自己去修改程序,并且知道修改后不同輸出結果的含義照著答案去敲,調(diào)試錯誤不看答案,自己獨立敲出來如果程序實在無法徹底理解,就把它背下來62.if空語句的問題有時候犯錯誤在i
24、f后面加了個分號,如下圖 上面兩種都一樣,就是如果1大于2就執(zhí)行這個空語句。上述就是3個語句了。語法上雖然沒有問題,但是達不到效果了。63.if常見問題上述語法沒有問題,但是加了else語言就錯了,因為沒有單獨以else開頭的語句。同樣,else if和else后面也別加上分號!if (表達式1) A;else if (表達式2) B;else if (表達式3) C;elseD;即使表達式1和2都成立,也只會執(zhí)行A語句。因為表達式1成立了,就沒有否則了(_)能不能沒有最后一個else?if (表達式1) A;else if (表達式2) B;else if (表達式3) C;/最后的else
25、沒有了,語法不會出錯,但是邏輯上有漏洞。如下例子:漏洞就是我要是輸入分數(shù)是70,就沒有對應的輸出了!更加郁悶的錯誤O(_)O哈哈if (表達式1) A;else if (表達式2) B;else if (表達式3) C;else (表達式4)/ 最后一個else后面沒有括號了!D;不過這個錯誤還好,語法錯誤,編譯時會提醒你表達式4后面缺少分號。可以這樣理解,else后面都是一個語句,但是沒有(表達式4)D;這種類型的語句。上述錯誤我要是表達式4后面加上分號呢?if (表達式1) A;else if (表達式2) B;else if (表達式3) C;else (表達式4);/ 表達式4后面加上
26、分號D;和第E條相比語法上沒有錯誤,編譯OK。它就等價于else (表達式4); D;語法上雖然OK,但是只會導致錯誤結果()67.初識for循環(huán)循環(huán)分類:for while dowhile先執(zhí)行”1”, ”1”完了執(zhí)行”2”, ”2”成立執(zhí)行”4”, ”4”完了執(zhí)行”3”,”3”完了標志循環(huán)一次結束。然后再判斷”2”決定是否進行下一次循環(huán)。如果”2”不成立就退出循環(huán)了。注意:”3”完了才標志循環(huán)一次結束,所以i最終值不是100,是101! ”1”永遠只執(zhí)行一次,”3”完了一定會執(zhí)行”2”!別忘了給sum賦初值,否則sum是個垃圾值。垃圾值再加上i還是垃圾值然后VS故意輸出一個很大的數(shù)字告訴你
27、你錯了O(_)O哈哈 ”1” ”2” ”3” 之間是分號分隔,不是逗號!”3”后面沒有分號了()68.for最簡單的應用-求10以內(nèi)奇數(shù)和 注意:i+=2后面沒有分號!要是求10000以內(nèi)的奇數(shù)和就是i10000,但是怎么證明程序正確呢?就是先看10正確,再放大點正確,也就得出10000正確了。69.for和if的嵌套使用注意一個問題:for()后面不要加一個分號!和if()一樣!因為語法沒有錯誤編譯時檢查不出,一個分號又不起眼,有時候硬是讓人崩潰()求1-12所有能被3整除的數(shù)字之和這個for下面我沒加括號,for默認也是控制一個語句 這個例子剛開始有點難,for下面我加了括號輸出結果是什么
28、?分析:1完了執(zhí)行2;2成立執(zhí)行4;4成立執(zhí)行5,5完了執(zhí)行6,4不成立執(zhí)行6,6完了執(zhí)行3,標志循環(huán)一次結束。71.強制類型轉換從一個例子引出強制類型轉換:1+1/2+1/3+1/100 為什么sum結果是錯誤的?根據(jù)43節(jié):除法/的運算結果和運算對象的數(shù)據(jù)類型有關,兩個都是int,則商就是int,若商有小數(shù),則去除小數(shù)部分;被除數(shù)和除數(shù)中有一個或兩個是浮點型,那結果就是浮點型,不去除小數(shù)部分。如16/5=3 16/5.0=3.2 -13/4=-3 -13/-3=4 3/5=0 取余%的運算對象必須是整數(shù),結果是整除后的余數(shù),余數(shù)的符號與被除數(shù)相同。13%3=1 13%-3=1 -13%3=
29、-1 -13%-3=-1 3%5=3 所以從i = 2開始,1/i的結果就都是0進一步研究:將sum變?yōu)閒loat型sum = float + int結果為float ,即不同精度運算結果為高精度 () 為什么sum結果為0!因為sum以%d輸出,正確應該以%f輸出!這個錯誤也經(jīng)常被忽略! 進一步研究:對1/i使用強制類型轉換 從i = 2開始,1/i的結果就都是0,加上強制類型轉換就是0.00000()本例子正確做法,對i進行強制類型轉換(不推薦此法,后面有簡單的) 還有個更簡單的寫法:sum = sum + 1.0 / i (_) 推薦使用這個注意:這里邊sum最后結果是個浮點型,一開始必
30、須定義成float,輸出時必須是%f,定義和輸出要匹配。一開始定義成int,輸出是%f或者一開始定義成float,輸出時是%d,結果都是錯誤的!為什么不直接定義成float i?下一節(jié)會講到。綜上,強制類型轉換格式(數(shù)據(jù)類型)(表達式),作用是把表達式的值強制轉換為前面寫的數(shù)據(jù)類型,例子(int)(4.5 + 2.2)值為6 (float)(5)值為5.72.浮點數(shù)存儲帶來的問題float和double都不能保證精確存儲()面試題舉例:有一個浮點型變量x,如何判斷x的值是否為0錯誤寫法: if (x = 0) 是 else 不是 因為x賦值為0,但是存儲的只是0的近似值正確寫法:if (|x
31、0.| =0.) 是 else 不是 表示x和某一個很小很小的數(shù)字相差非常非常小,x就可以當0來看待了為什么循環(huán)中更新的變量不能定義成浮點型就比如71節(jié)的i+為什么i不能是浮點型?因為判斷i 2成立-4-5成立-A-6-5,5不成立-3-2成立-4(別以為4只執(zhí)行1次?。?5成立-A-6-5,5不成立-3-2不成立-B就退出循環(huán)了75.復習進制的知識搞清楚4個問題什么是n進制?就是逢n進1把r進制轉化成十進制這個簡單,比如說(234)5 = (4x50+3x51+2x52)10(234C)16 =(12+4x16+3x162+2x163)10把十進制轉化成r進制這個算就麻煩。除r取余,直至商0
32、,余數(shù)倒序排列不同進制所代表的數(shù)值之間的關系比如十進制的3981轉換成十六進制是F8D,它們的本質(zhì)都是同一個數(shù)字二進制轉十進制的最快方法是先二進制轉十六進制,再十六進制轉十進制76.運算符補充自增/自減+在變量的后面, 首先對變量取值,然后再參與自增運算;+在變量的前面, 首先對變量做自增運算,然后再對變量取值。-為什么會出現(xiàn)自增?i += 1就行了為何還會有i+?一個是代碼看著更精煉,一個是自增的速度更快(暫不深究)。使用自增時要注意的問題編程時應該盡量屏蔽掉前自增和后自增的差別。就是i+和+i單獨成一個語句,這樣沒有區(qū)別,但是不要作為一個更大的表達式的一部分!77.運算符補充三目運算符格式
33、 A ?B : C等價于if (A) B; else C; 78.運算符補充逗號表達式格式 (A, B, C, D)從左到右執(zhí)行,最終表達式的值是最后一項的值 說是逗號是一個順序點,所有的副作用必須在下個語句前生效。所以j+完了j就加1,+j完了j又加1變成4。注意j+2的值是6但是j的值沒有改變,因為沒有把j+2的值賦給j,不是j += 2!最后j - 3的值是4-3=1。82.while循環(huán) while (表達式) 語句;解釋:表達式成立執(zhí)行語句,完了再判斷表達式,再執(zhí)行語句 while默認控制一個語句83.for和while的比較比如求1到100的和,分別用for和while來寫 - 綜
34、上,for和while可以相互轉換 for (1; 2; 3) A;等價于1;while (2) A; 3;雖然for和while可以相互轉換,但for的邏輯性更強,更不容易出錯,我們推薦多使用for。87.何時用while,何時用for沒法說,用的多了自然就知道了88.dowhile格式 do while(表達式); /后面這個分號不能丟了!dowhile并不等價于for,當然也不等價于while。因為dowhile一定會執(zhí)行一次,而那兩個可能一次也不執(zhí)行。主要用于人機交互。例如寫的禹山溶解氧執(zhí)行,原來計算只能輸入一次,現(xiàn)在可以不斷的輸入!-上述程序改進。上述程序沒有結束啊,黑窗口一直在閃爍
35、等待你輸入,但是你輸了幾個想要結束咋辦() 通過以上例子就理解了為什么dowhile用于人機交互(_)90.switch用法簡介含有break - 將case 1后面的break去掉-結論:case 1 case 2 case 3 和 default 它們是程序的入口,val值判斷和哪個case后面相等就從哪個入口進入,都不相等就從default進入。但是一旦找到入口之后,就沒有case1 case2 case3 和 default了,程序從入口開始從上往下連續(xù)去執(zhí)行。加深對上面結論的理解,將break都去掉 91.switch瑣碎知識switch(表達式) case常量表達式1:語句1;ca
36、se常量表達式2:語句2;case常量表達式3:語句3;default : 語句n;第一條 所有case后面的常量表達式為了便于描述我們姑且稱之為標簽。這些標簽都只能是(1)枚舉常量(有些書中稱之為枚舉元素)(2)數(shù)值常量(3)字符常量(4)常變量(5)宏名中的一種。注意:普通變量,枚舉變量是不能作為標簽使用的。第二條 switch(表達式)中的表達式允許是任何類型,但是VC+中只允許為int或char類型,就說具體軟件中做了一些限制。switch(i) case 1: 語句1;case 2: 語句2;default : 語句3; /有些SB有毛病把default寫到前面case 3: 語句4
37、; 當i = 1時,從case 1處往下一個不落的執(zhí)行當i = 2時,從case 2處往下一個不落的執(zhí)行當i = 3時,只執(zhí)行case 3一句當i = 4時,從default處往下一個不落的執(zhí)行switch是選擇不是循環(huán),如果在switch中出現(xiàn)了break語句,該語句的功能是退出switch語句并轉去執(zhí)行switch下面的語句。在switch中出現(xiàn)continue是錯誤的,除非switch就屬于for或while循環(huán)的一部分。92.break的用法break如果用于循環(huán)是用于終止循環(huán)break如果用于switch是用于終止switchbreak不能直接用于if(語法錯誤),除非if屬于循環(huán)內(nèi)
38、部的一個子句break用于一個for循環(huán)現(xiàn)在想知道break是用來終止if還是終止for?可以這么想,如果是用來終止if,那么為什么規(guī)定不能直接用于if?如用來終止if,那么應該有三個嘿嘿;如用來終止for,那么應該啥也沒有果然是啥也沒有,所以break雖然是if內(nèi)部的語句,但終止的卻是外部的for循環(huán)。break用于多個for循環(huán)break如果用于終止第一個 for,應該啥也不輸出,如果用于終止第二個for,應該輸出三個嘿嘿。 看來break只能終止距離它最近的包含它的(這一條不能忽略?。┭h(huán)break用于多個switchbreak只能終止距離它最近的tinue的用法用于跳過本次循環(huán)余下的語
39、句,轉去判斷是否需要執(zhí)行下次循環(huán)在for循環(huán)中for(1; 2; 3) A; B; continue;C;D; 如果執(zhí)行continue,則執(zhí)行完后,會執(zhí)行語句3(是語句3別記錯了?。?,C和D都會被跳過去,即C和D不會被執(zhí)行。在while循環(huán)中while(表達式) A; B; continue;C;D; 如果執(zhí)行continue,則執(zhí)行完后,會執(zhí)行表達式,C和D都會被跳過去,即C和D不會被執(zhí)行。如果把for轉換成while,注意把3放在continue的上面不是下面,否則3就不會被執(zhí)行了。實際應用的例子:在41節(jié)中,scanf怎么保證用戶輸入的垃圾值不會被接受?兩個scanf之間加入兩行代碼w
40、hile(ch = getchar()!= n) continue;解析:這個不太好理解() getchar()是個函數(shù),要求用戶從鍵盤輸入一個字符。再把這個字符賦給ch。(這個很重要,就是ch替下面那個scanf接收了用戶輸入的垃圾值) 如果ch不是換行符,括號里就為真,就去執(zhí)行continue。continue用于跳過本次循環(huán)余下的語句,轉去判斷是否需要執(zhí)行下次循環(huán)。當然現(xiàn)在沒有余下的語句,就直接去判斷括號里了。比如應該輸入十進制給i我輸入了1 asdf ddd ,當我按下回車(輸完了最后要按下一個回車的?。桶?賦給i,后面這些無法賦給i,就靠getchar()去接受了!第一個是空格,
41、賦給ch,空格不是換行符,然后continue,返回while表達式,getchar()又把a讀取到了,賦給ch,ch又不是換行符最后getchar()讀取到了你按下的那個回車,賦給ch,然后while循環(huán)就終止了。就是說getchar()替下面那個scanf把余下的垃圾值都接受了,然后一次又一次的賦給ch了。所以ch的值就是一個回車符,可以將它輸出試試!注意ch是個char類型! 可以看出ch是個換行符!continue用法測試1注意,continue雖然放在if中,但它針對的仍然是循環(huán),而if不是循環(huán),所以continue執(zhí)行后轉去執(zhí)行while(i5);。這個例子輸出值是9,自己算一下就
42、明白continue的用法了。continue用法測試298.數(shù)組的簡單使用格式注意是從a0開始,不是從a1開始!數(shù)組有5個元素,最后一個是a4不是a5!a0表示數(shù)組中第1個元素,a1表示數(shù)組中第2個元素,所以ai表示數(shù)組中第(i+1)個元素。輸出方法-借助for循環(huán) 99.為什么需要數(shù)組為了解決大量同類型數(shù)據(jù)的存儲和使用問題為了模擬現(xiàn)實世界101.一維數(shù)組怎樣定義一維數(shù)組為n個變量連續(xù)(一定是連續(xù))分配存儲空間所有的變量數(shù)據(jù)類型必須相同所有變量所占的字節(jié)大小必須相同初始化完全初始化 int a5 = 1,2,3,4,5;不完全初始化 int a5 = 1,2,3; 未初始化的元素自動為0不初
43、始化 int a5; 所有元素是垃圾值清零int a5 = 0; 錯誤寫法! C-1.int a5;a5 = 1,2,3,4,5; /錯誤的!雖然看樣子很正確()只有在定義數(shù)組的同時可以整體賦值,其他情況下整體賦值都是錯誤的!因為int a5; a是數(shù)組名,5是長度即個數(shù)。而下面那個a5表示的是數(shù)組中第6個元素,5代表下標,表示元素的位置是第6個元素。首先最后一個元素是a4沒有a5,然后把5個數(shù)字賦給一個元素也不行。C-2. int a5 = 1,2,3,4,5;a5 =10; /錯誤,因為沒有a5元素,最后一個是a4C-3.把a數(shù)組中的值全部賦值給b數(shù)組 錯誤寫法: b = a; /錯誤!因
44、為數(shù)組名代的不是數(shù)組所有元素,代表的是第一個元素的地址,指針講 正確寫法:for (i = 0;i 5;i+)/i從0開始 bi = ai; 賦值排序,求最大最小值,倒置,查找,刪除,插入這些不用自己寫,別人都已經(jīng)設計好了,拿過來用就行了。102.二維數(shù)組int a34;總共是12個元素,可以當成3行4列看待,分別是a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23aij 表示第i+1行,j+1列的元素int amn;該數(shù)組右下角最后一個元素是am-1n-1初始化int a34 = 1,2,3,4,5,6,7,8,9,10,11,12; /嚴重不推薦!推
45、薦下面這樣寫,別忘了最后一個分號!輸出 如果想對輸出進行對齊控制 負號表示左對齊,5表示一個數(shù)占5個光標的位置這個不重要,因為對齊不是靠printf來控制。103.是否存在多維數(shù)組不存在,因為內(nèi)存是線性一維的。n維數(shù)組可以當成每個元素是(n-1)維數(shù)組的一維數(shù)組。上句話不好理解,舉例:int a34; 該數(shù)組是含有3個元素的一維數(shù)組,只不過每個元素都可以再分成4個小元素int a345; 該數(shù)組是含有3個元素的一維數(shù)組,只不過每個元素都是4行5列的二維數(shù)組106-107.為什么需要函數(shù)+什么是函數(shù)避免了重復性操作,有利于程序的模塊化什么是函數(shù)?函數(shù)是C語言的基本單位,類是C+,C#,Java的
46、基本單位。邏輯上:能夠完成特定功能的獨立的代碼塊物理上:能夠接收數(shù)據(jù)(當然可以不接收)能夠對接收的數(shù)據(jù)進行處理(不處理沒啥意義())能夠將處理的結果返回(當然也可以不返回任何值)例子1:函數(shù)有返回值例子2:函數(shù)無返回值綜上:函數(shù)是個工具,它是為了解決大量類似問題而設計的,函數(shù)可以當做一個黑匣子,編好的函數(shù),我輸入處理數(shù)據(jù),它輸出處理結果,至于它內(nèi)部怎么實現(xiàn)的就不用操心了。黑匣子 輸入輸出108.如何定義函數(shù)?函數(shù)的返回值類型 函數(shù)的名字(函數(shù)的形參列表) 函數(shù)的執(zhí)行體函數(shù)定義的本質(zhì)是詳細描述函數(shù)之所以能夠實現(xiàn)某個特定功能的具體方法函數(shù)的返回值的類型也稱為函數(shù)的類型,因為如果”函數(shù)名字前函數(shù)的返
47、回值類型”和函數(shù)的執(zhí)行體中”return的表達式的類型”不同的話,以”函數(shù)名字前函數(shù)的返回值類型”為準。109.return和break的區(qū)別復習92節(jié)breakbreak如果用于循環(huán)是用于終止循環(huán)break如果用于switch是用于終止switchbreak不能直接用于if(語法錯誤),除非if屬于循環(huán)內(nèi)部的一個子句如果break沒有包含在for的括號里單獨出現(xiàn),就會出現(xiàn)錯誤把break換成return 這么看return不是用來終止for循環(huán)的,是用來終止所在的函數(shù)的。return和函數(shù)匹配。子函數(shù)中return的作用:終止被調(diào)函數(shù),向主調(diào)函數(shù)返回表達式的值;如果表達式為空,就只終止函數(shù),
48、不向主調(diào)函數(shù)返回任何值把上例子中for的括號去掉110.函數(shù)的分類有參和無參有返回值和無返回值庫函數(shù)和用戶自定函數(shù),值傳遞函數(shù)和地址傳遞函數(shù)主函數(shù)和普通函數(shù)背下來:一個程序必須有且只有一個主函數(shù),主函數(shù)是程序的入口,也是函數(shù)的出口主函數(shù)可以調(diào)用普通函數(shù),但是反過來不行普通函數(shù)可以相互調(diào)用111.函數(shù)舉例求最大值的兩種子函數(shù)子函數(shù)1 子函數(shù)2 兩種方式比較:max1功能是兩個,就是找到最大值,對最大值進行處理。max2的功能就是尋找最大值,至于怎么處理要看main函數(shù)。判斷一個數(shù)是否是素數(shù),看語法! 寫成子函數(shù)的形式,注意bool類型,有true和false兩個值 113.函數(shù)的聲明子函數(shù)要定義
49、在主函數(shù)上面才可以不出錯,因為編譯是從上往下執(zhí)行,如果子函數(shù)在下面,編譯到主函數(shù)時不知道那是個什么東西。所以要加函數(shù)的聲明。例子1例子2 / 綜上,如果函數(shù)調(diào)用寫在了函數(shù)定義的前面,必須加前置聲明函數(shù)前置聲明作用:告訴編譯器即將可能出現(xiàn)的若干個字母代表的是一個函數(shù)告訴編譯器即將可能出現(xiàn)的若干個字母代表的函數(shù)的形參和返回值的具體情況函數(shù)聲明是一個語句,末尾必須加分號對庫函數(shù)的聲明是通過#include來實現(xiàn)的函數(shù)聲明時形參名字可省略如void f(int); 一般不寫形參114.函數(shù)的形參和實參個數(shù)相同,位置一一對應,數(shù)據(jù)類型相互兼容附:代碼整體左移右移就選中用Tab和Shift + Tab。1
50、15.如何在軟件開發(fā)中合理的設計函數(shù)來解決實際問題一個函數(shù)的功能盡量獨立,單一多學習,多模仿牛人的代碼120.函數(shù)的作用域和存儲方式按作用域分:全局變量 局部變量局部變量:在一個函數(shù)內(nèi)部定義的變量或者函數(shù)的形參例如:void f(int i) int j = 20; / i和j都屬于局部變量,只能在本函數(shù)內(nèi)部使用全局變量:在函數(shù)外部定義的變量使用范圍是從定義位置開始到整個程序結束,定義位置上面就管不了了局部變量和全局變量命名一樣的問題?局部變量會屏蔽全局變量 按存儲方式分:靜態(tài)變量 自動變量 寄存器變量 外部參照引用型121.指針初次介紹內(nèi)存:內(nèi)存的單元的編號不是以位算的,是以字節(jié)算的。不是1
51、個0或1是一個編號,而是8個0或1合在一起是一個編號。這個編號就是地址。122.指針的重要性表示一些復雜的數(shù)據(jù)結構、快速的傳遞數(shù)據(jù)并減少內(nèi)存的占用、使函數(shù)返回一個以上的值(130節(jié))、能直接訪問硬件、能夠方便的處理字符串、是理解面向對象語言中引用的基礎總之,指針是C語言的靈魂。123.什么是地址內(nèi)存單元的編號,從零開始的非負整數(shù)。范圍:4G(0到4G-1)地址總線數(shù)據(jù)總線控制總線內(nèi)存條CPU單看地址總線1根線能控制一個內(nèi)存單元(字節(jié)),0或1。兩根線有四種狀態(tài)00 01 10 11。一般機器有32根線,就有232種組合。就是地址總線能控制232字節(jié)。1K = 210B 1M = 210K =
52、220B 1G = 210M = 230B 232 = 22 X 230B = 4G 所以一般機器內(nèi)存最大就4G。124.什么是指針指針就是地址,地址就是指針。指針變量就是存放內(nèi)存單元編號的變量,或者說指針變量就是存放地址的變量指針和指針變量是兩個不同的概念,但是要注意通常我們敘述時會把指針變量簡稱為指針,實際它們含義并不一樣。指針的本質(zhì)就是一個操作受限的非負整數(shù)。非負整數(shù)可以進行加減乘除,但是地址只能進行相減。125.基本類型的指針int *p; /*p是變量的名字,int *表示p變量存放的是int類型變量的地址int *p;不是定義了一個名字叫*p的變量()應該這樣理解,p是變量名,定義
53、是p不是*p,p變量的類型是int *類型,所謂int *類型,實際就是存放int變量地址的類型*/int i = 3;p = &i; /取地址符!不能寫成p = i; 因為int *類型,只能存放地址。/*1.p保存了i的地址,因此p指向i2.p不是i,i也不是p,修改其中一個的值不影響另一個 3.如果一個指針變量指向了某個普通變量,則*指針變量就完全等同于普通變量例子:如果p是個指針變量,并且p存放了普通變量i的地址則p指向了普通變量i,*p就完全等同于i。就是p = &i;那么*p = i。解釋:*p代表以p的內(nèi)容為地址的變量(語法就這么規(guī)定的!) p的內(nèi)容是&i,*p就是以i的地址為地
54、址的變量,以我的家為家的人就是我,所以以i的地址為地址的變量就是i,所以*p=i。*/126. 基本類型的指針常見錯誤解析錯誤例子1編譯時沒有錯誤,但是一旦執(zhí)行就死機了。因為*p上面少了一步p = &i; 解析:表面上錯誤原因是p沒有指向,但是定義了p它就有指向了,指向哪就不知道了。p沒有初始化,*p代表以p的內(nèi)容為地址的變量 ,變量的本質(zhì)就是內(nèi)存中一段存儲空間,*p是個垃圾值。*p = i的結果就是把i的值賦給了我不知道的存儲空間。操作系統(tǒng)只給我分配了i和p的空間,但是我用了其他的空間,別的程序可能在使用我用的其它空間,所以就出錯了。錯誤例子2編譯時就會出錯,因為p是int *型,而*q是i
55、nt變量。錯誤例子3語法上沒錯,但是死機。*p就是i,和例子1的錯誤一樣。正確的方法是 錯誤例子4把p = q變成了q = p,語法沒錯,但是死機已經(jīng)定義了p和q,雖然不知道q指向哪里,但是讓q = p沒問題,輸出q也沒問題,但是輸出*q就有問題了。同例子1 127.經(jīng)典指針程序-互換兩個數(shù)字錯誤方法,加深函數(shù)理解互換沒有成功。原因是1:互換的是形參a和b的值,和主函數(shù)的a和b沒有影響。2:執(zhí)行完huhuan(a,b);后形參a和b分配的空間被釋放,但是主函數(shù)a和b分配的空間沒有被釋放,下面輸出的a和b是主函數(shù)的,沒有互換。這個問題的關鍵就是怎么通過改變形參的值來影響實參的值?錯誤方法2這么寫
56、仍然沒有什么意義,就是把a的地址發(fā)給p,把b的地址發(fā)給q,然后再把p和q的值給互換了,對a和b沒有影響注意一個問題:a和b的分配的地址我們用語言改不了的!免得走誤區(qū)!正確方法 解析:雖然子函數(shù)執(zhí)行完畢p和q的空間都被釋放了,但是在執(zhí)行子函數(shù)的過程中已經(jīng)把p指向的a和q指向的b的值給互換了。129.實參和形參永遠是不同的變量p是int *型,只能指向int 型實參和形參永遠是不同的變量聯(lián)系127節(jié)互換兩個數(shù)字。寫一個程序驗證一下是不是同一個變量。 兩個i都是局部變量,當然不可能一樣。所以修改形參的值不可能影響實參的值。130.指針可以使被調(diào)函數(shù)修改主調(diào)函數(shù)多個變量的值如果沒有指針上面已經(jīng)說了修改
57、形參的值不可能影響實參的值,但是子函數(shù)會有一個返回值,可以把返回值賦給一個實參。如果使用指針 總結:如何通過被調(diào)函數(shù)修改主調(diào)函數(shù)普通變量的值?實參必須為該普通變量的地址形參必須為指針變量在被調(diào)函數(shù)中通過”*形參名 = XXX”的方式就可以修改主調(diào)函數(shù)相關變量的值131-136.專題:一維數(shù)組和指針關系一維數(shù)組名的含義一維數(shù)組名是個指針常量(指針型!常量!),它存放的是一維數(shù)組第一個元素的地址把a數(shù)組中的值全部賦值給b數(shù)組 錯誤寫法: b = a; /錯誤!因為一維數(shù)組名代的不是數(shù)組所有元素,代表的是第一個元素的地址 正確寫法:for (i = 0;i 成員名所以說這兩種方式是等價的!通過函數(shù)完
58、成對結構體變量的輸入和輸出輸入輸出 總結,輸入的時候必須發(fā)送st的地址,因為要對st的內(nèi)容進行修改。但是輸出的時候沒有必要再發(fā)送st的地址了,只需要把st的內(nèi)容發(fā)給形參,再把形參輸出就行了。附:注意一個問題:子函數(shù)定義如果不在主函數(shù)上面寫,那么要先聲明(別忘了寫分號)!然后子函數(shù)定義是寫在主函數(shù)下面的,寫在主函數(shù)外部!不是寫在主函數(shù)里面!主函數(shù)里面不包括子函數(shù)的定義,只有子函數(shù)的調(diào)用語句!曾經(jīng)這個錯誤差點讓我抓狂!例如:輸出應該發(fā)送內(nèi)容還是發(fā)送地址上例的輸出函數(shù)是應該發(fā)送地址還是發(fā)送內(nèi)容,上面例子是發(fā)送內(nèi)容,但是實際應該發(fā)送地址!因為這樣可以減少內(nèi)存的占用,也可以提高執(zhí)行速度。原因忘了看視頻。指針優(yōu)點大總結表示一些復雜的數(shù)據(jù)結構(C語言不講)快速的傳遞數(shù)據(jù)并減少內(nèi)存的占用(結構體章節(jié)序號6)使函數(shù)返回一個以上的值(130節(jié))能直接訪問硬件能夠方便的處理字符串是理解面向對象語言中引用的基礎結構體變量的運算結構體變量不能進行加減乘除,但是可以相互賦值。struct Student in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度礦產(chǎn)資源經(jīng)營權拍賣成交合同
- 谷殼銷售合同
- 小學四年級數(shù)學幾百幾十數(shù)乘以一位數(shù)競賽試題題
- 二年級數(shù)學100以內(nèi)加減法豎式計算題能力考核口算題大全附答案
- 三年級數(shù)學三位數(shù)乘以一位數(shù)題綜合測試試題帶答案
- 營銷策劃與推廣合同
- 二零二五年度品牌冰箱全球市場銷售戰(zhàn)略合同4篇
- IT系統(tǒng)運維外包服務合同
- 網(wǎng)絡安全技術咨詢服務責任細分合同
- 2025物業(yè)服務合同(含社區(qū)公共設施設備更新)3篇
- 2025年買賣個人房屋合同(4篇)
- 2025代運營合同范本
- 武漢2025年湖北武漢理工大學管理人員招聘筆試歷年參考題庫附帶答案詳解
- 家庭燃氣和煤氣防火安全
- 第十一章《功和機械能》達標測試卷(含答案)2024-2025學年度人教版物理八年級下冊
- 2025年銷售部年度工作計劃
- 使用錯誤評估報告(可用性工程)模版
- 2024年高考全國甲卷英語試卷(含答案)
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試題庫附答案
- 2024年4月浙江省00015英語二試題及答案含評分參考
- 社區(qū)精神康復課件
評論
0/150
提交評論