一些特別有趣的C 面試題(持續更新中)

2021-07-10 22:12:47 字數 1317 閱讀 3126

#include using namespace std;

class a

a(const a &)

};class b : virtual a

b(const b &)

};class c : virtual a

c(const c &)

};class d :b, c

d(const d &)

};int main()

#include #include int y(int &) 

int y(int &&)

template int f(t &&x)

template int g(t &&x)

template int h(t &&x)

int main()

答案: 112212

解析: 首先要明確一點,t&&在模板函式中並不一定是右值引用,它取決於例項化它的型別。如果用乙個左值例項化,那個它會成為乙個左值,如果用乙個右值例項化變數,那麼它會是乙個右值。而對於x來說,不管他是左值還是右值,在函式內都是左值,所以main()函式的第一行輸出11,move函式返回變數的右值,所以第二行輸出22,forward函式保持變數的原來型別,所以第三行輸出12.

#include int main()
答案:20

解析:逗號運算子的運算順序,根據c++的標準來說,逗號運算子的evaluate順序是從左往右,每遇到乙個逗號運算子,就把之前evaluate的那個變數discard。所以最後的答案為b,即20。

#include struct generalexception 

};struct specialexception : public generalexception

};void f()

int main()

catch (generalexception e)

}

答案:g

解析:specialexception派生於基類generalexception,main函式裡跑出了乙個specialexception異常,被值捕獲,所以e的動態型別為基類,如果把e改為引用型別,那麼將是引用捕獲,此時e的動態型別為派生類。

一些面試題,持續更新

console.log false 未通過 字串中有空格,是真,前面兩個嘆號,是假之後真,結果是true true是1 空字串,無值,是假,前面兩個嘆號,是真之後假,結果是false false是0 false前面兩個嘆號,是真之後假,結果是false false是0 1 0 0 未通過 中間是 或...

總結的一些CSS面試題(持續更新中 )

1,box sizing屬性?用來控制元素的盒子模型的解析模式,預設為content box context box w3c的標準盒子模型,設定元素的 height width 屬性指的是content部分的高 寬 border box ie傳統盒子模型。設定元素的height width屬性指的是...

c 面試面試題 持續更新中。。。

1 下面輸出什麼?public class a public class b a class program 解答 首先4.0 是編譯不過,缺少隱式轉換,這種操作本來就是錯誤的 執行時5.0丟擲異常,無法將a轉換成b 1.0 print a 2.0 print b,3.0 print b 2 將乙個...