VC筆試題:
1、如何開啟登錄檔?用什麼命令註冊ocx控制元件以及用什麼命令檢視IP設定情況?
2、static在C++中的作用
3、資料庫表格stu中存在欄位ID表示編號,寫SQL語句查詢編號前10的記錄
4、資料庫在寫儲存過程通常使用set nocount on來實現什麼功能?
5、UpdateData(TRUE)和UpdateData(FALSE)的區別
6、解釋MFC的資料型別COLORREF
7、採用哪些函式可啟動其它應用程式
8、解釋GetClientRect()和GetWindowRect()的區別
9、解釋MFC中SendMessage與PostMessage的區別
10、名詞解釋
MFC SDK DDX DLL TCP
11、解釋下面VC除錯巨集的意義
TRACE
ASSERT
VERIFY
12、編一函式判斷點CPoint ptx 是否在點CPoint pta 和 ptb的`連線上
13、請說明陣列CArray
14、程式設計實現將8進位制字串轉換為2進位制字串的函式
15、程式設計實現整數的階乘
16、解釋語句virtual void X()=0;的作用
17、解釋C++中struct和class的區別
答案:
1 regedit regsvr32 ipconfig
2 用來定義靜態的變數或函式
3 select ID top 10 from stu
4 當 SET NOCOUNT 為 ON 時,不返回計數(表示受 Transact-SQL 語句影響的行數)。當 SET NOCOUNT 為 OFF 時,返回計數
5 UpdateData(TRUE)重新整理控制元件的值到對應的變數 UpdateData(FALSE) 拷貝變數值到控制元件顯示
6 COLORREF型別用來描繪一個RGB顏色COLORREF型別用來描繪一個RGB顏色。其定義如下: typedef DWORD COLORREF; typedef DWORD *LPCOLORREF; COLORREF型別變數值描繪一個顏色時對應於下面16進位制的格式: 0x00bbggrr 可以用這樣一個結構體來描述。 RGB_value struct { byte unused ; byte blue ; byte green ; byte red; };
7 WinExec CreateProcess ShellExecute
8 GetWindowRect()取的是整個視窗的矩形;
GetClientRect()取的僅是客戶區的矩形,也就是說不包括標題欄,外框等;
9 傳送訊息後返回的時間.前者直到視窗執行完訊息後才返回,後者向執行緒傳送
訊息後沒有等訊息執行完就立即返回;返回值的不同.前者返回的是訊息的執行結果,因訊息的不同而不同,後者返回值表示該函式執行的成功與否
10 微軟基礎類庫 軟體開發工具包 裝置開發包 動態連結庫 傳輸控制協議
11 TRACE巨集對於VC下程式除錯來說,有著類似printf的功能,Assert - 斷言 就是用於在程式碼中捕捉這些假設,可以將斷言看作是異常處理的一種高階形式
VERIFY一個判斷的巨集
12 BOOL OnLine(CPoint pt, CPoint start, CPoint end)
{
long MAXDIF = 5;
//if(long(m_edgeWidth/2+0.5)>MAXDIF)
// MAXDIF = long(m_edgeWidth/2 + 0.5);
//else
// MAXDIF = 5;
//如果點選不在區域中,則返回FALSE
CRect rc(start,end);
alizeRect();
ateRect(MAXDIF,MAXDIF);
if(!PtInRect(rc,pt))
return FALSE;
//計算距離
int x=pt.x,y=pt.y;
int x1=start.x,y1=start.y;
int x2=end.x,y2=end.y;
//水平,垂直情況
if((x1 == x2)&&(abs(x-x1)<=MAXDIF))
return TRUE;
if((y1 == y2)&&(abs(y-y1)<=MAXDIF))
return TRUE;
int A = y1-y2;
int B = x2-x1;
int C = -A*x1-B*y1;
double d;
double sq = sqrt((double)(A*A+B*B));
if(sq==0)
{
return FALSE;
}
else
d = fabs((double)(A*x+B*y+C)/sq);
//誤差容忍範圍
if(d<=MAXDIF)
return TRUE;
else
return FALSE;
return TRUE;
}
其他筆試題目推薦: