2011年校園招聘筆試題(一) java
(測試題目答題時間90分鐘,請獨立完成) ios
第一部分 基礎知識 算法
1、邏輯題 sql
一、不可能全部的錯誤都能避免。如下哪項判定的含義,與上述判定最爲接近? ( ) 數據庫
A全部的錯誤必然都不能避免。 B全部的錯誤可能都不能避免。 數組
C有的錯誤可能不能避免。 D有的錯誤必然不能避免。 瀏覽器
二、有ABCD四個有實力的排球隊進行循環賽(每一個隊與其餘隊各比賽一場,比賽沒有平局),比賽結果,B隊輸掉一場,C隊比B隊少贏一場,而B隊又比D隊少贏一場。 服務器
關於A隊的名次,下列哪一項爲真?( ) 網絡
A第一名。 B第二名。 C第三名。 D第四名。 數據結構
三、有人養了一些兔子。別人問他有多少隻雌兔?多少隻雄兔?他答,在他所養的兔子中,每一隻雄兔的雌性同伴比它的雄性同伴少一隻;而一隻雌兔的雄性同伴比它的雌性同伴的兩倍少兩隻。
根據上述回答,能夠判斷它養了多少隻雌兔?多少隻雄兔?( )
A 8只雄兔,6只雌兔。 B 10只雄兔,8只雌兔。
C 12只雄兔,10只雌兔。 D 14只雄兔,8只雌兔。
四、20世紀60年代初以來,新加坡的人均預期壽命不斷上升,到21世紀已超過日本,成爲世界之最。與此同時,和一切發達國家同樣,因爲飲食中的高脂肪含量,新加坡人的心血管疾病的發病率也逐年上升。
從上述斷定,最可能推出如下哪項結論?( )
A新加坡人的心血管疾病的發病率雖逐年上升,但這種疾病不是形成目前新加坡人死亡的主要殺手。
B目前新加坡對於心血管疾病的治療水平是全世界最高的。
C 20世紀60年代形成新加坡人死亡的那些主要疾病,到21世紀,若是在該國的發病率沒有實質性的下降,那麼對這些疾病的醫治水平必定有實質性的提升。
D目前新加坡人心血管疾病的發病率低於日本。
五、甲省的省報發行量是乙省的省報發行量的10倍,可見,甲省的羣衆比乙省的羣衆更關心時事新聞。
如下哪項屬實,最能削弱上述論證:( )
A甲省的人口是乙省人口的5倍。
B甲省的面積是乙省面積的10倍。
C甲省的省報在全國發行。
D甲省的省報主要在乙省銷售。
6-十、分析推理:
如下五題基於如下題幹:
電視臺安排5我的——H,I,K,N和V參加一電視節目的比賽,比賽從星期一開始一直到星期五結束,天天一我的參賽。參賽者的計劃安排必須聽從如下條件:
(1)N不能被安排在星期一;
(2)若H被安排在星期一,則N被安排在星期五;
(3)若N被安排在星期二,則I被安排在星期一;
(4)K被安排在V以後的一天。
六、V不能被安排在下面哪一天?( )
(A)星期一 (B)星期二 (C)星期三 (D)星期五
七、若I被安排在H以後的一天,則下面哪一項列出了H能夠參賽的全部時間?( )
(A)星期一,星期二 (B)星期一,星期三
(C)星期一,星期四 (D)星期一,星期三,星期四
八、若K被安排在星期三,則下面哪一項可能正確?( )
(A)I被安排在星期五 (B)N被安排在星期二
(C)N被安排在H的前一天 (D)N被安排在I的前一天
九、若K被安排在星期五,則下面哪一項必定正確?( )
(A)H被安排在星期二 (B)H被安排在星期三
(C)I被安排在星期一 (D)I被安排在星期三
十、若I被安排在星期三,則下面哪一項必定正確?( )
(A)H被安排在N的前面 (B)H被安排在K的前面
(C)K被安排在H的前面 (D)N被安排在K的前面
2、基礎技術知識
1. 在SQL語言中,子查詢是( ) 。
A. 返回單表中數據子集的查詢語言 B. 選取多表中字段子集的查詢語句
C. 選取單表中字段子集的查詢語句 D. 嵌入到另外一個查詢語句之中的查詢語句
2. SQL是一種()語言。
A. 高級算法 B. 人工智能 C. 關係數據庫 D. 函數型
3. 在關係數據庫有表 S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學生號,SNAME是學生姓名,SAGE是學生年齡, C#是課程號,CNAME是課程名稱。要查詢選修「ACCESS」課的年齡不小於20的全體學生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。這裏的WHERE子句的內容是()。
A. S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B. S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C. SAGE in>=20 and CNAME in ‘ACCESS’
D. SAGE>=20 and CNAME=’ ACCESS’
4. 設關係數據庫中一個表S的結構爲S(SN,CN,grade),其中SN爲學生名,CN爲課程名,兩者均爲字符型;grade爲成績,數值型,取值範圍0-100。若要把「張二的化學成績80分」插入S中,則可用()。
A. ADD B. INSERT
INTO S INTO S
VALUES(’張二’,’化學’,’80’) VALUES(’張二’,’化學’,’80’) C. ADD D. INSERT
INTO S INTOS
VALUES(’張二’,’化學’,80) VALUES(’張二’,’化學’,80)
5. 設關係數據庫中一個表S的結構爲:S(SN,CN,grade),其中SN爲學生名,CN爲課程名,兩者均爲字符型;grade爲成績,數值型,取值範圍0-100。若要更正王二的化學成績爲85分,則可用() 。
A. UPDATE S B. UPDATE S
SET grade=85 SET grade=’85’
WHERE SN=’王二’ AND CN=’化學’ WHERE SN=’王二’ AND CN=’化學’
C. UPDATE grade=85 D. UPDATE grade=’85’
WHERE SN=’王二’ AND CN=’化學’ WHERE SN=’王二’ AND CN=’化學’
6. SQL語言的數據操縱語句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語句是() 。
A. SELECT B. INSERT C. UPDATE D. DELETE
7. 在視圖上不能完成的操做是() 。
A. 更新視圖 B. 查詢 C. 在視圖上定義新的表 D. 在視圖上定義新的視圖
8.下面關於XML的描述錯誤的是()。
A XML提供一種描述結構化數據的方法;
B XML 是一種簡單、與平臺無關並被普遍採用的標準;
C XML文檔可承載各類信息;
D XML是可擴展的標誌語言
9. 「軟件危機」是指()
A. 計算機病毒的出現 B. 利用計算機進行經濟犯罪活動
C. 軟件開發和維護中出現的一系列問題 D. 人們過度迷戀計算機系統
10. DFD中的每一個加工至少須要()
A. 一個輸入流 B. 一個輸出流 C. 一個輸入或輸出流 D. 一個輸入流和一個輸出流
11. 爲了提升模塊的獨立性,模塊之間最好是()
A. 控制耦合 B. 公共耦合 C. 內容耦合 D. 數據耦合
12. 下面關於PDL語言不正確的說法是()
A. PDL是描述處理過程怎麼作 B. PDL是隻描述加工作什麼
C. PDL也稱爲僞碼 D. PDL的外層語法應符合通常程序設計語言經常使用的語法規則
13. 詳細設計與概要設計銜接的圖形工具是()
A. DFD圖 B. 程序圖 C. PAD圖 D. SC圖
14. 下列關於功能性註釋不正確的說法是()
A. 功能性註釋嵌在源程序中,用於說明程序段或語句的功能以及數據的狀態
B. 註釋用來講明程序段,須要在每一行都要加註釋
C. 可以使用空行或縮進,以便很容易區分註釋和程序
D. 修改程序也應修改註釋
15. 下列關於效率的說法不正確的是()
A. 效率是一個性能要求,其目標應該在需求分析時給出
B. 提升程序效率的根本途徑在於選擇良好的設計方法,數據結構與算法
C. 效率主要指處理機時間和存儲器容量兩個方面
D. 程序的效率與程序的簡單性無關
16. 測試的關鍵問題是()
A. 如何組織對軟件的評審 B. 如何驗證程序的正確性
C. 如何採用綜合策略 D. 如何選擇測試用例
17. 結構化維護與非結構化維護的主要區別在於()
A. 軟件是否結構化 B. 軟件配置是否完整
C. 程序的完整性 D. 文檔的完整性
18. 軟件維護困難的主要緣由是()
A. 費用低 B. 人員少
C. 開發方法的缺陷 D. 得不到用戶支持
19. 可維護性的特性中,相互矛盾的是()
A. 可理解性與可測試性 B. 效率與可修改性
C. 可修改性和可理解性 D. 可理解性與可讀性
20. 快速原型是利用原型輔助軟件開發的一種新思想,是在研究( )的方法和技術中產生的。
A. 需求階段 B. 設計階段 C. 測試階段 D. 軟件開發的各個階段
21. 下列有關軟件工程的標準,屬於行業標準的是()
A. GB B. DIN C. ISO D. IEEE
22. 下列文檔與維護人員有關的有()
A. 軟件需求說明書 B. 項目開發計劃 C. 概要設計說明書 D. 用戶操做手冊
23. ()是爲了確保每一個開發過程的質量,防止把軟件差錯傳遞到下一個過程而進行的工做。
A. 質量檢測 B. 軟件容錯 C. 軟件維護 D. 系統容錯
24. 表示對象相互行爲的模型是()模型。
A. 動態模型 B. 功能模型 C. 對象模型 D. 靜態模型
25. 下列中不具有線程管理的操做系統是()
A. Windows NT B. Linux C. Dos D. UNIX
26. 產生系統死鎖的緣由是因爲()
A. 進程釋放資源 B. 一個進程進入死循環
C. 多個進程競爭,資源出現循環等待 D. 多個進程競爭共享型設備
27. 處理器執行的指令被分爲兩類,其中一類被稱爲特權指令,它只容許()使用。
A. 操做員 B. 聯機用戶 C. 操做系統 D. 目標程序
28.在Internet上瀏覽時,瀏覽器和WWW服務器之間傳輸網頁使用的協議是 ()
A. IP B. Telnet C. FTP D. HTTP
29.Internet 協議IPv6 將從原來的32位地址擴展到了( )位 ()
A. 64 B.128 C. 512 D. 256
30. 文件傳輸協議是( )上的協議 ()
A. 網絡層 B. 運輸層 C. 應用層 D. 物理層
第二部分 JAVA類題目
1、選擇題
1.Java是從()語言改進從新設計。
A.Ada B.C++ C.Pasacal D.BASIC
2.下列語句哪個正確()
A. Java程序經編譯後會產生machine code B. Java程序經編譯後會產生byte code
C. Java程序經編譯後會產生DLL D.以上都不正確
3.下列說法正確的有()
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個對象被new時執行
D.一個class只能定義一個constructor
4.提供Java存取數據庫能力的包是()
A.java.sql B.java.awt C.java.lang D.java.swing
5.下列運算符合法的是()
A.&& B.<> C.if D.:=
6.執行以下程序代碼後,C的值是()
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A.0 B.1 C.-1 D.死循環
7.下列哪種敘述是正確的()
A. abstract修飾符可修飾字段、方法和類
B.抽象方法的body部分必須用一對大括號{ }包住
C.聲明抽象方法,大括號無關緊要
D.聲明抽象方法不可寫出大括號
8.下列語句正確的是()
A.形式參數可被視爲local variable B.形式參數可被字段修飾符修飾
C.形式參數爲方法被調用時,真正被傳遞的參數 D.形式參數不能夠是對象
9.下列哪一種說法是正確的()
A.實例方法可直接調用超類的實例方法 B.實例方法可直接調用超類的類方法
C.實例方法可直接調用其餘類的實例方法 D.實例方法可直接調用本類的類方法
10. 下列哪一個選項是合法的標識符?()
A.123 B._name C.class D.1first
11. 下列哪一個選項是Java調試器,若是編譯器返回程序代碼的錯誤,能夠用它對程序進行調試? ()
A.java.exe B.javadoc.exe C.jdb.exe D.javaprof.exe
12. 下列的哪一個選項能夠正確用以表示八進制值8? ()
A.0x8 B.0x10 C.08 D.010
13. 下列的哪一個賦值語句是不正確的? ()
A.float f = 11.1 B.double d = 5.3E12
C.float d =3.14f D.double f=11.1E10f
14. 下列的哪一個賦值語句是正確的? ( )
A.char a=12 B.int a=12.0 C.int a=12.0f D.int a=(int)12.0
15. 下列哪一個選項是正確計算42度(角度)的餘弦值?()
A.double d=Math.cos(42)
B.double d=Math.cosine(42)
C.double d=Math.cos(Math.toRadians(42))
D.double d=Math.cos(Math.toDegrees(42))
16. 下列InputStream類中哪一個方法能夠用於關閉流? ()
A.skip() B.close() C.mark() D.reset()
17. 下列方法中哪一個是執行線程的方法? ()
A.run() B.start() C.sleep() D.suspend()
18. 下列關於Frame類的說法不正確的是 ?()
A.Frame是Window類的直接子類 B.Frame對象顯示的效果是一個窗口
C.Frame被默認初始化爲可見 D.Frame的默認佈局管理器爲BorderLayout
19. 下列Java常見事件類中哪一個是鼠標事件類?()
A.InputEvent B.KeyEvent C.MouseEvent D.WindowEvent
20. 在Applet的關鍵方法中,哪一個方法是關閉瀏覽器以釋放Applet佔用的全部資源?()
A.init() B.start() C.paint() D.destroy()
21. 下列哪一個是面向大型企業級用容器管理專用構件的應用平臺?()
A.J2EE B.J2ME C.J2SE D.J2DE
22.下列關於繼承的哪項敘述是正確的?
A.在java中容許多重繼承
B.在java中一個類只能實現一個接口
C.在java中一個類不能同時繼承一個類和實現一個接口
D.java的單一繼承使代碼更可靠
23. 下列哪一個修飾符可使在一個類中定義的成員變量只能被同一包中的類訪問?
A.private B.無修飾符 C.public D.protected
24.下列說法正確的有(B C D)
A.環境變量可在編譯source code時指定
B.在編譯程序時,所能指定的環境變量不包括class path
C. javac一次可同時編譯數個Java源文件
D. javac.exe能指定編譯結果要置於哪一個目錄(directory)
25.下列說法錯誤的有(B C D)
A.數組是一種對象 B.數組屬於一種原生類
C. int number=[]={31,23,33,43,35,63} D.數組的大小能夠任意改變
26.不能用來修飾interface的有(A C D)
A.private B.public C.protected D.static
27.下列正確的有(A C D)
A. call by value不會改變實際參數的數值
B. call by reference能改變實際參數的參考地址
C. call by reference不能改變實際參數的參考地址
D. call by reference能改變實際參數的內容
28.下列說法錯誤的有(A C D)
A.在類方法中可用this來調用本類的類方法
B.在類方法中調用本類的類方法時可直接調用
C.在類方法中只能調用本類中的類方法
D.在類方法中絕對不能調用實例方法
29.下列說法錯誤的有(A B C )
A. Java面嚮對象語言允許單獨的過程與函數存在
B. Java面嚮對象語言允許單獨的方法存在
C. Java語言中的方法屬於類中的成員(member)
D. Java語言中的方法一定隸屬於某一類(對象),調用方法與過程或函數相同
30.下列說法錯誤的有(B C D)
A.能被java.exe成功運行的java class文件必須有main()方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar選項運行.jar文件
D.能被Appletviewer成功運行的java class文件必須有main()方法
2、填空題
1. 若是要把一個對象聲明爲多線程,則該對象必須是________類型。
2. java中提供了兩種用於多態的機制 _________,__________。
3. java中用_________關鍵字指明繼承關係.用______關鍵字指明對接口的實現。
4. this表明了_______的引用,super表示的是當前對象的___________對象。
5. 在運行時,由java解釋器自動引入,而不用import語句引入的包是__________。
6.通常有兩種用於建立線程對象的方法,一是_____,二是________。
7. 通常用__________________建立InputStream對象,表示從標準輸入中獲取數據,用________________建立OutputStream對象,表示輸出到標準輸出設備中。
8. 關鍵字_______代表一個對象或變量在初始化後不能被修改。
9. 面向對象程序的主要特徵:繼承,_______________,______________。
10. 一個完整的URL地址由_________,_________,端口和文件四部分組成。
3、閱讀題:寫出程序結果或挑出程序的錯誤
一、 JAVA代碼查錯
abstract class Name { |
二、 JAVA代碼查錯
public class Something { |
三、 JAVA代碼查錯
abstract class Something { |
4、JAVA代碼查錯
public class Something { |
五、如下程序段的輸出結果爲:
public class EqualsMethod { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.print(n1==n2); System.out.print(「,」); System.out.println(n1!=n2); } } |
4、附加題:
寫一個Singleton。Singleton模式主要做用是保證在Java應用程序中,一個類Class只有一個實例存在。
第三部分 C++類題目
1、選擇題
1.下列關於對象初始化的敘述中,正確的是
A 定義對象的時候不能對對象進行初始化
B 定義對象以後能夠顯式地調用構造函數進行初始化
C 定義對象時將自動調用構造函數進行初始化
D 在一個類中必須顯式地定義構造函數實現初始化
2.下列關於基類和派生類關係的敘述中,正確的是
A 每一個類最多隻能有一個直接基類
B 派生類中的成員能夠訪問基類中的任何成員
C 基類的構造函數必須在派生類的構造函數體中調用
D 派生類除了繼承基類的成員,還能夠定義新的成員
3.下列關於賦值運算符「=」重載的敘述中,正確的是
A 賦值運算符只能做爲類的成員函數重載
B 默認的賦值運算符實現了「深層複製」功能
C 重載的賦值運算符函數有兩個本類對象做爲形參
D 若是己經定義了複製(拷貝 構造函數,就不能重載賦值運算符
4.下列選項中,正確的C++標識符是
A 6_group B group~6 C age+3 D _group_6
5. 下列循環語句中有語法錯誤的是
A int i; for( i=1; i<10;i++)cout<<‘*‘;
B int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*‘;
C int i=0;for(;i<10;i++)cout<<‘ *‘;
D for(1)cout<<‘*‘;
6. 下列定義語句中,錯誤的是
A int px*; B char*acp[10]; C char(*pac)[10]; D int(*p)();
7. 若MyClass爲一個類,執行「MyClass a[4],*p[5];」語句時會自動調用該類構造函數的次數是
A 2 B 5 C 4 D 9
8. 有以下程序:
#include<iostream>
#include<cmath>
using std::cout;
class Point{
public:
friend double distance(const Point &p); //p距原點的距離
Point(int xx=0,int yy=0):x (xx),Y(YY){}//①
private:
Int x,Y;
};
double distance(const Point &p) { //②
return sqrt(p.x*p.x+p.Y*p.Y);
}
int main(){
Point p1(3,4);
cout<<distance(p1); //③
return 0;
}
下列敘述中正確的是
A 程序編譯正確 B 程序編譯時語句①出錯
C 程序編譯時語句②出錯 D 程序編譯時語句③出錯
9. 下列哪兩個是等同的
int b;
const int *a = &b; const * int a = &b;
const int* const a = &b; int const* const a = &b;
A B C ` D
10. 有以下語句序列:
char str[10];cin>>str;
當從鍵盤輸入」I love this game」時,str中的字符串是
A "I love this game" B "I love thi" C "I love" D "I"
11. 有函數模板聲明和一些變量定義以下:
template <class Tl,class T2,class T3>T1 sum(T2,T3);
double dl,d2;
則下列調用中,錯誤的是
A sum<double,double,double>(dl,d2); B sum<double;double>(d1,d2);
C sum<double>(d1,d2); D sum(d1,d2);
12. 如下程序段徹底正確的是
A int *p; scanf("%d",&p); B int *p; scanf(「%d」,p);
C int k, *p=&k; scanf("%d",p); D int k, *p:; *p= &k; scanf(「%d」,p);
13. 有定義語句:int *p[4];如下選項中與此語句等價的是
A int p[4]; B int **p; C int *(p「4」); D int (*p)「4」;
14. 若要重載+、=、<<、=和[]運算符,則必須做爲類成員重載的運算符是
A +和= B =和<< C ==和<< D =和[]
15. 下列說法正確的是( )
A 內聯函數在運行時是將該函數的目標代碼插入每一個調用該函數的地方
B 內聯函數在編譯時是將該函數的目標代碼插入每一個調用該函數的地方
C 類的內聯函數必須在類體內定義
D 類的內聯函數必須在類體外經過加關鍵字inline定義
16. 下面對於友元函數描述正確的是( )
A 友元函數的實現必須在類的內部定義
B 友元函數是類的成員函數
C 友元函數破壞了類的封裝性和隱藏性
D 友元函數不能訪問類的私有成員
17. 在公有派生狀況下,有關派生類對象和基類對象的關係,下列敘述不正確的是( )
A 派生類的對象能夠賦給基類的對象
B 派生類的對象能夠初始化基類的引用
C 派生類的對象能夠直接訪問基類中的成員
D 派生類的對象的地址能夠賦給指向基類的指針
18. 下列關於多態性的描述,錯誤的是( )
A C++語言的多態性分爲編譯時的多態性和運行時的多態性
B 編譯時的多態性可經過函數重載實現
C 運行時的多態性可經過模板和虛函數實現
D 實現運行時多態性的機制稱爲動態綁定
19. 若是友元函數重載一個運算符時,其參數表中沒有任何參數則說明該運算符是( )
A 一元運算符 B 二元運算符 C 選項A 和選項B 均可能 D 重載錯誤
20. 在下列關於C++函數的敘述中,正確的是( )
A 每一個函數至少要有一個參數 B 每一個函數都必須返回一個值
C 函數在被調用以前必須先聲明 D 函數不能本身調用本身
21. 若是進棧序列爲el,e2,e3,e4,則可能的出棧序列是 ( )
A e3,el,e4,e2 B e2,e4,e3,el C e3,e4,e1,e2 D 任意順序
22. 下面關於模板的描述,錯誤的是 ( )
A 函數模板和類模板的參數能夠是任意的數據類型
B 類模板不能直接使用,必須先實例化爲相應的模板類.而後定義了模板類的對象
C 函數模板不能直接使用,須要實例化爲模板函數後才能使用
D 類模板的成員函數都是模板函數
23. 下面對靜態數據成員的描述中,正確的是( )
A 靜態數據成員能夠在類體內進行初始化
B 靜態數據成員不能夠被類的對象調用
C 靜態數據成員不能受private控制符的做用
D 靜態數據成員能夠直接用類名調用
24. 對類成員訪問權限的控制,是經過設置成員的訪問控制屬性實現的,下列不是訪問控制屬性的是( )
A 公有類型 B 私有類型 C 保護類型 D 友元類型
25.抽象基類是指( )
A 嵌套類 B 派生類 C 含有純虛函數 D 多繼承類
26.若是已定義了一個C++類CMyList並有如下語句:
CMyList list(3);
如下說法正確的是()。
A 該語句會建立一個CMyList類的一個對象;
B 該語句會建立一個CMyList類的3個對象;
C 必須爲類CMyList定義一個構造函數;
D 必須爲類CMyList定義一個析構函數;
E 必須定義函數CMyList list(int);
27. 如下說法正確的是( )。
A內聯(inline)函數改善了函數調用的執行效率。
B類A的友元(friend)函數能夠訪問類A的私有成員。
C類A的友元(friend)類B能夠訪問類A的私有成員。
D類A的靜態數據成員爲類A的全部對象所共享。
E類A的靜態成員函數沒有傳遞this 指針做爲參數。
28.類B從類A派生,則類B能夠訪問類A中的( )成員。
A public成員 B private成員 C protected成員 D數據成員 E函數成員
29. 面向對象的程序設計語言具備()等共同特性。
A封裝性 B多態性 C簡單性 D複雜性 E繼承性
30. 現有一個程序以下:
#i nclude
class A
{ public:
void f(){ cout<< 「A::f()」;}
};
class B
{ public:
void f(){ cout<< 「B:f()」;}
void g(){ cout<< 「B:g()」;}
};
class C : public A, public B
{ public:
void g(){ cout<<」C::g()」;}
void h()
{ cout<<」C::h()」;
f(); //語句1
}
};
void main()
{ C obj;
obj.f(); //語句2
obj.A::f(); //語句3
obj.B::f(); //語句4
obj.g(); //語句5
}
則編譯時會產生錯誤的語句有()
A語句1 B語句2 C語句3 D語句4 E語句5
2、 填空題
1. int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
假定x = 9999。 函數的運行結果爲_____
2. 一個棧的初始狀態爲空。首先將元素5,4,3,2,1 依次入棧,而後退棧一次,再將元素A,B,C,D依次入棧,以後將全部元素所有退棧,則全部元素退棧(包括中間退棧的元素)的順序爲_______________。
3. 一棵二叉樹有10個度爲1的結點,7個度爲2的結點,則該二叉樹共有個_____結點。
4. 一個雙目運算符做爲類的成員函數重載時,重載函數的參數表中有_ _個參數。
5. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i的值爲_ _。
6. switch()中不容許的數據類型是____。
7. 某32位系統下, C++程序void *p = malloc( 100 ); sizeof (p) = ____。
8. int a = 4;(++a) += a;執行後a的值爲___。
9. 派生類中的成員函數能夠直接訪問基類中的公有成員和____成員。
10. C++語言的參數傳遞機制包括傳值和________兩種。
3、 閱讀題
1.寫出函數Test的運行結果
void Test(void){
char *str = (char *) malloc(100);
strcpy(str, 「hello」);
free(str);
if(str != NULL){
strcpy(str, 「world」);
printf(str);
}
}
2.寫出程序的運行結果
#include<iostream>
using namespace std;
class Base{
Int x;
Public:
Base(int b):x(b){}
virtual void display(){cout<<x;}
};
class Derived:public Base{
Int y;
public:
Derived(int d):Base(d),y(d){}
void display(){cout<<y;}
};
int main(){
Base b(1);Derived d(2);
Base*p=&d;
b .display();d.display();p一>display();
return 0;
}
3.下面的函數實如今一個固定的數上加上一個數,有什麼錯誤,改正
int add_n(int n)
{
static int i=100;
i+=n;
return i;
}
4.i最後等於多少?
int i = 1;
int j = i++;
if((i>j++) && (i++ == j)) i+=j;
5.#include…
const int SIZE=10;
class stack
{ char stck[SIZE];
int top;
public:
void init();
void push(char ch);
char pop();
};
void stack::init()
{ top=0; }
void stack:push(char ch)
{ if(top==SIZE)
{ cout<<」Stack is full.\n」;
return ; }
stck[top++]=ch;
}
char stack:pop()
{ if(top==0)
{ cout<<」Stack is empty.\n」;
return 0;}
return stck[--top];
}
void main()
{ stack s1, s2;
s1.init();
s2.init();
s1.push(‘a’);
s1.push(‘b’);
s1.push(‘c’);
s2.push(‘x’);
s2.push(‘y’);
s2.push(‘z’);
for(int i=0; i<3; i++)
cout<<」Pop s1:」<< s1.pop();
for(i=0; i<3; i++)
cout<<」Pop s2:」<< s2.pop();
}
4、附加題:
寫一個Singleton。Singleton模式主要做用是保證在Java應用程序中,一個類Class只有一個實例存在。