1、10、10、4、4四個數,怎麼算出24點?
(10*10-4)/4=24
2、下列表示式在32位機器編譯環境下的值()
class a
; class b
; class c
; class d
; int main(void)
a、1、4、84、82b、4、4、82、84 c、4、4、84、82 d、1、4、82、82
a類是空類,例項化類會在記憶體中位址唯一,佔乙個位元組。b類由於有虛函式,虛函式指標佔4個位元組。c類是4位元組對齊,d類是1個位元組對齊。
3、以下程式在32位機器下執行的結果是()
#pragma pack(4)
struct info_t
; union info_u
; #pragma pack()
int main(void)
a、12 12 b、12 4c、16 4d、16 12 e、16 1
考察位元組對齊,union是復用位址的,取所佔位元組最大的型別。
4、以下表示式result的值是()
#define val1(a,b) a*b
#define val2(a,b) a/b--
#define val3(a,b) ++a%b
int a = 1;
int b = 2;
int c = 3;
int d = 3;
int e = 5;
int result = val2(a,b)/val1(e,b)+val3(c,d);
a、-2 b、1 c、0 d、2
巨集僅進行簡單的字元替換。
5、請寫出以下程式的輸出(5分)
void swap_1(int a , int b)
void swap_2(int &a , int &b)
void swap_3(int
*a , int
*b)
int main(void)
輸出結果:
a = 100 , b = 200 //由於在函式類,傳遞的是a,b的副本,在棧區進行了互動,程式呼叫完就結束了。
a = 200 , b = 100
a = 200 , b = 100
6、下面的程式是否有問題,如有問題,請重構**(5分)
void test_type(bool b , const
char *p , float f)
else
if(!p)
else
if(!f)
}
修改如下:
void test_type(bool b , const
char *p , float f)
else
if(!p)
else
if(!(f > -1e-5 && f < 1e-5))
}
考察不同型別等於零
7、請指出以下程式有什麼問題(5分)
void test_mem()
由於指標p指向字元陣列,釋放需要用delete p[ ]
8、以下程式有什麼問題,請指出。
char* getmem()
void test_get_mem()
9、請寫出strcpy 和 memcpy 的區別(5分)
strcpy拷貝的是字串,是以『\0』結尾 ,而memcpy是按照size_t的大小進行拷貝。memcpy可以拷貝不同型別的記憶體。memcpy進行記憶體拷貝時進行記憶體重疊檢測等等。
10、請寫出以下程式的輸出結果
class base
virtual ~base()
public:
virtual
void sayhello()
void sayworld()
};
class derived : public base
virtual ~derived()
public:
void sayhello();
void sayworld();
};
void derived::sayhello()
void derived::sayworld()
int main(void)
主要考察多型性。
i am base()
i am base()
i am derived()
i am base()
i am derived()
hello base
world base
hello derived
world base
hello derived
world derived
i am ~derived()
i am ~base()
i am ~derived()
i am ~base()
i am ~base()
11、閱讀以下程式並給出執行結果
class bclass
virtual
int fun()
protected:
int x , y;
};
class lclass : public bclass
int fun()
private:
int z;
};
int main(void)
0
5 0
5 12、如何減少頻繁分配記憶體(malloc或者new)造成的記憶體碎片?(10分)
使用記憶體池。我們習慣用作業系統為使用者提供的api ,malloc,new函式對記憶體操作,這往往造成頻繁進行不同記憶體大小的開闢,會造成記憶體碎片,而記憶體池,在真正使用記憶體之前,會開闢大小相等,數量不同的記憶體塊,當需要記憶體塊時,從記憶體池中取記憶體塊,當記憶體塊不夠時,繼續向記憶體申請新的記憶體,這樣能夠減少對記憶體的申請次數,能夠盡量避免記憶體碎片,提高程式的執行效率等等。
13、請寫出strchr的實現(10分)
函式功能:找出在字串str中第一次出現字元ch的位置,找到就返回該字元位置的指標(也就是返回該字元在字串中的位址的位置),找不到就返回空指標(就是null)
const
char* strchr(const
char* str , char ch)
while(str != null)
str++;
}return null;
}
4、請寫出氣泡排序法演算法(20分)
void bubblesort(int r , int n) }}
}
BFS題目集合
有時間要去做做這些題目,所以從他人空間copy過來了,謝謝那位大蝦啦。解法 bfs,要注意的是如何判斷圖形是一樣的,我的做法就是計算每兩個點的距離之和。看 解法 dfs 簡單題目。pku 1077 eight 解法 廣搜,雙向光搜,a ida 其中 a 時間最好,雙向的廣搜也ok ida 時間500...
MST題目集合
poj1287networkoing 輸入有重邊的mst,裸題,記得判有效邊 po1789truck history 不太明顯,每個字串是乙個結點,不同的字元數目是權重,構建的是完全圖,最後輸出1 權重和。poj2031building a space station 在構建圖的權值的時候預處理。要...
回溯題目集合 貳
給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。題目鏈結 解析 1.需要傳遞...