東北大學(xué)秦皇島分校原版c復(fù)習(xí)題_第1頁
東北大學(xué)秦皇島分校原版c復(fù)習(xí)題_第2頁
東北大學(xué)秦皇島分校原版c復(fù)習(xí)題_第3頁
東北大學(xué)秦皇島分校原版c復(fù)習(xí)題_第4頁
東北大學(xué)秦皇島分校原版c復(fù)習(xí)題_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、A卷1. 下列語句中錯誤的是( D)A. int *p=new int(10) ;    B. int *p=new int10 ;    C.   int *p=new int ;    D. int *p=new int40(0)2. 假設(shè)已經(jīng)有定義char *const name=”chen” ;下面的語句中正確的是( A)A. name3=q;         B. name=”lin”;     

2、      C. name=new char5    D. name=new char(q);3. 下面的類型聲明中正確的是(D )A. int &a4            B. int &*p ;              C. int &&q ;   

3、        D. int I,*p=& I ;4. 在聲明類時,下面的說法正確的是( C)A.可以在類的聲明中給數(shù)據(jù)成員賦值              B. 數(shù)據(jù)成員的數(shù)據(jù)類型可以是register C. private、public、protected可以按任意順序出現(xiàn)   D. 沒有用private、public、protected定義的數(shù)據(jù)成員是公有成員5. 構(gòu)造函數(shù)是在(B )時被執(zhí)行的

4、。A.程序編譯            B. 創(chuàng)建對象             C. 創(chuàng)建類            D.程序裝入內(nèi)存6. 在下面有關(guān)友元函數(shù)的描述中,正確的說法是(A )A. 友元函數(shù)是獨立于當(dāng)前類的外部函數(shù)     

5、0;     B.一個友元函數(shù)不能同時定義為兩個類的有友元函數(shù) C.友元函數(shù)必須在類的外部定義                  D.在外部定義友元函數(shù)時,必須加關(guān)鍵字friend7. 使用派生類的主要作用是(A )A.提高代碼的可重用性  B.提高程序的運行效率    C.加強類的封裝性     D.實現(xiàn)數(shù)據(jù)的隱藏8. 關(guān)于虛函數(shù),正確的描述是(

6、A )A.構(gòu)造函數(shù)不能是虛函數(shù) B.析構(gòu)函數(shù)不能是虛函數(shù) C.虛函數(shù)可以是友元函數(shù) D.虛函數(shù)可以是靜態(tài)成員函數(shù)9. 如果在基類中將成員函數(shù)show聲明為不帶返回值得純虛函數(shù),正確的寫法是(C )A.virtual show( )=0;      B.virtual void show( )     C.virtual void show( )=0;   D.void show( )=0 virtual;10. 使用myFile.open(“sales.dat”,ios:app)語句打開文件sales.dat后,則

7、(A )A.該文件只能用于輸出  B.該文件只能用于輸入  C.該文件既能用于輸出,又能用于輸入  D.若該文件存在,則清除該文件的內(nèi)容 三、寫出下列程序的運行結(jié)果(前2題每題6分,第三題8分,共20分) 1#include"iostream.h"class toy  public: toy(int q,int p)  quan=q; price=p; int get_quan() return quan; int get_price() return p

8、rice;private: int quan,price;int main() toy op22=toy(10,20),toy(30,48),toy(50,68),toy(70,80); int i; for(i=0;i<2;i+)   cout<<opi0.get_quan()<<","  cout<<opi0.get_price()<<"n"  cout<<opi1.get_quan()<&

9、lt;","  cout<<opi1.get_price()<<"n"  cout<<"n" return 0; 2#include"iostream.h"class Stockpublic: void print() cout<<"Stock class.n"class Der1_Stock:public Stockpublic: void print() 

10、cout<<"Deri1_Stock class.n"class Der2_Stock:public Stockpublic: void print() cout<<"Deri2_Stock class.n"void main() Stock s1; Stock *ptr; Der1_Stock d1; Der2_Stock d2; ptr=&s1; ptr->print(); ptr=&d1; ptr->

11、;print(); ptr=&d2; ptr->print();3#include"iostream.h"class Apublic: A(int i):xi(i) A()xi=0; friend A operator+(A a); friend A operator-(A &a); void print();private: int xi;A operator+(A a) +a.xi; return a;A operator-(A &a)

12、60;   -a.xi; return a;void A:print() cout<<xi<<endl;void main() A i(7); +i; i.print(); -i; i.print();三  1答案:10,20;30,48;50,6870,802答案:Stock class.      Stock class.      Stock class.3答案:7    &#

13、160; 6B卷一、選擇題(每題2分,共20分,答案填寫在題后的表格內(nèi))1. 假設(shè)已經(jīng)有定義 const char *const name=”chen” ;下面的語句中正確的是(D )A. name3=a;        B. name=”lin”;         C. name=new char5          D. cout<<name3;2. 假設(shè)已經(jīng)有定義con

14、st  char * name=”chen” ;下面的語句中錯誤的是( A)A. name3=q;        B. name=”lin”;         C. name=new char5          D. name=new char(q);3. 在下面有關(guān)對構(gòu)造函數(shù)的描述中,正確的是(B )A.構(gòu)造函數(shù)可以帶有返回值   B. 構(gòu)造函數(shù)的名字與類名完全相

15、同  C. 構(gòu)造函數(shù)必須帶有參數(shù)   D. 構(gòu)造函數(shù)必須定義,不能缺省4. 在下面有關(guān)析構(gòu)函數(shù)特征的描述中,正確的是(C )                                       

16、;  A. 一個類可以定義多個析構(gòu)函數(shù) B.析構(gòu)函數(shù)名與類名完全相同 C. 析構(gòu)函數(shù)不能指定返回類型  D.析構(gòu)函數(shù)可以有一個或多個參數(shù)5. 在下面有關(guān)靜態(tài)成員函數(shù)的描述中,正確的是( B)A. 在靜態(tài)成員函數(shù)中可以使用this指針                B.在建立對象前,就可以為靜態(tài)數(shù)據(jù)成員賦值 C. 靜態(tài)成員函數(shù)在類外定義時,要用static前綴       

17、60; D. 靜態(tài)成員函數(shù)只能在類外定義6. 友元的作用之一是( A)A. 提高程序的運行效率  B.加強類的封裝性     C.實現(xiàn)數(shù)據(jù)的隱藏性        D.增加成員函數(shù)的種類7. 假設(shè)已經(jīng)定義好了一個類student,現(xiàn)在要定義類derived,它是從student私有派生的,定義類derived的正確寫法是( C)A.class derived:student private         &

18、#160;    B. class derived:student public C.class derived:private student/         D.class derived:public student/   8. 要實現(xiàn)動態(tài)聯(lián)編,派生類中的虛函數(shù)(D )A.返回的類型可以與虛函數(shù)的原型不同 B.參數(shù)個數(shù)可以與虛函數(shù)的原型不同 C.參數(shù)類型可以與虛函數(shù)的原型不同 D.以上都不對9. 有關(guān)運算符重載正確的描述是(D )A.C+語言允許在重載運算符時改變運算符的操作個數(shù)   

19、B. C+語言允許在重載運算符時改變運算符的優(yōu)先級 C. C+語言允許在重載運算符時改變運算符的結(jié)合性     D. C+語言允許在重載運算符時改變運算符的原來的功能10. 假設(shè)定義了函數(shù)模板:template<class T>T max(T x,T y) return (x>y)?x:y; 并定義了int i=6; char c=a; 錯誤的調(diào)用語句是( D)A. max( i,i)          B. max(c,c)  

20、0;         C.max(int )c,i)            D.max(i,c)C 卷  一、單項選擇題:(每小題2分,共20分)1、假設(shè)已經(jīng)有定義const char *name=”chen”;下列語句中錯誤的是_A. name3=q       B. name=”lin”       C. name

21、=new char5        D. name=new char(q)2、在下列關(guān)鍵字中,用于說明類中公有成員的是_A. public            B. private           C. protected          D. friend3、

22、下列哪項不是面向?qū)ο蟪绦蛟O(shè)計的主要特征_。A. 封裝            B. 繼承             D. 多態(tài)            D. 結(jié)構(gòu)4、構(gòu)造函數(shù)是在_時被執(zhí)行的。A. 程序編譯       B. 創(chuàng)建對象 C. 創(chuàng)建

23、類       D. 程序裝入內(nèi)存5、在下面有關(guān)析構(gòu)函數(shù)的描述中,正確的是_A. 一個類中可以定義多個析構(gòu)函數(shù)B. 析構(gòu)函數(shù)的名字和類名完全相同C. 析構(gòu)函數(shù)不能指定返回類型D. 析構(gòu)函數(shù)可以有一個或多個參數(shù)6、使用派生類的主要原因是_A. 提高代碼的可充用性    B. 提高程序的運行效率    C. 加強類的封裝性   D. 實現(xiàn)數(shù)據(jù)的隱藏7、下列的各函數(shù)中, _不是類的成員函數(shù)A. 構(gòu)造函數(shù)         

24、B. 析構(gòu)函數(shù)          C. 友元函數(shù)          D. 拷貝構(gòu)造函數(shù)8、關(guān)于虛函數(shù),正確的描述是_A. 構(gòu)造函數(shù)不能是虛函數(shù)            B. 析構(gòu)函數(shù)不能是虛函數(shù)C. 虛函數(shù)可以是友元函數(shù)           

25、 D. 虛函數(shù)可以是靜態(tài)成員函數(shù)9、友元的作用之一是_A.提高程序的運用效率               B.加強類的封裝性C.實現(xiàn)數(shù)據(jù)的隱藏性                 D.增加成員函數(shù)的種類10、在下面有關(guān)靜態(tài)成員函數(shù)的描述中,正確的是_A. 在靜態(tài)成員函數(shù)中可以使用this指針B. 在建立對象前,就可以為靜

26、態(tài)數(shù)據(jù)成員賦值C. 靜態(tài)成員函數(shù)在類外定義時,要用static前綴D. 靜態(tài)成員函數(shù)只能在類外定義 二、 判斷題:(每題1分,共10分)(        )1、使用關(guān)鍵字class定義的類中缺省的訪問權(quán)限是私有(private)的。(        )2、構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載。(        )3、說明或定義對象時,類名前不需加關(guān)鍵字class。(    &

27、#160;    )4、可以在類的構(gòu)造函數(shù)中對靜態(tài)數(shù)據(jù)成員進行初始化。(         )5、protected和private區(qū)別在于protected成員可以被派生類訪問,而private成員則不能被派生類訪問。(         )6、在C+中,封裝是通過類實現(xiàn)的。(         )7、無論何時編譯器都為類構(gòu)造一個無參數(shù)的缺省的構(gòu)造函數(shù)。( &#

28、160;       )8、無論什么方式的繼承,基類的私有成員都不能被派生類訪問。(         )9、在c+中,只有在類對象定義之后才能給數(shù)據(jù)成員賦初值。(         )10、創(chuàng)建派生類對象時,先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)。三、填空題:(每空1分,共10分)1、在C+中,類的成員訪問權(quán)限分別是:公有成員,私有成員和_。2、拷貝構(gòu)造函數(shù)使用_作為參數(shù)初始化創(chuàng)建中的對象。3、在C+中

29、,雖然友元提供了類之間數(shù)據(jù)進行訪問的一種方式,但它破壞了面向?qū)ο蟪绦蛟O(shè)計的_特性。4、在公有繼承的情況下,基類數(shù)據(jù)成員在派生類中的訪問權(quán)限_。5、在面向?qū)ο蟮某绦蛟O(shè)計中,通過_實現(xiàn)數(shù)據(jù)隱藏;通過_實現(xiàn)代碼的復(fù)用。6、在C+中,構(gòu)造派生類對象時,總是先從_的初始化開始的。7、在基類和派生類中,派生類可以定義其基類中不具備的數(shù)據(jù)和操作。對兩個有相同名字的數(shù)據(jù)成員進行訪問時,如果沒有_,對此數(shù)據(jù)成員的訪問將出現(xiàn)歧義;而_ 、 _ 和operator= 是不能被派生類繼承的。一、單項選擇題:(每小題2分,共20分)  AADBC   ACAAB 二、 判斷題:(每題1分,共10分)

30、對錯對錯對  對錯對對對 三、填空題:(每空1分,共10分)1、受保護成員  2、同類對象的引用3、封裝4、公有的5、封裝,繼承6、基類7、作用域分隔符限定,構(gòu)造函數(shù),析構(gòu)函數(shù)D卷1下類引用定義中,正確的是(D)Aint x,int &y=x; B.int x;int &y=x,x;Cfloat x;int y=&z; D .int x;int &y=x;2. 假設(shè)已經(jīng)有定義 const char *const name=”chen” ;下面的語句中正確的是(D )A. name3=a;    

31、0;   B. name=”lin”;         C. name=new char5     D. cout<<name3;3系統(tǒng)在調(diào)用重載函數(shù)時往往根據(jù)一些條件確定那個重載函數(shù)被調(diào)用,在下列選項中,不能作為依據(jù)的是(D) A參數(shù)個數(shù)B參數(shù)的類型C函數(shù)名D函數(shù)類型(返回值類型)4、構(gòu)造函數(shù)是在( B )時被執(zhí)行的。A. 程序編譯       B. 創(chuàng)建對象 C. 創(chuàng)建類 

32、0;     D. 程序裝入內(nèi)存5、在下面有關(guān)析構(gòu)函數(shù)的描述中,正確的是( C )A. 一個類中可以定義多個析構(gòu)函數(shù)B. 析構(gòu)函數(shù)的名字和類名完全相同C. 析構(gòu)函數(shù)不能指定返回類型D. 析構(gòu)函數(shù)可以有一個或多個參數(shù)6.有以下類的說明,錯誤的地方是()class Coord int x=0;y=0;Coord();public: Coord(int x,int y); Coord( );A. B. C. D. 7.this指針是一個隱含于每一個類的成員函數(shù)的特殊指針,它是用來指向正在操作成員函數(shù)的()的指針。A. 對象 B.函數(shù) C.成員 D.類型8.有關(guān)類和對象的

33、說法不正確的是( C )A.對象是類的一個實例 B.任何一個對象只能屬于一個具體的類 C.一個類只能有一個對象 D.類與對象的關(guān)系和數(shù)據(jù)類型和變量的關(guān)系相似9. 在下面有關(guān)友元函數(shù)的描述中,正確的說法是(A )A. 友元函數(shù)是獨立于當(dāng)前類的外部函數(shù)           B.一個友元函數(shù)不能同時定義為兩個類的有友元函數(shù) C.友元函數(shù)必須在類的外部定義             &#

34、160;    D.在外部定義友元函數(shù)時,必須加關(guān)鍵字friend10.派生類新增的成員函數(shù),不能直接訪問基類的( C)成員。A.公有 B.保護 C.私有 D.所有11.下述靜態(tài)數(shù)據(jù)成員的特性中,(D)是錯誤的。A說明靜態(tài)數(shù)據(jù)成員時前面要加修飾符staticB靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D類的靜態(tài)成員不實所有對象所共用的E卷1 在C+中,用數(shù)組、指針、和 引用 作為函數(shù)參數(shù),能夠?qū)?shù)值帶回。2 在C+中,雖然友元提供了類之間數(shù)據(jù)進行訪問的一種方式,但它破壞了面向?qū)ο蟪绦蛟O(shè)計的 封裝 特性。3

35、 在C+中,構(gòu)造派生類對象時,總是先從 基類 的初始化開始的。4 拷貝構(gòu)造函數(shù)是在用一個對象初始化另一個對象時被調(diào)用,系統(tǒng)缺省的拷貝構(gòu)造函數(shù)的工作方法是 拷貝每一個數(shù)據(jù)成員 。5 類是用戶定義的類型,具有類類型的變量稱作 對象 。6 在5個運算符"*(乘號)、<=、!=、!、&&"中,優(yōu)先級由高到低的順序是!、*(乘號)、<=、!=、 &&。7 在C+中,類定義一般用class關(guān)鍵字,不過用struct關(guān)鍵字也可以定義類,它們定義類的區(qū)別在于 在缺省訪問權(quán)限時,struct 類成員是公有的,而class 類成員是私有的 。8 靜態(tài)

36、的成員函數(shù)沒有隱含的 this指針 ,所以,它們只能訪問靜態(tài)的數(shù)據(jù)成員。9 與"(!a=0)"等價的C+表達式是 (a>0|a<0)或(a) 。10 若a=6,b=4,c=2,則表達式"!(a-b)+c-1&&b+c/2"的值是 1 。 11 在面向?qū)ο蟮某绦蛟O(shè)計中,通過_封裝_實現(xiàn)數(shù)據(jù)隱藏;通過_繼承_實現(xiàn)代碼的復(fù)用。12 在下面的程序段中,語句"const int* c=&a;"和語句"int* const d=&b;"的含義分別是 變量指針c指向整型常量a 、 常量

37、指針d指向整型變量b 。const int a=78;int b=28;const int* c=&a;int* const d=&b;13 用new申請有10個元素的指針數(shù)組str,假定數(shù)組元素是指向字符型數(shù)據(jù)的指針,該C+語句為 char* str=new char* 10; 。14 在C+中構(gòu)造一個對象時,其數(shù)據(jù)成員在構(gòu)造函數(shù)中初始化。對于內(nèi)嵌的對象、 常量 、 引用 數(shù)據(jù)成員需要在構(gòu)造函數(shù)的成員初始化列表中初始化。15 在類的定義中,說明為protected的數(shù)據(jù)成員稱為保護成員。保護數(shù)據(jù)成員具有雙重作用:對于其派生類而言, 是公有的 ;而對于其外部的程序而言, 是私有

38、的 。16 C+中有兩種數(shù)據(jù)類型: 整型 和 字符型 可以使用signed修飾符。17 舉出C+中兩種流程控制語句 if語句 、 for循環(huán)語句 。18 預(yù)編譯指令由三種,它們是:文件包含、 宏定義 和 條件編譯 。19 C|+中,對象保存在內(nèi)存中, 棧 內(nèi)存是自動分配和釋放的,而 堆 存需要用戶自己申請和釋放。20 在C+函數(shù)中,可用return語句帶回一個值。如果有多個返回值,可用 指針 、引用等帶回。21 下面程序的運行結(jié)果是 6 。#include <stdio.h>void main( )char a='0',b='9'float x;x=

39、(b-a)/('F'-'B');printf("%dn",(int)(3.14*x);22以下程序的輸出結(jié)果是*#*#*#$。 #include<stdio.h>void main()int i;for (i=0;i<=5;i+)if (i%2) printf("*");else continue;printf("#");printf("$n");23下面程序的運行結(jié)果是 Hello 50 OK! 。#include <iostream.h>#defin

40、e N 100class CStackpublic:CStack() top=0;cout<<"Hello "CStack() cout<<"Bye"void push(int i);int pop();private: int stackN;int top;void CStack:push(int i)if (top=N)cout<<"Overflow"return;elsetop+;stacktop=i;int CStack:pop( )int temp;if (top=0)cout<&l

41、t;"Underflow"return 0;elsetemp=stacktop;top-;return temp;void main()CStack *ptr=new CStack;ptr->push (10);ptr->push(50);cout <<ptr->pop( )<<" "cout << "OK!"<<endl;24下面程序的運行結(jié)果是_。#include <stdio.h>int a =2,5,6,8,10;int *p =a,a+1,a+2,

42、a+3,a+4;void main( )printf("%dt%dt%dn",a4,*(a+2),*p1);printf("%dt%dt%dn",*(p+1)+a2,*(p+4)-*(p+0),*(a+3)%a4);10 6 511 4 8 二、 問答題(每小題5分,共20分)1 在定義拷貝構(gòu)造函數(shù)時,為什么通常還要定義一個重載的賦值運算符?解答要點:拷貝構(gòu)造函數(shù)是用一個對象初始化另一個對象時調(diào)用,定義了拷貝構(gòu)造函數(shù)通常涉及到對象內(nèi)有指針成員,需要定義拷貝構(gòu)造函數(shù)復(fù)制指針?biāo)赶虻膬?nèi)存單元。對象賦值也有同樣的問題,如果要將對象指針?biāo)赶虻膬?nèi)存單元也賦給另一

43、個對象,就必須重載賦值運算符。2 簡述局部作用域、全局作用域和類作用域的異同。解答要點:局部作用域只在局部塊內(nèi)有效,如在一個函數(shù)內(nèi)或在一個復(fù)合語句內(nèi),它的生存期也在該塊內(nèi);全局作用域?qū)φ麄€應(yīng)用程序都有效,它的生存期與應(yīng)用程序一樣長;類作用域在類內(nèi),類的成員函數(shù)可以訪問類的所有成員,而在類外,只能訪問類的共有成員,類成員定義的次序與其作用的范圍沒有關(guān)系。3 虛函數(shù)是否一定要有virtual關(guān)鍵字?什么叫純虛函數(shù)和抽象類?多態(tài)調(diào)用需要滿足怎樣的條件?解答要點:不一定,派生類覆蓋基類的成員函數(shù)時,沒有virtual關(guān)鍵字,也是虛函數(shù);純虛函數(shù)沒有實現(xiàn),它供派生類覆蓋,純虛函數(shù)的一般定義形式為:vir

44、tual 返回類型 函數(shù)名(參數(shù)表) = 0;至少含有一個純虛函數(shù)的類稱為抽象類,抽象類不能定義對象,只能作為基類;多態(tài)調(diào)用需要滿足的條件:被調(diào)用的成員函數(shù)是虛函數(shù)用指針或引用調(diào)用虛函數(shù)4 數(shù)組和鏈表是兩種重要的線性數(shù)據(jù)結(jié)構(gòu),使用鏈表有什么優(yōu)點?解答要點:數(shù)組需要一個大的、連續(xù)的存儲單元,而鏈表是由一個個結(jié)點的小存儲單元組成的。鏈表便于數(shù)據(jù)的插入和刪除。在數(shù)組中,要插入一個元素,需要將后面的元素往后移,要刪除一個元素要將后面的元素往前移,效率很低,鏈表可以克服這個缺點。三、(8分)下列shape類是一個表示形狀的抽象類,area( )為求圖形面積的函數(shù),total( )則是一個通用的用以求不同

45、形狀的圖形面積總和的函數(shù)。請從shape類派生梯形類(trapezoid)、圓形類(circle),并給出具體的求面積函數(shù) 。class shape public: virtual float area( )=0 ; float total(shape *s ,int n) float sum=0.0; for(int i=0;i<n;i+) sum+=si->area( ); return sum; class Circle:public Shapepublic:Circle(double r)radius=r;double Area() constreturn 3.1416*r

46、adius*radius;private:double radius;class Trapezoid:public Shapepublic:Trapezoid(double top,double bottom,double high)T=top;B=bottom;H=high;double Area() constreturn (T+B)*H*0.5;private:double T,B,H;五、(6分)函數(shù) binary()實現(xiàn)折半查找,即查尋給定的單詞 word是否在關(guān)鍵字表 tab中(關(guān)鍵字按字典順序排列),折半查找每次把word與tab表中相應(yīng)部分的位于中間位置的關(guān)鍵字進行比較,最終結(jié)

47、果:或者與某個關(guān)鍵字相同,或者與所有關(guān)鍵字都不相同。 #include <string.h>struct keychar *keyword; int count;struct key *binary(char *word,struct key tab,int n)/word: a searching word/tab: keyword table/n: the sum of keywordsint cond;struct key *low=tab;struct key *high=&tabn-1;struct key *mid;while(low<=high)mid=

48、_; /low+(high-low)/2或(high+low)/2if(cond=strcmp(word,mid->keyword)<0)high=mid-1;else if (cond>0) _; /low=mid+1else return mid;return(NULL);六、(8分)下面程序?qū)崿F(xiàn)漢諾塔游戲。規(guī)則是:三個立柱(分別為A、B、C),開始A上串有n個(用戶輸入值)大小不等的圓盤,大的在下,小的在上。要求借助于B把它們從A移到C。每次只能移一個盤,而且三個柱上的盤總是大的在下,小的在上#include <stdio.h>int i=0;void ma

49、in( )int n;void movetower(int m,char from, char to,char usg);for (;)printf("input the number of disks of hanoi tower:");scanf("%d",&n);if (n=0) _; /break或returnprintf("nn");printf("The moving step is as below:n");movetower(n,'A','C','B&

50、#39;);printf("tTotal:%dn",i);void movetower (int m,char from, char to,char usg)void movedisk(char source,char destination);if (_) /m!=1或m>1movetower(m-1,from,usg,to);_; /movedisk(from,to)movetower(m-1, _); /usg,to,fromelse movedisk(from,to);void movedisk(char source,char destination)i+;

51、printf("%c->%cn",source,destination);F卷 一、單項選擇題 1. C+源程序文件的默認(rèn)擴展名為 .cpp 2. 由C+源程序文件編譯而成的目標(biāo)文件的默認(rèn)擴展名為 . obj 3. 由C+目標(biāo)文件連接而成的可執(zhí)行文件的默認(rèn)擴展名為 . exe 4. C+程序從上機到得到結(jié)果的幾個操作步驟依次是 編輯、編譯、連接、運行 5. 以下標(biāo)識符中不全是保留字的是( B )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能

52、作為C+程序的基本單位是( C )。 A. 字符 B. 語句 C. 函數(shù) D. 源程序文件7. 程序中主函數(shù)的名字為 main 8. C+程序的基本模塊為( D )。 A. 表達式 B. 標(biāo)識符 C. 語句 D. 函數(shù) 9. 可用作C+語言用戶標(biāo)識符的一組標(biāo)識符是( B )。A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof 10. 存儲以下數(shù)據(jù),占用存儲字節(jié)最多的是( D )。 A. 0 B. 0 C. “0” D. 0.0 11. 程序運行中需要從鍵盤上輸入多于一個數(shù)據(jù)時,各數(shù)據(jù)之間應(yīng)使用( D )符號作為

53、分隔符。 A. 空格或逗號 B. 逗號或回車 C. 逗號或分號 D. 空格或回車 12. 設(shè)”int a=12;”,則執(zhí)行完語句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 28813. 假設(shè)在程序中 a、b、c 均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式的表達式是( D )。A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c14. 設(shè)”int a=15,b=26;”,則”cout<<(a,b);”的輸出結(jié)果是( D )。A. 15 B. 26,15 C. 15,

54、26 D. 26 15. 設(shè)x是一個bool型的邏輯量,y的值為10,則表達式 x && y的值為( C )。 A. 1 B. 0 C. 與x值相同 D. 與x值相反 16. x>0 && x<=10的相反表達式為( A )。A. x<=0 | x>10 B. x<=0 && x>10C. x<=0 | x<=10 D. x>0 && x>10 17. x>0 | y=5的相反表達式為( B )。A. x<=0 | y!=5 B. x<=0 &&

55、amp; y!=5 C. x>0 | y!=5 D. x>0 && y=5 18設(shè)x和y均為bool量,則x && y為真的條件是( A )。 A. 它們均為真 B. 其中一個為真 C. 它們均為假 D. 其中一個為假 19設(shè)x和y均為bool量,則x | y為假的條件是( C )。 A. 它們均為真 B. 其中一個為真 C. 它們均為假 D. 其中一個為假 20. 字符串”a+b=12n”的長度為( B )。 長度算的不是字節(jié),“12”算為2 A. 6 B. 7 C. 8 D. 9 21. 假定下列x和y均為int型變量,則不正確的賦值為( B )

56、。 X+沒有意義 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y 22. 下列的符號常量定義中,錯誤的定義是( C )。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 23. 循環(huán)語句“for(int i=0; i<n; i+) cout<<i*i<< ;”中循環(huán)體執(zhí)行的次數(shù)為( C )。 A. 1 B. n-1 C. n D. n+1 24. 在下面循環(huán)語句中循環(huán)體執(zhí)行的次數(shù)為( B )。 for(int i=0; i<n; i

57、+) if(i>n/2) break; A. n/2 B. n/2+1 C. n/2-1 D. n-1 25. 在下面循環(huán)語句中內(nèi)層循環(huán)體S語句的執(zhí)行總次數(shù)為( D )。 for(int i=0; i<n; i+) for(int j=i; j<n; j+) S; A. n2 B. (n+1)/2 C. n(n-1)/2 D. n(n+1)/2 26. 在下面循環(huán)語句中循環(huán)體執(zhí)行的次數(shù)為( C )。 int i=0,s=0; while(s<20) i+; s+=i; A. 4 B. 5 C. 6 D. 727. 在下面循環(huán)語句中循環(huán)體執(zhí)行的次數(shù)為( B )。 int

58、i=0; do i+; while(i*i<10); A. 4 B. 3 C. 5 D. 2 28. 當(dāng)處理特定問題時的循環(huán)次數(shù)已知時,通常采用( A )來解決。 A. for循環(huán) B. while循環(huán) C. do循環(huán) D. switch語句 29. 循環(huán)體至少被執(zhí)行一次的語句為( C )。 A. for循環(huán) B. while循環(huán) C. do循環(huán) D. 任一種循環(huán) 30. switch語句能夠改寫為( B )語句。 A. for B. if C. do D. while 31. do語句能夠改寫為( D )語句。 A. 復(fù)合 B. if C. switch D. while 32. 在下

59、面的一維數(shù)組定義中,哪一個有語法錯誤。( C ) A. int a=1,2,3; B. int a10=0; C. int a; D. int a5; 33. 在下面的字符數(shù)組定義中,哪一個有語法錯誤。( D )。 A. char a20=”abcdefg”; B. char a=”x+y=55.”; C. char a15; D. char a10=5; 34. 在下面的二維數(shù)組定義中,正確的是( C )。 A. int a5; B. int a5; C. int a3=1,3,5,2; D. int a(10); 35. 假定一個二維數(shù)組的定義語句為“int a34=3,4,2,8,6;”

60、,則元素a12的值為( C )。 A. 2 B. 4 C. 6 D. 8 36. 假定一個二維數(shù)組的定義語句為“int a34=3,4,2,8,6;”,則元素a21的值為( A )。 A. 0 B. 4 C. 8 D. 6 37. 若定義了函數(shù) double *function(), 則函數(shù)function的返回值為( B )。 A. 實數(shù)型 B.實數(shù)的地址 C.指向函數(shù)的指針 D.函數(shù)的地址 38. 以下說法中正確的是( B )。 A. C+程序總是從第一個定義的函數(shù)開始執(zhí)行 B. C+程序總是從main函數(shù)開始執(zhí)行 C. C+函數(shù)必須有返回值,否則不能使用函數(shù) D. C+程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中 39. 以下敘述中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論