C語言學習教程_第1頁
C語言學習教程_第2頁
C語言學習教程_第3頁
C語言學習教程_第4頁
C語言學習教程_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、C語言學習教程.txt43風帆,不掛在桅桿上,是一塊無用的布;桅桿,不掛上風帆,是一根平常的柱;理想,不付諸行動是虛無縹緲的霧;行動,而沒有理想,是徒走沒有盡頭的路。44成功的門往往虛掩著,只要你勇敢去推,它就會豁然洞開。C語言學習教程 多數(shù)情況下,現(xiàn)在的編程高手都是從學習C 語言入門的,在學校里,計算機相關專業(yè)中最基礎的課程也包括C 語言,因此,掌握好這門課程對每一位立志成為優(yōu)秀程序員的初學者來說是大有裨益的!另外,對想通過參加全國計算機等級考試獲得證書的同學來說,學好C 語言也非常關鍵。 下面,是我整理出來的若干文章,總體上按照三個大的方向進行分類,希望能好好閱讀,相信對你是很有幫助的!一

2、、基礎性問題(點擊下面文字鏈接即可打開頁面) 1、C語言學習:如何由dos向windows轉(zhuǎn)變 2、二級C語言實例解答 3、等級考試:C 程序設計 4、備戰(zhàn)C語言上機考試 5、C語言程序設計技巧 6、C語言初級講座 7、寫好C程序的10條秘籍 8、強大的語言C入門之一 9、強大的語言C入門之二 二、實例開發(fā)(點擊下面文字鏈接即可打開頁面) 1、用C語言解決鬼谷算題 2、用C語言實現(xiàn)的鬧鐘程序 3、C 程序開發(fā)經(jīng)典實例之一 4、C 程序開發(fā)經(jīng)典實例之二 5、C 程序開發(fā)經(jīng)典實例之三 6、C 程序開發(fā)經(jīng)典實例之四 7、C 程序開發(fā)經(jīng)典實例之五 8、C 程序開發(fā)經(jīng)典實例之六 9、C 程序開發(fā)經(jīng)典實例

3、之七 10、C 程序開發(fā)經(jīng)典實例之八 三、綜合提升(點擊下面文字鏈接即可打開頁面) 1、C語言:黑客學員必修課之一 2、C語言:黑客學員必修課之二 3、C 程序設計基礎之一 4、C 程序設計基礎之二 5、C 程序設計基礎之三 6、C 程序設計基礎之四 7、C 程序設計基礎之五 8、C 程序設計基礎之六 9、C語言高效編程的的四大絕招(1) 10、C語言高效編程的的四大絕招(2)C語言學習:如何由dos向windows轉(zhuǎn)變很多人學C語言很長一段時間了,還不知C究竟能干什么,以為學習c語言沒什么用,純粹是為了應付學校的考試.更有人說學C語言?別做如此愚蠢的行為了!趕快學C+吧!這種看法是不對的,不

4、應該把c跟c+之間劃起絕對的界限,過分看重c+而把c貶得一無是處,這是很片面的.C+功能雖然強大,但它畢竟是c的超集,在c+里有哪一處找不到c的影子呢?沒有c的支持,c+只能是無本之木。 一般情況下,c+編程方式編寫的程序源代碼量小,但編譯后的代碼量較大,運行的速度略低,不過開發(fā)時的工作量和工作難度較小;而c編程方式編寫的源代碼量較大,但可執(zhí)行的效率高.如果一些對速度要求高,尤其是對硬件操作較多的程序,大多數(shù)還是用c編程方式開發(fā)的(用C又比用匯編簡單,易于實現(xiàn)).另外,學Win32 C程序設計還有助于更深入地了解Windows 的內(nèi)幕和Win32 API。任何的編程語言都是一種工具,學習語言的

5、目是要使用它來編寫出實際需要的軟件來,而軟件作為一個用戶程序,運行時要依賴操作系統(tǒng),大多數(shù)人使用什么操作系統(tǒng),我們就要編寫出基于哪一種平臺上的程序來.這樣,軟件才會有更大的市場?,F(xiàn)在市面上出現(xiàn)的有關c語言方面的書大多是教授DOS下的c,上機實習也是在Turbo C 2.0(簡稱Tc)環(huán)境下轉(zhuǎn)來轉(zhuǎn)去.編程環(huán)境的單調(diào)總使人感到不爽.這也沒辦法,dos 下的c是最簡單的,初學者當然要從最簡單的入門啦.連比較有名的計算機專家譚浩強編的書也都是贊成從dos下的c學起的.再說,一個剛剛?cè)腴T的人想在windows 這樣的多進程,多線程的操作系統(tǒng)下用c編程,那似乎又不太現(xiàn)實.(那要了解在windows下,一個

6、win32程序大體上是怎樣執(zhí)行的.要對系統(tǒng)有比較多的了解才行,一個初學者暫時還不具備那么多的知識)但我們的腳步又不能夠只停留在dos里,應該積極地從dos向windows轉(zhuǎn)變.在dos的時代,我們可以對dos下的編程迷戀,但現(xiàn)在都是windows橫行霸道的時代了,我們就應用c語言編寫windows平臺上的程序,因時而變,學以致用.是時代使然!如果現(xiàn)在還是dos雄霸天下的話,那我就不會寫這篇狗屁不通的文章來遺笑大方了,不被臭雞蛋扔死才怪呢! 變法是大勢所趨的了,關鍵是怎么變,不單單是學習c語言的人如此,就連學c+的人都這樣,筆者曾經(jīng)在QQ上碰到一個學了c+將近一年的小伙,居然問我,他想編一個wi

7、ndows窗口,該怎么下手,如果學一門語言用了一年時間,只是學了一點語法知識,卻沒有編過一道程序,那實在是一種悲哀.下面我談談從dos向windows轉(zhuǎn)變的一些個人見解,(這純屬個人觀點,僅供參考,如果您已是高手,完全不必要在此浪費時間):一.拓寬視野,改變偏見別老以為c只是dos特有的東西,一提到c語言就認為c只能在dos下編程.其實,這是被tc束縛了意識,我們在學校里平時就只在dos的tc里面用c編程,很少用到圖形模式,整天面對?quot;烏黑黑的屏幕,也難怪有些人一看到一個用c語言描繪出來的像windows的窗口便以為是c+的手筆.其實,作為一種語言,可以在任何一種平臺上編程,只是接口不

8、同而已,只要找到適合該平臺的編程工具即可,c語言當然也能在windows下大放異彩.眼界放寬點,改變偏見,必有精彩發(fā)現(xiàn). 二.選擇優(yōu)秀的編程工具.“有好的工具,做起事來就事半功倍”.在dos下我們常用tc或bc(borland c).在windows下可以用c+builder 或者visual c+ 來編程,最好用visual c+ 畢竟是微軟的東西嘛!微軟一天不垮臺,編程者的飯碗就不會掉的啦 _ .再說,windows操作系統(tǒng)是微軟出的,其內(nèi)幕微軟是最清楚不過的了,在應用程序接口上,相信vc也是做得最好的.不過用vc+6來編c程序會恨煩的,大家要有心理準備.同時可以選擇多種編程工具,例如匯編

9、,可以加強對windows的了解,是成為高手的好方法。三.加強對windows的了解.可以說編一個程序,就是用一種語言的語法形式將數(shù)據(jù)結(jié)構(gòu)和表面的執(zhí)行過程描述出來.在不同的操作系統(tǒng)下,其程序的執(zhí)行過程是不同的.我們應該對windows的系統(tǒng)機制最起碼有個大體的了解,才有可能編寫windows的程序.dos是單進程單線程的系統(tǒng),進程從頭到尾的順序執(zhí)行,而windows是多進程、多線程的操作系統(tǒng),是基于事件的,消息驅(qū)動的操作系統(tǒng).明白這些是在windows下編程必不可少的,多學學它,你會發(fā)現(xiàn)windows 和 dos有很多的不同之處。 四.采取靈活多變的學習方法.在不同的時期,學習不同的東西?可是

10、有些人學習像word,excel這類操作性極強的辦公軟件時,總是先看書,看到尾巴忘了頭,到上機時卻不知所措.這種學習方式是被動的,看這些軟件操作的書,里面說的都是具體的操作,不親手又怎能接受新知識?五.多進行比較.dos和windows有許多共同和不同的地方,如果是從dos學過來的話,在學習過程中不妨多進行比較,把不同的地方記下,相同的地方可以跳過,這可以快速地了解系統(tǒng)的不同之處,迅速地學到東西! 學習程序設計,我主張實踐-理論-再實踐的方式,在編程的初期,不管你會不會寫程序,都應先實踐,(這里的實踐是指編程工具操作方面的實踐),學會操作編程工具.也許有些人會說:廢話!沒有理論,又怎么實踐?不

11、錯,當你坐在一臺電腦面前不知所措時,你就會想方設法使自己學會操作它,主動看書,看聯(lián)機幫助,請教別人,忙得個不亦樂乎,這不是變被動為主動了嗎? 邊學習邊操作,以實踐來帶動理論的學習,接著達到理論與實踐同步,就可闖過第一關,學會了編程工具的基本操作,可以為以后上機實踐打下鋪墊.光學會操作像vc這類的工具還不行,工具是死的,人才是活的,不會編程只能是空操作,你還會說:廢話!沒有理論,怎么實踐?的,這時就要學習編程的真功夫了,也就是我說的第二階段-學理論階段,深入研究前輩們的著作,吸取前人的智慧精華為我所用,扎扎實實打好編程內(nèi)功,功夫到家了就應該再實踐,將學到的東西運用于實際,編寫出我們需要的軟件來.

12、學以致用嘛,呵呵這種方式總比先學好語法的條條框框,再上機實踐的效果好得多啦.關于向windows轉(zhuǎn)變的個人觀點就只談這些,希望初學者早日踏上windows的光明大道!由于我也是一個菜鳥,水平有限,寫得不好,還請各位多多包涵!二級C語言實例解答 C語言牽涉的概念比較復雜,規(guī)范繁多,使用靈活,容易出錯,不少初學者感到困難,下面通過幾個實例的分析來說明c語言學習中容易混淆的幾個問題,以期拋磚引玉,對初學者有所幫助。 問題1:下面的程序 int a=3,b=4;char str=c;printf(“%d,%d”,a,b,str); 執(zhí)行后, 輸出結(jié)果為:(A)3,4,c (B)3 4 c (C)3,4

13、 (D)程序出錯 分析:在格式輸出時一般要求格式說明符與輸出項相一致,當輸出項多余格式說明符時多余的輸出項不輸出,所以答案為C。 問題2:有下面的程序段 char a3,b=“china”;a=b;printf(“%s”,a); 則輸出結(jié)果為:(A)運行后輸出china (B)運行后輸出ch (C) 運行后輸出chi (D)編譯出錯 分析:這個題容易錯選a?實際答案為d,由于定義了字符數(shù)組后,數(shù)組名作為數(shù)組的首地址,是一個常量,給一個常量賦值的語句是錯誤的,換句話說,不能用賦值語句將一個字符常量或字符數(shù)組直接賦值給一個字符數(shù)組,以答案選D。 問題3:下列說明不正確的是: (A)char a10

14、=“china” (B)char a10,?p=a;p=“china” (C)char ?p;p=“china”(D)char a10,?p;p=a=“china”; 分析:此題易知A是正確的,D是錯誤的,對于B、C就很難選擇了。有人認為p是一個字符變量,以為把”china”賦給該字符變量是不對的,實際上它是一個指針變量,只能指向一個字符變量或其他字符類型數(shù)據(jù),不是把”china”存放到p中(指針變量只存放地址),只是把“china”的首地址賦給指針變量 p,所以B,C也是正確的。 問題4:下面的程序執(zhí)行結(jié)果是: main()int x5=2,4,6,8,10,?p?pp;p=x;pp=&p;

15、printf(“%d”,?(p+);printf(“%dn”,?pp); (A)4 4 (B)2 4 (C)2 2 (D)4 6 分析:在此題中p是后加方式,先輸出?p的值,p再自加,pp是二級指針,指向一級指針p,執(zhí)行第一條輸出語句前后,存在下列指向關系: 所以本題應選b 問題5:下列輸出語句執(zhí)行后結(jié)果為: int i=3;printf(“%d”,-i+); (A)3 (B)4 (C)-3 (D)-4 分析:此題考查運算符的優(yōu)先級,負號運算符和運算符同優(yōu)先級,而結(jié)合方向為“自左至右”,即i相當于?i?,所以先取出i的值3,輸出i的值3,然后i增值為4,而不是i先增值為4,然后輸出4,所以答案

16、選擇C。 問題6:設有以下語句, struct stint n;struct st ?next;static struct st a3=5,&a1,7,&a2,9,0,?p; 則以下表達式的值為6的是:(A)p+n (B)pn+ (C)(?p).n+ (D)+pn 分析:此題也是考查運算符的優(yōu)先級,優(yōu)先級高于,結(jié)合方向為自左至右,而后者結(jié)合方向為自右至左,A答案相當于?p?n?B答案相當于?pn?所以A、B、C表達式值均為5,D答案相當于?pn?自加方式為前加方式,所以其值為6。 上面是我在教學過程中學生一些比較集中的問題,只要認真的體會和總結(jié),加強上機實踐,對自己C語言的學習會大有裨益。等級

17、考試:C 程序設計計算機等級考試改革后,三級考試由A、B兩類改為PC技術、數(shù)據(jù)庫技術、網(wǎng)絡技術、信息管理技術四類。其后三類的上機考試內(nèi)容均為C語言程序設計。三級上機不同于二級,它只有一道編程題,風險更大。但只要能達到題目的要求,一般都能拿到3分。 參加過考試的人都應該知道一本書南開大學出版的全國計算機等級考試?上機考試習題集,這本書基本上包含了所有的上機考試題目類型。這本書里一共有100道題,都很經(jīng)典。但也許有人會覺得太多了,沒時間看完所有的題目。下面我給大家介紹一個復習技巧。簡化問題每道試題的程序都很長,而且涉及的知識點很多。實際上,在考試時看完全部程序并沒有必要。每次只用把主要精力放在子程

18、序的編制上,認真思考其“功能要求”。所以平時我們只用關注需要編制的子程序。試題歸類要學會找出題目之間的規(guī)律,復習起來就會事半功倍。在一百道題目中,實際上只需要仔細分析其中的二十多道題就足夠了,其他的只用看一下就行。因為大部分的題目都是類似的,總結(jié)出規(guī)律來之后,我們可以舉一反三。例如下面兩類題目:例1. (占題庫10%)已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價dj(整型)、數(shù)量sl(整型)、金額je(長整型)幾部分組成。其中:金額單價數(shù)量可計算得出。函數(shù)ReadDat()的功能是讀取這100個銷售記錄并存入

19、結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。程序:void SortDat( )int I,J;PRO xy;for (I=0;I100;I+)if (strcmp(sellI.dm,sellJ.dm)sellJ.je)改為:else if (sellI.je= =sellJ.je)改為:if (strcmp(sellI.mc,sellJ.mc)130|*pf*11%256=A&*pf=Z)|*pf*

20、11%256=1)printf(s ,argvI);argc; 命令行參數(shù)用的最多還是在諸如DIR A:等之類帶有盤符、路徑或文件名這樣的命令行中,所以說靈活處理這一類參數(shù)才能有效地提高程序的運行效果。譬如DIR命令,其后可以是盤符,可以是路徑,也可以是文件名,如何區(qū)分這一參數(shù)呢?請看下例(此程序模擬DIR命令,程序要求在命令行輸入一個參數(shù):盤符或路徑或文件名,若無參數(shù)或參數(shù)多于一個都將取默認的參數(shù)“*.*”)。*功能:模擬DIR命令進行處理命令行參數(shù)*/includeincludeincludeinchludeint j,num=0;char ss20,path50,path250;void

21、 main (int argc,char *argv)struct ffblk f;int done;if(argc=2) /*取命令行參數(shù)到數(shù)組中*/ strcpy(ss,argv1);elsestrcpy(ss,*.*); /*給數(shù)組賦值缺省參數(shù)*/if (ssstrlen(ss)1=|(ssstrlen(ss)1=:)strcat(ss,*.*); /*若參數(shù)為路徑或盤符,則加上*.*/getcwd(path1,50); /*取當前路徑*/if (chdir(ss)=0) /*判斷參數(shù)是否為路徑*/strcat(ss,*.*); /*若路徑末沒有帶,則加上*.* */ chdir(pat

22、h1); /*恢復原來路徑*/strcpy(path2,ss);for(j=strlen(path2);j0;j)/*提取參數(shù)中的路徑到path2 */if(path2j=)|(path2j=:)path2j1=0;goto senull;path20=0;senull:if(strlen(path2)=0) /* 若給出的參數(shù)中沒帶路徑,則取當前路徑*/strcpy(path2,path1);printf(n*模擬DIR*n 命令目錄路徑s,path2);done=findfirst(ss,f,55); /*查找第一個配匹的文件*/j=1;while(!done)if (f.ff_attri

23、b!=0x10) /* 若文件屬性不是目錄 */printf(n 15s 20ld,f.ff_name,f.ff_fsize);elseprintf(n 11s ,f.ff_name);num;j;if(j=23)printf(n More (按任意鍵繼續(xù));getch();j=0;printf(n (目錄路徑s),path2);done=findnext(f); /*查找下一個配匹的文件*/printf(n 當前目錄中總共有d個文件.n,num); C語言初級講座我們已經(jīng)看到程序中使用的各種變量都應預先加以說明,即先說明,后使用。對變量的說明可以包括三個方面:?數(shù)據(jù)類型?存儲類型?作用域在本

24、講中,我們只介紹數(shù)據(jù)類型說明。其它說明在以后陸續(xù)介紹。所謂數(shù)據(jù)類型是按被說明量的性質(zhì),表示形式,占據(jù)存儲空間的多少,構(gòu)造特點來劃分的。在語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類。 1.基本數(shù)據(jù)類型基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型。也就是說,基本數(shù)據(jù)類型是自我說明的。2.構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型是根據(jù)已定義的一個或多個數(shù)據(jù)類型用構(gòu)造的方法來定義的。也就是說,一個構(gòu)造類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數(shù)據(jù)類型或又是一個構(gòu)造類型。在C語言中,構(gòu)造類型有以下幾種: ?數(shù)組類型?結(jié)構(gòu)類型?聯(lián)合類型3.指針類型指針是

25、一種特殊的,同時又是具有重要作用的數(shù)據(jù)類型。其值用來表示某個量在內(nèi)存儲器中的地址。雖然指針變量的取值類似于整型量,但這是兩個類型完全不同的量,因此不能混為一談。4.空類型在調(diào)用函數(shù)值時,通常應向調(diào)用者返回一個函數(shù)值。這個返回的函數(shù)值是具有一定的數(shù)據(jù)類型的,應在函數(shù)定義及函數(shù)說明中給以說明,例如在例題中給出的max函數(shù)定義中,函數(shù)頭為: int max(int a,int b);其中“int ”類型說明符即表示該函數(shù)的返回值為整型量。又如在例題中,使用了庫函數(shù) sin,由于系統(tǒng)規(guī)定其函數(shù)返回值為雙精度浮點型,因此在賦值語句s=sin (x);中,s 也必須是雙精度浮點型,以便與sin函數(shù)的返回值

26、一致。所以在說明部分,把s說明為雙精度浮點型。但是,也有一類函數(shù),調(diào)用后并不需要向調(diào)用者返回函數(shù)值, 這種函數(shù)可以定義為“空類型”。其類型說明符為void。在本講中,我們先介紹基本數(shù)據(jù)類型中的整型、浮點型和字符型。其余類型在以后各講中陸續(xù)介紹。對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,取值可變的量稱為變量。它們可與數(shù)據(jù)類型結(jié)合起來分類。例如,可分為整型常量、整型變量、浮點常量、浮點變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中,常量是可以不經(jīng)說明而直接引用的,而變量則必須先說明后使用。整型量整型量包括整型常量、整型變量。整

27、型常量就是整常數(shù)。在C語言中,使用的整常數(shù)有八進制、十六進制和十進制三種。整型常量1.八進制整常數(shù)八進制整常數(shù)必須以0開頭,即以0作為八進制數(shù)的前綴。數(shù)碼取值為07。八進制數(shù)通常是無符號數(shù)。以下各數(shù)是合法的八進制數(shù): 015(十進制為13)0101(十進制為65)(十進制為65535)以下各數(shù)不是合法的八進制數(shù): 256(無前綴0) 03A2(包含了非八進制數(shù)碼)-0127(出現(xiàn)了負號)2.十六進制整常數(shù)十六進制整常數(shù)的前綴為0X或0x。其數(shù)碼取值為09,AF或af。以下各數(shù)是合法的十六進制整常數(shù):0X2A(十進制為42)0XA0 (十進制為160)0XFFFF (十進制為65535)以下各數(shù)

28、不是合法的十六進制整常數(shù): 5A (無前綴0X)0X3H (含有非十六進制數(shù)碼)3.十進制整常數(shù)十進制整常數(shù)沒有前綴。其數(shù)碼為09。以下各數(shù)是合法的十進制整常數(shù):237 -568 65535 1627以下各數(shù)不是合法的十進制整常數(shù):023 (不能有前導0)23D (含有非十進制數(shù)碼)在程序中是根據(jù)前綴來區(qū)分各種進制數(shù)的。因此在書寫常數(shù)時不要把前綴弄錯造成結(jié)果不正確。4.整型常數(shù)的后綴在16位字長的機器上,基本整型的長度也為16位,因此表示的數(shù)的范圍也是有限定的。十進制無符號整常數(shù)的范圍為065535,有符號數(shù)為-32768+32767。八進制無符號數(shù)的表示范圍為0。十六進制無符號數(shù)的表示范圍為

29、0X00XFFFF或0x00xFFFF。如果使用的數(shù)超過了上述范圍,就必須用長整型數(shù)來表示。長整型數(shù)是用后綴“L”或“l(fā)”來表示的。例如:十進制長整常數(shù) 158L (十進制為158) L (十進制為-)八進制長整常數(shù) 012L (十進制為10) 077L (十進制為63)L (十進制為65536)十六進制長整常數(shù) 0X15L (十進制為21) 0XA5L (十進制為165)0X10000L (十進制為65536)長整數(shù)158L和基本整常數(shù)158 在數(shù)值上并無區(qū)別。但對158L,因為是長整型量,編譯系統(tǒng)將為它分配4個字節(jié)存儲空間。而對158,因為是基本整型,只分配2 個字節(jié)的存儲空間。因此在運算

30、和輸出格式上要予以注意,避免出錯。無符號數(shù)也可用后綴表示,整型常數(shù)的無符號數(shù)的后綴為“U”或“u”。例如: 358u,0x38Au,235Lu 均為無符號數(shù)。前綴,后綴可同時使用以表示各種類型的數(shù)。如0XA5Lu表示十六進制無符號長整數(shù)A5,其十進制為165。寫好C程序的10條秘籍神乎其技,惟C程序,功到自成,十大建議! 1、汝應頻繁催動lint工具,據(jù)其語法聲明修習內(nèi)力,此事皆因lint之思慮決斷實遠在君上。 2、不可依隨NULL指針,如若不然,混沌癡顛必俟君于彼岸。 3、縱有天賦大智慧,知曉其事無礙,汝亦當盡數(shù)強制挪移函數(shù)參數(shù)為原型所期之數(shù)據(jù)類型,以免一時疏忽,致使數(shù)據(jù)類型向汝討還血債。

31、4、若頭文件未于函數(shù)原型之中聲明返回值類型,汝當親為此事,更須謹慎再三,以防不測降臨汝身。 5、汝須親核字符串、數(shù)組操作之越界與否。古之圣人有言: 嘗祈門人對答“然也”,不意門人答曰“吾了然于胸無須多慮盡請寬心他日趨庭必當重謝”所期者短,所獲者長,此于數(shù)組,實最險要處也。 6、若函數(shù)聲明內(nèi)提及,于異常時將返回錯誤代碼云云,汝當謹慎校核該返回值。或有校核語句使汝之代碼增大數(shù)倍,令汝之手指因敲鍵而痛楚莫名之事,汝亦當如此。不然,汝固以為此異常之事難得一見,上蒼亦必借此懲戒汝之傲慢。 7、汝應研習庫函數(shù),不當親筆重寫之。如是,汝之代碼必短小易讀,汝之心境必清爽恬淡。 8、縱汝不愿,汝亦應借括號、縮進

32、之屬,使汝之代碼間架清晰,可為后者借鑒。汝之大智慧施于決疑解難則可,施于敷設謎團、淆亂文體則萬萬不可。 9、外部標識符之前六字符當與眾不同。此律法看似粗陋,和者寥寥,然其效用自能延續(xù)永遠。汝若不從此言,他日,汝欲連接程序于舊作之上時,必抓耳撓腮、蓬頭垢面,狼狽之相盡現(xiàn)矣。 10、或有族類,大言炎炎,云“普天之下,莫非VAX”。于此等異端,汝當摒棄之、斷絕之、遠避之。更有異人,篤信魔道,以為縱汝所用電腦頻繁換代,汝之程序亦能長久適用。汝亦不可與此類惡人來往,謹記謹記。 強大的語言C入門之一一、C語言的特點 C 語言是美國的Dennis Ritchie在1972年設計發(fā)明的。它由早期的編程語言BC

33、PL( Basic Combined Programming Language) 發(fā)展演變而來。C 語言之所以發(fā)展迅速,成為最受歡迎的語言之一,主要因為它具有強大的功能。歸納起來,C 語言具有下列特點: 1C語言是“中級語言” 它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。 2C語言是結(jié)構(gòu)式語言 所謂結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂?、維護以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便地調(diào)用,并

34、具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。 3C語言功能齊全 C 語言具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C 語言也具有強大的圖形功能,支持多種顯示器和驅(qū)動器,而且計算功能、邏輯判斷功能也比較強大,可以實現(xiàn)決策目的。 4C語言適用范圍廣 C 語言還有一個突出的優(yōu)點就是適合多種操作系統(tǒng),如DOS、Windows、UNIX,也適用于多種機型。 二、C語言基礎介紹 隨著微型計算機的日益普及,出現(xiàn)了許多C 語言版本。由于沒有統(tǒng)一的標準,使得這些C 語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C 語言制定了一套ANSI標準

35、,成為現(xiàn)行的C語言標準。而在這里我們將主要以美國Borland 公司的產(chǎn)品Turbo C2.0作為介紹對象,簡要介紹一下C語言的基本知識。 1.數(shù)據(jù)類型 在C語言中,每個變量在使用之前必須定義其數(shù)據(jù)類型。Turbo C有以下幾種類型:整型(int)、浮點型(float)、字符型(char)、指針型()、無值型(void)以及結(jié)構(gòu)(struct)和聯(lián)合(union)。其中前五種是C語言的基本數(shù)據(jù)類型、后兩種數(shù)據(jù)類型(結(jié)構(gòu)和聯(lián)合)則是C語言的擴展數(shù)據(jù)類型。 2.關鍵字和標識符、運算符 所謂關鍵字就是已被C語言本身使用、不能作其它用途的字。例如關鍵字else,就再不能用作變量名、函數(shù)名等。所謂標識符

36、是指常量、變量、語句標號以及用戶自定義函數(shù)的名稱。C標識符的定義十分靈活。 C的運算符非常豐富,主要分為三大類:算術運算符、關系與邏輯運算符、按位運算符。 3.變量 C規(guī)定所有變量在使用前都必須加以說明。一條變量說明語句由數(shù)據(jù)類型和其后的一個或多個變量名組成,例如“int x”。變量可以在程序中三個地方說明:函數(shù)內(nèi)部、函數(shù)的參數(shù)定義中或所有的函數(shù)外部。根據(jù)所定義位置的不同,變量可分為局部變量、形式參數(shù)和全程變量。C像其它高級語言一樣也使用數(shù)組變量。所謂數(shù)組就是指具有相同數(shù)據(jù)類型的變量集,并擁有共同的名字。數(shù)組中的每個特定元素都使用下標來訪問。 4控制流程語句 C提供了豐富、靈活的控制流程語句,

37、主要有:條件語句、循環(huán)語句和開關語句。條件語句的一般形式為ifelse。C提供三種基本的循環(huán)語句:for語句、while語句和dowhile語句。而在編寫程序時,經(jīng)常會碰到按不同情況分轉(zhuǎn)的多路問題, 這時可用嵌套ifelseif語句來實現(xiàn),但ifelseif語句使用不方便,并且容易出錯。對這種情況,C提供了一個switch開關語句。 5指針(point) 學習C語言,指針是較難理解的一個概念。我們知道變量在計算機內(nèi)占有一塊存貯區(qū)域(也就是有一個“地址”),變量的值就存放在這塊區(qū)域之中,在計算機內(nèi)部,通過訪問或修改這塊區(qū)域的內(nèi)容來訪問或修改相應的變量。C語言中,對于變量的訪問形式之一,就是先求出

38、變量的地址,然后再通過地址對它進行訪問,這就是指針及指針變量。指針變量的一般定義為“類型標識符標識符”,其中標識符是指針變量的名字,標識符前加了“”號, 表示該變量是指針變量,而最前面的“類型標識符”表示該指針變量所指向的變量的類型。一個指針變量只能指向同一種類型的變量,也就是說,我們不能定義一個指針變量,既能指向一整型變量又能指向雙精度變量。 三、C程序設計初步 C語言是一種中級語言,用戶用C語言編寫的程序稱為源程序,源程序文件的后綴一般必須為“.c”。計算機硬件不能直接執(zhí)行源程序,必須將源程序翻譯成二進制目標程序。翻譯工作是由編譯程序完成的,翻譯的過程稱為編譯,編譯的結(jié)果稱為目標程序,目標

39、程序文件后綴一般為“.OBJ”。程序翻譯成目標程序后,便可進行連接?!斑B接”的目的是使程序變成在計算機上可以執(zhí)行的最終形式。在這一階段,系統(tǒng)程序庫中的程序要與目標程序連接,連接的結(jié)果稱為執(zhí)行程序,執(zhí)行程序文件名字一般以“.EXE”結(jié)尾。 正如所有利用計算機語言所編寫的的第一個程序一樣,下面,我們也試著建立一個名為“HELLO.C”的源程序,這個程序?qū)⒃谄聊簧厦娲蛴〕觥澳愫茫娔X報軟件世界!”這個短語。 通過鍵盤輸入程序: include main() printf(你好,電腦報軟件世界!n); 這個最簡單的程序,也包括了C語言的一些基本的內(nèi)容,它有一個主函數(shù)main(),使用到了標準的輸出函數(shù)

40、printf(),同時為了能夠讓程序運行時包含這個標準函數(shù),我們首先要在程序的最開始寫上include ,“stdio.h”是C語言提供的標準輸入輸出函數(shù)庫頭文件,我們可以直接引用里面的一些函數(shù),來完成我們所要實現(xiàn)的功能。 現(xiàn)在,讓我們來編譯、連接并運行一下這個最簡單的程序,我們將看到,在屏幕上打印出了“你好,電腦報軟件世界!” 四、參考資料 首先是一些C語言相關的書籍: C語言譚浩強,C語言編程寶典王大剛,數(shù)據(jù)結(jié)構(gòu)與算法面向?qū)ο蟮腃設計模式Bruno R. Preiss,C/C語言與研究開發(fā)實踐伍曉宇、辛勇,Borland C Builder 3.0/4.0類參考詳解張濟、袁野、王秀娟,Borland CBuilder 3.0/4.0高級類參考詳解王秀娟、孫悅、黎華,C語言命令詳解(第二版)Brian Overland,C程序設計實驗指導錢能。用C語言解決鬼谷算題在鬼谷算題中有這樣一個著名的題目:“今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?”這屬于高等數(shù)學中的數(shù)論。我國宋代學者對這類題目鉆研已頗為精深,總結(jié)出了“三人同行七十

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論