• <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>
            asm, c, c++ are my all
            -- Core In Computer
            posts - 139,  comments - 123,  trackbacks - 0

            int Strcmp(char *str1, char *str2)
            {
            ?? int i=0;
            ?? int b=0;
            ?? while(str1[i]||str2[i])
            ?? {
            ????? if(str1[i]>str2[i])
            ????? {
            ???????? b=1;break;
            ????? }
            ????? else if(str1[i]<str2[i])
            ????? {
            ???????? b=-1;break;
            ????? }
            ????? i++;
            ?? }
            ?? return b;
            }

            ***************************************************************************************************************
            1.說出下面這個程序的運行結果,并簡要敘述其理由:

            char buf1[10]="hello";
            char buf2[10]="hello";
            if (buf1==buf2)
            printf("equal!");
            else printf("not equal!");
            因為buf1,buf2分配了不同的內存塊,而比較的是數組名,實際上是兩個分別指向數組起始元素地址的指針。

            2.指出下面這段程序中存在一些什么問題:

            int loop,a[5];
            int* p=a;
            for (loop=0;loop<5;loop++)
            { p++;
            *p=loop;
            }

            數組a[5]在創建時沒有初始化, 在for循環里也沒有起到完全初始化數組的作用,而且對一塊未知內存賦值。在最后一輪循環
            結束時p指向了數組a[5]的最后一個元素的下一個地址。

            string 系列

            char * strcpy( char *strDest, const char *strSrc )
            {
             assert( (strDest != NULL) && (strSrc != NULL) );
            char *address = strDest;
             while( (*strDest++ = * strSrc++) != ‘\0’ );
            return address;
            }

            char* strncpy(char* strdest, const char* strsrc, int n)
            {
            ?? assert((strdest != NULL) && (strsrc != NULL));
            ?? char* address = strdest;
            ?? while(n-- > 0)
            ????? *strdest++ = *strsrc++;
            ?? return address;
            }

            int strcmp(const char* str1, const char* str2)
            {
            ?? assert((str1 != NULL) && (str2 != NULL);
            ?? int ret = 0;
            ?? while (!(ret = (unsigned char*)*str1 - (unsigned char*)*str2) && (*str2))
            ?? {
            ????? str1++;
            ????? str2++;
            ?? }
            ?? if (ret > 0)
            ????? ret = 1;
            ?? else if (ret < 0)
            ????? ret = -1;
            ?? return ret;
            }

            int strlen(const char* str)
            {
            ?? assert(str != NULL);
            ?? int len = 0;
            ?? while ('\0' != *str++)
            ????? len++;
            ?? return len;
            }
            類string的構造函數
            string::string(const char* str)
            {
            ?? if(str == NULL)
            ?? {
            ????? m_data = new char[1];
            ????? *m_data = '\0';
            ??? }
            ??? else
            ??? {
            ?????? int length = strlen(str);
            ?????? m_data = new char[str + 1];
            ?????? strcpy(m_data, str);
            ???? }
            }

            string 的析構函數
            string::~string()
            {
            ?? delete [] m_data;
            }

            string 的拷貝構造函數
            string ::string(const string& other)
            {
            ?? int len = strlen(other.m_data);
            ?? m_data = new char[len + 1];
            ?? strcpy(m_data, other.m_data);
            }

            string 的賦值函數
            string& string::operator=(const string& other)
            {
            ?? if (this == &other)
            ????? return *this;
            ?? delete [] m_data;
            ?? int len = strlen(other.m_data);
            ?? m_data = new char[len + 1];
            ?? strcpy(m_data, other.m_data);
            ?? return *this;
            }??


            不用任何局部和全局變量實現int strlen(char *a)

            int strlen(char *a) {
            ??? if('\0' == *a)
            ??????? return 0;
            ??? else
            ??????? return 1 + strlen(a + 1);
            }


            1)sizeof相關系列問題
            2)const相關系列問題
            3)大量林銳書的習題,以及各種變種
            這三個幾乎是每次必出現
            下面的這些是程序相關題,很多都是以前有討論過的,還請各位大俠能整理個比較適合做面試時答案的解答,多謝了.最好能給出
            討論鏈接,讓我等后輩有學習的機會.
            1)求出相似度的算法.
            2)寫出二分查找的代碼.
            int binary_search(int* arr, int key, int n)
            {
            ?? int low = 0;
            ?? int high = n - 1;
            ?? int mid;
            ?? while (low <= high)
            ?? {
            ????? mid = (high + low) / 2;
            ????? if (arr[mid] > k)
            ???????? high = mid - 1;
            ????? else if (arr[mid] < k)
            ???????? low = mid + 1;
            ????? else
            ???????? return mid;
            ?? }
            ?? return -1;
            }
            ??
            3)寫出在母串中查找子串出現次數的代碼.
            *4)寫出快速排序或者某種排序算法代碼
            出現次數相當頻繁
            5)寫出查找從一個集合中輸出所有子集合的算法.
            *6)實現strcpy函數
            char* strcpy(char* dest, const char* src)
            {
            ?? assert((dest != NULL) && (src != NULL));
            ?? char* address = dest;
            ?? while ('\0' != (*dest++ = *src++));
            ?? return address;
            }
            出現次數相當頻繁
            *7)實現strcmp函數
            int mystrcmp(const char* str1, const char* str2)
            {
            ?? assert((str1 != NULL) && (str2 != NULL));
            ?? int ret = 0;
            ?? while (!(ret = *(unsigned char*)str1 - *(unsigned char*)str2) && *str2)
            ?? {
            ????? str1++;
            ????? str2++;
            ?? }
            ?? if (ret > 0)
            ????? ret = 1;
            ?? else if (ret < 0)
            ????? ret = -1;
            ?? return ret;
            }
            ??
            出現次數相當頻繁
            8)將一個單鏈表逆序
            struct test
            {
            ?? int number;
            ?? double score;
            ?? test* next;
            }
            void reverse(test*& head)
            {
            ?? test* pe = head;
            ?? test* ps = head->next;
            ?? while(ps != NULL)
            ?? {
            ????? pe->next = ps->next;
            ????? ps->next = head;
            ????? head = ps;
            ????? ps = pe->next;
            ??? }
            }?
            ??
            ?????
            ?????
            9)循環鏈表的節點對換和刪除。
            *10)將一個數字字符串轉換為數字."1234" -->1234
            #i nclude<iostream>
            using namespace std;

            int f(char* s)
            {
            ?? int k = 0;
            ?? while (*s)
            ?? {
            ????? k = 10 * k + (*s++)- '0';
            ?????
            ?? }
            ?? return k;
            }

            int main()
            {
            ?? int digit = f("4567");
            ?? cout<<digit<<endl;
            ?? cin.get();
            }
            出現次數相當頻繁
            11)實現任意長度的整數相加或者相乘功能。
            *12)寫函數完成內存的拷貝
            一個內存拷貝函數的實現體

            void *memcpy(void *pvTo,const void *pvFrom,size_t size)

            {

            assert((pvTo!=NULL)&&(pvFrom!=NULL));

            byte *pbTo=(byte*)pvTo; //防止地址被改變

            byte *pbFrom=(byte*)pvFrom;

            while (size-- >0)

            *pbTo++ = *pbForm++;

            return pvTo;

            }

            出現次數相當頻繁

            ?


            .筆試:
            1)寫一個內存拷貝函數,不用任何庫函數.就是前些時候本版討論的那個問題.
            ?void* memcpy(void* pvTo, const void* pvFrom, size_t size)
            ?{
            ??? assert((pvTo != NULL) && (pvFrom != NULL));
            ??? byte* pbTo = pvTo;
            ??? byte* pbFrom = pbFrom;
            ??? while (size-- > 0)
            ??? {
            ?????? *pbTo++ = *pbFrom++;
            ??? }
            ??? return pvTo;
            ?}
            2)將一個單鏈表逆序.(這個問題是個常規的數據結構問題.不過不小心時會損失效率)
            3)客房預定的問題.根據客戶報的人數,客房等級來從預備的客房中選擇出所有符合要求的

            客房號.客戶沒有要求等級時,只考慮人數因素就可以了.要考慮有些客房已經預定的情況.

            (寫代碼是要考慮好彼此的效率)
            4)對于一個無序序列進行二分查找
            線排序再查找

            5)將一個數字字符串轉換為數字."1234" -->1234
            int convert(char* str)
            {
            ?? int k = 0;
            ?? while (*str != '\0')
            ?? {
            ????? k = k * 10 + *s++ - '0';
            ?? }
            ?? return k;
            }
            6)在文件(調用庫函數創建的,不用考慮數據庫的方式)中讀入信息(包括職工號,職工產量)

            .根據輸入的信息(包括職工號,職工產量)..檢測是否有相同的職工號記錄,如有,則增加其

            產量.如沒有,則創建新的記錄.最后的記錄排序的依據是職工產量(降序),如果產量相同,則

            按職工號(升序). (具體的題目記不太清了,這個題目有點長.哪位也去筆試了.請修正一下

            子)
            .
            2.面試
            1)找出兩個中文句子的相似度.(例如"中國江蘇南京" "江蘇省中國南京市".實際上是指的

            同一個地方.面試官的要求是一分鐘給出求相似度的算法.)(幸好聽老師講過中文分詞,要不

            然當場就掛了)
            2)寫出二分查找的代碼.
            3)將上述代碼通用化.(在 C 的規范內.就是我前面所的那個問題)
            4)寫出在母串中查找子串出現次數的代碼.(不顧及效率時好說.當時一不留神把 KMP 說了

            出來,結果又讓我描述整個過程.汗..只好從頭又學了.不過沒有冷場,邊學邊說.hoho)
            5)如何看待在函數中定義很多靜態變量.
            6)寫出quick_sort
            7)寫出查找從一個集合中輸出所有子集合的算法.
            8)有關于各種類型指針.各種數據類型的 sizeof 運算結果( 在 C 中)

            posted on 2006-10-18 23:15 Jerry Cat 閱讀(2488) 評論(1)  編輯 收藏 引用

            FeedBack:
            # re: C++面試題集3
            2006-10-18 23:31 | Jerry Cat
            不知here有沒有南京的兄弟, 我以前南京的一個同學趙小姐要我幫忙發個租房消息, 某雖不懂但老同學的事也不好推, 將就如下:

            現有位于南京市江寧區"武夷花園"小區的三室一廳住房一套, 水,電,氣齊全, 室內有熱水器, 電視機及床, 衣柜等簡單家具. 整租, 與人合租均可. 聯系人: 趙小姐 電話:025-83909202  回復  更多評論
              

            <2006年10月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久综合丝袜日本网| 久久99热这里只有精品66| 国内精品久久人妻互换| 免费观看久久精彩视频| 久久这里只有精品视频99| 亚洲国产美女精品久久久久∴ | 成人国内精品久久久久一区| 亚洲综合精品香蕉久久网97| 亚洲第一永久AV网站久久精品男人的天堂AV | 精品蜜臀久久久久99网站| 99久久精品九九亚洲精品| 一本大道久久东京热无码AV | 久久精品无码一区二区app| 97视频久久久| 国产精品成人无码久久久久久 | 久久国产免费观看精品3| 人妻精品久久久久中文字幕| 精品少妇人妻av无码久久| 久久综合亚洲色一区二区三区| 久久综合丁香激情久久| 亚洲av成人无码久久精品| 欧美日韩精品久久久免费观看| 久久国产精品-久久精品| 日本WV一本一道久久香蕉| 久久伊人五月天论坛| 久久天堂电影网| 丁香五月网久久综合| 久久精品国产亚洲av日韩| 伊人久久综合无码成人网| 久久久久黑人强伦姧人妻| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久国产精品久久| 亚洲乱码中文字幕久久孕妇黑人| 久久婷婷五月综合成人D啪 | 亚洲精品国产综合久久一线| 亚洲午夜久久久精品影院| 久久精品国产99国产精品澳门 | 99精品伊人久久久大香线蕉| 久久久久一区二区三区| 久久免费线看线看| 国产99久久久国产精免费|