百思橋[筆試題]
2013-09-25

注:筆試題根據面試者回憶記錄,僅供參考;

一、選擇題
1、
main()
{
     struct node
     {
          int a;
          int b;
          int c;
      };
     struct node s={3,5,6};
     struct node *pt = &s;
     printf("%d", *(int*)pt);
}
這段程序的輸出是:
A 3     B5     C6     D 7

2、
int foo(int x, int n)
{
     int val;
     val=1;
     if(n>0)
     {
          if(n%2==1) val=val*x;
          val=val*foo(n*x, n/2);
     }
     return val;
}   
這段代碼對x和n完成什么樣的功能(操作)?
A x^n     B x*n     Cn^x     D以上均不是

3、
int *fl(void)
{
     int x=10;
     return(&x);
}

int *f2(void)
{
     int *ptr;
     *ptr=10;
     return ptr;
}

int *f3(void)
{
     int *ptr;
     ptr=(int*)malloc(sizeof(int));
     return ptr;
}
上面這3個函數哪一個最可能引起指針方面的問題?
A 只有f3     B只有f1和f3     C只有f1和f2     Df1,f2,f3

4
main()
{
     char p;
     char buf[10]={1,2,3,4,5,6,9,8};
     p=(buf+1)[5];
     printf("%d",p);
}
這段程序的輸出是:
A 5     B 6     C 9     D 以上都不對

二、簡答題
1、Linux的進程間通信:管道通信、消息隊列、共享內存分別適合哪些場合?

2、Linux環境中,庫函數調用和系統調用的不同點?

3、嵌入式設備中的文件系統有哪些?NANDflash適合用哪種?

4、面向對象的三個基本特征,并簡單敘述

5、閱讀下面代碼:

#pragma pack(8)
     struct s1{ short a;
                      long b;
     }
     struct s2{ short c;
                      long d;
                      long long e;
     }
#pragma pck()
     請問:1、sizeof(s2)=?
                2、s2的s1中a后面空了幾個字節接著是b?

6、簡答socket編程:一個client和一個sever,兩者之間建立了一個基于TCP的socket連接,在剛剛建立好連接后,尚未進行數據傳輸,server端應用程序突然crush掉了,現在立刻重啟server端應用程序(假設間隔很短),一般情況下server端應用程序是無法啟動的。請問是什么原因?如何解決這個問題?

7、編程題:不調用庫函數實現strcpy函數,將strSrc拷貝到strDest,并返回目的地址:
char *strcpy(char* strDest, const char *strSrc)  //補充下面代碼
{

}

 

新疆十一选五开奖