1)
ms筆試題目之一:
c++類繼承直接的過載問題
virtual
判斷下面程式的輸出結果
classa
; class
b:public a ;
class
c:public b ;
void
main()
輸出結果為:c
c c/
注意:如果
class a中的p
函式不是
vtrual
的,那麼輸出結果就是:a
b c
可見,virtural
的作用是當用基類的指標指向子類的函式時,呼叫子類的函式。
2)ms
筆試題目之二:
編寫乙個簡單的語言語法檢查器:
a)變數名稱以字母開頭的任意字元組成;但是關鍵字
loop
和end
不能作為變數名稱;
b)只有
int資料型別,並且無限大,沒有溢位的可能;
c)有四種操作型別:
i.zeroset
:v1=0
;ii.
valueassignment
:v1=v2
;iii.
addone
;v1++
;iv.
loop
:loop(v
)a++;
b=a;end
可以巢狀,並且巢狀中的
v變化並不影響
loop
引數中的
v變化,比如:
loop(v1)
loop(v2)
v2++;
end;
end; 其中
v1=2,v2=2
,那麼此裡外兩個迴圈均執行兩次,裡面的
v2++
並沒有影響外面的迴圈次數。
d)無非零的常量;
e)無比較和
if語句。
q1:編寫乙個語法檢查函式
bool taogrammarchecker(int statementcount, char* codes)
此函式引數分別是:
statementcount
記錄的是
codes
陣列的大小;
codes
陣列中記錄的是每條語句。
其中有已存在的函式,來檢查四個操作
bool isvalidzerosetstatement
(char* codes);
bool isvalidvalueassignmentstatement(char* codes);
bool isvalidaddonestatement(char* codes);
bool isvalidloopstartstatement(char* codes);
bool isvalidloopendstatement(char* codes); 比如
isvalidzerosetstatement
函式,作用是如果
codes
語句是zeroset
操作,則返回
true
;否則返回
false。q2
:編寫test cases
來對上面的程式進行測試,注意
case
的分類q3
:利用tao
語言來編寫自減函式,比如輸入是
a,則返回
a-1的值。如果a為
0,則返回0;
q4:假設已經存在「
--」,類似
c語言中的功能。利用
tao語言來編寫「
-=」函式,類似
c語言中的
-=,比如「
a-=b
」。如果a小於
b則返回0。
q5:假設「
-=」存在,利用
tao語言編寫a被
b整除的功能。不用考慮
b為零的情況。
微軟筆試題目(一)
1.微軟筆試題 快速求取乙個整數的7倍 乘法相對比較慢,所以快速的方法就是將這個乘法轉換成加減法和移位操作。可以將此整數先左移三位 8 然後再減去原值 x 3 x。int tmain int argc,tchar argv 快速求取乙個整數的7倍 int x 3 x x 3 x x 3 2 cout...
微軟筆試題目(一)
1.微軟筆試題 快速求取乙個整數的7倍 乘法相對比較慢,所以快速的方法就是將這個乘法轉換成加減法和移位操作。可以將此整數先左移三位 8 然後再減去原值 x 3 x。int tmain int argc,tchar argv 快速求取乙個整數的7倍 int x 3 x x 3 x x 3 2 cout...
微軟筆試面試題目
智力題 1 燒一根不均勻的繩子,從頭燒到尾總共需要1個小時,問如何用燒繩子的方法來確定半小時的時間呢?2 10個海盜搶到了100顆寶石,每一顆都一樣大小且價值連城。他們決定這麼分 1 抽籤決定自己的號碼 1 10 2 首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進...