筆試題目(編程)

1.volatile有什麼用處
它表示變數可能被外部更改,限制編譯器對此變數進行最佳化。
如: 
  i = 3; 
  j = i; 
  會被編譯成 
  mov ax, 3; 
  mov i, ax; 
  mov j, ax; 

  如果i是volatile型的,會被編譯成 
  mov ax, 3; 
  mov i, ax; 
  //i可能被外部修改 
  mov ax, i; 
  mov j, ax;

2.linux中的fork和excuve成功返回的值是多少

進程標識符,fork成功返回值為大於0的正數,excuve成功不返回,失敗返回值為-1

3.cache中的write through和write back在策略上有什麼不同
許多作業系統有buffer caches (即使名稱不同),透寫write-through: 數據馬上寫到磁碟(當然也同時寫到cache) ,不馬上寫的cache叫回寫

write-back。回寫比透寫更有效,但也更容易出錯:如果系統崩潰,或電源突然掉電,或軟碟在cache回寫前被取出,那么cache中改變的數據

將丟失。

4.替換順序的題

#include <string.h>

main ()

{

  char
5.寫代碼給暫存器ox15022033的bit2和bit3置位
int *p;
p=ox15022033;
p=(*p)||ox0c;
7.給定下列等式,其中每個字母代表一個數字,且不同數字對應不同字母,編程求出數字
  a b c d e
  d f g
+  d f g
-----------------
  x y z d e