星網銳捷筆試

http://blog.csdn.net/beyondyangkai/article/details/5951578web

1 把-4傳給函數參數類型爲unsigned int 數組

2 傳輸層協議 網絡

3 串行總線,半雙工通信 數據結構

4 *++優先級 函數

5 進程間通訊方式 優化

6 語句優化:y=x%16; y=h*63; spa

7 函數指針 操作系統

8 顯存的計算 .net

9 宏定義:把一個整數的第k位清零 指針

10 數據在內存中的存儲方式,例如-2,  3.14是如何存儲的? 

11m和n的平均值(或者接近)的計算是 y=(m+n)/2; y=m/2+n/2;哪種對? 

12 操做系統,數據結構的知識,網絡知識 

13 計算一個字符串中漢字的個數。每一個漢字佔2個字節,1開頭,英文字母1個字節,0開頭

 

 

 http://blog.csdn.net/Joogle/article/details/8104092

2013星網銳捷筆試題

啤酒一塊錢一瓶,兩個空瓶能夠換一瓶啤酒,一我的有n元錢,問這我的能夠喝到多少瓶啤酒?要求用遞歸實現。

1.非遞歸

[cpp]
 
int total(int n)  
  1. {  
  2.     int battl = 0;  
  3.     int empty = 0;  
  4.   
  5.     while (n > 0)  
  6.     {  
  7.         --n;  
  8.         ++battl;  
  9.         if (++empty == 3)  
  10.         {  
  11.             empty = 0;  
  12.             ++n;  
  13.         }  
  14.     }  
  15.   
  16.     return battl;  
  17. }  
 

2.遞歸

  1. int fun(int n)  
  2. {  
  3.     if (n/2 > 0)  
  4.         return (n-n%2) + fun(n/2 + n%2);  
  5.   
  6.     return n;  
  7. }  

優化%和*操做的效率(星網銳捷筆試題) http://blog.csdn.net/ruanxuewu0120/article/details/5962807

優化下面2個語句的效率:

(1)y=x%16

(2)y=m*63

解題思路:將操做符轉化爲二進制的移位操做能夠大大提升效率

(1)x%16就是保留x(二進制)最後四位,因此只要將x轉化爲二進制後再和(前面高位補0)1111相與&,便可得x%16結果。

(2)乘法能夠用二進制數的移位操做來實現,向右移是除法,向左移是乘法,空位補0。m*63能夠轉化爲m*64-m=m*2的6次方-m

所以m*2的6次方能夠轉化爲將二進制的m向左移6次

  

 

2010星網銳捷軟件方面筆試題 http://blog.csdn.net/jimbeing/article/details/5934388

選擇題:
1.邏輯題
2.英語題
3.二叉樹:深度同樣的滿二叉樹和徹底二叉樹的結點
4.
int test(int num)
{
 return (num>>4%256); 
}
test(16)?test(256)?
5.
int main()
{
 int i;
 char *a = "123456789"
 char *b = "987654321"
 for(i=0;i<7;i++)
 if(*(a+i) == *(b+i))
 printf("%c",*(a+i));
}
6.
int i,j=2,*p = &i;
*p = *&j來實現i = j 的賦值?
7.
http用來web?
nntp?
ftp用來傳輸文件?
dns用來域名解析?
8..編譯的時候?高級語言彙編語言和什麼目標文件關係?
9.#define LEN 100是在哪裏(預處理?編譯?仍是運行?)把LEN所有用100代替
10.
int test(int a,unsigned int b)
{
 if((a+b)>0){
  return 0;
 }
 return -1;
}
void main()
{
 printf("%d/n",test(3,-4)+test(-5,6)+7&8);
}

填空題:
1.一個帶一位小數的float型四捨五入來表示一個整形num?
2..在鏈表i結點前插入個結點,後面要移動幾個元素?
3.數組a[m][n],a[0][0] = 644,a[2][2]=676,求a[3][3]?
4.怎麼定義一個常指針?
5.
 int a[5] = {7,8,9,10,11};
 int *p = a;
 *(p++) += 123;
 printf("%d,%d/n",*p,*(++p));
6..十個進程,進程片200ms,切換進程片10ms,系統開銷大概佔多少?
7.osi幾層模型啊第四層第五層各爲何?
8.從底層看,用戶使用什麼來請求操做系統的服務
9.某個lcd分辨率1280*1024,每點24bit,刷屏爲60hz,問要至少有多少兆的緩衝空間?
10.int **a[3][4]內存?
11. float a = 1.1;
 double b = 1.1;
 if(a == b){
  printf("a == b");
 }
 else{
  printf("a != b");
 }
12.隱形表達時時缺省項是哪一個?
13.
 unsigned char *p1;
 unsigned long *p2;
 p1 = (unsigned char*)0x801000;
 p2 = (unsigned long*)0x810000;
 printf("%d,%d/n",(p1+5),(p2+5));
14..單鏈表的逆序?
15.. 
· char a[8] = "hello";
 char b[] = "worldyou";
 printf("%d/n",sizeof(a)+sizeof(b));
 int *c;
 char *d;
 void *e;
 printf("%d/n",sizeof(c)+sizeof(d)+sizeof(e));
 

16,進程間通訊的方式?
簡答題:
1.int strcpy(char*source,char*det)不用庫函數
2.串行爲何有時比並行傳數據要快?
3.
 int i;
 int a[5];
 int *p = a;
 for(i=0;i<5;i++){
  p++;
  *p = i;
 }
4.求兩個值的平均值?
int q,m,n;
q = (m+n)/2正確否?
q = m/2+n/2正確否?
5.一些ip是否能用在主機上,爲何?

 

【銳捷筆試題】將整形變量a的最高n位清零,其它位不變,宏定義:#define clear_bits(a,n)   http://blog.csdn.net/zhizunwudi/article/details/11706875

銳捷昨天的一道互聯網C++筆試題,個人寫法以下:

#define clear_bits(a,n)  (a)&~(((1<<n)-1)<<(32-n)) 

注:一、n應該加上括號,上面括號比較多,再寫上比較混亂,因此沒給n寫上括號,你們寫的時候記得加上;另外,宏定義全部變量最好都加上括號。

        二、(1<<n)-1就是2的n次方減1(當時我直接寫的2^n-1,把異或^當成了次方運算,Faint!難過),即最低n位都置爲1,例如(1<<4)-1即2的4次方-1,二進制表示爲0000 1111

        三、((1<<n)-1)<<(32-n)即把最低的n個1左移到最高的n個1,即最高n爲都置爲了1,eg,n=4時(以8位二進制爲例),((1<<4)-1)<<(8-4),結果爲1111 0000

        四、而後對上面結果取反~,即最高的n位置爲0,其餘位全爲1;最後a與這個數,即把a的最高n爲清零了。

相關文章
相關標籤/搜索