教了多年《C程序設(shè)計(jì)》課程,大多學(xué)生覺(jué)的這門課程難學(xué)。
其實(shí),按照我們現(xiàn)在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學(xué)好的。 《C程序設(shè)計(jì)》的內(nèi)容很豐富,按照我們現(xiàn)在的教學(xué)大綱,教學(xué)的主要內(nèi)容是基礎(chǔ)知識(shí)、四種結(jié)構(gòu)的的程序設(shè)計(jì)、函數(shù)與數(shù)組的應(yīng)用和一些簡(jiǎn)單的算法。
在學(xué)習(xí)時(shí),同學(xué)們應(yīng)該把主要精力放在這些部分,通過(guò)實(shí)踐(練習(xí)和上機(jī)調(diào)試等熟練掌握。當(dāng)然,在初學(xué)C語(yǔ)言時(shí),可能會(huì)遇到有些問(wèn)題理解不透,或者表達(dá)方式與以往數(shù)學(xué)學(xué)習(xí)中不同(如運(yùn)算符等),這就要求不氣餒,不明白的地方多問(wèn)多想,鼓足勇氣進(jìn)行學(xué)習(xí),待學(xué)完后面的章節(jié)知識(shí),前面的問(wèn)題也就迎刃而解了,這一方面我感覺(jué)是我們同學(xué)最欠缺,大多學(xué)不好的就是因?yàn)橐婚_(kāi)始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問(wèn)題,回答是聽(tīng)不懂、不想聽(tīng)、放棄這樣三個(gè)過(guò)程,我反問(wèn),這節(jié)課你聽(tīng)過(guò)課嗎?回答又是沒(méi)有,根本就沒(méi)聽(tīng)過(guò)課,怎么說(shuō)自己聽(tīng)不懂呢?相應(yīng)的根本就沒(méi)學(xué)習(xí),又談何學(xué)的好? 學(xué)習(xí)C語(yǔ)言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學(xué)習(xí)知識(shí)的重要方法,就是說(shuō),學(xué)習(xí)后面的知識(shí),不要忘了回頭弄清遺留下的問(wèn)題和加深理解前面的知識(shí),這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語(yǔ)言中最典型的是關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)構(gòu)思,不管是那種教材,一開(kāi)始就強(qiáng)調(diào)這種方法,這時(shí)也許你不能充分體會(huì),但是學(xué)到函數(shù)時(shí),再回頭來(lái)仔細(xì)體會(huì),溫故知新,理解它就沒(méi)有那么難了。學(xué)習(xí)C語(yǔ)言就是要經(jīng)過(guò)幾個(gè)反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識(shí)。
那么,我們?nèi)绾螌W(xué)好《C程序設(shè)計(jì)》呢? 一.學(xué)好C語(yǔ)言的運(yùn)算符和運(yùn)算順序 這是學(xué)好《C程序設(shè)計(jì)》的基礎(chǔ),C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。在表達(dá)式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號(hào)運(yùn)算和三目運(yùn)算使表達(dá)式更為簡(jiǎn)單,但初學(xué)者往往會(huì)覺(jué)的這種表達(dá)式難讀,關(guān)鍵原因就是對(duì)運(yùn)算符和運(yùn)算順序理解不透不全。
當(dāng)多種不同運(yùn)算組成一個(gè)運(yùn)算表達(dá)式,即一個(gè)運(yùn)算式中出現(xiàn)多種運(yùn)算符時(shí),運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。在學(xué)習(xí)中,只要我們對(duì)此合理進(jìn)行分類,找出它們與我們?cè)跀?shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會(huì)牢記心中,將來(lái)用起來(lái)得心應(yīng)手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。
先要明確運(yùn)算符按優(yōu)先級(jí)不同分類,《C程序設(shè)計(jì)》運(yùn)算符可分為15種優(yōu)先級(jí),從高到低,優(yōu)先級(jí)為1 ~ 15,除第2、3級(jí)和第14級(jí)為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級(jí)運(yùn)算符的運(yùn)算順序。下面我們通過(guò)幾個(gè)例子來(lái)說(shuō)明: (1) 5*8/4%10 這個(gè)表達(dá)式中出現(xiàn)3種運(yùn)算符,是同級(jí)運(yùn)算符,運(yùn)算順序按從左至右結(jié)合,因此先計(jì)算5 *8=40,然后被4除,結(jié)果為10,最后是%(求余數(shù))運(yùn)算,所以表達(dá)式的最終結(jié)果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對(duì)于c=++a*b來(lái)說(shuō),按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運(yùn)算,所以a的值4參與運(yùn)算,C的值計(jì)算式為4*5=20而不是3*5=15了;而對(duì)于d=a++*b來(lái)說(shuō),由于a + +為后置運(yùn)算,所以a值為4參與運(yùn)算,使得d的值仍為20,而a參與運(yùn)算后其值加1,值為5。
這個(gè)例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號(hào)結(jié)合運(yùn)算,上式稱為逗號(hào)表達(dá)式,自左向右結(jié)合,最后一個(gè)表達(dá)式的結(jié)果值就是逗號(hào)表達(dá)式的結(jié)果,所以上面的逗號(hào)表達(dá)式結(jié)果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個(gè)三目運(yùn)算,它的功能是先做關(guān)系運(yùn)算a>b部分,若結(jié)果為真,則取問(wèn)號(hào)后a的值,否則取冒號(hào)后b的值,因此c的值應(yīng)該為6,這個(gè)運(yùn)算可以用來(lái)代替if…else…語(yǔ)句的簡(jiǎn)單應(yīng)用。
二.學(xué)好C語(yǔ)言的四種程序結(jié)構(gòu) (1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。 例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問(wèn)題就好象交換兩個(gè)杯子水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋?c = a; a = b; b = c; 執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。
順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語(yǔ)句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。
(2) 分支結(jié)構(gòu) 順序結(jié)構(gòu)的程序雖然能解決計(jì)算、輸出等問(wèn)題,但不能做判斷再選擇。對(duì)于要先做判斷再選擇的問(wèn)題就要使用分支結(jié)構(gòu)。
分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)。
教了多年《C程序設(shè)計(jì)》課程,大多學(xué)生覺(jué)的這門課程難學(xué)。
其實(shí),按照我們現(xiàn)在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學(xué)好的。 《C程序設(shè)計(jì)》的內(nèi)容很豐富,按照我們現(xiàn)在的教學(xué)大綱,教學(xué)的主要內(nèi)容是基礎(chǔ)知識(shí)、四種結(jié)構(gòu)的的程序設(shè)計(jì)、函數(shù)與數(shù)組的應(yīng)用和一些簡(jiǎn)單的算法。
在學(xué)習(xí)時(shí),同學(xué)們應(yīng)該把主要精力放在這些部分,通過(guò)實(shí)踐(練習(xí)和上機(jī)調(diào)試等熟練掌握。當(dāng)然,在初學(xué)C語(yǔ)言時(shí),可能會(huì)遇到有些問(wèn)題理解不透,或者表達(dá)方式與以往數(shù)學(xué)學(xué)習(xí)中不同(如運(yùn)算符等),這就要求不氣餒,不明白的地方多問(wèn)多想,鼓足勇氣進(jìn)行學(xué)習(xí),待學(xué)完后面的章節(jié)知識(shí),前面的問(wèn)題也就迎刃而解了,這一方面我感覺(jué)是我們同學(xué)最欠缺,大多學(xué)不好的就是因?yàn)橐婚_(kāi)始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問(wèn)題,回答是聽(tīng)不懂、不想聽(tīng)、放棄這樣三個(gè)過(guò)程,我反問(wèn),這節(jié)課你聽(tīng)過(guò)課嗎?回答又是沒(méi)有,根本就沒(méi)聽(tīng)過(guò)課,怎么說(shuō)自己聽(tīng)不懂呢?相應(yīng)的根本就沒(méi)學(xué)習(xí),又談何學(xué)的好? 學(xué)習(xí)C語(yǔ)言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學(xué)習(xí)知識(shí)的重要方法,就是說(shuō),學(xué)習(xí)后面的知識(shí),不要忘了回頭弄清遺留下的問(wèn)題和加深理解前面的知識(shí),這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語(yǔ)言中最典型的是關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)構(gòu)思,不管是那種教材,一開(kāi)始就強(qiáng)調(diào)這種方法,這時(shí)也許你不能充分體會(huì),但是學(xué)到函數(shù)時(shí),再回頭來(lái)仔細(xì)體會(huì),溫故知新,理解它就沒(méi)有那么難了。學(xué)習(xí)C語(yǔ)言就是要經(jīng)過(guò)幾個(gè)反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識(shí)。
那么,我們?nèi)绾螌W(xué)好《C程序設(shè)計(jì)》呢? 一.學(xué)好C語(yǔ)言的運(yùn)算符和運(yùn)算順序 這是學(xué)好《C程序設(shè)計(jì)》的基礎(chǔ),C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。在表達(dá)式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號(hào)運(yùn)算和三目運(yùn)算使表達(dá)式更為簡(jiǎn)單,但初學(xué)者往往會(huì)覺(jué)的這種表達(dá)式難讀,關(guān)鍵原因就是對(duì)運(yùn)算符和運(yùn)算順序理解不透不全。
當(dāng)多種不同運(yùn)算組成一個(gè)運(yùn)算表達(dá)式,即一個(gè)運(yùn)算式中出現(xiàn)多種運(yùn)算符時(shí),運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。在學(xué)習(xí)中,只要我們對(duì)此合理進(jìn)行分類,找出它們與我們?cè)跀?shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會(huì)牢記心中,將來(lái)用起來(lái)得心應(yīng)手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。
先要明確運(yùn)算符按優(yōu)先級(jí)不同分類,《C程序設(shè)計(jì)》運(yùn)算符可分為15種優(yōu)先級(jí),從高到低,優(yōu)先級(jí)為1 ~ 15,除第2、3級(jí)和第14級(jí)為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級(jí)運(yùn)算符的運(yùn)算順序。下面我們通過(guò)幾個(gè)例子來(lái)說(shuō)明: (1) 5*8/4%10 這個(gè)表達(dá)式中出現(xiàn)3種運(yùn)算符,是同級(jí)運(yùn)算符,運(yùn)算順序按從左至右結(jié)合,因此先計(jì)算5 *8=40,然后被4除,結(jié)果為10,最后是%(求余數(shù))運(yùn)算,所以表達(dá)式的最終結(jié)果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對(duì)于c=++a*b來(lái)說(shuō),按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運(yùn)算,所以a的值4參與運(yùn)算,C的值計(jì)算式為4*5=20而不是3*5=15了;而對(duì)于d=a++*b來(lái)說(shuō),由于a + +為后置運(yùn)算,所以a值為4參與運(yùn)算,使得d的值仍為20,而a參與運(yùn)算后其值加1,值為5。
這個(gè)例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號(hào)結(jié)合運(yùn)算,上式稱為逗號(hào)表達(dá)式,自左向右結(jié)合,最后一個(gè)表達(dá)式的結(jié)果值就是逗號(hào)表達(dá)式的結(jié)果,所以上面的逗號(hào)表達(dá)式結(jié)果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個(gè)三目運(yùn)算,它的功能是先做關(guān)系運(yùn)算a>b部分,若結(jié)果為真,則取問(wèn)號(hào)后a的值,否則取冒號(hào)后b的值,因此c的值應(yīng)該為6,這個(gè)運(yùn)算可以用來(lái)代替if…else…語(yǔ)句的簡(jiǎn)單應(yīng)用。
二.學(xué)好C語(yǔ)言的四種程序結(jié)構(gòu) (1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。 例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問(wèn)題就好象交換兩個(gè)杯子水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋?c = a; a = b; b = c; 執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。
順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語(yǔ)句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。
(2) 分支結(jié)構(gòu) 順序結(jié)構(gòu)的程序雖然能解決計(jì)算、輸出等問(wèn)題,但不能做判斷再選擇。對(duì)于要先做判斷再選擇的問(wèn)題就要使用分支結(jié)構(gòu)。
分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程。
(第六版) Bradley L. Jones, Peler Aitken 著. 信達(dá)工作室 譯. 人民郵電出版社 這本書對(duì)初學(xué)者很好, 如果有點(diǎn)基礎(chǔ)那就更好了. 建議選擇譚浩強(qiáng)譚老師的書,簡(jiǎn)單易學(xué),理論與實(shí)踐結(jié)合的很好,而且如果能認(rèn)真學(xué)的話,你會(huì)發(fā)現(xiàn)你的C語(yǔ)言基礎(chǔ)非常的實(shí)。
也不是說(shuō)其他的書不好,但是有些書只是為了讓讀者入門,沒(méi)有前途呀。 先讀譚浩強(qiáng)的《C語(yǔ)言程序設(shè)計(jì)》,這是公認(rèn)的中文入門級(jí)教材。
但是書中的代碼風(fēng)格不敢恭維??赐赀@本,推薦《21天學(xué)通C語(yǔ)言》,這本書比較好,個(gè)人感覺(jué)。
看完這兩本,你就可以進(jìn)階C++了。 C語(yǔ)言只要把基礎(chǔ)打好就好,你要是想精通的話,最好是精通C++,這樣比較有前途。
但不要操之過(guò)急。
,-1,0,1,2,。),分為有符號(hào)整型(sign int)、無(wú)符號(hào)整型(unsign int)(即數(shù)學(xué)意義上的正數(shù))、短整型( short int )以及長(zhǎng)整型(long int),而我們通常定義的int系統(tǒng)默認(rèn)為sign int;
而上述四種類型int的主要區(qū)別是數(shù)值范圍不同,其中sign int 的范圍是
-32767到32767;unsign int 的范圍是 0到65534;而 long int 范圍最大,short int 范圍最小,你可以去查書。也就是說(shuō)你所輸入的數(shù)據(jù)不能超過(guò)它的范圍。
(2)float(單精度)、double(雙精度)以及l(fā)ong double(長(zhǎng)雙精度),即數(shù)學(xué)意義上的實(shí)數(shù)(包括整數(shù)和所有小數(shù));
而上述三種主要區(qū)別也是數(shù)值范圍不同,long double 的范圍最大,其次是double ,最小是 float。
選取數(shù)據(jù)類型主要是看你所用數(shù)據(jù)是整數(shù)還是實(shí)數(shù),是正數(shù)還是負(fù)數(shù),以及所用數(shù)據(jù)的范圍而選用不同的數(shù)據(jù)類型。
方法一:(調(diào)用系統(tǒng)函數(shù)庫(kù))
#include "stdio.h"
#include "math.h" //調(diào)用系統(tǒng)函數(shù)庫(kù)
main()
{
float p,r,n;
printf("請(qǐng)輸入r和n的值\n");
scanf("%f,%f",&r,&n);
p=pow((1+r),n); //這就是所調(diào)用的函數(shù)
printf("%f\n",p);
}
方法二:(使用循環(huán)求值)
#include "stdio.h"
main()
{
float p,r,n,i;
printf("請(qǐng)輸入r和n的值\n");
scanf("%f,%f",&r,&n);
for(p=1,i=1;i<=n;i++) //使用循環(huán)求值
p=p*(1+r);
printf("%f\n",p);
}
另外,站長(zhǎng)團(tuán)上有產(chǎn)品團(tuán)購(gòu),便宜有保證
1,C語(yǔ)言的運(yùn)算符和優(yōu)先級(jí)
2,分支結(jié)構(gòu)程序設(shè)計(jì)
3,循環(huán)結(jié)構(gòu)程序
4,數(shù)組
5,函數(shù)
6,指針
7,字符類型和字符串
8,字符串與指針
9,指針數(shù)組、二級(jí)指針、指向一維數(shù)組的指針、指向函數(shù)的指針
10,返回指針的函數(shù)、數(shù)組名做函數(shù)參數(shù)
11,結(jié)構(gòu)體、共用體、枚舉、自定義類型、變量存儲(chǔ)類別、工程文件
12,文件、宏、主函數(shù)帶形參
13,鏈表、位運(yùn)算、考試環(huán)境
14,排序、強(qiáng)制類型轉(zhuǎn)換
我是在今學(xué)期才開(kāi)始看C和C ,現(xiàn)在C學(xué)的基礎(chǔ)還好,C 算是大概體系了解,不過(guò)對(duì)你這個(gè)問(wèn)題還是挺有感觸,就以一個(gè)初學(xué)者態(tài)度跟你講講我的感受吧!希望讓有興趣發(fā)展編程的你能快速進(jìn)入這個(gè)領(lǐng)域。
首先,我不茍同上面哪位仁兄的說(shuō)法,其實(shí),C和C 都可以說(shuō)是面向過(guò)程的語(yǔ)言,但C 更提供了面向?qū)ο蟮姆椒?,需要說(shuō)明一點(diǎn),C 是倡導(dǎo)面向?qū)ο缶幊谭椒ǖ?,?yīng)為這是適用現(xiàn)代技術(shù)發(fā)展的要求,簡(jiǎn)單理解,面向?qū)ο蟮木幊谭椒ň褪穷A(yù)先設(shè)置好一些常用的,實(shí)用的類庫(kù),當(dāng)編程時(shí)要用到時(shí),引用就可以了(通過(guò)對(duì)類進(jìn)行實(shí)例化),就好像是預(yù)先生產(chǎn)出一部洗衣機(jī),要洗衣服時(shí)候直接把衣服放進(jìn)去,打開(kāi)洗衣機(jī)的啟動(dòng)按鈕就可以了,在面向?qū)ο缶幊讨?,假如我們已?jīng)有了要引用的類庫(kù)(這些類也可以自己編),我們只要做“啟動(dòng)洗衣機(jī)按鈕”這個(gè)動(dòng)作就可以了,這就是面向?qū)ο缶幊?。面向過(guò)程的編程,簡(jiǎn)單理解,就是除了一些基本的類似輸入輸出,數(shù)學(xué)函數(shù)之外,基本都是要全部一條龍的自己設(shè)計(jì)。
C和C 都是MS公司出的,它還有的C#就是完全面向?qū)ο蟮母呒?jí)語(yǔ)言,功能非常強(qiáng)大,與。net平臺(tái)一起構(gòu)成了MS的戰(zhàn)略。
不好意思,還是說(shuō)回你感興趣的東西吧!其實(shí)學(xué)C和c 不用太多的數(shù)學(xué)知識(shí),它要求你無(wú)非兩樣?xùn)|西:1.邏輯性2.興趣,循環(huán)控制如“for,while語(yǔ)句”,指針,函數(shù)調(diào)用是學(xué)習(xí)C和C 的核心和重點(diǎn),也是精華所在,尤其是C語(yǔ)言。個(gè)人建議:假如你不是要做一個(gè)C程員的話,在c學(xué)到一定基礎(chǔ)很程度時(shí)候可以轉(zhuǎn)向JAVA或C#等面向?qū)ο蟾呒?jí)語(yǔ)言,他們聯(lián)系A(chǔ)SP,ASPX和JSP等web系統(tǒng)開(kāi)發(fā),快速開(kāi)發(fā)軟件和web系統(tǒng)方面實(shí)用性非常強(qiáng)。
也建議可以先從C學(xué)起,清華大學(xué)出版社的譚浩強(qiáng)的《C程序設(shè)計(jì)》是一本非常好的適合沒(méi)編程基礎(chǔ),介紹也很徹底詳細(xì)的名書(我就是靠那本書的,呵呵),學(xué)習(xí)C時(shí),不要冒進(jìn),認(rèn)認(rèn)真真打好基礎(chǔ),對(duì)你以后發(fā)展其他語(yǔ)言甚至領(lǐng)域有非常大的幫助。
總體上必須清楚的:- 1)程序結(jié)構(gòu)是三種: 順序結(jié)構(gòu) , 循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)), 選擇結(jié)構(gòu)(if 和 switch)- 2)讀程序都要從main()入口, 然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
- 3)計(jì)算機(jī)的數(shù)據(jù)在電腦中保存是以 二進(jìn)制的形式. 數(shù)據(jù)存放的位置就是他的地址.- 4)bit是位 是指為0 或者1。 byte 是指字節(jié), 一個(gè)字節(jié) = 八個(gè)位.- 5)一定要記住 二進(jìn)制 如何劃成 十進(jìn)制。
- 概念??嫉降模? 1、編譯預(yù)處理不是C語(yǔ)言的一部分,不再運(yùn)行時(shí)間。C語(yǔ)言編譯的程序稱為源程序,它以ASCII數(shù)值存放在文本文件中。
- 2、每個(gè)C語(yǔ)言程序中main函數(shù)是有且只有一個(gè)。- 3、在函數(shù)中不可以再定義函數(shù)。
- 4、算法的是一定要有輸出的,他可以沒(méi)有輸入。- 5、break可用于循環(huán)結(jié)構(gòu)和switch語(yǔ)句。
- 6、逗號(hào)運(yùn)算符的級(jí)別最低。- 第一章- 1)合法的用戶標(biāo)識(shí)符考查:- 合法的要求是由字母,數(shù)字,下劃線組成。
有其它元素就錯(cuò)了。- 并且第一個(gè)必須為字母或則是下劃線。
第一個(gè)為數(shù)字就錯(cuò)了。- 關(guān)鍵字不可以作為用戶標(biāo)識(shí)符號(hào)。
main define scanf printf 都不是關(guān)鍵字。迷惑你的地方If是可以做為用戶標(biāo)識(shí)符。
因?yàn)镮f中的第一個(gè)字母大寫了,所以不是關(guān)鍵字。- 2)實(shí)型數(shù)據(jù)的合法形式:- 2.333e-1 就是合法的,且數(shù)據(jù)是2.333*10-1。
- 考試口訣:e前e后必有數(shù),e后必為整數(shù)。.- 3)字符數(shù)據(jù)的合法形式::- '1' 是字符占一個(gè)字節(jié),"1"是字符串占兩個(gè)字節(jié)(含有一個(gè)結(jié)束符號(hào))。
- '0' 的ASCII數(shù)值表示為48,'a' 的ASCII數(shù)值是97,'A'的ASCII數(shù)值是65。- 4) 整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4個(gè)字節(jié):- 考試時(shí)候一般會(huì)說(shuō),在16位編譯系統(tǒng),或者是32位系統(tǒng)。
碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個(gè)字節(jié), 字符型是一個(gè)字節(jié),雙精度一般是4個(gè)字節(jié)就可以了。
- 5)轉(zhuǎn)義字符的考查:- 在程序中 int a = 0x6d,是把一個(gè)十六進(jìn)制的數(shù)給變量a 注意這里的0x必須存在。- 在程序中 int a = 06d, 是一個(gè)八進(jìn)制的形式。
- 在轉(zhuǎn)義字符中,'\x6d' 才是合法的,0不能寫,并且x是小寫。- '\141' 是合法的, 0是不能寫的。
- '\108'是非法的,因?yàn)椴豢梢猿霈F(xiàn)8。- 6)算術(shù)運(yùn)算符號(hào)的優(yōu)先級(jí)別:- 同級(jí)別的有的是從左到右,有的是從右到左。
- 7)強(qiáng)制類型轉(zhuǎn)換:- 一定是 (int)a 不是 int(a),注意類型上一定有括號(hào)的。- 注意(int)(a+b)和(int)a+b 的區(qū)別。
前是把a(bǔ)+b轉(zhuǎn)型,后是把a(bǔ)轉(zhuǎn)型再加b。- 8)表達(dá)式的考查:- 是表達(dá)式就一定有數(shù)值。
- 賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5,常量不可以賦值。- 自加、自減表達(dá)式:假設(shè)a=5,++a(是為6), a++(為5);- 運(yùn)行的機(jī)理:++a 是先把變量的數(shù)值加上1,然后把得到的數(shù)值放到變量a中,然后再用這- 個(gè)++a表達(dá)式的數(shù)值為6,而a++是先用該表達(dá)式的數(shù)值為5,然后再把a(bǔ)的數(shù)值加上1為6,- 再放到變量a中。
進(jìn)行了++a和a++后在下面的程序中再用到a的話都是變量a中的6了。- 考試口訣:++在前先加后用,++在后先用后加。
- 逗號(hào)表達(dá)式:優(yōu)先級(jí)別最低 ;表達(dá)式的數(shù)值逗號(hào)最右邊的那個(gè)表達(dá)式的數(shù)值。- (2,3,4)的表達(dá)式的數(shù)值就是4。
- 9)位運(yùn)算的考查:- 會(huì)有一到二題考試題目。- 總的處理方法:幾乎所有的位運(yùn)算的題目都要按這個(gè)流程來(lái)處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。
- 例1: char a = 6, b;- b = a<<2; 這種題目的計(jì)算是先要把a(bǔ)的十進(jìn)制6化成二進(jìn)制,再做位運(yùn)算。- 例2: 一定要記住,- 例3: 在沒(méi)有舍去數(shù)據(jù)的時(shí)候,<>右移一位表示除以2。
- 10)018的數(shù)值是非法的,八進(jìn)制是沒(méi)有8的,逢8進(jìn)1。 - 11)%符號(hào)兩邊要求是整數(shù)。
不是整數(shù)就錯(cuò)了。- 12) 三種取整丟小數(shù)的情況:- 1、int a =1.6;- 2、(int)a; - 3、- - 第二章- 1)printf函數(shù)的格式考查:- %d對(duì)應(yīng)整型;%c對(duì)應(yīng)字符;%f對(duì)應(yīng)單精度等等。
寬度的,左對(duì)齊等修飾。- %ld對(duì)應(yīng) long int;%lf 對(duì)應(yīng)double。
- 2)scanf函數(shù)的格式考察:- 注意該函數(shù)的第二個(gè)部分是&a 這樣的地址,不是a; - Scanf(“%d%d%*d%d”,&a,&b,&c); 跳過(guò)輸入的第三個(gè)數(shù)據(jù)。- 3)putchar ,getchar 函數(shù)的考查:- char a = getchar() 是沒(méi)有參數(shù)的,從鍵盤得到你輸入的一個(gè)字符給變量a。
- putchar('y')把字符y輸出到屏幕中。- 4)如何實(shí)現(xiàn)兩個(gè)變量x ,y中數(shù)值的互換(要求背下來(lái))- 不可以把 x=y ,y=x; 要用中間變量 t=x;x=y;y=t。
- 5)如何實(shí)現(xiàn)保留三位小數(shù),第四位四舍五入的程序,(要求背下來(lái))- 這個(gè)有推廣的意義,注意 x = (int)x 這樣是把小數(shù)部分去掉。- - 第三章- 特別要注意:c語(yǔ)言中是用非0表示邏輯真的,用0表示邏輯假的。
- 1)關(guān)系表達(dá)式:- 表達(dá)式的數(shù)值只能為1(表示為真),或0(表示假)- 當(dāng)關(guān)系的表達(dá)是為真的時(shí)候得到1。如 9>8這個(gè)是真的,所以表達(dá)式的數(shù)值就是1;- 2)邏輯表達(dá)式:- 只能為1(表示為真),或0(表示假)- a) 共有&& || ! 三種邏輯運(yùn)算符號(hào)。
- b) !>&&>|| 優(yōu)先的級(jí)別。- c) 注意短路現(xiàn)象。
考試比較喜歡考到。- d) 要表示 x 是比0大,。
double a,b;
char c;
scanf("%lf%c%lf",&a,&c,&b);
switch(c)
{case '+':printf("%g+%g=%g\n",a,b,a+b);break;
case '-':printf("%g-%g=%g\n",a,b,a-b);break;
case '*':printf("%g*%g=%g\n",a,b,a*b);break;
case '/':printf(b?"%g/%g=%g":"error\n",a,b,a/b);break;
default:printf("error\n");break;
}
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:2.673秒