• <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年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            •  

            最新評論

            • 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里面還內(nèi)嵌個木馬,有事沒事的掃描下用戶磁盤,唉,公司技術(shù)就這鳥水平,還對應(yīng)聘者提那么多要求。
            • --Chipset
            • 4.?re: 2011年9月26日
            • 問這么多問題,要求不低啊,呵呵,要回答好需要很扎實的基礎(chǔ)
            • --LoveBeyond
            • 5.?re: 2011年9月26日
            • 這些問題我十有八九答不上來...慚愧啊
            • --pezy

            閱讀排行榜

            評論排行榜

            人都是有惰性的,
            該篇文章轉(zhuǎn)自于中國心理網(wǎng)

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

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

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

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

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

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

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

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

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

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

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

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

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

            轉(zhuǎn)載(某個博客的):

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

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

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

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

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

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

            消息處理過程:
            1消息定義:
            消息簡單的說就是指通過輸入設(shè)備向程序發(fā)出指令要執(zhí)行某個操作。具體的某個操作就是已經(jīng)寫好的代碼,成為消息處理函數(shù)。
            為何要引進消息映射。一個程序往往擁有多個窗體,主窗口就算一個,其他菜單工具欄等等子窗口,那需要寫多少個switchcase語句,所以MFC采用了消息映射機制,利用一個數(shù)組,將窗口消息和相對應(yīng)的消息處理函數(shù)進行映射,可以理解成這個是一個表,該機制叫消息映射
            AFX_MSGMAP可以得到基類的消息映射入口地址和得到本身的消息映射入口地址。
            2消息種類:
            (1)windows消息,主要包含WM_開頭的消息,WM_COMMAND消息除外,由窗口和視圖處理,此類消息帶有確定如何處理消息的參數(shù)。
            (2)控件通知,此類消息包含從控件和其他子窗口發(fā)送到其父窗口的WM_COMMAND通知消息,
            (3)命令消息,包含了用戶界面對象發(fā)出的WM_COMMAND通知消息,
            其中windows消息和控件通知消息由窗口來處理,CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView,CDialog
            命令消息更廣的是對象處理
            形式如下:ON_COMMAND(id,memberFxn);
            對于通知消息,例如樹形控件是ON_CONTROL(EN_CHANGE,id,memberFxn);
            3消息處理過程
            MFC消息處理過程如下:
            (1)_AfxCbtFilterHook()截獲消息(這個是一個鉤子函數(shù));
            (2)_AfxCbtFilterHook()把窗口過程設(shè)定為AfxWndProc();
            (3)函數(shù)AfxWndProc()接收windows操作系統(tǒng)的發(fā)送的消息。
            (4)函數(shù)AfxWndProc()調(diào)用函數(shù)AfxCallWndProc()進行消息處理;
            (5)函數(shù)AfxCallWndProc()調(diào)用CWnd類的方法WindowProc進行消息處理。
            4添加用戶自定義消息處理函數(shù)
            第一步,定義消息,#define WM_MYMESSAGE (WM_USER+100)
            第二步,實現(xiàn)消息處理函數(shù),該函數(shù)使用WPRAM和LPARAM參數(shù),并返回LPRESULT
            LPRESULT CMainFrame::OnMyMessage(WPARAM wParam,LPARAM lParam)
            {
             return 0;
            }
            第三步:在類頭文件中的FX_MSG塊中說明消息處理函數(shù)
            形式如下
            afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam)
            第四步。在用戶類的消息塊中,使用ON_MESSAGE宏指令將消息映射到消息處理函數(shù)中。
            ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
            可以看出來,用戶定義的消息和通過classwizard添加的消息一樣。
            5windows消息循環(huán)機制
            windows消息函數(shù)
            從消息隊列中取出消息
            在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設(shè)置為null或者0,表示接受本程序的所有消息
            還要注意上面兩者的區(qū)別,
            都是比較基礎(chǔ)的東西,

            posted @ 2011-09-25 10:43 mengkai 閱讀(308) | 評論 (0)編輯 收藏
             窮舉(枚舉)算法,又稱是暴力破解法,也是我接觸最多的理解比較全面深刻的一個算法。 
            窮舉算法就是一一列出所有可能的元素,用題目已知的條件驗證每個結(jié)果,看是否滿足。
            枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個條件:
            1)可預(yù)先確定候選答案的數(shù)量;
            2)候選答案的范圍在求解之前必須有一個確定的集合。
            一般應(yīng)用在規(guī)模比較小的問題上,因為窮舉算法一般都是循環(huán)和條件判斷來實現(xiàn)的,當循環(huán)比較多的時候可能,時間復雜性和空間復雜性都很大。
            舉幾個例子來看看:
            委派任務(wù)
             某偵察隊接到一項緊急任務(wù),要求在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也不去。
             問應(yīng)當讓哪幾個人去?
            我們可以根據(jù)已知信息得到一些限制性的條件,假設(shè)能去執(zhí)行任務(wù)的代表是1,而不能去執(zhí)行任務(wù)的是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 
            由于算術(shù)表達式的特殊性,在編程求解這個算式時,需要注意以下幾點:
            (1)當填入除號時,要求右側(cè)的數(shù)不能為0
            (2)乘除的運算級別比加減高。       
            代碼如下:
                int j,i[5]; //循環(huán)變量 ,數(shù)組i用來表示4個運算符
                int sign;//累加運算時的符號  
                int result; //保存運算式的結(jié)果值
                int count=0; //計數(shù)器,統(tǒng)計符合條件的方案
                int num[6];  //保存操作數(shù)
                float left,right; //保存中間結(jié)果
                char oper[5]={' ','+','-','*','/'}; //運算符
                printf("請輸入5個數(shù):");
                for(j=1;j<=5;j++)
                    scanf("%d",&num[j]);
                printf("請輸入結(jié)果:");
                scanf("%d",&result);
                for(i[1]=1;i[1]<=4;i[1]++)//循環(huán)4種運算符,1表示+,2表示-,3表示*,4表示/
                {
                    if((i[1]<4) || (num[2]!=0))//運算符若是/,則第二個運算數(shù)不能為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實現(xiàn)減法
                                                        case '*':
                                                             right=right*num[j+1];
                                                             break;//實現(xiàn)乘法
                                                        case '/':
                                                             right=right/num[j+1];//實現(xiàn)除法
                                                             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 閱讀(975) | 評論 (0)編輯 收藏
            首先我們在MSDN看一下printf的原型和sprintf的原型

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

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

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

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

             

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

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

            posted @ 2011-09-24 22:14 mengkai 閱讀(4057) | 評論 (0)編輯 收藏
            僅列出標題
            共2頁: 1 2 
            蜜桃麻豆WWW久久囤产精品| 久久久久国产一区二区三区| 性欧美丰满熟妇XXXX性久久久| 久久久久人妻一区二区三区| 国产V综合V亚洲欧美久久| 久久se这里只有精品| 麻豆AV一区二区三区久久| 久久亚洲欧洲国产综合| 国产综合久久久久久鬼色| 中文精品99久久国产 | 浪潮AV色综合久久天堂| 国产精品va久久久久久久| 一本一本久久a久久综合精品蜜桃| 国产精品欧美久久久天天影视| 人妻中文久久久久| 久久精品中文字幕久久| 少妇无套内谢久久久久| 久久99久久成人免费播放| 久久婷婷成人综合色综合| 久久综合亚洲鲁鲁五月天| 久久99精品九九九久久婷婷| 久久国产亚洲精品无码| 亚洲中文久久精品无码ww16 | 国内精品伊人久久久久av一坑| 一本综合久久国产二区| 亚洲欧美一级久久精品| 欧美日韩精品久久久久| 久久精品成人免费看| 日本欧美久久久久免费播放网 | 性高湖久久久久久久久AAAAA | 久久精品国产久精国产果冻传媒 | 久久久人妻精品无码一区 | 91亚洲国产成人久久精品| 久久久老熟女一区二区三区| 久久精品国产亚洲AV忘忧草18| 亚洲Av无码国产情品久久| 一本久久免费视频| 中文国产成人精品久久不卡| 亚洲国产精品无码久久一区二区 | 91精品国产91久久久久久| 久久综合九色综合97_久久久|