免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
2012搜狗校園招聘筆試題

1、下面代碼中for循環(huán)共執(zhí)行了多少次?

unsigned short i,j;for(i=0, j=2; i!=j; i+=5, j+=7){}

unsigned short占用2個字節(jié),當(dāng)數(shù)據(jù)范圍到頭了(2^16-1),就又從0開始計數(shù)了,這個其實就是兩輛汽車行駛在一個圓圈里的汽車追及問題。一個速度為5,一個速度為7,當(dāng)速度為7的超越速度為5的時候,兩個汽車就相遇了,2 + 7n - 5n = 2^16 所以共循環(huán)了32767次。

unsigned short i,j;  for(i=3,j=7;i!=j;i+=3,j+=7)  

這個也是一樣的,7 + 7n - (3+3n) = 2^16

2、下面程序應(yīng)該輸出多少?

 

#include <iostream.h>using namespace std;char *c[] = { "ENTER", "NEW", "POINT", "FIRST" };   char **cp[] = { c+3, c+2, c+1, c };   char ***cpp = cp;     int main()  {       printf("%s", **++cpp);       printf("%s", *--*++cpp+3);       printf("%s", *cpp[-2]+3);       printf("%s\n", cpp[-1][-1]+1);       system("pause");    return 0;  }

輸出:POINTERSTEW

關(guān)鍵是理解,數(shù)組的下標(biāo)表示的真正的意義,是偏移-offset,a[i]對于編譯器的意思是,取出符號a代表的地址,pa,在加上i*sizeof(a元素)的偏移量,最后解析出來對應(yīng)的地址的內(nèi)容。

3、已知程序代碼如下:

struct S  {      void func1(S &);      void func2(const S&);      void func3(S&) const;      void func4(const S&) const;  };  

下面哪些能正常執(zhí)行()

A、makeS().func1(makeS())

B、makeS().func2(makeS())

C、makeS().func3(makeS())

D、makeS().func4(makeS())

在gcc上做的實驗,這個結(jié)果和maskS()有關(guān)。首先
S makeS() 
{
 S s;
 return s;
}
如果這樣寫的話,有1和3,不能正常運行,這個時候makeS返回的為一個臨時的對象,如果func1(S&)這樣試圖對這個臨時的對象進行改變是沒有意義的,改變了對于程序員來說也是沒有意義的。gcc的就編譯不過去了,編譯不過去的原因可能是試圖尋找參數(shù)為非引用的函數(shù),但是沒有找到。如果改成了
S& makeS() 
{
 S s;
 return s;
}
返回的為一個引用,這個時候編譯器會警告我們,但是可以編譯通過,四個函數(shù)都可以找到。還可以寫成
S& makeS() 
{
 S *s = new S;
 return *s;
}
這個時候編譯器就啥也不說了。

 

4、下列代碼的輸出為多少?

int main(void)  {      enum {a, b=5, c, d=4, e};      enum {h,x, y, z, v=120, w, r=99,s,t};      return 0;  }  

a、c、e、h、x、y、z、w、s、t的值分別是多少?

在枚舉類型中聲明的第一個枚舉成員它的默值為零。沒有顯示賦值的枚舉成員的值,總是前一個枚舉成員的值+1。
a:0          c:6            e:5

h:0          x:1           y:2            z:3           w:121               s:100                 t:101

5、高度為1的平衡二叉樹節(jié)點為1個,高度為5的平衡二叉樹節(jié)點最少多少個?
假設(shè)高度為n的平衡二叉樹至少需要的節(jié)點數(shù)目是m,那么只需要在草稿紙上畫一下,我們?nèi)菀字溃?br>n=1時,m=1;
n=2時,m=2;
n=3時,m=4;
n=4時,m=7;
n=5時,m=12;
另外,這個題也是有規(guī)律的,F(xiàn)(n)=F(n-1)+F(n-2)+1。

6、
union Test
{
   char a[4];
    short b;
};
Test test;
test.a[0]=256;
test.a[1]=255;
test.a[2]=254;
test.a[3]=253;
printf("%d\n",test.b);
問題:在80X86架構(gòu)下,輸出什么值?填空題。
輸出:-256
short類型占2個字節(jié),如果右邊是低地址,左邊是高地址,那么存儲如下:
1111  1111           0000   0000
  test.a[1]               test.a[0]
顯然b占用上面的2個字節(jié),最高位為1,則是一個負(fù)數(shù),取反+1后,得到-256(1000 0001 0000 0000)

 

7、下面代碼輸出什么?

#pragma pack(4)    int  main(void)   {      unsigned char puc[4];        struct tamPIM      {          unsigned char ucPim1;          unsigned char ucData0:1;          unsigned char ucData1:2;          unsigned char ucData2:3;      }*pstPimData;        pstPimData = (struct tamPIM*)puc;      memset(puc, 0 , 4);      pstPimData->ucPim1 = 1;      pstPimData->ucData0 = 2;      pstPimData->ucData1 = 3;       pstPimData->ucData2 = 4;      printf("%02x %02x %02x %02x\n",puc[0],puc[1],puc[2],puc[3]);        return 0;  } 
#pragma pack()  

第一個自己直接存儲0x01,這個不需要解釋的。關(guān)鍵是第二個自己的存儲,首先1個bit為用來存儲2,導(dǎo)致最低位存0 ,其次兩位 11,再其次三位100,最后空兩個00。
如果右邊是低地址,左邊是高地址,那么存儲如下:
0000 0000        0000 0000      0010 0110       0000 0001
 puc[3]                puc[2]           puc[1]             puc[0]
所以,輸出:01 26 00 00

8、C++什么時候使用拷貝構(gòu)造函數(shù)?
在下面幾種情況下會調(diào)用拷貝構(gòu)造函數(shù):
a、   顯式或隱式地用同類型的一個對象來初始化另外一個對象。如上例中,用對象c初始化d;
b、  作為實參(argument)傳遞給一個函數(shù)。如CClass(const CClass c_class)中,就會調(diào)用CClass的拷貝構(gòu)造函數(shù);
c、  在函數(shù)體內(nèi)返回一個對象時,也會調(diào)用返回值類型的拷貝構(gòu)造函數(shù);
d、  初始化序列容器中的元素時。比如 vector<string> svec(5),string的缺省構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)都會被調(diào)用;
e、  用列表的方式初始化數(shù)組元素時。string a[] = {string(“hello”), string(“world”)}; 會調(diào)用string的拷貝構(gòu)造函數(shù)。

9、 call by value和call by reference的區(qū)別?
解答:call by value復(fù)制了實參,而call by reference相當(dāng)于使用了實參的別名。

10、下列哪種操作可能帶來死鎖?A: C(可能在第二個lock(m1)產(chǎn)生死鎖)
A、lock(m1) lock(m2) unlock(m1) unlock(m2)
B、lock(m1) lock(m2) unlock(m2) lock(m2) unlock(m1) unlock(m2)
C、lock(m1) lock(m2) unlock(m1) lock(m1) unlock(m2) unlock(m1)
D、lock(m1) lock(m2) unlock(m1) unlock(m2) lock(m1) unlock(m1)

11、外部排序常用的算法?
A、歸并排序       B、快速排序         C、堆排序        D、希爾排序

12、 在對空間和時間都有限制的實時系統(tǒng)中,常使用的排序算法?
A、插入排序          B、堆排序          C、快速排序          D、歸并排序

13、以下程序輸出什么?

 

int main(void)  {      unsigned int un = -1;      // 0~4294967295      unsigned short us = -1;    // 0~65535              printf("%d %d\n",us,un);      /*     us的二進制表示是0xffff,以4個字節(jié)的int類型輸出時表示的是0x0000ffff,所以輸出65535     un的二進制表示是0xffffffff,以4個字節(jié)的int類型輸出時表示的是-1,所以輸出-1     */        cout<<us<<endl;   // -1在無符號的short數(shù)據(jù)中是65535      cout<<un<<endl;   // -1在無符號的int數(shù)據(jù)中是4294967295          //printf("%x %x\n",us,un);      // 16進制的形式      //printf("%p %p\n",&us,&un);    // 輸出地址        return 0;  }  

輸出:65535 -1
65535
4294967295

14、一個長度為n的數(shù)組a[0],a[1],...,a[n-1]?,F(xiàn)在更新數(shù)組的名個元素,即a[0]變?yōu)閍[1]到a[n-1]的積
a[1]變?yōu)閍[0]和a[2]到a[n-1]的積,...,a[n-1]為a[0]到a[n-2]的積。
程序要求:要求具有線性復(fù)雜度,不能使用除法運算符。

思路是思想跟這個一樣,用兩個數(shù)組b、c
b[i] = a[0] *... * a[i - 1],c[i] = a[i + 1] *...*a[n] ,時間復(fù)雜度為O(2n)
最后a[i] = b[i]*c[i],我在這里沒用c數(shù)組,少用c【i】數(shù)組的話,程序?qū)懫饋砭筒皇翘美斫?,其實是一個道理。

int main(void)  {      int i, a[]={1,2,3,4};      int temp, n=4;      int *b = new int[n];      b[0] = a[0];        for(i = 1; i < n-1; i++)      {          b[i]=b[i-1]*a[i];      }      b[n-1] = a[n-1];      for(i = n-1; i >= 0; i--)      {          temp = a[i];          if(i == n-1)              a[i] = b[i-1];          if(i>0 && i<n-1)          {              a[i] = b[i-1]*b[i+1];              b[i] = temp*b[i+1];          }          if(i == 0)              a[0] = b[1];      }        //輸出最后的a元素      for(i = 0; i < n; i++)      {          printf("%d  ",a[i]);      }      return 0;  }  

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux 串口多線程問題 (100)
Linux多線程——使用互斥量同步線程
互斥鎖 pthread
200行C代碼實現(xiàn)簡單線程池 - Linux內(nèi)核編程 - 舉世無雙的學(xué)習(xí)之路
單線程會導(dǎo)致死鎖嗎?
Linux內(nèi)核的同步機制(三):等待隊列
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服