1.
typedef struct list_tlist_t;請問在32位系統中,sizeof(list_t)的值為?
答案【8byte】
解析:用作定義時char[0]是空陣列,是不佔空間的。
2.c++是不是型別安全的?
答案【不是】
解析:如果規定兩種不同型別之間必須通過顯示轉換則是安全的。
3.**可以通過編譯嗎?如果不能應該如何修改?
template class foo
};template class fooderived:public foo
;int main()
a **可以正確通過編譯。 b 編譯錯誤,fooderived是乙個繼承模板類的非模板類,它的型別不能改變。 c 編譯錯誤,tval變數是乙個不確定的型別。
d 編譯錯誤,可以在fooderived類中新增乙個建構函式解決問題。
答案【d】
解析:父類定義了帶引數的建構函式,如果子類沒有顯示呼叫父類的構造方法,則預設呼叫父類的預設建構函式,於是這裡預設建構函式消失了,子類需要顯示呼叫父類的構造方法。
4.觀察下面一段**:
class classa
; virtual void functiona(){};
};class classb;};
class classc : public classa,public classb
;classc aobject;
classa* pa=&aobject;
classb* pb=&aobject;
classc* pc=&aobject;關於pa,pb,pc的取值,下面的描述中正確的是:
a pa,pb,pc的取值相同 b pc=pa+pb c pa和pb不相同
d pc不等於pa也不等於pb
答案【c】
解析 :aobject的位址從a的虛函式表開始,然後到b的虛函式表,再到c自身的成員
5.隨著裝填因子a的增大,用閉雜湊法解決衝突,其平均搜尋長度比用開雜湊法解決衝突時的平均搜尋長度增長得慢()【錯】
開雜湊表——-鏈式位址法 閉雜湊表——-開放位址法
開雜湊只會和相同值發生衝突,而閉雜湊除了與相同值發生衝突,還會與不同值發生衝突 ;開雜湊不受密度影響,而閉雜湊受密度影響 。
6.下列敘述中錯誤的是( )
a 二叉鍊錶是二叉樹的儲存結構 b 迴圈鍊錶是迴圈佇列的儲存結構 c 棧是線性結構
d 迴圈佇列是佇列的儲存結構
答案【b】
bd.佇列兩種儲存方式:迴圈佇列和鏈佇列
c.棧是一種特殊訪問方式的線性表。
7.下面程式會輸出什麼:
static int a=1; //靜態全域性變數
void fun1(void)
void fun2(void)
void fun3(void)
int main()
答案【1 2 2 2】
解析見注釋部分
8.下面**的輸出結果是()
int main()
else if(pid==0)
}答案【父子程序中輸出的num不同,num位址相同】
解析:num不同比較好理解,num位址相同指的是虛擬位址相同,linux中的資源分配都是虛擬機制,也就是說,他們還是會共用乙個虛擬的位址,但是對映到物理記憶體就可能會不一樣。
其實剛剛fork出來不止虛擬位址一樣,實體地址也一樣。當程序發生分歧時,即修改此變數時,才會分配不同的實體地址,也就是copy-on-write,寫時複製。
9.線索化二叉樹:左指標為空->指前驅;右指標為空->指後繼
10.下列**的輸出結果是
int i = -1;
unsigned j = 1;
if (j > i)
printf(" (j>i)成立\n");
else
printf(" (j>i)不成立\n");
if (i < j)
printf答案【(j>i)不成立,(i\
表示式會包含隱式型別轉換,它由編譯器自動執行,不需程式設計師介入。
轉換之後 signed int 被轉換為unsigned int,以8位元組為例,-1是11111111,比1大
11.如下語句通過算術運算和邏輯運算之後 i 和 j 的結果是()
【短路原則】
int i=0;
int j=0;
if((++i>0)||(++j>0))
答案【i = 1;j = 0】
解析:先執行++i,此時i變為1,然後判斷i>0為真。短路原則(||)不會計算後面的條件,因此++j不執行,j==0
12.關鍵字
【待補充】
13.下列**編譯時會產生錯誤的是()
#include
using namespace std;
struct foo
foo(int) {}
void fun() {}
};int main(void) 答案【語句4】
解析:語句4出錯來自語句3,foo b()會被編譯器認為宣告了乙個函式,正確的建構函式應該是foo b;
基礎知識(面試題)
1 linux下如何使用配置檔案設定網絡卡ip位址 root luomuqing vim etc sysconfig network scripts ifcfg eth0設定靜態ip bootproto static onboot yes ipaddr 192.168.136.128 netmask...
Hadoop基礎知識面試題整理
一 問答題 1 簡單描述如何安裝配置乙個apache開源版hadoop,只描述即可,無需列出完整步驟,能列出步驟更好。1 安裝jdk並配置環境變數 etc profile 2 關閉防火牆 3 配置hosts檔案,方便hadoop通過主機名訪問 etc hosts 4 設定ssh免密碼登入 5 解壓縮...
C C 基礎知識,面試常見問題(轉
鍊錶與陣列的區別 a 從邏輯結構來看 a 1.陣列必須事先定義固定的長度 元素個數 不能適應資料動態地增減的情況。當?資料增加時,可能超出原先定義的元素個數 當資料減少時,造成記憶體浪費。a 2.鍊錶動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入 刪除資料項。陣列中插入 刪除資料...