C語言試題學(xué)習(xí)考試大全_第1頁
C語言試題學(xué)習(xí)考試大全_第2頁
C語言試題學(xué)習(xí)考試大全_第3頁
C語言試題學(xué)習(xí)考試大全_第4頁
C語言試題學(xué)習(xí)考試大全_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、24位位圖格式解析每一行的圖素?cái)?shù)等于該結(jié)構(gòu)的bcWidth字段。每一行從最左邊的圖素開始,直到圖像的右邊。分別對(duì)應(yīng)的B,G,R像素。每個(gè)像素占8位, 每列的寬度為bcWidth,必須為4的倍數(shù),不足的用零填充。下面是讀取二十四位位圖的關(guān)鍵代碼:代碼1 BITMAPFILEHEADER * pbmfh ;2 BITMAPINFO * pbmi ;3 BYTE * pBits ;4 pbmfh = DibLoadImage (szFileName) ;5 pbmi = (BITMAPINFO *) (pbmfh + 1) ;6 pBits = (BYTE *) pbmfh + pbmfh-bfOf

2、fBits ;7 for( i=0; i 1024; i+)8 9 pPrintBlocki = (char*)malloc(216);10 memset(pPrintBlocki, 0, 216);11 1213 for(h = 0; h bmiHeader.biHeight; h+)14 15 for(w = 0; w bmiHeader.biWidth; w+)16 17 b1 = *pBits; /B18 b2 = *(pBits+1); /G19 b3 = *(pBits+2); /R20 if( (int)b1 != 255 & (int)b2 != 255 & (int)b3 !

3、= 255)21 22 index = w / 8;23 index = 1 (w%8);24 index = pPrintBlockhw / 8 | ( 1 (w%8) );25 pPrintBlockhw / 8 = pPrintBlockhw / 8 | ( 1 bmiHeader.biWidth *3 % 4 != 0)31 32 pBits += ( 4 - pbmi-bmiHeader.biWidth*3 % 4);33 34 c語言初學(xué)者環(huán)境選擇語言初學(xué)既要考慮學(xué)習(xí)的效果,還要考慮今后的使用和發(fā)展。所以我推薦幾個(gè)c語言的開發(fā)環(huán)境:1、kdevelop是linux下最好的開發(fā)環(huán)境之

4、一,也是linux下主要的開發(fā)軟件。有志于做linux開發(fā)的可在此環(huán)境下學(xué)習(xí)。學(xué)習(xí)順序?yàn)椋篶-c+-數(shù)據(jù)結(jié)構(gòu)-操作系統(tǒng)原理-數(shù)據(jù)庫(orcale、mysql)-QT(GTK、gomn2、bcb是borlandc+builder非常經(jīng)典的c&c+開發(fā)環(huán)境,在vc+和delphi對(duì)決江湖時(shí),c+builder是一匹黑馬,學(xué)習(xí)難度小于vc+,但功能基本和vc+齊平,兼有跨平臺(tái)開發(fā)的本事(linux)3、vs2008是微軟搞的集成開發(fā)環(huán)境vb、c#、c+、j#等開發(fā)環(huán)境功能之強(qiáng)大嘆為觀止(可惜只能在windows下使用),可以開發(fā)窗口程序、網(wǎng)站、移動(dòng)設(shè)備程序包括嵌入程序。以只是建議,僅供參考。C語言入

5、門必備手冊(cè)這里不是教你什么知識(shí),而是給你澄清一些資料,只給對(duì)編程一竅不通的或者剛?cè)腴T的人看。 如果你尚未學(xué)習(xí)或者才學(xué)習(xí)不夠一天,一定要看這手冊(cè),這份手冊(cè)已經(jīng)講述的知識(shí),我們不會(huì)在版面給予回答 此手冊(cè)我會(huì)盡量保持準(zhǔn)確,但如有不正確,請(qǐng)指正 我也會(huì)不斷更新此手冊(cè)一、什么都不懂Q:什么是C?A: 一門面向過程的計(jì)算機(jī)語言,發(fā)明至今已經(jīng)差不多有三十年歷史,由于它相對(duì)其他高級(jí)語言高效,運(yùn)行效率又比較接近低級(jí)語言,所以至今仍得到廣泛的引用,無論你用windows還是linux,你現(xiàn)在看到東西的底層都是用C寫的,而大部分的網(wǎng)絡(luò)協(xié)議都是用C實(shí)現(xiàn)的,畫面最漂亮的游戲用C實(shí)現(xiàn)的,工業(yè)控制程序也是用C實(shí)現(xiàn)的。C不是

6、萬能,也不是垃圾,只是一門某些方面適用,某些方面不適用的語言Q:什么是C+?A:一門面向?qū)ο蟮挠?jì)算機(jī)語言,發(fā)明至今已經(jīng)有二十多年了。由于面向?qū)ο缶幊虒?duì)程序架構(gòu)有較好的幫助,因?yàn)楸容^適合構(gòu)建大型的系統(tǒng)(當(dāng)然,學(xué)術(shù)界對(duì)此存在爭論),但無論如何,C+由于和C一樣接近底層,而且又面向?qū)ο螅砸驳玫綇V泛的使用。C+不是萬能,也不是垃圾,只是一門某些方面適用,某些方面不適用的語言,不要向某一個(gè)笨蛋一樣認(rèn)為c + 類 = c+ 。Q:TC,VC,BC,BCB是什么?有什么區(qū)別?誰好?A:它們都是開發(fā)C/C+的開發(fā)環(huán)境,是軟件。它們是不同時(shí)期由不同公司發(fā)行的軟件 Turbo C ,Borland公司在八十年

7、代末期發(fā)行的C語言的開發(fā)環(huán)境 Turbo C+,Borland公司在八十年代末九十年代初發(fā)行的C+語言的開發(fā)環(huán)境 Visual C+,Microsoft公司 在九十年代至今發(fā)行的C/C+開發(fā)環(huán)境 Borland C+,Borland公司 在九十年代中發(fā)行的C/C+開發(fā)環(huán)境 Borlan C+ Builder,Borland公司在九十年代后期至今開發(fā)的C/C+開發(fā)環(huán)境,與其他開發(fā)環(huán)境不用的是它屬于快速應(yīng)用程序開發(fā)(RAD),可以讓你不寫代碼就能建立程序,當(dāng)然它的運(yùn)行效率見仁見智 沒有什么是萬能的,不同場合用不同的東西 而且C/C+還有很多開發(fā)環(huán)境,譬如gcc, watcom C+, Dev C/

8、C+Q:什么語言/開發(fā)環(huán)境最好?A:沒有最好,只有最適用某方面Q:需要什么基礎(chǔ)才能學(xué)C/C+A:至少學(xué)過幼兒園語文,小學(xué)英語,小學(xué)數(shù)學(xué)才能學(xué),所以先確定你擁有小學(xué)學(xué)歷,然后就能學(xué)了 至于學(xué)習(xí)C+前是否需要學(xué)C,C+的發(fā)明者認(rèn)為不用,但見仁見智Q:如何更有效的學(xué)習(xí)C/C+?A:不斷的看書+實(shí)踐,先把書上的練習(xí)題做完再說,務(wù)必記住不要鉆牛角尖,很多初學(xué)者經(jīng)常犯這樣的錯(cuò)誤,不要盲目的提出問題,現(xiàn)在看來是問題其實(shí)在以后的實(shí)踐和學(xué)習(xí)中都會(huì)慢慢理解的,任何東西都需要一個(gè)過程。萬萬不可浮躁。Q:TC能開發(fā)windows軟件嗎?A:不能,因?yàn)椴煌到y(tǒng),生成的程序格式不同Q:要多久才能成為高手?A:當(dāng)你不再問這

9、個(gè)問題的時(shí)候,總是會(huì)有比你技術(shù)高的人,也許你在你生活的環(huán)境中沒有,的確可以說你在這個(gè)小范圍是高手,但是再在別的地方一定會(huì)有比你厲害的人只是你沒有接觸到而已Q:學(xué)C/C+有什么用?A:先想想你為了什么而學(xué),想不到就不要學(xué)Q:學(xué)完C/C+又能怎樣A:沒怎樣,學(xué)是為了使用服務(wù)的 只證明你會(huì)一門語言,但不等于你會(huì)開發(fā)軟件。就像學(xué)外語,為的是跟外國人交際,但如果你不懂交際,幾時(shí)精通英語,法語,日語,朝鮮語,阿拉伯語,西班牙語還是不會(huì)跟人交際 你應(yīng)該繼續(xù)學(xué)習(xí)軟件開發(fā)的知識(shí),包括數(shù)據(jù)結(jié)構(gòu),算法,軟件工程等等,還有要提高數(shù)學(xué)水平,譬如微積分,離散數(shù)學(xué),矩陣,概率,統(tǒng)計(jì),數(shù)值分析Q:我有很多不懂,怎么辦?A:查

10、幫助,搜索引擎。最著名的幫助文檔叫MSDN,我們主要使用其光盤發(fā)行版,D版可以從電腦城買,正版可以去微軟訂購,如果沒有光盤可以去查詢。二、開始學(xué)習(xí)了Q:我在TC看到缺少cos.obj的提示,為什么?A:路徑設(shè)置錯(cuò)誤,在Options菜單-Directionary,分別TC里面1、設(shè)置含有很多.h文件的目錄,2、設(shè)置含有很多l(xiāng)ib文件的目錄,3、設(shè)置生成可執(zhí)行文件的目錄,4、設(shè)置TC本身所在的目錄。 記得最后要選Save OptionsQ:include A:Q:全角/半角 A:Q:使用VC看到不能連接_main或_WinMain的提示A:如果你需要用main做主函數(shù),請(qǐng)新建Project-Wi

11、n32 Console Application 如果你需要用WinMain做主函數(shù),請(qǐng)新建Project-Win32 ApplicationQ:使用TC/VC看不到輸出,或者一閃而過在 TC,按Alt+F5,或者在程序最后加上system(PAUSE), 或者加上getchar() 在VC,選擇Excute執(zhí)行,或者在程序最后加上system(PAUSE), 或者加上getchar()C語言實(shí)現(xiàn)清屏操作子函數(shù)及演示程序:#include#include#includevoid goto_xy(int x,int y);void dcls(int x1,int x2,int y1,int y2)

12、;void bcls(int x1,int x2,int y1,int y2);void kcls(int x1,int x2,int y1,int y2);void recls(int x1,int x2,int y1,int y2);void zcls(int x1,int x2,int y1,int y2);void puta(void);/*-演示程序-*/main()puta();getch();dcls(0,4,0,79);getch();puta();getch();bcls(0,25,0,79);getch();puta();getch();zcls(0,25,0,79);ge

13、tch();/*center clear screen(中心清屏)*/void zcls(int x1,int x2,int y1,int y2)int x00,y00,x0,y0,i,d;if(y2-y1)(x2-x1)d=(x2-x1)/2;x0=(x1+x2)/2;y0=y1+d;y00=y2-d;for(i=0;i(d+1);i+)recls(x0-i),(x00+i),(y0-i),(y00+i);delay(10);elsed=(y2-y1)/2;y0=(y1+y2)/2;x0=x1+d;x00=x2-d;for(i=0;id+1;i+)recls(x0-i,x00+i,y0-i,

14、y00+i);delay(10);/* clear rectangle side(矩形邊清屏)*/void recls(int x1,int x2,int y1,int y2)int i,j;for(i=y1;iy2;i+)goto_xy(x1,i);putchar( );goto_xy(x2,i);putchar( );delay(10);for(j=x1;jx2;j+)goto_xy(i,y1);putchar( );goto_xy(j,y2);putchar( );delay(10);/*open screen clear(開屏式清屏)*/void kcls(int x1,int x2,

15、int y1,int y2)int t,s,i,j;t=s=(y1+y2)/2;for(;t=y2;t+,s-)for(j=x1;jx2;j+)goto_xy(j,t);putchar( );goto_xy(j,s);putchar( );delay(10);/*close screen clear*閉幕式清屏*/void bcls(int x1,int x2,int y1,int y2)int t,s,j;t=y1;s=y2;for(t=y1;t(y1+y2)/2;t+,s-)for(j=x1;jx1;j-)for(i=y1;iy2;i+)goto_xy(j,i);putchar( );de

16、lay(10);/*設(shè)置光標(biāo)子函數(shù)*/void goto_xy(int x,int y)union REGS r;r.h.ah=2;r.h.dl=y;r.h.dh=x;r.h.bh=0;int86(0x10,&r,&r);/*在屏幕上打出一連串的a字母用于演示程序*/void puta(void)int i,j;for(i=0;i24;i+)for(j=0;j79;j+)goto_xy(i,j);printf(a);C語言學(xué)習(xí)要領(lǐng)1、計(jì)算機(jī)語言挺枯燥的,如何提起興趣答:首先要明確學(xué)習(xí)的目標(biāo),沒有明確的學(xué)習(xí)目標(biāo)就沒有學(xué)習(xí)動(dòng)力。給自己定一個(gè)目標(biāo),比如這次一定通過計(jì)算機(jī)等級(jí)考試,或者這個(gè)月學(xué)習(xí)完做個(gè)

17、東西出來等等。其次,確定了目標(biāo)之后,要認(rèn)真去做,多上機(jī)操作實(shí)踐,遇到不懂的要多跟教師和其他學(xué)員交流,千萬不能放棄。當(dāng)自己編的一段小程序運(yùn)行通過,或攻下一道難題,自己就會(huì)獲得一種成就感,可能還會(huì)很興奮,也就漸漸有了興趣。最后,要把所學(xué)的知識(shí)運(yùn)用到實(shí)際問題當(dāng)中,這樣既可以鞏固所學(xué)的知識(shí),不至于完學(xué)了就忘,還可以根據(jù)實(shí)際需要拓展知識(shí)面。這樣良性循環(huán),興趣也會(huì)越來越濃。2、有學(xué)員來信問到:我的電腦里安裝的TURBO?C(970K)不能正常的編譯,現(xiàn)象是:在編譯過程中,提示沒有錯(cuò)誤也沒有警告,按任意鍵返回,可是在電腦上不能生成OBJ文件,有時(shí)提示:Unable to open input filecos

18、.obj,我的朋友從他們學(xué)校的PC上拷貝回來的程序也出現(xiàn)這個(gè)問題?!在他們學(xué)校卻很正常,這是怎么回事?這個(gè)問題一直在困擾我,使我的學(xué)習(xí)不能進(jìn)行下去!請(qǐng)幫我解決。謝謝!答:這需要重新設(shè)置options-directories中的include目錄和lib目錄,設(shè)為你C的安裝目錄就可以了。記住要保存喲!3、#includemain()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);這個(gè)程序的結(jié)果是27.為什么我一直算的是28.呢?請(qǐng)指教答:main()int m=7,n=4;float a=38.4,b=6.4,x;x=

19、m/2+n*a/b+1/2;printf(%fn,x);m/2=3;因?yàn)閙是整形所以結(jié)果為整形不是3.5而是3同樣1/2不是0.5而是0。要改的話,x=(float)m/2+n*a/b+1.0/2.0;結(jié)果為28.00004、有些人說我的程序很難讓人看懂,請(qǐng)問如何將程序?qū)懙靡?guī)范、簡潔明了答:這是編程中重要的一點(diǎn),要養(yǎng)成良好的編程習(xí)慣。請(qǐng)看一個(gè)例題:程序很簡單,是用TURBO C編一個(gè)時(shí)鐘程序。具體如下:/*Module:clock.cjust a test of my programming ability*/#includemath.h#includedos.h#includestdio.h

20、#includegraphics.hmain()char s30;int gdriver,gmode;int cosh,sinh,cosm,sinm,coss,sins;struct ;time t;char keydown=0;int x=300,y=160,r=40;clrscr();gdriver=9; gmode=1;initgraph(&gdriver,&gmode,a:);/*需要說明的是,第三個(gè)參數(shù)a:是egavga.bgi這個(gè)文件的路徑*/* install the graphic device.the third parameter is the path of the dr

21、iver*/setbkcolor(0);setcolor(WHITE);while(1)circle(x,y,r);/*paintthecircle*/line(x,y+r-10,x,y+r-12);line(x+r-4,y,x+r,y);line(x-r,y,x-r+4,y);line(x,y-r+10,x,y-r+10+2); /* draw the fout scales */gettime(&t);sprintf(s,The current time is %2d:%02d:%02dn,t.ti_hour,t.ti_min,t.ti_sec,t);outtextxy(0,0,s); /

22、* out put the current time */outtextxy(0,10,This clock is written by lijun); /*?show the auther */coss=(int)(r-10)*cos(t.ti_sec*3.14f/30-3.14f/2)+x);sins=(int)(r-10)*sin(t.ti_sec*3.14f/30-3.14f/2)+y);cosm=(int)(r-19)*cos(t.ti_min*3.14f/30-3.14f/2)+x);sinm=(int)(r-19)*sin(t.ti_min*3.14f/30-3.14f/2)+y

23、);cosh=(int)(r-28)*cos(t.ti_hour+(float)(t.ti_min)/60)*3.14f/6-3.14f/2)+x);sinh=(int)(r-28)*sin(t.ti_hour+(float)(t.ti_min)/60)*3.14f/6-3.14f/2)+y);/* calculate the position of the three points */setcolor(14);line(x,y,coss,sins);setcolor(13);line(x,y,cosm,sinm);setcolor(10);line(x,y,cosh,sinh);setco

24、lor(15);/* draw the points */sleep(1);clrscr(); keydown=kbhit();/* check whether key down */if(keydown)closegraph();/* close graphic device */exit(0);printf的實(shí)現(xiàn)原理在C/C+中,對(duì)函數(shù)參數(shù)的掃描是從后向前的。C/C+的函數(shù)參數(shù)是通過壓入堆棧的方式來給函數(shù)傳參數(shù)的(堆棧是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)),最先壓入的參數(shù)最后出來,在計(jì)算機(jī)的內(nèi)存中,數(shù)據(jù)有2塊,一塊是堆,一塊是棧(函數(shù)參數(shù)及局部變量在這里),而棧是從內(nèi)存的高地址向低地址生長的

25、,控制生長的就是堆棧指針了,最先壓入的參數(shù)是在最上面,就是說在所有參數(shù)的最后面,最后壓入的參數(shù)在最下面,結(jié)構(gòu)上看起來是第一個(gè),所以最后壓入的參數(shù)總能被函數(shù)找到,因?yàn)樗驮诙褩V羔樀纳戏?,printf第一個(gè)被找到的參數(shù)就是那個(gè)字符指針,就是雙引號(hào)括起來的那一部分,函數(shù)通過判斷字符串里控制參數(shù)的個(gè)數(shù)來判斷參數(shù)個(gè)數(shù)及數(shù)據(jù)類型,通過這些就可算出個(gè)數(shù)據(jù)需要的堆棧指針的偏移量了,下面給出printf(%d,%d,a,b);(其中a,b都是int型的)匯編代碼.section .data string out=“%d,%d”push b;push a;push $outcall printf看到?jīng)]參數(shù)是最后

26、的先壓如,最先的后壓入,參數(shù)控制的那個(gè)字符串常量最后壓入,所以這個(gè)常量總是能被找到。名師談C語言的重要性和如何學(xué)習(xí)C語言很多人對(duì)學(xué)習(xí)C語言感到無從下手,經(jīng)常問我同一個(gè)問題:究竟怎樣學(xué)習(xí)C語言?我是一個(gè)教師,已經(jīng)開發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語言就是C語言。經(jīng)過這些年的開發(fā),我深深的體會(huì)到C語言對(duì)于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優(yōu)秀高效的程序,這簡直就是天方夜譚。為什么C語言如此重要呢?第一:C語言語法結(jié)構(gòu)很簡潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語言去描述算法本身,

27、所以,如果你想在程序設(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+,Java,C#,J#,perl.哪個(gè)不是呢?掌握了C語言,可以說你就掌握了很多門語言,經(jīng)過簡單的學(xué)習(xí),你就可以用這些新型的語言去開發(fā)了,這個(gè)再一次驗(yàn)證了C語言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語言,你想加入it行業(yè),那么就一定要

28、掌握好C語言。那么究竟怎樣學(xué)習(xí)C語言呢?1:工欲善其事,必先利其器這里介紹幾個(gè)學(xué)習(xí)C語言必備的東東:一個(gè)開發(fā)環(huán)境,例如turbo C2.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)在是W

29、indow時(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)然,對(duì)于沒

30、有學(xué)過任何計(jì)算機(jī)語言的初學(xué)者,最好還是先閱讀教程,學(xué)習(xí)完每一章,都要認(rèn)真體會(huì)這一章的所有概念,然后不放過這一章中提到的所有例程,然后仔細(xì)研讀程序,直到每一行都理解了,然后找?guī)讉€(gè)編程題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫出和它一樣的程序,絕對(duì)不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續(xù)研究例程,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到你手到擒來為止,祝賀你,你快入門了。3:登峰造極寫程序的最高境界其實(shí)就是掌握各種解決問題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問題的方法(算法)。是不是寫出底層程序就是程序設(shè)

31、計(jì)高手呢?非也,寫底層程序,無非是掌握了硬件的結(jié)構(gòu),況且硬件和硬件還不一樣,要給一個(gè)芯片寫驅(qū)動(dòng)程序,無非就是掌握這塊芯片的各種寄存器及其組合,然后寫值讀值,僅此而已。這不過是熟悉一些io函數(shù)罷了。那么怎樣才算精通程序設(shè)計(jì)呢?怎樣才能精通程序設(shè)計(jì)呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?第一種方法:直接對(duì)這10個(gè)人問:“誰叫張三”。第2種方法:你挨個(gè)去問“你是不是張三?”,直到問到的這個(gè)人就是張三。第三種方法:你去挨個(gè)問一個(gè)人“你認(rèn)不認(rèn)識(shí)張三,指給我看”。不要小看這個(gè)問題,你說當(dāng)然會(huì)選第一種方法,沒錯(cuò)恭喜你答對(duì)了,因?yàn)檫@個(gè)方法最快,效率最高,但是在程序設(shè)計(jì)中找到解決問題

32、的最優(yōu)方法和你用的手段卻是考驗(yàn)一個(gè)程序員程序設(shè)計(jì)水平的重要標(biāo)志,而且是不容易達(dá)到的。剛才這個(gè)問題類似于數(shù)據(jù)結(jié)構(gòu)和算法中的:Map數(shù)據(jù)結(jié)構(gòu),窮舉查找和折半查找。所以掌握好數(shù)據(jù)結(jié)構(gòu)和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴(yán)尉敏的數(shù)據(jù)結(jié)構(gòu)清華大學(xué)出版社,希望每一個(gè)想成為程序設(shè)計(jì)高手的人研讀此書。圖形模式下的漢字顯示#include void main()printf(我正在學(xué)習(xí)語言!);在圖形模式下顯示漢字就稍稍麻煩些??尚业氖怯泻芏嗳藦氖逻@一問題的研究,并開發(fā)了一些用于漢字顯示的函數(shù)。這些函數(shù)不需要漢字系統(tǒng)的支持,但用到其中的字庫文件。如的HZK16。漢字顯示的第一步是打開字庫文件。函

33、數(shù): int OpenHz(const char *Hz16Path); 功能:打開字庫文件Hz16Pathint handle; /*打開的字庫文件指針*/int OpenHz(const char *Hz16Path)return (handle=open(Hz16Path,O_RDONLY|O_BINARY); 打開字庫文件后,就可以用下面介紹的函數(shù)顯示16點(diǎn)陣的漢字。函數(shù): int WrtHz16(int x,int y,int z,int color,char *p); 功能:在(x,y)用color顏色顯示漢字串p,漢字之間的空格數(shù)為z。intWrtHz16(int x, int y,int z,int color,char *p)unsigned int i,c1,c2,f=0; /*x,y:write at (x,y);*/int rec,i1,i2,i3; /*z:space between;*/long l; /*color:txt color*/char by32; /*p:HZ str*/if( handle0xa1)if(f=0)c1=(i-0xa1)&0x07f;f=1;elsec2=(i-0xa1)&0x07f;f=0;rec=c1*94+c2;l=rec*32L;l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論