官术网_书友最值得收藏!

1.8 習題

一、常見的面試題

1.你認為C++和Java的區別在哪里?

【解析】本題考查的是兩種主流面向對象編程語言的區別,題目較簡單,發揮的余地較大。

【參考答案】

(1)速度方面,C++比Java快20倍,對于小應用程序,只需要根據需要選擇語言即可,而對于大型應用程序,絕大多數軟件廠商都選擇使用C++。

(2)Java是C++語言衍生出來的面向對象語言,任何對象、變量都封裝在類里面。而C++則具有面向過程和面向對象的雙重特性。

(3)Java沒有指針類型,但如果需要,也是靜態指針,這對于大多數具有大型項目經驗的程序員來說是不大習慣的。

(4)都具有構造函數,但Java沒有析構函數。

(5)Java沒有多繼承機制,這樣可以降低程序員編程出錯概率,但代價是喪失了面向對象的靈活性。

2.你最熟悉的C++集成開發環境是什么?請簡述其從源代碼到執行文件的轉化過程。

【解析】本題主要考查應聘者有沒有相關的開發經驗,比較簡單,有基本的經驗即可做出較好的回答。

【參考答案】我較熟悉的是Visual C++ 6.0集成開發環境。源代碼有兩種:程序源代碼和資源源代碼。當程序員將源代碼編寫好后,由編譯器分別編譯各源代碼文件,生成中間文件,然后通過連接器將各中間文件和系統調用的模塊連接起來,并生成執行文件。

3.寫一個最簡單的C++程序,要求打印“Hello,C++!”字符串,并盡可能詳細解釋每行程序。

【解析】本題雖然簡單,但很容易從簡單程序中看出一個人的C++編程理論基礎。

【參考答案】

1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5   cout<<"Hello,C++!";
6   cin.get();
7   return 0;
8 }

第1行:#include <iostream>表示“main.cpp”源文件可以使用輸入/輸出流所定義的對象、變量等。

第2行:using namespace std;在此聲明以下的同一個源文件內,都可以使用std名稱空間中的內容,這也是C++ 98標準后的一項防止標準變量和用戶定義變量沖突的一種方法。

第3行:int main()是C++程序的入口,該入口是一個函數,這個函數的返回值是int類型,而該函數的調用主體就是操作系統,當操作系統調用該函數后,得到一個為“0”的返回值后(第7行return 0),操作系統就知道該程序是正常退出了。

第5行:cout<<"Hello,C++!";就是運行結果的輸出語句,cout是在“iostream”頭文件中定義的一個輸出流對象,該對象有一個重載方法“<<”,而該重載方法接收的參數為“Hello,C++!”字符串。“<<”運算符本來的功能是向左移位操作,在cout對象中使用的是輸出重載功能,其調用就相當于cout.operator<<("Hello,C++!");。

第6行:cin.get();是用戶為了防止打印程序窗口過快消失而設置的,cin是輸入流對象,這里調用了該對象的get()成員函數,用于接收一個用戶輸入,接收之后,程序很快就返回操作系統并退出。

注:該題非常簡單,但重點在于程序的解釋,一個人的編程語言理論水平可以從解釋看出來。

4.以下4行代碼在Visual C++ 6.0環境中有何區別?

#include <iostream>
#include "iostream"
#include <iostream.h>
#include "iostream.h"

【解析】本題考查的是應聘者對C++新標準的理解和C++舊標準的經驗,如果沒有相關的知識儲備,則不可能回答好。

【參考答案】4行代碼都是包含輸入/輸出流文件,不同點在于:

(1)<>尖括號表示讓預編譯器直接搜索系統指定的頭文件目錄,而""(雙引號)號表示讓預編譯器先搜索與本源碼同目錄的頭文件,如果沒有,再到系統指定的頭文件目錄尋找該頭文件。

(2)有沒有“.h”的區別在于C++語言語法的新舊標準不同,新的語法標準是系統默認頭文件不用寫“.h”,但同時也兼容舊標準。因此,如果集成開發環境遵照新標準,則可寫,也可不寫,如果遵照舊標準,則一定要寫。

二、簡答題

1.簡要說出Visual C++中各系統菜單的主要功能。

2.MFC AppWizard的作用是什么?

3.ClassWizard的作用是什么?

三、編程題

設計一個C++終端應用程序,使其運行時輸出“Welcome to 21 Visual C++”的字樣,如圖1-24所示。

圖1-24 運行結果

四、綜合練習

1.新建一個Win32應用程序的工程Test,在其中添加一個C++ Source File,掌握應用程序編輯、編譯、鏈接和運行的實現和過程,該工程并不實現任何功能。

操作步驟如下。

1 打開Visual C++ 6.0應用程序,單擊【文件】|【新建】菜單項,打開【新建】對話框。

2 選擇【工程】選項卡,選中其中的【Win32 Console Application】選項,輸入工程名,選擇輸入該工程的位置。

3 單擊【OK】按鈕后進入【Win32 Console Application】對話框,選擇【An empty project】選項,如圖1-25所示。

圖1-25 新建Win32應用程序

4 單擊【Finish】按鈕,完成向導。

5 添加C++ Source File文件,如圖1-26所示。

圖1-26 添加C++ Source File文件

6 編譯、鏈接應用程序。

7 運行應用程序,如圖1-27所示。

圖1-27 運行Win32應用程序

提示

在圖1-25中,如果沒有選擇【An empty project】選項,而是選擇【A simple application】選項,則會新建一個含有默認C++源文件的工程。

2.編寫一個簡單的應用程序,要求其實現的功能為:用戶輸入兩個數,可得到兩數之和。操作步驟如下。

1 打開Visual C++ 6.0應用程序,單擊【文件】|【新建】菜單項,打開【新建】對話框。

2 選擇【工程】選項卡,選擇其中的【Win32 Console Application】選項,輸入工程名,選擇輸入該工程的位置。

3 單擊【OK】按鈕后進入【Win32 Console Application】對話框,選擇【A simple application】選項建立一個工程,如圖1-28所示。

圖1-28 新建Win32應用程序

4 單擊【Finish】按鈕,完成向導。

5 在集成開發環境的工作區中可看到該工程的文件視圖,打開其中的Source File樹形結構,可看到Visual C++ 6.0默認生成的sum.app文件,如圖1-29所示。

圖1-29 樹形結構

雙擊打開該文件,可看到Visual C++自動生成的代碼,如圖1-30所示。

圖1-30 自動生成的代碼

6 雙擊打開sum.app文件,在其中輸入代碼,如圖1-31所示。

圖1-31 添加代碼

7 編譯運行該應用程序,其結果如圖1-32所示。

圖1-32 運行結果

提示

在該練習中使用的是Visual C++自動生成的源文件,因此需要在工作區中將其打開,并添加相應的代碼。

主站蜘蛛池模板: 烟台市| 科技| 望都县| 北流市| 都江堰市| 鄱阳县| 安庆市| 东台市| 城固县| 定陶县| 河北区| 巨鹿县| 名山县| 饶阳县| 郁南县| 安泽县| 东源县| 陆良县| 祥云县| 临猗县| 天台县| 鹰潭市| 永兴县| 布拖县| 灵台县| 祥云县| 淮安市| 无为县| 齐齐哈尔市| 芦溪县| 岱山县| 青田县| 大厂| 和田县| 大竹县| 攀枝花市| 安岳县| 富阳市| 星座| 元谋县| 民勤县|