大學C++期末考試題庫.doc
《大學C++期末考試題庫.doc》由會員分享,可在線閱讀,更多相關《大學C++期末考試題庫.doc(43頁珍藏版)》請在裝配圖網上搜索。
2011年大學C++期末考試題庫 一、單選題: 1. 能作為C++程序的基本單位是( )。 A. 字符 B. 語句 C. 函數 D. 源程序文件 2. 程序中主函數的名字為( )。 A. main B. MAIN C. Main D. 任意標識符 3. 關于C++與C語言的關系的描述中,( )是錯誤的。 A. C語言是C++的一個子集; B. C語言與C++是兼容的; C. C++對C語言進行了一些改進; D. C++和C語言都是面向對象的 4. 可用作C++語言用戶標識符的一組標識符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 5. 存儲以下數據,占用存儲字節(jié)最多的是( )。 A. 0 B. ‘0’ C. “0” D. 0.0 6. 設int a=12;則執(zhí)行完語句a+=a*a;后,a的值是( )。 A. 12 B. 144 C. 156 D. 288 7. 假設在程序中 a、b、c 均被定義成整型,所賦的值都大于1,則下列能正確表示代數式的表達式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 8. 以下說法中正確的是( )。 A. C++程序總是從第一個定義的函數開始執(zhí)行 B. C++程序總是從main函數開始執(zhí)行 C. C++函數必須有返回值,否則不能使用函數 D. C++程序中有調用關系的所有函數必須放在同一個程序文件中 9. 下面有關構造函數的描述中,正確的是( )。 A. 構造函數可以帶有返回值 B. 構造函數的名字與類名完全相同 C. 構造函數必須帶有參數 D. 構造函數必須定義,不能缺省 10.在聲明類時,下面的說法正確的是( )。 A. 可以在類的聲明中給數據成員賦初值 B. 數據成員的數據類型可以是register C. private,public,protected可以按任意順序出現 D. 沒有用private,public,protected定義的數據成員是公有成員 11.在下面有關析構函數特征的描述中,正確的是( )。 A. 一個類可以有多個析構函數 B. 析構函數與類名完全相同 C. 析構函數不能指定返回類型 D. 析構函數可以有一個或多個參數 12.構造函數是在( )時被執(zhí)行的。 A. 程序編譯 B. 創(chuàng)建對象 C. 創(chuàng)建類 D. 程序裝入內存 13. 下面有關靜態(tài)成員函數的描述中,正確的是( ) A. 在靜態(tài)成員函數中可以使用this指針 B. 在建立對象前,就可以為靜態(tài)數據成員賦值 C. 靜態(tài)成員函數在類外定義是,要用static前綴 D. 靜態(tài)成員函數只能在類外定義 14.下面有關友員函數的描述中,真確的說法是( ) A. 友員函數是獨立于當前類的外部函數 B. 一個友員函數不可以同時定義為兩個類的友員函數 C. 友員函數必須在類的外部進行定義 D. 在類的外部定義友員函數時必須加上friend關鍵字 15.友員的作用之一是( ) A. 提高程序的運行效率 B. 加強類的封裝 C. 實現數據的隱蔽性 D. 增加成員函數的種類 16.使用派生類的主要原因是( ) A. 提高代碼的可重用性 B. 提高程序的運行效率 C. 加強類的封裝性 D. 實現數據的隱藏 17.在C++中繼承方式有幾中( ) A. 1 B. 2 C. 3 D. 4 18.假設已經定義好了類student,現在要定義類derived,它是從student私有派生的,則定義類derived的正確寫法是( ) A. class derived ::student private{ //………….} B. class derived ::student public { //………….} C. class derived ::public student { //………….} D. class derived ::private student{ //………….} 19.派生類的對象對它的基類成員中( )是可以訪問的。 A.公有繼承的公有成員; B.公有繼承的私有成員; C.公有繼承的保護成員; D.私有繼承的公有成員。 20. 類中定義的成員默認為( )訪問屬性。 A. public B. private C. protected D. friend 21.下列存儲類標識符中,要求通過函數來實現一種不太復雜的功能,并且要求加快執(zhí)行速度,選用( )合適。 A. 內聯函數; B. 重載函數; C. 遞歸調用; D. 嵌套調用。 22.C++對C語言作了很多改進,下列描述中(?。┦沟肅語言發(fā)生了質變,從面向過程變成了面向對象。 A. 增加了一些新的運算符; B. 允許函數重載,并允許設置缺省參數; C. 規(guī)定函數說明必須用原型; D. 引進了類和對象的概念; 23.按照標識符的要求,( )符號不能組成標識符。 A. 連接符 B. 下劃線 C.大小寫字母 D. 數字字符 24.下列變量名中,( )是合法的。 A CHINA B byte-size C double D A+a 25.下列各種函數中,( )不是類的成員函數。 A 構造函數 B 析構函數 C 友元函數 D 拷貝構造函數 26.下列( )是正確的語句。 A ; B a=17 C x+y D cout<<"\n" 27.不能作為函數重載判斷的依據的是( ) A.返回類型 B. const C.參數個數 D. 參數類型 28.通常,拷貝構造函數的參數是( ) A.某個對象名 B.某個對象的成員名 C.某個對象的引用名 D.某個對象的指針名 29.下面對靜態(tài)數據成員的描述中,正確的是( ) A 類的不同對象有不同的靜態(tài)數據成員值 B 類的每個對象都有自己的靜態(tài)數據成員 C靜態(tài)數據成員是類的所有對象共享的數據 D 靜態(tài)數據成員不能通過類的對象調用 30.假定AB為一個類,則執(zhí)行AB x;語句時將自動調用該類的( ) A.有參構造函數 B.無參構造函數 C.拷貝構造函數 D.賦值構造函數 31.C++程序從上機到得到結果的幾個操作步驟依次是( )。 A. 編譯、編輯、連接、運行 B. 編輯、編譯、連接、運行 C. 編譯、運行、編輯、連接 D. 編輯、運行、編輯、連接 32.假定一條定義語句為“int a[10], x, *p=a;”,若要把數組a中下標為3的元素值賦給x,則不正確的語句為( )。 A. x=p[3]; B. x=*(a+3); C. x=a[3]; D. x=*p+3; 33.關于封裝,下列說法中不正確的是( )。 A. 通過封裝,對象的全部屬性和操作結合在一起,形成一個整體 B. 通過封裝,一個對象的實現細節(jié)被盡可能地隱藏起來(不可見) C. 通過封裝,每個對象都成為相對獨立的實體 D. 通過封裝,對象的屬性都是不可見的 34.預處理命令在程序中都是以( )符號開頭的。 A. * B. # C. & D. @ 35.存儲以下數據,占用存儲字節(jié)最少的是( )。 A. 0 B. ‘0’ C. “0” D. 0.0 36.程序運行中需要從鍵盤上輸入多于一個數據時,各數據之間應使用( )符號作為分隔符。 A. 空格或逗號 B. 逗號或回車 C. 逗號或分號 D. 空格或回車 37.假定變量m定義為“int m=7;”,則定義變量p的正確語句為( )。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m; 38.下面的哪個保留字不能作為函數的返回類型? 。 A. void B. int C. new D. long 39.采用重載函數的目的是( )。 A.實現共享 B.減少空間 C.提高速度 D.使用方便,提高可讀性 40.假定AB為一個類,則( )為該類的拷貝構造函數的原型說明。 A. AB(AB x); B. AB(int x); C. AB(AB& x); D. void AB(AB& x); 41、 C++對C語言作了很多改進,下列描述中( )使得C語言發(fā)生了質變,從面向過程變成了面向對象。 A、增加了一些新的運算符; B、允許函數重載,并允許設置缺省參數; C、規(guī)定函數說明必須用原型; D、引進了類和對象的概念; 42、 所謂數據封裝就是將一組數據和與這組數據有關操作組裝在一起,形成一個實體,這實體也就是( )。 A.類 B.對象 C.函數體 D.數據塊 43、 關于new運算符的下列描述中,(?。┦清e誤的。 A、 它可以用來動態(tài)創(chuàng)建對象和對象數組; B、使用它創(chuàng)建的對象或對象數組可以使用運算符delete刪除; C、使用它創(chuàng)建對象時要調用構造函數; D、使用它創(chuàng)建對象數組時必須指定初始值; 44、 (?。┎皇菢嬙旌瘮档奶卣?。 A、構造函數的函數名與類名相同; B、構造函數可以重載; C、構造函數可以設置缺省參數; D、構造函數必須指定類型說明。 45、 假定一個類的構造函數為B(int x,int y){a=x--;b=a*y--;},則執(zhí)行B x(3,5); 語句后,x.a和x.b的值分別為( ) A、 3和5 B、 5和3 C、 3和15 D、20和5 46、 關于成員函數特征的下列描述中,(?。┦清e誤的。 A、成員函數一定是內聯函數; B、成員函數可以重載; C、成員函數可以設置缺省參數值; D、成員函數可以是靜態(tài)的; 47、 在公有繼承的情況下,基類成員在派生類中的訪問權限(?。?。 A、受限制 B、保持不變 C、受保護 D、不受保護 48、 友元的作用是(?。?。 A、提高程序的運用效率; B、加強類的封裝性; C、實現數據的隱藏性; D、增加成員函數的種類; 49、 在C++中,關于下列設置缺省參數值的描述中,(?。┦钦_的。 A、不允許設置缺省參數值; B、在指定了缺省值的參數右邊,不能出現沒有指定缺省值的參數; C、只能在函數的定義性聲明中指定參數的缺省值; D、設置缺省參數值時,必須全部都設置; 50、關于delete運算符的下列描述中,( )是錯誤的。 A、它必須用于new返回的指針; B、使用它刪除對象時要調用析構函數; C、對一個指針可以使用多次該運算符; D、指針名前只有一對方括號符號,不管所刪除數組的維數。 51、const int *p說明不能修改(?。?。 A、p指針; B、p指針指向的變量; C、p指針指向的數據類型; D、上述A、B、C三者; 52、當需要打開A盤上的以xxk.dat文件用于輸入時,則定義文件流對象的語句為 ( )。 A、fstream fin(“A:xxk.dat”,1) B、ifstream fin(“A:xxk.dat”,ios::nocreate) C、ofstream fin(“A:xxk.dat”) D、ifstream fin(“A:xxk.dat”,ios::app) 53、派生類的對象對它的基類成員中(?。┦强梢栽L問的。 A、公有繼承的公有成員; B、公有繼承的私有成員; C、公有繼承的保護成員; D、私有繼承的公有成員; 54、假定一個字符串的長度為n,則定義存儲該字符串的字符數組的長度至少為()。 A、n-1 B、n C、 n+1 D、n+2 55、 在int a=3; *p=&a;中,*p的值是( )。 A、變量a的地址值 B、無意義 C、變量p的地址值 D、 3 56、 下列常量中,( )不是字符常量。 A、’\005’ B、’\n’ C、 ’c’ D、“a” 57、在int a=3,*p=&a;中,*p的值是( )。 A)變量a的地址值 B)無意義 C)變量p的地址值 D) 3 58、以下4個選項中,不能看作一條語句的是( )。 A) if(b==0) m=1;n=2; B) a=0,b=0,c=0; C) if(a>0); D) {;} 59、( )不是構造函數的特征。 A)構造函數的函數名與類名相同 B)構造函數可以重載 C)構造函數可以設置缺省參數 D)構造函數必須指定類型說明 60、以下程序段中與語句k=a>b? 1:0;功能等價的是( )。 A) if(a>b) k=1; B) if(a>b) k=0 C)if(a>b) k=1; D)if(a1&&x<10 C) !(x<=1||x>=10) D)x>1||x<10 63、關于成員函數特征的下列描述中,(?。┦清e誤的。 A)成員函數一定是內聯函數 B)成員函數可以重載 C)成員函數可以設置缺省參數值 D)成員函數可以是靜態(tài)的 64、有以下程序 #include和作用域運算符
70、有以下語句
struct S
{ int g;
char h;} T;
則下面敘述中不正確的是( )。
A)S是結構體名 B)該結構體包含2個成員
C)S是struct類型的變量 D)T是struct S類型的變量
71、派生類的對象對它的基類成員中(?。┦强梢栽L問的。
A)公有繼承的公有成員
B)公有繼承的私有成員
C)公有繼承的保護成員
D)私有繼承的公有成員
72、實現運行時的多態(tài)性用 。
A、重載函數 B、構造函數 C、析構函數 D、虛函數
73.下列變量名中,( )是合法的。
A. CHINA B. byte-size C. double D. A+a
74. 在int b[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是( )。
A. 0 B. 2 C. 5 D. 6
75. 下列各運算符中,()優(yōu)先級最高。
A. +(雙目) B. *(單目) C. <= D. *=
76. 下列for循環(huán)的次數為( )。
for(int i(0),x=0;!x&&i<=5;i++)
A. 5 B. 6 C . 1 D. 無限
77. 下述關于break語句的描述中,( )是正確的。
A. break語句可用于循環(huán)體內,它將退出該重循環(huán)。
B. break語句可用于開關語句中,它將退出開關語句。
C. break語句可用于if體內,它將退出if語句。
D. break語句在一個循環(huán)體內可以出現多次。
78. 在一個被調用函數中,關于return語句使用的描述,( )是錯誤的。
A. 被調用函數中可以不用 return語句。
B. 被調用函數中可以使用多個return語句。
C. 被調用函數中,如果有返回值,就一定要有return語句。
D. 被調用函數中,一個return語句可返回多個值給調用函數。
79. 在C++中,關于下列設置參數默認的描述中,( )是正確的。
A. 不允許設置參數的默認值。
B. 設置參數默認值只能在定義函數時設置。
C. 設置參數默認值時,應該是先設置右邊的再設置左邊的。
D. 設置參數默認值時,應該全部參數都設置。
80. 下列存儲類標識符中,要求通過函數來實現一種不太復雜的功能,并且要求加快執(zhí)行速度,選用( )合適。
A. 內聯函數 B. 重載函數 C. 遞歸調用 D. 嵌套調用
81. 下列的各類函數中,( )不是類的成員函數。
A. 構造函數 B. 析構函數 C . 友元函數 D. 拷貝初始化構造函數
82. ( )不是構造函數的特征
A. 構造函數的函數名與類名相同 B. 構造函數可以重載
C. 構造函數可以設置缺省參數 D. 構造函數必須指定類型說明
83. f1(int)是類A的公有成員函數,p是指向成員函數f1()的指針,采用( )是正確的。
A. p=f1 B. p=A::f1 C. p=A::f1() D. p=f1()
84. 下列定義中,( )是定義指向數組的指針p。
A. int *p[5] B. int (*p)[5] C. (int *)p[5] D. int *p[ ]
85.循環(huán)while(int i=0) i--;執(zhí)行次數是( )。
A. 0 B. 1 C . 5 D . 無限
86. 設int x;,則經過( )后,語句*px=0;可將x值置為0。
A. int * px; B . int const * px=&x;
C. int * const px=&x; D. const int * px=&x;
87. 設void f1(int * m,long & n);int a;long b;則以下調用合法的是( )。
A. f1(a,b); B. f1(&a,b);
C. f1(a,&b); D. f1(&a,&b)
88. 關于對象概念的描述中,( )是錯誤的。
A. 對象就是C語言中的結構變量;
B. 對象代表著正在創(chuàng)建的系統中的一個實體;
C. 對象是一個狀態(tài)和操作(或方法)的封裝體;
D. 對象之間的信息傳遞是通過消息進行的;
89. 在下列double型常量表示中,( )是錯誤的。
A. E15; B. .35; C. 3E5; D. 3E-5
90. 下列給字符數組進行初始化中,( )是正確的。
A. char s1[ ]="12345abcd"; B. char s2[3]="xyz";
C. char s3[][3]={‘a’,’x’,’y’}; D. char s4[2[3]={"xyz","mnp"};
91. 對于int *pa[5];的描述,( )是正確的。
A. pa是一個指向數組的指針,所指向的數組是5個int型元素;
B. pa是一個指向某個數組中第5個元素的指針,該元素是int型變量;
C. pa[5]表示某個數組的第5個元素的值;
D. pa是一個具有5個元素的指針數組,每個元素是一個int型指針;
92. 下列各運算符中,( )優(yōu)先級最低。
A.?: B. | C. || D. !=
93. 下列for循環(huán)的循環(huán)體執(zhí)行次數為( )。
for(int i(0),j(10);i=j=4;i++,j- -)
A. 0; B. 1; C. 4; D. 無限;
94. 下述關于開關語句的描述中,( )是正確的。
A. 開關語句中default子句可以沒有,也可以有一個;
B. 開關語句中每個語句序列中必須有break語句;
C. 開關語句中default子句只能放在最后;
D. 開關語句中case子句后面的表達式可以是整形表達式。
95. 下列存儲類標識符中,( )的可見性與存在性不一值。
A. 外部類; B. 自動類; C. 內部靜態(tài)類; D. 寄存器類。
96. 下述靜態(tài)數據成員的特征中,( )是錯誤的。
A. 說明靜態(tài)數據成員時前邊要加修飾符static;
B. 靜態(tài)數據成員要在類體外進行初始化;
C. 引用靜態(tài)數據成員時,要在靜態(tài)數據成員名前加<類名>和作用域運算符;
D. 靜態(tài)數據成員不是所有對象所共用的。
97. ( )是析構函數的特征。
A. 一個類中只能定義一個析構函數; B. 析構函數與類名不同;
C. 析構函數的定義只能在類體內; D. 析構函數可以有各個或多個參數。;
98. 已知:p是一個指向類A數據成員m的指針,A1是類A的一個對象。如果要給m賦值為5,( )是正確的。
A. A1.p=5; B. A1->p=5;
C. A.*p=5; D. *A1.p=5;
99. 關于new運算符的下列描述中,( )是錯的。
A. 它可以用來動態(tài)創(chuàng)建對象和對象數組;
B. 使用它創(chuàng)建的對象或對象數組可以使用運算符delete刪除;
C. 使用它創(chuàng)建對象時要調用構造函數;
D. 使用它創(chuàng)建對象數組時必須指定初始值。
100. 派生類的構造函數的成員初始化列中,不能包含( )。
A. 基類的構造函數;
B. 派生類中子對象的初始化;
C. 基類的子對象初始化;
D. 派生類中一般數據成員的初始化
101. 派生類的對象對它的基類成員中( )是可以訪問的。
A. 公有繼承的公有成員;
B. 公有繼承的私有成員;
C. 公有繼承的保護成員;
D. 私有繼承的公有成員。
102.C++類體系中,不能被派生類繼承的有( )。
A.構造函數 B.虛函數 C.靜態(tài)成員函數 D.賦值操作函數
103.下面標識符中正確的是( )。
A._abc B.3ab C. int D.+ab
104.下列哪項( )不是面向對象程序設計的主要特征?
a.封裝 b.繼承 c.多態(tài) d.結構
105.已知i=5,j=0,下列各式中運算結果為j=6的表達式是( )。
A.j=i+(++j) B.j=j+i++ C.j=++i+j D.j=j+++i
106.若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達式aa++&&c>d)?++d:a=0||x<=0) cout<<"abcd";else cout<<"wxyz";屏幕上顯示的是_______________。
56. 設一維整型數組data已進行了初始化,則其元素個數可由操作符sizeof通過表達式__________________________計算出來。
57. 若一全局變量只允許本程序文件中的函數使用,則定義它時應加上修飾符_______________。
58. 設有int w[3][4];,pw是與數組名w等價的數組指針,則pw應初始化為__________________________。
59.要使引用pr代表變量char * p;,則pr應初始化為______________________________。
60.在C++中封裝性、繼承性和____________ 是面向對象思想的主要特征。
61.假設int a=1,b=2;則表達式a+++--b的值為 __________。
62.下面的程序實現輸出x,y,z三個數中的最大值,請?zhí)钊胝_的內容。
#include 如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
鏈接地址:http://m.jqnhouse.com/p-6546142.html