去百度文庫,查看完整內(nèi)容>
內(nèi)容來自用戶:暗香飛度
C語言考試必備基礎(chǔ)知識(shí)點(diǎn)整理
【考點(diǎn)1】C程序
C語言程序結(jié)構(gòu)有三種:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu)(三個(gè)循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if和switch)
【考點(diǎn)2】main函數(shù)
每個(gè)C語言程序中main函數(shù)是有且只有一個(gè)。讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【考點(diǎn)3】存儲(chǔ)形式
計(jì)算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲(chǔ)單元是bit(位),位是由為0或者1構(gòu)成。byte是指字節(jié),一個(gè)字節(jié)=八個(gè)位。數(shù)據(jù)存放的位置就是它的地址。
【考點(diǎn)4】注釋
是對程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個(gè)“*/”結(jié)束,其間任何內(nèi)容都不會(huì)被計(jì)算機(jī)執(zhí)行,注釋不可以嵌套。
【考點(diǎn)5】書寫格式
每條語句的后面必須有一個(gè)分號(hào),分號(hào)是語句的一部分。一行內(nèi)可寫多條語句,一個(gè)語句可寫在多行上。
【考點(diǎn)6】標(biāo)識(shí)符
合法的用戶標(biāo)識(shí)符考查:
合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯(cuò)了。
并且第一個(gè)必須為字母或則是下劃線。第一個(gè)為數(shù)字就錯(cuò)了。
C語言標(biāo)識(shí)符分如下3類
(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預(yù)定義標(biāo)識(shí)符。預(yù)先定義并具有特定含義的標(biāo)識(shí)符。如 【考點(diǎn) 注意
c語言概要 第一章、概述 1、c語言的基本知識(shí) 1.1、c語言的執(zhí)行步驟 編輯-程序代碼的錄入,生成源程序*.c 編譯-語法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj (語法或邏輯錯(cuò)誤,從第一個(gè)開始改,變量定義,語句格式,表達(dá)式格式等) 鏈接-與其他目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe 執(zhí)行 1.2、main函數(shù)的基本知識(shí) main()函數(shù)的位置 c程序總是從main( )函數(shù)開始執(zhí)行 一個(gè)c程序可以包含一個(gè)主函數(shù),即main()函數(shù);也可以包含一個(gè)main()函數(shù)和若干其它函數(shù) 1.3、c程序的結(jié)構(gòu) 函數(shù)與主函數(shù) 程序由一個(gè)或多個(gè)函數(shù)組成 必須有一個(gè)且只能有一個(gè)主函數(shù)main() 程序執(zhí)行從main開始,在main中結(jié)束,其他函數(shù)通過嵌套調(diào)用得以執(zhí)行 程序語句 C程序由語句組成 用“;”作為語句終止符 注釋 // 或 /* */ 為注釋,不能嵌套 不產(chǎn)生編譯代碼 1.4、c 程序書寫的規(guī)則 習(xí)慣用小寫字母,大小寫敏感 不使用行號(hào),無程序行概念:通常一個(gè)語句占一行 可使用空行和空格 常用鋸齒形的書寫格式;同一層次結(jié)構(gòu)的語句上下對齊。
第二章、基本數(shù)據(jù)類型與運(yùn)算 2.1、c程序的數(shù)據(jù)類型 注意類型和變量含義的不同(類型是固定好的名字,變量是自己起的名字) 變量占用的存儲(chǔ)空間 數(shù)據(jù)類型 基本類型:整型、字符型、浮點(diǎn)型(單精度型,雙精度型) 構(gòu)造類型:數(shù)組類型、結(jié)構(gòu)體類型 指針類型 空類型 注意基本類型賦初值的方式 基本數(shù)據(jù)類型的表示形式 整形數(shù)據(jù) 十進(jìn)制:以非0數(shù)字開頭,如:123,-9,0 八進(jìn)制;以0數(shù)字開頭,如:0123,067 十六進(jìn)制:以0x開頭,如:0x123,0xff 實(shí)型數(shù)據(jù) 十進(jìn)制:必須帶小數(shù)點(diǎn),如:123.0,-9.0 指數(shù)形式;如:1.23E3,0.9e-2,5e2 字符型數(shù)據(jù) 普通字符:如:'a','2','H','#' 轉(zhuǎn)義字符:如:'\n','\167','\xlf,'\\' (實(shí)現(xiàn)幾列的對齊:指定寬度。如%100\ '\t'制表位) (字符串長度。
“abc\n\t\\” strlen 6; sizeof 7) 基本數(shù)據(jù)類型的存儲(chǔ)長度 整型 Int 字節(jié)數(shù) 2 位數(shù) 16 數(shù)的表示范圍 -32768—32767 Short 2 16 -32768—32767 Long 4 32 -2147483648—2147483647 實(shí)型 Float 4 32 3.4e-38---3.4e38 Double 8 64 1.7e-308---1.7e308 字符型 Char 1 8 -128----127 2.2、標(biāo)識(shí)符命名規(guī)則 C語言標(biāo)志符命名規(guī)則 標(biāo)識(shí)符有數(shù)字,字母,下劃線組成 標(biāo)識(shí)符的首字符必須為字母和下劃線 標(biāo)識(shí)符不能為c語言的保留字(關(guān)鍵字) 如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed 算術(shù)運(yùn)算符 + - * / % 關(guān)系運(yùn)算符 > = <= != 邏輯運(yùn)算符 ! && || 位運(yùn)算符 <> ~ | ^ & 賦值運(yùn)算符 = 及其擴(kuò)展賦值運(yùn)算符 條件運(yùn)算符 ? : 逗號(hào)運(yùn)算符 , 指針運(yùn)算符 * & 求字節(jié)數(shù)運(yùn)算符 sizeof 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型) 分量運(yùn)算符 . -> 下標(biāo)運(yùn)算符 [ ] 其他 如函數(shù)調(diào)用運(yùn)算符() 運(yùn)算符的優(yōu)先級(jí) 由高到低:單目運(yùn)算符,算數(shù)運(yùn)算符,關(guān)系運(yùn)算符,賦值運(yùn)算符 說明:單目運(yùn)算符:自增運(yùn)算符,自減運(yùn)算符,類型裝換運(yùn)算符。結(jié)合方向:自右至左 如:++--I 先—i.。
算術(shù)運(yùn)算 結(jié)合方向自左至右 2.3基本運(yùn)算和表達(dá)式 關(guān)系表達(dá)式和邏輯表達(dá)式 (a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b) A&&b.a為0.不執(zhí)行b A||b a為1.不執(zhí)行b 在 c 中邏輯運(yùn)算結(jié)果:1代表“真”,0代表“假”; 判斷一個(gè)表達(dá)式是否真:0代表“假”,非0代表“真” 條件表達(dá)式 逗號(hào)表達(dá)式 如:k=5,k++ 逗號(hào)值為5;k為6. 表達(dá)式1?表達(dá)式2 :表達(dá)式3 K=5>6 ? 1 : 0 2.4、混合運(yùn)算的數(shù)據(jù)類型轉(zhuǎn)換 2/3+0.5 雙精度浮點(diǎn)型 第三章、順序結(jié)構(gòu)程序設(shè)計(jì) 3.1、c語句的分類 簡單語句 表達(dá)式語句 表達(dá)式+分號(hào) 空語句 只有分號(hào)的語句 復(fù)合語句 用花括號(hào)將若干語句括起來 流程控制語句 選擇語句 if ,switch 循環(huán)語句 while, do while , for 轉(zhuǎn)移語句 break ,continue ,return goto 3.2、格式輸入函數(shù)scanf 一般形式:scanf(“格式控制字符串“,地址列表); 使用scanf函數(shù)時(shí),需要注意: 格式字符的個(gè)數(shù)必須與輸入項(xiàng)的個(gè)數(shù)相同,數(shù)據(jù)類型必須一一對應(yīng),非格式字符串(說明性的)要原封不動(dòng)的輸入。 輸入實(shí)行數(shù)據(jù)時(shí),可以不帶小數(shù)點(diǎn),即按整型數(shù)據(jù)輸入 數(shù)值型數(shù)據(jù)與字符或字符串混合輸入時(shí),需要注意輸入方式。
3.3、格式輸出函數(shù)printf Printf(“格式控制字符串“,輸出列表); 指定輸出格式,由格式字符串和非格式字符串兩種組成,非格式字符串照原樣輸出。 %[標(biāo)志][輸出最小寬度][.精度][長度]類型 標(biāo)志:- 左對齊;+ 右對齊; %f, %d, %c, %s 3.4、其他輸入輸出函數(shù) Putchar getchar puts gets 第四章、選擇結(jié)構(gòu)程序設(shè)計(jì) If選擇結(jié)構(gòu) 單分支 If(表達(dá)式) 語句 雙分支 If(表達(dá)式) 語句1 Else 語句2 多分支 If (表達(dá)式1) 語句1 Else if(表達(dá)式2) 語句2 。
Else if(表達(dá)式m) 語句m Else 語句n Switch(表達(dá)式) { Case 常量表達(dá)式1:語句1;break; Case 常量表達(dá)式2:語句2;break; 。
Case 常量表達(dá)式m:語句m;break; Default:語句n;break; } 注意break的使用 第五章、循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 循環(huán)三要素 初始條件 ;終止條件 ;在初始條件和終止條件間反復(fù)做某件事情(循環(huán)體) While(表達(dá)式) 語句 Do 語句 While(表達(dá)式)。
(這是別人回答我的問題,感覺很有幫助你可以了解了解)如何學(xué)好c語言 教了多年《C程序設(shè)計(jì)》課程,大多學(xué)生覺的這門課程難學(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)用和一些簡單的算法。
在學(xué)習(xí)時(shí),同學(xué)們應(yīng)該把主要精力放在這些部分,通過實(shí)踐(練習(xí)和上機(jī)調(diào)試等熟練掌握。當(dāng)然,在初學(xué)C語言時(shí),可能會(huì)遇到有些問題理解不透,或者表達(dá)方式與以往數(shù)學(xué)學(xué)習(xí)中不同(如運(yùn)算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進(jìn)行學(xué)習(xí),待學(xué)完后面的章節(jié)知識(shí),前面的問題也就迎刃而解了,這一方面我感覺是我們同學(xué)最欠缺,大多學(xué)不好的就是因?yàn)橐婚_始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問題,回答是聽不懂、不想聽、放棄這樣三個(gè)過程,我反問,這節(jié)課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎么說自己聽不懂呢?相應(yīng)的根本就沒學(xué)習(xí),又談何學(xué)的好? 學(xué)習(xí)C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學(xué)習(xí)知識(shí)的重要方法,就是說,學(xué)習(xí)后面的知識(shí),不要忘了回頭弄清遺留下的問題和加深理解前面的知識(shí),這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語言中最典型的是關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)構(gòu)思,不管是那種教材,一開始就強(qiáng)調(diào)這種方法,這時(shí)也許你不能充分體會(huì),但是學(xué)到函數(shù)時(shí),再回頭來仔細(xì)體會(huì),溫故知新,理解它就沒有那么難了。學(xué)習(xí)C語言就是要經(jīng)過幾個(gè)反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識(shí)。
那么,我們?nèi)绾螌W(xué)好《C程序設(shè)計(jì)》呢? 一.學(xué)好C語言的運(yùn)算符和運(yùn)算順序 這是學(xué)好《C程序設(shè)計(jì)》的基礎(chǔ),C語言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語言。在表達(dá)式方面較其它程序語言更為簡潔,如自加、自減、逗號(hào)運(yùn)算和三目運(yùn)算使表達(dá)式更為簡單,但初學(xué)者往往會(huì)覺的這種表達(dá)式難讀,關(guān)鍵原因就是對運(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í)中,只要我們對此合理進(jìn)行分類,找出它們與我們在數(shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會(huì)牢記心中,將來用起來得心應(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)算順序。下面我們通過幾個(gè)例子來說明: (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; 對于c=++a*b來說,按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運(yùn)算,所以a的值4參與運(yùn)算,C的值計(jì)算式為4*5=20而不是3*5=15了;而對于d=a++*b來說,由于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é)果為真,則取問號(hào)后a的值,否則取冒號(hào)后b的值,因此c的值應(yīng)該為6,這個(gè)運(yùn)算可以用來代替if…else…語句的簡單應(yīng)用。
二.學(xué)好C語言的四種程序結(jié)構(gòu) (1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。 例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問題就好象交換兩個(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è)簡單的完整程序,常見的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu),例如計(jì)算圓的面積,其程序的語句順序就是輸入圓的半徑r,計(jì)算s = 3.14159*r*r,輸出圓的面積s。不過大多數(shù)情況下順序結(jié)構(gòu)都是作為程序的一部分,與其它結(jié)構(gòu)一起構(gòu)成一個(gè)復(fù)雜的程序,例如分支結(jié)構(gòu)中的復(fù)合語句、循環(huán)結(jié)構(gòu)中的循環(huán)體等。
(2) 分支結(jié)構(gòu) 順序結(jié)構(gòu)的程序雖然能解決計(jì)算、輸出等問題,但不能做判斷再選擇。對于要先做判斷再選擇的問題就要使用分支結(jié)構(gòu)。
分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇。
很多人對學(xué)習(xí)C語言感到無從下手,經(jīng)常問我同一個(gè)問題:究竟怎樣學(xué)習(xí)C語言?我是一個(gè)教師,已經(jīng)開發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語言就是C語言。
經(jīng)過這些年的開發(fā),我深深的體會(huì)到C語言對于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優(yōu)秀高效的程序,這簡直就是天方夜譚。為什么C語言如此重要呢? 第一:C語言語法結(jié)構(gòu)很簡潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。
第二:C語言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個(gè)不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個(gè)里外的,如果你不懂C語言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說你去寫它們的內(nèi)核程序了。 第三:很多新型的語言都是衍生自C語言,C++,J ava,C#,J#,perl。
哪個(gè)不是呢?掌握了C語言,可以說你就掌握了很多門語言,經(jīng)過簡單的學(xué)習(xí),你就可以用這些新型的語言去開發(fā)了,這個(gè)再一次驗(yàn)證了C語言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語言,你想加入it行業(yè),那么就一定要掌握好C語言。
那么究竟怎樣學(xué)習(xí)C語言呢? 1:工欲善其事,必先利其器 這里介紹幾個(gè)學(xué)習(xí)C語言必備的東東: 一個(gè)開發(fā)環(huán)境,例如turbo C 2.0,這個(gè)曾經(jīng)占據(jù)了DOS時(shí)代開發(fā)程序的大半個(gè)江山。但是現(xiàn)在windows時(shí)代,用turbo C有感覺不方面,編輯程序起來很吃力,并且拖放,更沒有函數(shù)變量自動(dòng)感應(yīng)功能,查詢參考資料也不方便。
建議使用Visual C++,這個(gè)東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。 一本學(xué)習(xí)教程,現(xiàn)在C語言教材多如牛毛,但推薦大家使用《C語言程序設(shè)計(jì)》譚浩強(qiáng)主編 第二版 清華大學(xué)出版社,此書編寫的很適合初學(xué)者,并且內(nèi)容也很精到。
除此以外,現(xiàn)在有很多輔助學(xué)習(xí)的軟件,畢竟現(xiàn)在是Window時(shí)代了,學(xué)習(xí)軟件多如牛毛,不象我們當(dāng)初學(xué)習(xí),只有讀書做題這么老套。我向大家推薦一個(gè)“集成學(xué)習(xí)環(huán)境(C語言)”,里邊的知識(shí)點(diǎn)總結(jié)和例程講解都非常好,還有題庫測試環(huán)境,據(jù)說有好幾千題,甚至還有一個(gè)windows下的trubo C,初學(xué)者甚至不用裝其它的編譯器,就可以練習(xí)編程了,非常適合初學(xué)者。
還有一個(gè)“C語言學(xué)習(xí)系統(tǒng)”軟件,不過感覺只是一個(gè)題庫系統(tǒng),如果你覺得題做的不夠,不妨也可以試試。 2:葵花寶典 學(xué)習(xí)計(jì)算機(jī)語言最好的方法是什么?答曰:讀程序。
沒錯(cuò),讀程序是學(xué)習(xí)C語言入門最快,也是最好的方法。如同我,現(xiàn)在學(xué)習(xí)新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學(xué)習(xí)它們的例程。
當(dāng)然,對于沒有學(xué)過任何計(jì)算機(jī)語言的初學(xué)者,最好還是先閱讀教程,學(xué)習(xí)完每一章,都要認(rèn)真體會(huì)這一章的所有概念,然后不放過這一章中提到的所有例程,然后仔細(xì)研讀程序,直到每一行都理解了,然后找?guī)讉€(gè)編程題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續(xù)研究例程,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到你手到擒來為止,祝賀你,你快入門了。 3:登峰造極 寫程序的最高境界其實(shí)就是掌握各種解決問題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問題的方法(算法)。
是不是寫出底層程序就是程序設(shè)計(jì)高手呢?非也,寫底層程序,無非是掌握了硬件的結(jié)構(gòu),況且硬件和硬件還不一樣,要給一個(gè)芯片寫驅(qū)動(dòng)程序,無非就是掌握這塊芯片的各種寄存器及其組合,然后寫值讀值,僅此而已。這不過是熟悉一些io函數(shù)罷了。
…… 以上內(nèi)容來源于: 。
去百度文庫,查看完整內(nèi)容>
內(nèi)容來自用戶:zhujie_0811
c語言入門經(jīng)典必背18個(gè)程序.txtc語言入門經(jīng)典必背18個(gè)程序
1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/#include"stdio.h"main(){inti,j,result;for(i=1;i<10;i++){for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3位*/printf("\n");/*每一行后換行*/
2、/*古典問題:有一對兔子,從出生后第3個(gè)月起每個(gè)月都生一對兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對兔子,假如兔子都不死,問每個(gè)月的兔子總數(shù)為多少?兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21。.*/main(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");/*控制輸出,每行四個(gè)*/f1=f1+f2;/*前兩個(gè)月加起來賦值給第三個(gè)月*/f2=f1+f2;/*前兩個(gè)月加起來賦值給第三個(gè)月*/
3、/*判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)及素?cái)?shù)的個(gè)數(shù)。程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。*/#include"math.h"main(){intm,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;if(leap)/*內(nèi)循環(huán)結(jié)束后,leap依然為1,則m是素?cái)?shù)*/{printf("%-4d",m);h++;if(h%10==0)printf("\n");leap=1;printf("\nThe
編程語言其實(shí)是一個(gè)很初級(jí)的工具,但是你又必須熟練的掌握它,學(xué)懂一門編程語言就好像學(xué)會(huì)了寫字,但是會(huì)寫字的人不見得會(huì)寫文章,而會(huì)寫文章又不見的寫得好。
可是如果你不會(huì)寫字,那就一定寫不出文章來。 首先,在學(xué)習(xí)C語言之前,應(yīng)該學(xué)好計(jì)算機(jī)基礎(chǔ)。
里面的很多概念對于C程序員都是非常重要的。如果你在著手學(xué)習(xí)C之前,或者已經(jīng)開始學(xué)習(xí)C,但是碰到了很多問題,應(yīng)該再把計(jì)算機(jī)基礎(chǔ)的書拿來好好看看。
如果你有足夠的耐心,十足的毅力,應(yīng)該再學(xué)習(xí)C語言之前學(xué)學(xué)匯編,這會(huì)讓你對許多比較細(xì)膩的概念有清醒的認(rèn)識(shí),如果你不是那么有耐心(恕我直言,大部分人可能沒有)。那么可以在看完一遍C語言的教材后再看,但是一定要看一遍,相信我一定會(huì)受益匪淺。
看到有些人發(fā)問的帖子,很明顯的沒有仔細(xì)的思考過問題,或者沒有認(rèn)真地查閱過書籍,因?yàn)槠渲械恼Z法和邏輯錯(cuò)誤實(shí)在是不能理解。想來如果你的語文作業(yè)上面滿篇都是錯(cuò)字,老師一定不會(huì)放過你。
為什么不先打好基礎(chǔ)呢?有些人抱怨說因?yàn)榻滩牟缓?,老師水平不行等等。但是我本人就是在TC2下學(xué)習(xí)C語言的,那時(shí)候除了譚浩強(qiáng)的書,也幾乎找不到什么別的書。
我不打算就譚浩強(qiáng)的書發(fā)表什么意見,那也實(shí)在稱不上是一本好書,但是如果這本是能學(xué)好,全部看好,都記住,也應(yīng)該有相當(dāng)?shù)乃搅?。建議不管看什么書,先認(rèn)真地看懂,不要貪速度,應(yīng)該力求深入的理解。
如果你能夠比較熟練的解決一本教材上的所有習(xí)題,那么就應(yīng)該轉(zhuǎn)入對算法的學(xué)習(xí),盡管此時(shí)你的C語言還稱不上精通,有許多細(xì)節(jié)問題還不了解,許多問題還沒有碰到,但是這些問題會(huì)在后面的工作和學(xué)習(xí)中得到解決的。 新手學(xué)習(xí)C語言,有很多誤區(qū),以一個(gè)學(xué)過C語言的人,給新手一些建議。
拋磚引玉,請前輩指出問題,發(fā)表意見,新手請注意后面的回復(fù)。 第一:一些概念。
C語言是一門程序設(shè)計(jì)語言,有一些標(biāo)準(zhǔn),比較重要的是ANSI C(好像是C89)和C99。 數(shù)據(jù)結(jié)構(gòu)包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。
邏輯結(jié)構(gòu)是數(shù)據(jù)元素集合和定義在集合上的關(guān)系。物理結(jié)構(gòu)是邏輯結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)。
LCC、VC、TC、GCC都是C語言編譯器,一般包括集成開發(fā)環(huán)境,編譯器和鏈接器及輔助工具 我們書寫的是C源程序,源程序通過編譯器編譯為中間文件,中間文件經(jīng)鏈接器鏈接生成可執(zhí)行文件。不同操作系統(tǒng)可執(zhí)行文件不同。
中間文件也有幾個(gè)標(biāo)準(zhǔn),微軟使用的和Linux下通用的有差異。 第二:學(xué)習(xí)什么。
個(gè)人認(rèn)為程序設(shè)計(jì)學(xué)習(xí)的重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)上,但是這種學(xué)習(xí)要有一個(gè)平臺(tái),比如C語言。 學(xué)習(xí)C語言首先要掌握基本語法,常量、變量、類型、及順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的意義及用法。
進(jìn)一步學(xué)習(xí)構(gòu)造類型如指針、結(jié)構(gòu)、函數(shù)的意義和用法。 C語言提供一些標(biāo)準(zhǔn)函數(shù)以減輕程序設(shè)計(jì)工作量,這些函數(shù)我們自己也可以實(shí)現(xiàn)。
即使不依靠函數(shù)庫,只有編譯器,理論上就足夠了。事實(shí)上,提供的標(biāo)準(zhǔn)函數(shù)效率都很高,使用很頻繁,沒有自己實(shí)現(xiàn)的必要,所以掌握常用函數(shù)是非常必要的,但是要注意函數(shù)的適用范圍。
繼續(xù)學(xué)習(xí)因人而異,應(yīng)該可以獨(dú)立選擇了。 第三:如何學(xué)習(xí)。
強(qiáng)調(diào)多實(shí)踐,C語言的學(xué)習(xí)要經(jīng)常上機(jī),多寫程序才能逐步提高。 推薦書籍:C Programming Languge。
有中譯本,但最好看英文版。 通讀,并將所有習(xí)題獨(dú)立思考,給出解答,尤其是編程實(shí)踐題,最好逐一上機(jī)完成。
C語言其實(shí)并不難,如果認(rèn)真掌握了C Programming Language,C語言的基礎(chǔ)就可以了,繼續(xù)學(xué)習(xí)就更加容易。建議不要找捷徑,通過考試除外,真正的水平提高是建立在編程實(shí)踐積累基礎(chǔ)上的,必須一個(gè)一個(gè)程序的完成才能提高。
談及C語言,我想凡是學(xué)過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂?!睔g喜的是,C語言功能非常強(qiáng)大、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣壯地對他人說“我是電腦高手!”,而且以后若是再自學(xué)其他語言就顯得輕而易舉了。
憂慮的是,C語言猶如“少林武功” 一般博大精深,太難學(xué)了。其實(shí)就筆者認(rèn)為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學(xué)C語言是一件非常容易且又其樂無窮的事。
今天本人就與大家一起談?wù)勅绾螌W(xué)習(xí)C語言或者說學(xué)習(xí)C語言應(yīng)從哪幾方面著手。 了解一些基本知識(shí) 一.C語言的背景 就個(gè)人感觸,無論學(xué)習(xí)哪門語言首先應(yīng)該了解一下自己所學(xué)語言的背景,也可以說它的發(fā)展史。
C語言屬于高級(jí)程序語言的一種,它的前身是“ALGOL”。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。
C語言問世時(shí)是帶有很大的局限性,因?yàn)樗荒苡糜赨NIX系統(tǒng)上。然而隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)工業(yè)的發(fā)展,C語言逐漸脫離UNIX。
1987年美國標(biāo)準(zhǔn)化協(xié)會(huì)制定了C語言的國際標(biāo)準(zhǔn),簡稱 “ANSI C”,從此以后它便成為一種廣泛使用的程序語言。C語言的優(yōu)點(diǎn)很多,主要的有如下四點(diǎn): 1.兼?zhèn)涓呒?jí)語言與低級(jí)語言的優(yōu)點(diǎn),屬于一種中間語言。
2.它是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,非常適合結(jié)構(gòu)化程序設(shè)計(jì)。 3.有較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用。
4.直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松,簡單。 。
掌握C語言的基本語法和規(guī)定。
掌握程序設(shè)計(jì)基本算法和思路,開拓思路, 提高上機(jī)操作能力,掌握上機(jī)調(diào)試程序的方法 培養(yǎng)自學(xué)能力,強(qiáng)調(diào)自主學(xué)習(xí)。 養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣。
通過總結(jié)多年的教學(xué)經(jīng)驗(yàn),總結(jié)學(xué)生在學(xué)習(xí)過程中具有規(guī)律性的特點(diǎn),可以發(fā)現(xiàn),在本課程學(xué)習(xí)過程中學(xué)生經(jīng)常出現(xiàn)下面這些問題: * 注重理論學(xué)習(xí),忽視上機(jī)編程實(shí)踐,造成"只能用筆在紙上編程"的奇怪現(xiàn)象。特別是一些女同學(xué),一到機(jī)器前面就手忙腳亂,如果程序再出現(xiàn)錯(cuò)誤,就更不知道該如何查找錯(cuò)誤,如何排除錯(cuò)誤了。
*入門時(shí)自以為難度大,產(chǎn)生畏難情緒,總是怕,最后因?yàn)榕聦W(xué)不好而導(dǎo)致沒有學(xué)好。 *前期沒有抓緊,希望通過突擊完成課程學(xué)習(xí)。
本課程要靠平時(shí)的積累,幾乎不能靠臨時(shí)突擊,由于前面基礎(chǔ)補(bǔ)扎實(shí),到了后面已經(jīng)無法彌補(bǔ)。 *太注重學(xué)習(xí)語句的語法規(guī)定,忽視了對編程的思路和方法的訓(xùn)練。
有些同學(xué)再學(xué)習(xí)結(jié)束的感覺就是:對每一個(gè)語句的語法和每一條規(guī)定都明白,就是面對實(shí)際問題的時(shí)候不知道該如何思考,該如何編程。 *急于求成,總想編寫綜合性的程序,忽視基本概念,忽視基本功的訓(xùn)練和練習(xí)。
在編寫程序中發(fā)現(xiàn)問題,一追根源,全是概念或基礎(chǔ)問題。 1.不要看到別人的回復(fù)第一句話就說:給個(gè)代碼吧!你應(yīng)該想想為什么。
當(dāng)你自己想 出來再參考別人的提示,你就知道自己和別人思路的差異。 2.初學(xué)者請不要看太多太多的書那會(huì)誤人子弟的,先找本系統(tǒng)的學(xué),很多人用了很久 都是只對部分功能熟悉而已,不系統(tǒng)還是不夠的。
3.看幫助,不要因?yàn)楹茈y而自己是初學(xué)者所以就不看;幫助永遠(yuǎn)是最好的參考手冊, 雖然幫助的文字有時(shí)候很難看懂,總覺得不夠直觀。 4.不要被對象、屬性、方法等詞匯所迷惑;最根本的是先了解最基礎(chǔ)知識(shí)。
5.不要放過任何一個(gè)看上去很簡單的小問題--他們往往并不那么簡單,或者可以引伸 出很多知識(shí)點(diǎn);不會(huì)舉一反三你就永遠(yuǎn)學(xué)不會(huì)。 6.知道一點(diǎn)東西,并不能說明你會(huì)寫腳本,腳本是需要經(jīng)驗(yàn)積累的。
7.學(xué)腳本并不難,JSP、ASP、PHP等等也不過如此--難的是長期堅(jiān)持實(shí)踐和不遺余力的博覽 群書; 8.看再多的書是學(xué)不全腳本的,要多實(shí)踐 9.把時(shí)髦的技術(shù)掛在嘴邊,還不如把過時(shí)的技術(shù)記在心里; 10.學(xué)習(xí)腳本最好的方法之一就是多練習(xí); 11.在任何時(shí)刻都不要認(rèn)為自己手中的書已經(jīng)足夠了; 12.看得懂的書,請仔細(xì)看;看不懂的書,請硬著頭皮看; 13.別指望看第一遍書就能記住和掌握什么--請看第二遍、第三遍; 14.請把書上的例子親手到電腦上實(shí)踐,即使配套光盤中有源文件; 15.把在書中看到的有意義的例子擴(kuò)充;并將其切實(shí)的運(yùn)用到自己的工作中; 16.不要漏掉書中任何一個(gè)練習(xí)--請全部做完并記錄下思路; 17.當(dāng)你用腳本到一半?yún)s發(fā)現(xiàn)自己用的方法很拙劣時(shí),請不要馬上停手;請盡快將余 下的部分粗略的完成以保證這個(gè)代碼的完整性,然后分析自己的錯(cuò)誤并重新編寫和工 作。 18.別心急,寫腳本確實(shí)不容易;水平是在不斷的實(shí)踐中完善和發(fā)展的; 19.每學(xué)到一個(gè)腳本難點(diǎn)的時(shí)候,嘗試著對別人講解這個(gè)知識(shí)點(diǎn)并讓他理解----你能 講清楚才說明你真的理解了; 20.記錄下在和別人交流時(shí)發(fā)現(xiàn)的自己忽視或不理解的知識(shí)點(diǎn); 21.保存好你做過的所有的源文件----那是你最好的積累之一; 22.對于網(wǎng)絡(luò),還是希望大家能多利用一下,很多問題不是非要到論壇來問的,首先 你要學(xué)會(huì)自己找答案,比如google、百度都是很好的搜索引擎,你只要輸入關(guān)鍵字就 能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時(shí)一定也很懶! 23.到一個(gè)論壇,你學(xué)會(huì)去看以前的帖子,不要什么都不看就發(fā)帖子問,也許你的問 題早就有人問過了,你再問,別人已經(jīng)不想再重復(fù)了,做為初學(xué)者,誰也不希望自己 的帖子沒人回的。
24.雖然不是打擊初學(xué)者,但是這句話還是要說:論壇論壇,就是大家討論的地方, 如果你總期望有高手總無償指點(diǎn)你,除非他是你親戚!!討論者,起碼是水平相當(dāng)?shù)?才有討論的說法,如果水平真差距太遠(yuǎn)了,連基本操作都需要?jiǎng)e人給解答,誰還跟你 討論呢。能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時(shí)一定也很懶! 25.到一個(gè)論壇,你學(xué)會(huì)去看以前的帖子,不要什么都不看就發(fā)帖子問,也許你的問 題早就有人問過了,你再問,別人已經(jīng)不想再重復(fù)了,做為初學(xué)者,誰也不希望自己 的帖子沒人回的。
26.雖然不是打擊初學(xué)者,但是這句話還是要說:論壇論壇,就是大家討論的地方, 如果你總期望有高手總無償指點(diǎn)你,除非他是你親戚?。∮懻撜撸鸫a是水平相當(dāng)?shù)?才有討論的說法,如果水平真差距太遠(yuǎn)了,連基本操作都需要?jiǎng)e人給解答,誰還跟你 討論呢。 別做浮躁的人 浮躁的人容易問:我到底該學(xué)什么;----別問,學(xué)就對了; 浮躁的人容易問:JS有錢途嗎;----建議你去搶銀行; 浮躁的人容易說:我要中文版!我英文不行!----不行?學(xué)呀! 浮躁的人分兩種:只觀望而不學(xué)的人;只學(xué)而不堅(jiān)持的人; 浮躁的人永遠(yuǎn)不是一個(gè)。
關(guān)鍵在sizeof這個(gè)函數(shù)
sizeof on array function parameter will return size of 'char *' instead of 'char []' [-Wsizeof-array-argument]
這個(gè)涉及到函數(shù)形參和指針不知道你有沒有學(xué)到,通俗講就是因?yàn)檫@里的sizeof(t)求的是形參 字符型指針的內(nèi)存長度??梢愿鶕?jù)下面的結(jié)果分析下:
#include
using namespace std;
int start(char s[],char t[])
{
int i=0,j=0,temp=0;
char *a="avd";
cout
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:3.105秒