百度筆試題

1當前計算機系統一般會採用層次結構存儲數據,請介紹下典型計算機存儲系統一般分爲哪幾個層次,爲什麼採用分層存儲數據能有效提高程序的執行效率?

1)典型計算機存儲系統一般分爲:高速緩存(Cache),主存,輔存;三者速度遞減,價格遞減,容量遞增。

 

2)原因:最基本的原理是程序的局部性,即某一指令(數據)一旦被執行(訪問),那麼不久之後很可能再次被執行(訪問)。

高速緩存(Cache),主存,輔存;三者速度遞減,價格遞減,容量遞增。

Cache<-->主存:解決速度問題;

主存<-->輔存:解決容量問題。

2Unix/Linux系統中殭屍進程是如何產生的?有什麼危害?如何避免?

1)產生

一般是 子進程結束後,是它的內核棧 (特別是進程描述符)依然駐留在內存中,這時需要父進程在wait 系統調用中,取得子進程的退出信息,然後內核就能釋放那個進程描述符。如果父進程沒有這樣做的話,子進程就淪爲僵死進程。

2)危害

Linux系統對運行的進程數量有限制,如果產生過多的殭屍進程佔用了可用的進程號,將會導致新的進程無法生成。這就是殭屍進程對系統的最大危害。

3)避免

1》signal(SIGCHLD,SIG_IGN);

2》fork 2次,讓孫子進程由 init(1) 進程接管

3》用waitpid等待子進程返回

3簡述Unix/Linux系統中使用socket庫編寫服務器端程序的流程,請分別用對應的socket通信函數表示

服務器端流程如下:1.創建serverSocket  2.初始化 serverAddr(服務器地址)  3.socketserverAddr 綁定 bind  4.開始監聽 listen  5.進入while循環,不斷的accept接入的客戶端socket,進行讀寫操作writeread  6.關閉serverSocket
客戶端流程: 1.創建clientSocket  2.初始化 serverAddr  3.鏈接到服務器 connect  4.利用writeread 進行讀寫操作  5.關閉clientSocket 
4使用C/C++編寫函數,實現字符串反轉,要求不使用任何系統函數,且時間複雜度最小,函數原型:char* reverse_str(char* str)(15)

char* reverse_str( char str[] )

{

    //char *cp_left = str;

    //char *cp_right = str;

 

    int l = 0;

    int r = 0;

    while( *(str+r) != '\0' )

        r++;

    r--;

 

    char tmp='\0';    

    while( l <= r )

    {

        tmp = str[l];

        str[l] = str[r];

        str[r] = tmp;

 

        l++;

        r--;

    }

 

    return str;

}

5給定一個如下格式的字符串(1,(2,3),(4,(5,6),7))括號內的元素可以是數字,也可以是另一個括號,請實現一個算法消除嵌套的括號,比如把上面的表達式變成:(1,2,3,4,5,6,7),如果表達式有誤請報錯。

int reg_str( char *cp_src, char *cp_des )

{

    int stack_num = 0;

    *(cp_des++) = '(';

 

    while( *cp_src!= '\0' )

    {        

        if( *cp_src == '(' )

        {

            stack_num++;

 

        }

        else if( *cp_src == ')' && stack_num >0 )

            stack_num--;

        else if( *cp_src == ',' )

        {

            *cp_des = *cp_src++;

            continue;

        }

        else if ( '0' <= *cp_src && *cp_src <= '9' )

        {

            *(cp_des++) = *cp_src;

        }

        else

        {

            printf( "Expression ERROR!\n" );

            return 0;

        }

 

        cp_src++;

    }

 

    *(cp_des++) = ')';

    *(cp_des++) = '\0';

    return 1;

}

 

由“名企筆試題庫”收集整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章