答案參考自:
第一種思路:short int 強制轉換為char,看轉換的結果。**如下:
void第二種思路:使用union型別test1()
else
}
void**如下:test2()
c;
c.a=1
;
if(0==c.b[0
])
else
}
typedef struct答:volatile屬於型別修飾符,在多執行緒程式中使用較多,一般用來修飾被多個執行緒共享且修改的變數。被volatile修飾的變數,指令不會因為編譯器優化而省略,這個關鍵字告訴程式,該變數隨時可能會被改變,每次訪問變數必須重新在記憶體讀取變數的值,而不是在暫存器中提取變數值。嵌入式系統的程式用到volatile機會更多一些。node node;
node* inverselist(node *first)
curr->next =pre;
return
curr;
}
4. int a=1, b=2, c=3, d=4, 則 a答:結果是 1,原題目相當於 (a
題目:某規則二叉樹的定義是:對於樹中任意兩個葉結點a、b,他們與根結點的距離分別是d1和d2,|d1-d2|<=1。請寫出函式 bool isruledtree(node *root)的**實現。如果該二叉樹為規則樹,則返回true,否則返回false。
思路:其實就是比較所有葉結點的深度,最大值和最小值之間相差不超過1,則為規則樹,可以遍歷所有的結點,如果碰到葉結點,記錄該葉結點的深度到陣列或任意什麼結構中,然後找到這些記錄中的最大值和最小值,求差即可。在我的**中,用乙個棧結構儲存葉結點的深度。**實現如下:
typedef struct注意int_max這個常量要#include,stack使用時要#includenode node;
stack
record;
void isruledtreecore(node *n, int
depth)
if(n->left !=null)
isruledtreecore(n->left,depth+1
);
if(n->right !=null)
isruledtreecore(n->right,depth+1
);
return;}
bool isruledtree(node *root)
if(big-small>=-1 && big-small<=1
)
return
true
;
return
false
;}
1. 物件導向的特徵
繼承,封裝,多型
2. 重寫和過載的區別
重寫:在繼承當中,子類重寫父類的函式,函式宣告完全一樣,只是函式裡面的操作不一樣,這樣叫做重寫。
過載:與多型無關,即兩個函式名一樣的成員函式,只是他們的形參個數或資料型別不同,在呼叫函式的時候,程式可以自動根據呼叫函式時的引數個數和型別確定使用哪乙個成員函式。這樣叫做過載,是多型性的一種表現。
3. 引用和多型有什麼關係
引用是除了指標以外另一種實現多型的方式,使用父類的指標指向子類的物件。
4. 計算機引導程式包括哪幾個區?(答案是摘抄來的~)
乙個由c/c++編譯的程式占用的記憶體分為以下幾個部分
(1)、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。
(2)、堆區(heap) — 一般由程式設計師分配釋放 , 若程式設計師不釋放,程式結束時可能由os** 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶。
(3)、全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域(bss)。 - 程式結束後由系統釋放
(4)、文字常量區 — 常量字串就是放在這裡的。 程式結束後由系統釋放
(5)、程式**區— 存放函式體的二進位制**。
5. 程序間有哪些通訊方式?
訊號量,訊息佇列,socket,共享記憶體
6. tcp/ip三次握手協議
第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
7. 什麼是arp協議?(這個問題沒有答出來。。)
address resolution protocol,位址解析協議。arp協議的基本功能就是通過目標裝置的ip位址,查詢目標裝置的mac位址,以保證通訊的順利進行。屬於資料鏈路層的協議。
git 相關問題 總匯
最近在使用android的repo和git的過程中遇到了很多莫名奇妙的問題,現在記錄一下,便於自己以後的查用。1.repo sync中遇到error checkout 接一串hashnumber 解決方法 進到它說提示的目錄中,用git status顯示檔案,將修改過的檔案刪除掉,再重新repo s...
JAVA面試總匯(11)
1.以下三條輸出語句分別輸出什麼?c易 char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 st...
(一)Mysql面試筆試練習題
準備工作,匯入表資料 mysql準備資料以及sql題目 teacher表 student表 score表 course表 1 查詢男生 女生人數 男生人數 1 男,2 女 select count from student s where s.student 1 結果 可以優化取別名 select ...