話說,有這樣一道據說是月薪2w的筆試題:
#include "stdio.h"要求在*部分寫**使整個程式執行後輸出「hello world」,有些人說,這還不簡單啊,於是寫出這樣的**:void print()
void main()
01.
#include "stdio.h"
02.
void
print()
03.
06.
void
main()
07.
這樣寫的確是沒問題,但是違背了題目的要求,因為題目不允許修改main函式,這下彷彿我們就沒轍了,因為我們學習c/c++語言的時候,明確說明main函式是程式的主函式,也是程式的入口函式,可是現在主函式為空,那怎麼會執行子函式呢?
其實這個筆試題考察的不是我們對基本知識的理解,而是要學會發現問題解決問題的能力,有時候,當一條路走不通的時候,我們就要換一條路,通過查詢資料,我們發現其實c++是可以修改入口函式的。
這裡需要乙個c++預編譯識別符號 #pragma comment() 來幫助我們搞定這個問題。他的使用型別是:pragma comment( comment-type ,["commentstring"] )。
comment-type是乙個預定義的識別符號,指定注釋的型別,應該是compiler,exestr,lib,linker之一。
commentstring是乙個提供為comment-type提供附加資訊的字串。
這裡我們需要使用linker來修改鏈結設定:
#pragma comment(linker, "/entry:print")看到了麼?通過/entry引數來設定程式鏈結時候的主函式為print,這樣,就相當於print函式是整個程式的主函式,他替換了main函式的作用,相反的,main函式則成為了乙個子函式
完整的**和執行結果如圖所示:
至於#pragma comment(lib, "msvcrt.lib")是因為使用了puts函式,如果使用printf的話可以不要這一句
據說是個新浪的面試題
一 都貼錯了 二 其中兩個貼錯了 豆子 黑豆 白豆 混豆 標籤 白豆 混豆 黑豆 因為都貼錯了,而唯一隨機情況的則是混合豆,那麼我們從混合豆標籤中取。取出一顆白豆,那麼已知標籤全部錯誤,這個混合豆標籤則應該改為白豆。那麼剩下 黑豆標籤 和 混豆的標籤 就直接解決啦 白色標籤 從黑色袋子揭下來替換了原...
據說是百度SA的面試題
原貼 http coolerfeng.blog.51cto.com 133059 97387 2008 09 05 14 05 29 標籤 sa面試題 推送到技術圈 原始出處 作者資訊和本宣告。否則將追究法律責任。1.假設apache產生的日誌檔名為access log,在apache正在執行時,執...
微軟的面試題,據說是高薪的敲門磚!
小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天,張老師把m值告訴了小明,把n值告訴了小強,張老師問他們知道他的生日是那一天嗎?3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明說 如果我不知道...