两个人做人爱视频免费,97久久精品人人搡人妻人人玩,欧洲精品码一区二区三区,999zyz玖玖资源站永久

軟件工程師經典面試筆試題匯總

  1. 用預處理指令#define聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)。

  答案:#define SECONDS_pER_YEAR(60*60*24*365)UL

  應該意識到表達式將使一個16位機的整形數溢出,因此要用到長整型符號L,表達式中UL表示無符號長整型。

  2. 寫一個“標準”宏MIN,這個宏輸入連個參數并返回較小的一個。

  答案:#define MIN(A,B) ((A)<=(B)?(A):(B))

  懂得在宏中小心的吧參數用括號擴起來

  3. sizeof 的一些考察

  char* ss1=”0123456789”; char ss2[]=”0123456789”; char ss3[100]=”0123456789”;

  int ss4[100]; char q1[]=”abc”; char q2[]=”a\\n”; char* q3=”a\\n”;

  答案:ss1是一個字符指針,指針的大小是一個確定的值,就是4,sizeof(ss1)=4;

  ss2是一個字符數組,這個數組最初的大小未定,填充值是“0123456789”,一個字符占一位,再加上隱含的“\\0”一共是11位。

  ss3是一個字符數組,這個數組開始預分配100,所以它的大小是100位。

  ss4是一個整型數組,但是每個整型變量所占空間是4,所以它的大小一共是400位。

  q1與ss2類似,占4位。Q2里面有一個“\\n”,“\\n”算作一位,加上隱含的,大小一共是3位。Q3是一個字符指針,指針得大小是一個定值,就是4.

  4. What is the output of the following code?

  #include using namespace std;

  class A {}; class A2 {char d,e;}; struct B{}; struct C{ char x,y;}; struct D{int x,y;};

  main() { cout<

  答案:對于一個類而言,即便它是一個空的類,編譯器仍然要要給它一個空間,所以類A即便什么也沒有,它的空間大小依然為1,而類A2大小是類中連個字符d,e之和,所以它的空間大小依然是2,至于p1,p2,p3,p1和p3是指針,大小是一致的,而且是定值,為4,p2是A的對象,所以它的大小和類A相等,為1,B和C得解釋同A和A2,至于D,它和C不同點在于,結構體有兩個整型變量,每個整型變量所占空間為4,所以D所占空間大小為8。

  最后結果是 1, 2,4, 1,4,1,2,8

  5. what is the output the following code?

  #include using namespace std;

  class A1 { public: int a; static int b;A1(); ~A1();};

  class A2 { public: int a; char c; A2(); ~A2();};

  class A3 { public: float a; char c; A3(); ~A3();};

  class A4 { public: float a; int b; char c; A4(); ~A4();};

  class A5 { public: double d; float a; int b; char c; A5(); ~A5();}

  int main() { cout<

  答案:因為靜態變量是存放在全局數據區的,而sizeof計算棧中分配的大小,是不會計算在內的,所以sizeof(A1)是4;為了照顧數據對其,int大小為4,char大小為1,所以sizeof(A2)是8;為了照顧數據對其,float大小為4,char大小為1,所以sizeof(A3)為8;為了照顧數據對其,float大小為4,int大小為4,char大小為1,所以sizeof(A4)為12;為了照顧數據對其,double大小為8,float大小為4,int大小為4,char大小為1,所以sizeof(A5)選擇8的倍數為24。

  6. 以下代碼的輸出結果是()

  char var[]

  Int test(char var[]){ retrun sizeof(var);}

  答案:因為var[]等價于*var,函數內部已經退化成一個指針了,所以大小是4.

  7. 以下代碼的輸出結果是()

  Class B { float f; char p; int asf[3];}; cout<

  答案:float f占了4個字節,char p占了一個字節,int adf[3]占了12個字節,總共是17個,根據內存的對齊原則,要選擇4的倍數,是4×5=20個字節。

  8. 以下代碼的輸出結果是()

  Class B { double d; char p; int asf[4];}; cout<

  答案:double d占了8個字節,char p占了一個字節,int adf[4]占了16個字節,總共是25個,根據內存的對齊原則,要選擇8的倍數,是32個字節。

  9. 一個空類所占空間為1,多重繼承的空類所占的空間還是1,但是虛繼承涉及到虛表(虛指針),所以虛繼承的空類占的空間為4。

  10. this指針是在實例化一個對象后產生的,并且指向對象本身.比如實例化一個對象pt,那么this=&pt;用”&”取地址符來取對象的地址.同樣,如果定義對象pt這個類中,有一個public變量x,那么就可以用this->x=0來定義x的值,等同于pt.x=0.

  11. #include using namespace std;

  Void GetMemory(int *z) { *z=5; }

  Int main() { int v; GetMemory(&v); cout<

  Getmory把v的地址傳了過來,*z是地址里的值,是v的副本.通過直接修改地址里的值,不需要有返回值,也把v給修改了,因為v所指向地址的值發生了改變,最終程序會崩潰.

  12. 下面的數據聲明都代表什么意思?

  (1)float(**def)[10]

  Def是一個二級指針,它指向的是一個指向一維數組的指針,數組的元素都是float。

  (2)double*(*gh)[10]

  Gh是一個指針,它指向一個一維數組,該數組元素都是double*

  (3) double(*f[10])()

  F是一個數組,f有十個元素,元素都是指向函數的指針,指向的函數類型是沒有參數且返回double的函數

  (4)int*((*b)[10])

  就跟“int*(b)[10]”是一樣的,b是一維數組的指針

  (5)long(*fun)(int)

  函數指針:指向函數的指針

  (6)int(*(*f)(int,int))(int)

  F是一個函數的指針,指向的函數的類型是有兩個int參數并且返回一個函數指針的函數,返回的函數指針指向一個int參數且返回int的函數。

 

本文已影響6827
上一篇:中國銀行招聘面試筆試題目 下一篇:三星面試筆試題目

相關文章推薦

|||||

主站蜘蛛池模板: 罗田县| 英德市| 嘉祥县| 博罗县| 溧水县| 广灵县| 阿克| 卢龙县| 无为县| 吴旗县| 万年县| 商洛市| 乌兰浩特市| 金华市| 富宁县| 阳原县| 徐州市| 宜兴市| 梨树县| 晋江市| 成武县| 长寿区| 昂仁县| 奉贤区| 公安县| 蓬安县| 重庆市| 柳林县| 昆山市| 德兴市| 沂水县| 卢氏县| 唐河县| 徐汇区| 巴彦县| 双鸭山市| 铜鼓县| 烟台市| 建阳市| 苏尼特右旗| 浠水县|