眾所周知,時下嵌入式工程師可是一個熱門崗位。但是我們要想找到一份高薪的嵌入式方面的工作也不是那么容易的,尤其是現在一些企業的面試題總是那么千奇百怪。面對這一問題,華清遠見為大家匯總了一些嵌入式C/C++方面的專項測試題,希望可以對大家有所幫助。溫馨提示,試題尾部有參考答案哦!
1、在linux+gcc下,關于以下代碼,不正確的是____。
std::string& test_str()
{
std::string str="test";
return str;
}
int main()
{
std::string& str_ref=test_str();
std::cout<
return 0;
}
A 編譯警告
B 返回局部變量的引用,運行時出現未知錯誤
C 正常編譯且運行
D 把代碼里的&都去掉之后,程序可以正常運行
2、假定一個二維數組的定義語句為“int a[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為____。
A 0
B 4
C 8
D 6
3、下面哪一個是sort的template的正確寫法
A void sort(class A first,class A last,class B pred)
B void template(class A,class B)sort(A first,A last,B pred)
C template
D template
4、下面說法正確的是
A C++已有的任何運算符都可以重載
B const對象只能調用const類型成員函數
C 構造函數和析構函數都可以是虛函數
D 函數重載返回值類型必須相同
5、若有下面的函數調用:
? fun(a+b,?3,?max(n-1,?b));?其中實參的個數是____。
A 3
B 4
C 5
D 6
6、兩個等價線程并發的執行下列程序,a為全局變量,初始為0,假設printf、++、--操作都是原子性的,則輸出肯定不是哪個?
void foo() {
if(a <= 0) {
a++;
}
else {
a--;
}
printf("%d", a);
}
A 01
B 10
C 12
D 22
7、在32位操作系統gcc編譯器環境下,下面程序的運行結果為____。
#include
using namespace std;
class A {
public:
int b;
char c;
virtual void print() {
cout << "this is father’s fuction! " << endl;
}
};
class B: A {
public:
virtual void print() {
cout << "this is children’s fuction! " << endl;
}
};
int main(int argc, char * argv[]) {
cout << sizeof(A) << "" << sizeof(B) << endl;
return 0;
}
A 8 8
B 9 9
C 12 12
D 12 16
8、重載(overload)和重寫(override)的區別?
A 重載:是指允許存在多個同名函數,而這些函數的參數表不同
B 重載:是指子類重新定義復類虛函數的方法
C 重寫:是指子類重新定義復類虛函數的方法
D 重寫:是指允許存在多個同名函數,而這些函數的參數表不同
參考答案:1~8:C A D B A A C AC