20091206微軟筆試題目

2021-05-12 09:54:43 字數 2006 閱讀 4491

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號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進...