• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 15  文章 - 5  trackbacks - 0
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            •  

            最新評論

            • 1.?re: 2011年9月26日[未登錄]
            • 我不是吹噓,為什么1,2,3,4,5,7,9,10,11,12我都知道一點????
              看來我估計可以過電面啊~_~
            • --ZJ
            • 2.?re: 2011年9月26日
            • 有計劃的人生會很精彩。。
            • --Cheap glueless lace front wigs
            • 3.?re: 2011年9月26日
            • (14)舉個例子說明你學習能力比較強,
              牛!

              那個騰訊就是做QQ的吧,QQ里面還內嵌個木馬,有事沒事的掃描下用戶磁盤,唉,公司技術就這鳥水平,還對應聘者提那么多要求。
            • --Chipset
            • 4.?re: 2011年9月26日
            • 問這么多問題,要求不低啊,呵呵,要回答好需要很扎實的基礎
            • --LoveBeyond
            • 5.?re: 2011年9月26日
            • 這些問題我十有八九答不上來...慚愧啊
            • --pezy

            閱讀排行榜

            評論排行榜

            人都是有惰性的,
            該篇文章轉自于中國心理網

            一般學習和工作生活中,我們都可能有這樣的經驗,就是當說想要作某件事情的時候,但過了好久發現還是沒有作;或者覺得有力氣使不出來;或者總覺得生活是灰色和抑郁的等等

            這類情況反應在生活中,就是生活好象總是被一種惰性纏繞,知道那不好,但又不知道從何處入手來改變。

            從心理學操作性反應的原則為基礎,對于人類的行為方式進行觀察后,心理學家提出這樣一種改進方式,以糾正惰性生活方式,并由這種惰性生活方式的結束而帶來整個人生的良性改變。

            你如果有興趣堅持嘗試一周以下方式,你會發現你整個人會很不同了,如果能繼續堅持,那惰性生活方式就會永遠不敢再接近你,而你將在人生獲得你愿意的成就

            先可以
            用一天到兩天時間給自己作一個行為記錄,把你通常每天要作的事情記下來,這包括記錄你所有的生活活動。這樣你即使粗粗的記,大約也會有幾十件。

            然后把其中一些如果吃飯等必須完成的事情剔除

            在此之后,你把剩余下來的幾十件事情按照你的興趣排列,把你最不喜歡作的事情放在第一位,把你最喜歡作的事情放在最后一位。

            最后,你就可以在以后一周內進行行動了,每天一早起來,從你最不喜歡的事情開始作起,并且堅持作完第一件事情,再作第二件事情……這么一直作到最后一件你喜歡的事情。

            在整個過程中,你開始會稍覺得困難,但你只要花很少的力氣稍稍堅持,你就能順利進行下去。千萬在中途不要跳躍那個先作不喜歡的再作喜歡的計劃

            這種方式是一種強化作用的方式,先一件困難的事情完成后,再作稍困難的事情,那是一種對于前面行動的強化,然后繼續,強化的效果會越來越大,一直大到你覺得你有力量來完成任何事情。

            對于改變惰性生活方式,這種方式具有很大的效果。而對于經常抑郁心情的人,這種生活方式將直接改變表現為抑郁的行為,而很容易的使抑郁的情緒結束,而只要堅持,抑郁的生活方式就會永遠結束。

            通過結束惰性或抑郁的行為,而結束惰性或抑郁的心理。

            如果你試試,你將發現這是多么有趣的事情。
            posted @ 2011-09-26 23:48 mengkai 閱讀(242) | 評論 (0)編輯 收藏
            今天也是也是一個比較特殊的日子吧,接到了第一次電話面試通知,無奈這幾天感冒狀態是相當不好,特別是今天頭暈腦脹,口腔潰瘍,上火氣泡,外加咳嗽難忍。那真是難受。在吃飯的時候接到了騰訊深圳那邊的電視面試通知,問我什么時候方便,方便的話要電話面試我,我告知8點左右有時間,如果今天不面試就明天這個時間,我就回到宿舍開機等著,然后等到8點心情有點激動,畢竟是第一次電話面試嘛,強忍難受的感冒,在電腦旁邊等,但是等到九點10分也沒有接到電話,于是上床睡覺,剛睡了不到10分鐘電話響起,開始面試,
            面試的問題都是很基礎的,首先自我介紹,這個部分做的不太好,介紹的比較少,那邊比較吃驚說,“啊就這些,那你介紹一些大學的生活”,之后就是技術方面的,
            (1)對C/C++語言熟悉嗎?平時開發都用它嗎?
            (2)熟悉STL編程嘛?用的多嗎?然后你介紹一下容器的定義,說出幾種容器,如何讓你設計容器,棧是如何實現的
            (3)區別一下STL中vector和list之間的區別,還問了其他一些適配器。
            (4)map的原理,熟悉那些STL中的幾種排序,你對sort,qsort內部是如何實現的研究過嘛?
            (5)對于排序中快速排序和堆排序之間區別,各自的特點。
            (6)然后對于多線程的開發問了一些
            (7)關于函數調用約定,幾種,各自的特點,應用的地方。
            (8)關于網絡編程的內容,寫過網絡編程方面的項目嗎?介紹一下
            (9)對于操作系統方面的,臨界區,死鎖,等等
            (10)c++為何沒有虛構造函數,多態如何實現的,關于虛函數的使用
            (11)問了關于內存方面的知識,堆,棧內存,常量,全局變量,局部變量,內存結構的有個研究嘛?深入了解嗎?
            (12)對于atoi,如果讓你實現該函數的功能,你如何實現,應該注意些什么問題。
            (13)你本科是網絡工程,問一些網絡方面的知識,
            (14)舉個例子說明你學習能力比較強,
            睡了一覺起來寫了一下,感覺面試的一般吧,過幾天可能會有其他面試或者通知實習。
            最后總結一些,基礎的知識需要經常回顧,電話面試需要注意的細節,要善于總結,從這次的電話面試中吸取教訓,為以后更多的電話面試做好準備,

            轉載(某個博客的):

            4 每天睡覺前堅持做三件事

                1. 今天都干了些什么,那些與課題實驗有關,用科學而簡練的語言描述出來,記錄下來,自認為失敗的實驗也要認真對待,并找出原因。

                2. 想好并安排好明天要做的實驗,千萬不要到了明天再準備。

                3. 前兩件事做不好,不要睡覺。

            就這樣,堅持做,一定會進步很快的。

            posted @ 2011-09-26 23:46 mengkai 閱讀(1870) | 評論 (5)編輯 收藏

            消息處理過程:
            1消息定義:
            消息簡單的說就是指通過輸入設備向程序發出指令要執行某個操作。具體的某個操作就是已經寫好的代碼,成為消息處理函數。
            為何要引進消息映射。一個程序往往擁有多個窗體,主窗口就算一個,其他菜單工具欄等等子窗口,那需要寫多少個switchcase語句,所以MFC采用了消息映射機制,利用一個數組,將窗口消息和相對應的消息處理函數進行映射,可以理解成這個是一個表,該機制叫消息映射
            AFX_MSGMAP可以得到基類的消息映射入口地址和得到本身的消息映射入口地址。
            2消息種類:
            (1)windows消息,主要包含WM_開頭的消息,WM_COMMAND消息除外,由窗口和視圖處理,此類消息帶有確定如何處理消息的參數。
            (2)控件通知,此類消息包含從控件和其他子窗口發送到其父窗口的WM_COMMAND通知消息,
            (3)命令消息,包含了用戶界面對象發出的WM_COMMAND通知消息,
            其中windows消息和控件通知消息由窗口來處理,CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView,CDialog
            命令消息更廣的是對象處理
            形式如下:ON_COMMAND(id,memberFxn);
            對于通知消息,例如樹形控件是ON_CONTROL(EN_CHANGE,id,memberFxn);
            3消息處理過程
            MFC消息處理過程如下:
            (1)_AfxCbtFilterHook()截獲消息(這個是一個鉤子函數);
            (2)_AfxCbtFilterHook()把窗口過程設定為AfxWndProc();
            (3)函數AfxWndProc()接收windows操作系統的發送的消息。
            (4)函數AfxWndProc()調用函數AfxCallWndProc()進行消息處理;
            (5)函數AfxCallWndProc()調用CWnd類的方法WindowProc進行消息處理。
            4添加用戶自定義消息處理函數
            第一步,定義消息,#define WM_MYMESSAGE (WM_USER+100)
            第二步,實現消息處理函數,該函數使用WPRAM和LPARAM參數,并返回LPRESULT
            LPRESULT CMainFrame::OnMyMessage(WPARAM wParam,LPARAM lParam)
            {
             return 0;
            }
            第三步:在類頭文件中的FX_MSG塊中說明消息處理函數
            形式如下
            afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam)
            第四步。在用戶類的消息塊中,使用ON_MESSAGE宏指令將消息映射到消息處理函數中。
            ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
            可以看出來,用戶定義的消息和通過classwizard添加的消息一樣。
            5windows消息循環機制
            windows消息函數
            從消息隊列中取出消息
            在MSDN中PeekMessage的定義
            BOOL PeekMessage
            The PeekMessage function checks a thread message queue for a message and places the message (if any) in the specified structure.

            BOOL PeekMessage(
              LPMSG lpMsg,         // pointer to structure for message
              HWND hWnd,           // handle to window
              UINT wMsgFilterMin,  // first message
              UINT wMsgFilterMax,  // last message
              UINT wRemoveMsg      // removal flags
            );
            從線程消息隊列中取出一個消息
            GetMessage
            The GetMessage function retrieves a message from the calling thread's message queue and places it in the specified structure. This function can retrieve both messages associated with a specified window and thread messages posted via the PostThreadMessage function. The function retrieves messages that lie within a specified range of message values. GetMessage does not retrieve messages for windows that belong to other threads or applications.

            BOOL GetMessage(
              LPMSG lpMsg,         // address of structure with message
              HWND hWnd,           // handle of window
              UINT wMsgFilterMin,  // first message
              UINT wMsgFilterMax   // last message
            );

            如果把2,3,4設置為null或者0,表示接受本程序的所有消息
            還要注意上面兩者的區別,
            都是比較基礎的東西,

            posted @ 2011-09-25 10:43 mengkai 閱讀(301) | 評論 (0)編輯 收藏
             窮舉(枚舉)算法,又稱是暴力破解法,也是我接觸最多的理解比較全面深刻的一個算法。 
            窮舉算法就是一一列出所有可能的元素,用題目已知的條件驗證每個結果,看是否滿足。
            枚舉法的本質就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個條件:
            1)可預先確定候選答案的數量;
            2)候選答案的范圍在求解之前必須有一個確定的集合。
            一般應用在規模比較小的問題上,因為窮舉算法一般都是循環和條件判斷來實現的,當循環比較多的時候可能,時間復雜性和空間復雜性都很大。
            舉幾個例子來看看:
            委派任務
             某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件:
             1)A和B兩人中至少去一人;
             2)A和D不能一起去;
             3)A、E和F三人中要派兩人去;
             4)B和C都去或都不去;
             5)C和D兩人中去一個;
             6)若D不去,則E也不去。
             問應當讓哪幾個人去?
            我們可以根據已知信息得到一些限制性的條件,假設能去執行任務的代表是1,而不能去執行任務的是0,
            A+B >1 :表示A,B至少一人要去
            A+D != 2:表示AD不能同時去
            A+E+F == 2:表示三者中派兩人去
            B+C == 0 & B+C == 2:表示BC要么都去,要么都不去
            C+D == 1:表示CD只能有一人去,
            D+E == 0 & D==1表示:D不去的話,則E也不去,D去的話,E隨便,
            核心算法
            nt a,b,c,d,e,f;
             for(a=1;a>=0;a--) /*窮舉每個人是否去的所有情況*/
             for(b=1;b>=0;b--) /*1:去 0:不去*/
             for(c=1;c>=0;c--)
             for(d=1;d>=0;d--)
             for(e=1;e>=0;e--)
             for(f=1;f>=0;f--)
             if(a+b>=1&&a+d!=2&&a+e+f==2
             &&(b+c==0||b+c==2)&&c+d==1
             &&(d+e==0||d==1))
             {
             printf("A will%s be assigned. \n",a?"":"not");
             printf("B will%s be assigned. \n",b?"":"not");
             printf("C will%s be assigned. \n",c?"":"not");
             printf("D will%s be assigned. \n",d?"":"not");
             printf("E will%s be assigned. \n",e?"":"not");
             printf("F will%s be assigned. \n",f?"":"not");
             }
            一個比較有代表性的問題就是填寫運算符的游戲
            5 5 5 5 5 =5 
            由于算術表達式的特殊性,在編程求解這個算式時,需要注意以下幾點:
            (1)當填入除號時,要求右側的數不能為0
            (2)乘除的運算級別比加減高。       
            代碼如下:
                int j,i[5]; //循環變量 ,數組i用來表示4個運算符
                int sign;//累加運算時的符號  
                int result; //保存運算式的結果值
                int count=0; //計數器,統計符合條件的方案
                int num[6];  //保存操作數
                float left,right; //保存中間結果
                char oper[5]={' ','+','-','*','/'}; //運算符
                printf("請輸入5個數:");
                for(j=1;j<=5;j++)
                    scanf("%d",&num[j]);
                printf("請輸入結果:");
                scanf("%d",&result);
                for(i[1]=1;i[1]<=4;i[1]++)//循環4種運算符,1表示+,2表示-,3表示*,4表示/
                {
                    if((i[1]<4) || (num[2]!=0))//運算符若是/,則第二個運算數不能為0
                    {
                        for(i[2]=1;i[2]<=4;i[2]++)
                        {
                            if((i[2]<4) || (num[3]!=0))
                            {
                                for(i[3]=1;i[3]<=4;i[3]++)
                                {
                                    if((i[3]<4) || num[4]!=0)
                                    {
                                        for(i[4]=1;i[4]<=4;i[4]++)
                                        {
                                            if((i[4]<4) || (num[5]!=0))
                                            {
                                                left=0;
                                                right=num[1];
                                                sign=1;
                                                for(j=1;j<=4;j++)
                                                {
                                                    switch(oper[i[j]])
                                                    {
                                                        case '+':
                                                             left=left+sign*right;
                                                             sign=1;
                                                             right=num[j+1];
                                                             break;
                                                        case '-':
                                                             left=left+sign*right;
                                                             sign=-1;
                                                             right=num[j+1];
                                                             break;//通過f=-1實現減法
                                                        case '*':
                                                             right=right*num[j+1];
                                                             break;//實現乘法
                                                        case '/':
                                                             right=right/num[j+1];//實現除法
                                                             break;
                                                    }
                                                }
                                                if(left+sign*right==result)
                                                {
                                                    count++;
                                                    printf("%3d:",count);
                                                    for(j=1;j<=4;j++)
                                                        printf("%d%c",num[j],oper[i[j]]);
                                                    printf("%d=%d\n",num[5],result);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if(count==0)
                    printf("沒有符合要求的方法!\n");    

            posted @ 2011-09-25 10:22 mengkai 閱讀(958) | 評論 (0)編輯 收藏
            首先我們在MSDN看一下printf的原型和sprintf的原型

            int printf( const char *format [, argument]... );

            int sprintf( char *buffer, const char *format [, argument] ... );
            從定義來看兩者的功能其實很相似的。
            如果你接觸的控制臺的程序較多的話,見到printf的比較多,printf函數打印結果到屏幕上,而sprintf函數可以完成其他數據類型轉換為字符串。
            從以下幾點來說明一下
            (1)函數的中前兩個參數是固定外,可選參數是任意個,buffer是存放字符串指針或者數組名字,fromat是格式化字符串,只要是printf使用的格式化字符串,在sprintf都可以使用,格式化字符串是該函數的精髓。
            (2)首先可以把一個整型數據格式化為字符串。比如:char str[20];int i_arg = 12345;sprintf(buf,"%-6d",i_arg);
            (3)看一個浮點類型的例子。比如:char str[20];double d_arg = 3.1415926;sprintf(str,"%6.2f",d_arg);
            可以控制精度
            (4)連接兩個字符串,也可以將多個字符串連接起來,%m.n在字符串的輸出中,m表示寬度,字符串共占的列數;n表示實際的字符數。%m.n在浮點數中,m也表示寬度,n表示小數的位數。比如:char dest[256];char src1[] = {'a','b','c','d','e'};
            char src2[] ={'1','2','3','4'};sprintf(dest,"%.5s%.4s",src1,src2);也可以動態的截取字符串的某一些字符,char dest[256];char src1[] = {'a','b','c','d','e'};
            char src2[] ={'1','2','3','4'};sprintf(dest,"%.*s%.*s",2,src1,3,src2);也可以竊取浮點類型的有效位sprintf(str,"%*.*",10,4,d_arg);
            補充一點,sprintf的返回值就是字符串的字符的個數,也就是strlen(str)的結果,
            也可以打印某個參數的地址
            int i=2;
            sprintf(str,"%0*x",sizeof(void *),&i);或者用sprintf(str,"%p",&i);

            此外這些都是都是多字節類型(ANSI)的函數,而對于unicode類型的應該使用的相似的函數:

            int wprintf( const wchar_t *format [, argument]... );

             

            int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );

            用法和上面的很相似的,就是類型不同而已,
            對于printf和sprintf該函數的包含在<stdio.h>頭文件
            而sprintf和wprintf函數包含在<stdio.h>或者<wchar.h>頭文件中。

            posted @ 2011-09-24 22:14 mengkai 閱讀(4047) | 評論 (0)編輯 收藏
            僅列出標題
            共2頁: 1 2 
            久久精品桃花综合| 久久久精品人妻无码专区不卡 | 日本道色综合久久影院| 欧美日韩中文字幕久久伊人| 久久99精品久久久久久不卡| 热综合一本伊人久久精品| 精品国产乱码久久久久久人妻| 国产成人久久精品一区二区三区| 国产精品成人久久久久三级午夜电影| 亚洲欧洲精品成人久久曰影片| 国产精品国色综合久久| 中文成人久久久久影院免费观看| 久久久久亚洲AV成人片| 伊人色综合九久久天天蜜桃| 亚洲国产精久久久久久久| 日产精品久久久一区二区| 久久久久亚洲爆乳少妇无 | 久久久久国产日韩精品网站| 久久综合给合久久狠狠狠97色 | 国产成人综合久久精品红| 欧美激情精品久久久久| 久久精品午夜一区二区福利| 三级三级久久三级久久| 日韩AV毛片精品久久久| 国产视频久久| 久久久久中文字幕| 久久精品www| 久久99热国产这有精品| 精品久久久久久中文字幕人妻最新| 欧美国产成人久久精品| 2021国产精品午夜久久| 香蕉久久夜色精品国产2020| 精品久久久无码中文字幕天天 | 久久99国产精品久久| 国产成人久久激情91| 精品国际久久久久999波多野| 久久夜色精品国产噜噜麻豆| 精品国产VA久久久久久久冰| 久久99国产综合精品免费| 精品一区二区久久| 久久精品无码一区二区三区日韩|