1.已知兩個鍊錶head1和head2各自有序,請把它們合併成乙個有序鍊錶,要求用遞迴方法進行。
[cpp]view plain
copy
#include
#include
using
namespace std;
struct node
; node * make_link();
void display(node *);
void sort(node *);
node * merge(node *,node *);
int main()
node * make_link()
return head;
} void display(node *head)
cout << endl;
} void sort(node *head)
cur2 = cur2->next;
} int tem = cur->value;
cur->value = min->value;
min->value = tem;
cur = cur->next;
} }
node * merge(node *h1,node *h2)
else
} } 2.
給定乙個二叉樹,節點結構為struct node,其中left、right為左右節點指標,next暫為空指標,寫出函式,輸入乙個頭結點指標,使得二叉樹被層遍歷(level-by-level transversal)。用next指標鏈結並返回頭結點指標。演算法時間複雜度要求為o(n),空間複雜度要求為o(1)。
3.邏輯推理題(誰是小偷)警察局抓了 a b c d四名偷竊嫌疑犯,其中乙個是小偷,
a 說:我不是小偷
b 說:c是小偷
c說: 小偷肯定是d
d說: c冤枉人
已知四人中有三個人說了真話,一人說了假話。問到底誰是小偷?
請編寫一段**得出結果。(c或c++)
[cpp]view plain
copy
#include
#include
main()
else //因為這個是對其他真假話的判斷,會影響下面的判斷,所以要放最前面
if (h[1]==1) else
if (h[2]==1) else
if (h[3]==1) else
if ((a[1]+a[2]+a[3]+a[4])==1) //等於1就是只有1個小偷,其他都是0(不是小偷)
//輸出小偷
} }
} getch();
return 0;
}
4.inline函式的作用是
內聯函式在每個呼叫點上被展開 因此 這樣做可以消除函式呼叫相關的額外消耗
5.某32位系統下, c++程式,請計算sizeof 的值(5分).
char str = ""
char *p = str ;
int n = 10;
請計算sizeof (str ) = ?(1)
sizeof ( p ) = ?(2)
sizeof ( n ) = ?(3)
void foo ( char str[100])
void *p = malloc( 100 );
請計算sizeof ( p ) = ?(5)
答:(1)17 (2)4 (3) 4 (4)4 (5)4
6.鍊錶逆轉
[cpp]view plain
copy
"font-size:10px;">#include
using
namespace std;
struct node
; void invert(node *&head)
head = q;
} int main()
7.求輸出
(巨集展開:你是什麼我就展開成什麼)
[cpp]view plain
copy
#include
using
namespace std;
#define probe(x) (x * x)
int main()
[cpp]view plain
copy
#include
using
namespace std;
#define probe(x) (x * x)
int main()
8.11、 下面對列舉型別的描述正確的是_________。
a)列舉型別的定義為:enum day;
b)在c++語言中,使用者自定義的列舉型別的第乙個常量的預設值是1
c)可以定義如下列舉型別:enum ;
d)以上說法都不正確
9.extern 的作用
extern關鍵字的作用是什麼? (d)
a. 宣告外部鏈結 b. 宣告外部標頭檔案引用
c. 宣告使用擴充套件c++語句 d. 宣告外部成員函式、成員資料。
[cpp]view plain
copy
#include
using
namespace std;
void test(int a)
int main()
void test()
[cpp]view plain
copy
//宣告了某個變數,之後使用的就是這個變數
#include
using
namespace std;
int count = 3;
int main(void)
sum += count;
} printf("%d %d\n",count, sum);
return 0;
}
10.下面關於建構函式和析構函式的描述,錯誤的是_________。a) 析構函式中呼叫虛函式採用靜態聯編
b) 對虛析構函式的呼叫可以採用動態聯編
c) 當基類的析構函式是虛函式時,其派生類的析構函式也一定是虛函式 (?只有虛函式才可以動態繫結)
d) 建構函式可以宣告為虛函式
百度2010實習生招聘筆試題
a卷 共三道大題 請先閱讀卷首的試卷說明,在a b卷選擇一套試卷作答,同時作答試卷無效 第一題 簡答題 1 簡要說明樹的深度優先 廣度優先遍歷演算法,及非遞迴實現的特點。2 在處理磁碟資料時,需要首先將其讀入記憶體才能進行處理。如果要讀取的資料已經在記憶體中,則可以直接訪問記憶體。通常來說記憶體是有...
實習生筆試
這幾天參加過幾場筆試。讓我對筆試有了新的認識。無論是前端,還是後端,最開始的筆試都只是乙個簡單的測試,測試你的邏輯思維能力,演算法能力。單項選擇題基本上是一些計算機的基礎題目,包括網路協議 http tcp ip 記憶體 暫存器。程式的設計。而程式設計題目是一些簡單的演算法題目,不會太難,但是反映的...
騰訊實習生筆試題
一 單項選擇題 1 給定3個int型別的正整數x,y,z,對如下4組表示式判斷正確的選項 int a1 x y z int b1 x y z int a2 x z y int b2 x z y int c1 x z int d1 x y z int c2 x z a a1一定等於a2 b b1一定定...