Time of Update: 2017-02-27
函數名: kbhit功能: 檢查當前按下的鍵用法: int kbhit(void);程式例:#includeint main(void){cprintf("Press any key to continue:");while (!kbhit()) /* do nothing */ ;cprintf("\r\nA key was pressed...\r\n");return 0;}函數名: keep功能: 退出並繼續駐留用法: void keep(int
Time of Update: 2017-02-27
函數名: labs用法: long labs(long n);程式例:#include#includeint main(void){long result;long x = -12345678L;result= labs(x);printf("number: %ld abs value: %ld\n",x, result);return 0;}函數名: ldexp功能: 計算value*2的冪用法: double ldexp(double value, int
Time of Update: 2017-02-27
main()主函數每一C程式都必須有一main()函數, 可以根據自己的愛好把它放在程式的某個地方。有些程式員把它放在最前面, 而另一些程式員把它放在最後面, 無論放在哪個地方, 以下幾點說明都是適合的。1.main()參數在Turbo C2.0啟動過程中, 傳遞main()函數三個參數: argc, argv和env。* argc: 整數, 為傳給main()的命令列參數個數。* argv: 字串數組。在DOS 3.X 版本中, argv[0] 為程式啟動並執行全路徑名; 對DOS
Time of Update: 2017-02-27
函數名: qsort功能: 使用快速排序常式進行排序用法: void qsort(void *base, int nelem, int width, int (*fcmp)());程式例:#include#include#includeint sort_function( const void *a, const void *b);char list[5][4] = { "cat", "car", "cab",
Time of Update: 2017-02-27
函數名: sbrk功能: 改變資料區段空間位置用法: char *sbrk(int incr);程式例:#include#includeint main(void){printf("Changing allocation with sbrk()\n");printf("Before sbrk() call: %lu bytes free\n",(unsigned long) coreleft());sbrk(1000);printf("
Time of Update: 2017-02-27
函數名: setvisualpage功能: 設定可見圖形頁號用法: void far setvisualpage(int pagenum);程式例:#include#include#include#includeint main(void){/* select a driver and mode that supports *//* multiple pages. */int gdriver = EGA, gmode = EGAHI, errorcode;int x, y, ht;/*
Time of Update: 2017-02-27
函數名: tell功能: 取檔案指標的當前位置用法: long tell(int handle);程式例:#include#include#include#includeint main(void){int handle;char msg[] = "Hello world";if ((handle = open("TEST.$$$", O_CREAT | O_TEXT | O_APPEND)) ==
Time of Update: 2017-02-27
函數名: vfprintf功能: 送格式化輸出到一流中用法: int vfprintf(FILE *stream, char *format, va_list param);程式例:#include#include#includeFILE *fp;int vfpf(char *fmt, ...){va_list argptr;int cnt;va_start(argptr, fmt);cnt=vfprintf(fp, fmt, argptr);va_end(argptr);return(cnt)
Time of Update: 2017-02-27
函數名: wherex功能: 返回視窗內水平游標位置用法: int wherex(void);程式例:#includeint main(void){clrscr();gotoxy(10,10);cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey());getch();return 0;}函數名: wherey功能: 返回視窗內垂直游標位置用法: int
Time of Update: 2017-02-27
基本解釋const是一個C語言的關鍵字,它限定一個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在觀看別人代碼的時候,清晰理解const所起的作用,對理解對方的程式也有一些協助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中一個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題:const變數 & 常量為什麼我象下面的例子一樣用一個const變數來初始化數組,ANSI C的編譯器會報告一個錯誤呢?const int n = 5;int a[n];
Time of Update: 2017-02-27
1、概述static聲明的變數在C語言中有兩方面的特徵:1)、變數會被放在程式的全域儲存區中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變數和堆變數的區別。2)、變數用static告知編譯器,自己僅僅在變數的作用範圍內可見。這一點是它與全域變數的區別。2、問題:Static的理解關於static變數,請選擇下面所有說法正確的內容:A、若全域變數僅在單個C檔案中訪問,則可以將這個變數修改為靜態全域變數,以降低模組間的耦合度;B、若全域變數僅由單個函數訪問,則可以將這個變數改為
Time of Update: 2017-02-27
常見的中文內碼一般有GB2312(簡體中文),GBK和台灣那邊用的BIG5(繁體中文),有時候看一些台灣編程論壇裡的資料,都是亂碼,如果在IE中瀏覽,則要求安裝繁體字型檔的支援。網上也有很多中文內碼的轉換工具,什麼專家,大師,巨匠之類所有光輝燦爛的名字都被使用了,但是在自己的程式中整合這些功能豈不是更好。以前曾廣泛流傳過使用碼錶來轉換中文內碼的Code,但畢竟不完美,而且還要攜帶或內建一個巨大的表,浪費資源。Windows中提供了MultiByteToWideChar和WideCharToMul
Time of Update: 2017-02-27
我曾說過,在C語言中只有一維的數組(這是我對數組的看法),而且數組元素可以是任何類型的資料(或對象),自然也可以是另外的一個數組(因為數組也是一種資料類型)。所以如果你堅持要說有多維陣列,那也不是不可能的事情。我們只要把一個數組賦值給另一個數組的元素就可以了。當然了,我們必須保證在程式編譯期數組的大小是一個固定的常數。其實,數組的操作很簡單的。只要我們確定一個數組的大小和指向該數組下標為0的元素的指標,其他的任何一個數組下標的運算都等同於一個對應的指標運算,所以我們說“數組和指標是可
Time of Update: 2017-02-27
1 基本解釋extern可以置於變數或者函數前,以標示變數或者函數的定義在別的檔案中,提示編譯器遇到此變數和函數時在其他模組中尋找其定義。另外,extern也可用來進行連結指定。2 問題:extern 變數在一個源檔案裡定義了一個數組:char a[6];在另外一個檔案裡用下列語句進行了聲明:extern char *a;請問,這樣可以嗎?答案與分析:1)、不可以,程式運行時會告訴你非法訪問。原因在於,指向類型T的指標並不等價於類型T的數組。extern char
Time of Update: 2017-02-27
眾所周知,MATLAB是一個功能強大的數學軟體,擅長於用矩陣運算完成各種數學功能。但是其程式需要在MATLAB環境下解釋執行,效率不高。如果能將它強大的函數庫用於C語言,利用C來編譯執行,MATLAB將能發揮更大的作用。所以,MATLAB從5.0開始已經提供了與外部C/C++程式的應用程式介面,為利用C語言調用MATLAB的函數提供了可能。但是MATLAB的介面發展很快,到MATLAB 6.5已經提供了對VC
Time of Update: 2017-02-27
一般的盜密碼的軟體的軟體都是通過監視鍵盤來獲得密碼,這樣操作比較方便,但是這樣也存在一定問題,密碼有的時候不是很準確,因為有的人輸入密碼並不是從前到後輸入,當然這樣的人也是少數,盜密碼嘛,當然去得到那些比較粗心的人的密碼! 通過安裝鉤子來監視QQ登陸介面就是獲得密碼的方法,在安裝前得先找到登陸視窗的控制代碼,當鉤子安裝後,記錄鍵盤,當使用者“斷行符號”或是點了“登陸”就可以開始處理密碼了!
Time of Update: 2017-02-27
在例1-2及1-3中已考察過這個問題。因為具有n 個頂點的無向網路G的每個產生樹剛好具有n-1條邊,所以問題是用某種方法選擇n-1條邊使它們形成G的最小產生樹。至少可以採用三種不同的貪婪策略來選擇這n-1條邊。這三種求解最小產生樹的貪婪演算法策略是: K r u s k a l演算法,P r i m演算法和S o l l i n演算法。1.Kruskal演算法(1) 演算法思想K r u s k a l演算法每次選擇n-
Time of Update: 2017-02-27
這個問題來自例1 - 2。船可以分步裝載,每步裝一個貨箱,且需要考慮裝載哪一個貨箱。根據這種思想可利用如下貪婪準則:從剩下的貨箱中,選擇重量最小的貨箱。這種選擇次序可以保證所選的貨箱總重量最小,從而可以裝載更多的貨箱。根據這種貪婪策略,首先選擇最輕的貨箱,然後選次輕的貨箱,如此下去直到所有貨箱均裝上船或船上不能再容納其他任何一個貨箱。例1-7 假設n=8, [w1 , ... w8]=[100,200,50,90,150,50,20,80], c=4 0
Time of Update: 2017-02-27
二分圖是一個無向圖,它的n個頂點可二分為集合A和集合B,且同一集合中的任意兩個頂點在圖中無邊相連(即任何一條邊都是一個頂點在集合A中,另一個在集合B中)。若且唯若B中的每個頂點至少與A中一個頂點相連時,A的一個子集A' 覆蓋集合B(或簡單地說,A' 是一個覆蓋)。覆蓋A' 的大小即為A' 中的頂點數目。若且唯若A' 是覆蓋B的子集中最小的時,A' 為最小覆蓋。例1-10 考察如圖1 - 6所示的具有1 7個頂點的二分圖,A={1, 2, 3, 16, 17}和B={4, 5, 6, 7, 8,
Time of Update: 2017-02-27
在這個問題中,給出有向圖G,它的每條邊都有一個非負的長度(耗費) a [i ][ j ],路徑的長度即為此路徑所經過的邊的長度之和。對於給定的源頂點s,需找出從它到圖中其他任意頂點(稱為目的)的最短路徑。圖13-10a 給出了一個具有五個頂點的有向圖,各邊上的數即為長度。假設源頂點s 為1,從頂點1出發的最短路徑按路徑長度順序列在圖13-10b 中,每條路徑前面的數字為路徑的長度。利用E.