




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象C+程序設計綜合練習題一、單項選擇題1C+源程序文件的缺省擴展名為(A)。 A. cpp B. exe C. obj D. lik2能作為C+程序的基本單位是( C )。 A. 字符 B. 語句 C. 函數 D. 源程序文件3由C+源程序文件編譯而成的目標文件的缺省擴展名為( C )。 A. cpp B. exe C. obj D. lik4程序中主函數的名字為( A )。 A. main B. MAIN C. Main D. 任意標識符5程序運行中需要從鍵盤上輸入多于一個數據時,各數據之間應使用( D )符號作為分隔符。 A. 空格或逗號 B. 逗號或回車 C. 逗號或分號 D. 空
2、格或回車6x0 & x=10的相反表達式為( A )。 A. x10 B. x10 C. x=0 | x0 & x107設”int a=12;”,則執(zhí)行完語句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 2888由C+目標文件連接而成的可執(zhí)行文件的缺省擴展名為( B )。 A. cpp B. exe C. obj D. lik9假定下列x和y均為int型變量,則不正確的賦值為( B )。 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y10在下面循環(huán)語句中循環(huán)體執(zhí)行的次數為( C )。 int i=0,s=0; while(s0
3、| y=5的相反表達式為( B )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=513do語句能夠改寫為(D )語句。 A. 復合 B. if C. switch D. while14假定一個二維數組的定義語句為“int a34=3,4,2,8,6;”,則元素a21的值為( A )。 A. 0 B. 4 C. 8 D. 615在下面的一維數組定義中,哪一個有語法錯誤。( C ) A. int a=1,2,3; B. int a10=0; C. int a; D. int a5;16可用作C+語言用戶標識符的一組標識符是( B )。 A. void define +
4、WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof17以下關于函數模板敘述正確的是( C )。 A. 函數模板也是一個具體類型的函數 B. 函數模板的類型參數與函數的參數是同一個概念 C. 通過使用不同的類型參數,函數模板可以生成不同類型的函數 D. 用函數模板定義的函數沒有類型18以下函數的返回結果是( A )。 int function(char *x) char *p=x; while(*p+); return(p-x-1); A. 求字符串的長度 B.將字符串x連接到字符串p后面 C. 將字符串x復制到字符串p中 D.將字符串x反向存
5、放19下列( B )的調用方式是引用調用。 A. 形參和實參都是變量 B.形參是指針,實參是地址值 C. 形參是引用,實參是變量 D.形參是變量,實參是地址值20函數調用不可以( D )。 A. 出現在一個表達式中 B. 出現在執(zhí)行語句中 C. 作為一個函數的實參 D. 作為一個函數的形參21采用重載函數的目的是( D )。 A. 實現共享 B. 減少空間 C. 提高速度 D. 使用方便,提高可讀性22以下正確的描述是( B )。 A. 函數的定義可以嵌套,函數的調用不可以嵌套 B. 函數的定義不可以嵌套,函數的調用可以嵌套 C. 函數的定義和函數的調用均可以嵌套 D. 函數的定義和函數的調用
6、均不可以嵌套23存儲以下數據,占用存儲字節(jié)最多的是( D )。 A. 0 B. 0 C. “0” D. 0.024C+語言的編譯系統對宏命令的處理是( D )。 A. 在程序運行時進行 B. 在程序連接時進行 C. 和C+程序的其它語句同時進行編譯 D. 在對源程序中其它成分正式編譯之前進行25關于局部變量,下面說法正確的是( C )。 A. 定義該變量的程序文件中的函數都可以訪問 B. 定義該變量的函數中的定義處以下的任何語句都可以訪問 C. 定義該變量的復合語句中的定義處以下的任何語句都可以訪問 D. 定義該變量的函數中的定義處以上的任何語句都可以訪問26當#include后面的文件名用雙
7、引號括起來時,尋找被包含文件的方式是( B )。 A. 直接按系統設定的標準方式搜索目錄 B. 先在源程序所在目錄搜索,再按系統設定的標準方式搜索目錄 C. 僅僅搜索源程序所在目錄 D. 搜索當前邏輯盤上的所有目錄27若定義了函數 double *function(), 則函數function的返回值為( B )。 A. 實數型 B.實數的地址 C.指向函數的指針 D.函數的地址28下列給字符數組賦初值時,正確的是( A )。 A. char s1=”abcdef”; B. char s24=”abcd”; C. char s323=“abc”,”xyz”; D. char s44=a,x,s
8、,t;29關于void 指針,下列說法正確的是( C )。 A. void 指針就是未指向任何數據的指針 B. void 指針就是已定義而未初始化的指針 C. 指向任何類型數據的指針可直接賦值給一個void 指針 D. void 指針值可直接賦給一個非void 指針30設有定義“static int data56;”,設該數組在靜態(tài)存儲區(qū)中的起始地址為十進制的100, 若每個int型數占4個字節(jié),則數組元素data23的地址為( D )。 A. 115 B.124 C.130 D.16031設x是一個bool型的邏輯量,y的值為10,則表達式 x & y的值為( C )。 A. 1 B. 0
9、C. 與x值相同 D. 與x值相反32假定p指向的字符串為”string”,若要輸出這個字符串的地址值,則使用( C )。 A. cout*s; B. couts; C. cout&s; D. coutGetValue() D. x.GetValue()45在多文件結構的程序中,通常把類中所有非內聯函數的定義單獨存放于( B )中。 A. 主文件 B. 實現文件 C. 庫文件 D. 頭文件46假定AA為一個類,int a()為該類的一個成員函數,若該成員函數在類定義體外定義,則函數頭為( A )。 A. int AA:a() B. int AA:a() C. AA:a() D. AA:int
10、a()47循環(huán)語句“for(int i=0; in; i+) couti*inext和elemHead D. elemTail-next和elemTail53對于一個類的析構函數,其函數名與類名(C )。 A. 完全相同 B. 完全不同 C. 只相差一個字符 D. 無關系54假定一條定義語句為“int a10, x, *pa=a;”,若要把數組a中下標為3的元素值賦給x,則不正確的語句為(D )。 A. x=pa3; B. x=*(a+3) C. x=a3; D. x=*pa+3;55循環(huán)體至少被執(zhí)行一次的語句為(C )。 A. for循環(huán) B. while循環(huán) C. do循環(huán) D. 任一種循
11、環(huán)56假定AB為一個類,則執(zhí)行 “AB x;”語句時將自動調用該類的( B )。 A. 帶參構造函數 B. 無參構造函數 C. 拷貝構造函數 D. 賦值重載函數57當類中的一個整型指針成員指向一塊具有n*sizeof(int)大小的存儲空間時,它最多能夠存儲( A )個整數。 A. n B. n+1 C. n-1 D. 158假定AB為一個類,則執(zhí)行 “AB x(a,5);”語句時將自動調用該類的( A )。 A. 帶參構造函數 B. 無參構造函數 C. 拷貝構造函數 D. 賦值重載函數59在下面的字符數組定義中,哪一個有語法錯誤。( D )。 A. char a20=”abcdefg”; B
12、. char a=”x+y=55.”; C. char a15; D. char a10=5;60假定一個類AB只含有一個整型數據成員a,當用戶不定義任何構造函數時,系統為該類定義的無參構造函數為( D )。 A. AB() a=0; B. AB(int aa=0): a(aa) C. AB(int aa): a(aa) D. AB() 61設px是指向一個類對象的指針變量,則執(zhí)行 “delete px;”語句時,將自動調用該類的( C )。 A. 無參構造函數 B. 帶參構造函數 C. 析構函數 D. 拷貝構造函數62假定一個類AB只含有一個整型數據成員a,用戶為該類定義的帶參構造函數可以為
13、( C )。 A. AB() B. AB(): a(0) C. AB(int aa=0) a=aa; D. AB(int aa) 63假定有“struct BOOKchar title40; float price;book;”,則正確的語句為( B )。 A. BOOK &x= &book; B. BOOK &x=book; C. BOOK &x=new BOOK; D. BOOK &x=BOOK;64假定AB為一個類,則執(zhí)行 “AB a, b(3), *p;”語句時共調用該類構造函數的次數為( A )。 A. 2 B. 3 C. 4 D. 565對類對象成員的初始化是通過構造函數中給出的(
14、 B )實現的。 A. 函數體 B. 初始化表 C. 參數表 D. 初始化表或函數體66假定AB為一個類,則執(zhí)行 “AB a(2), b3, *p4;”語句時共調用該類構造函數的次數為( B )。 A. 3 B. 4 C. 5 D. 967假定一個二維數組的定義語句為“int a34=3,4,2,8,6;”,則元素a12的值為( C )。 A. 2 B. 4 C. 6 D. 868一個類的靜態(tài)數據成員所表示屬性 ( C )。 A. 是類的或對象的屬性 B. 只是對象的屬性 C. 只是類的屬性 D. 類和友元的屬性 69當將一個類A或函數f()說明為另一個類B的友元后,類A或函數f()能夠直接訪
15、問類B的( D )。 A. 只能是公有成員 B. 只能是保護成員 C. 只能是除私有成員之外的任何成員 D. 具有任何權限的成員70類的靜態(tài)成員的訪問控制( D )。 A. 只允許被定義為private B. 只允許被定義為private或protected C. 只允許被定義為public D. 可允許被定義為private、protected或public71軟件產品在需求發(fā)生變化、運行環(huán)境發(fā)生變化或發(fā)現軟件產品本身的錯誤或不足時進行相應的軟件更新的難易程度叫做軟件的( A )。 A. 可維護性 B. 可復用性 C. 兼容性 D. 正確性72在成員函數中進行雙目運算符重載時,其參數表中應帶
16、有( B )個參數。 A. 0 B. 1 C. 2 D. 373如果表達式+a中的“+”是作為成員函數重載的運算符,若采用運算符函數調用格式,則可表示為( D )。 A. a.operator+(1) B. operator+(a) C. operator+(a,1) D. a.operator+()74雙目運算符重載為普通函數時,其參數表中應帶有( C )個參數。 A. 0 B. 1 C. 2 D. 375以下敘述中不正確的是( C )。 A. 在一個函數中,可以有多條return語句 B. 函數的定義不能嵌套,但函數的調用可以嵌套 C. 函數必須有返回值 D. 不同的函數中可以使用相同名字
17、的變量76對于公有繼承,基類中的私有成員在派生類中將 ( C )。 A. 能夠直接使用成員名訪問 B. 能夠通過成員運算符訪問 C. 仍然是基類的私有成員 D. 變?yōu)榕缮惖乃接谐蓡T77從一個基類派生出的各個類的對象之間( C )。 A. 共享所有數據成員,每個對象還包含基類的所有屬性 B. 共享部分數據成員,每個對象還包含基類的所有屬性 C. 不共享任何數據成員,但每個對象還包含基類的所有屬性 D. 共享部分數據成員和函數成員78當保護繼承時,基類的( B )在派生類中成為保護成員,在類作用域外不能夠通過派生類的對象來直接訪問該成員。 A. 任何成員 B.公有成員和保護成員 C. 保護成員和
18、私有成員 D.私有成員79在關鍵字private后面定義的成員為類的(A )成員。 A. 私有 B. 公用 C. 保護 D. 任何80函數原型語句正確的是( B )。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a);81在多文件結構的程序中,通常把含有main()函數的文件稱為( A )。 A. 主文件 B. 實現文件 C. 程序文件 D. 頭文件82設有如下函數定義 int f(char *s) char *p=s; while(*p!=0) p+; return
19、(p-s); 在主函數中用coutf(“good”)調用上述函數, 則輸出結果為( B )。 A. 3 B. 4 C. 5 D. 683當類中一個字符指針成員指向具有n個字節(jié)的存儲空間時,它所能存儲字符串的最大長度為( C )。 A. n B. n+1 C. n-1 D. n-284若用數組名作為函數調用的實參,傳遞給形參的是(A )。 A. 數組的首地址 B. 數組中第一個元素的值 C. 數組全部元素的值 D. 數組元素的個數85類的構造函數是在定義該類的一個( C )時被自動調用執(zhí)行的。 A. 成員函數 B. 數據成員 C. 對象 D. 友元函數86預處理命令在程序中都是以( B )符號開
20、頭的。 A. * B. # C. & D. 87假定一個類的構造函數為 “A(int aa, int bb) a=aa; b=aa*bb;”,則執(zhí)行 “A x(4,5);”語句后,x.a和x.b的值分別為( C )。 A. 4和5 B. 5和4 C. 4和20 D. 20和588假定有定義“int b10; int *pb;”,則不正確的賦值語句為( D)。 A. pb=b; B. pb=&b0; C. *pb=new int; D. pb=b5;89當一個類對象離開它的作用域時,系統自動調用該類的( D )。 A. 無參構造函數 B. 帶參構造函數 C. 拷貝構造函數 D. 析構函數90假定
21、變量b和pb定義為“int b10, *pb=b;”,要將24賦值給b1元素中,不正確的語句是( C )。 A. *(pb+1)=24; B. *(b+1)=24; C. *+b=24; D. *+pb=24;91對類中常量成員的初始化是通過構造函數中給出的( C )實現的。 A. 函數體 B. 參數表 C. 初始化表 D. 初始化表或函數體92假定AA為一個類,a為該類公有的數據成員,若要在該類的一個成員函數中訪問它,則書寫格式為(A )。 A. a B. AA:a C. a() D. AA:a()93引入友元的主要目的是為了( C )。 A. 增強數據安全性 B. 提高程序的可靠性 C.
22、提高程序的效率和靈活性 D. 保證類的封裝性94類中定義的成員默認為( B )訪問屬性。 A. public B. private C. protected D. friend95關于運算符重載,下列說法正確的是( C )。 A. 重載時,運算符的優(yōu)先級可以改變。 B. 重載時,運算符的結合性可以改變。 C. 重載時,運算符的功能可以改變。 D. 重載時,運算符的操作數個數可以改變。96如果是類B在類A的基礎上構造,那么,就稱( B )。 A. 類A為基類或父類,類B為超類或子類 B. 類A為基類、父類或超類,類B為派生類或子類 C. 類A為派生類,類B為基類 D. 類A為派生類或子類,類B為
23、基類、父類或超類97一個類的構造函數通常被定義為該類的( A )成員。 A. 公用 B. 保護 C. 私有 D. 友元98假定一個類對象數組為An,當離開它定義的作用域時,系統自動調用該類析構函數的次數為( C )。 A. 0 B. 1 C. n D. n-1二、填空題1C+語言是在_C_語言的基礎上發(fā)展起來的。2假定x=10,則表達式xa_。30假定x是一個邏輯量,則x & false的值為_0_。31若需要把一個字符串”aaa”賦值到字符數組a中,則需要執(zhí)行_strcpy_函數的調用來實現。32假定p所指對象的值為25,p+1所指對象的值為42,則執(zhí)行(*p)+運算后,p所指對象的值為_2
24、6_。33存儲字符a和字符串”a”分別需要占用_1_和_2_個字節(jié)。34若“double x=100;”是文件F1.CPP中的一個全局變量定義語句,若文件F2.CPP中的某個函數需要訪問此x , 則應在文件F2.CPP中添加對x的聲明語句為_extern doule x;_。35常數100和3.62的數據類型分別為_int_和_double_。36全局變量和靜態(tài)局部變量具有靜態(tài)生存期,存放在內存的_全局數據_區(qū)中。37假定一個二維數組為c58,則c3的值為二維元素_c30_的地址,c3+2的值為二維元素_c32_的地址。38假定對數組a進行初始化的數據為2,7,9,6,5,7,10,則a2和a
25、5分別被初始化為_9_和_7_。39函數形參的作用域是該函數的_函數體_。40若a是一個字符數組,則向屏幕輸出a中所存字符串的表達式為_couta_。41對于無返回值函數,定義函數時要用_void_修飾函數類型。42假定p是一個指向整數對象的指針,則用_*p_表示該整數對象,用_&p_表示指針變量p的地址。43一個數組的數組名實際上是指向該數組_第一個_元素的指針,并且在任何時候都不允許_修改_它。44一個指針類型的對象占用內存的_4_個字節(jié)的存儲空間。45假定對二維數組a34進行初始化的數據為3,5,6,2,8,7,則a11和a23分別被初始化為_8_和_0_。46局部變量具有局部生存期,存
26、放在內存的_棧_區(qū)中。47假定x是一個邏輯量,則!x | false的值為_!x_。48若y是x的引用,則&y和&x的值_相等_,即為變量_x_的地址。49假定p為指向二維數組int d46的指針,則p的類型為_int(*)6_。50假定p所指對象的值為25,p+1所指對象的值為42,則執(zhí)行*(p+)或*p+運算后,p所指對象的值為_42_。51假定p是一個指針,則*p+運算首先訪問_*p_,然后使_p_的值增1。52特殊類的對象擁有其一般類的全部屬性與操作,稱特殊類_繼承_了一般類。53假定用戶沒有給一個名為AB的類定義構造函數,則系統為其定義的構造函數為_AB()_。54在函數模板的參數中
27、,用class修飾的參數稱為_類型_參數。55執(zhí)行_deletep_操作將釋放由p所指向的動態(tài)分配的數組空間。56假定指向一維數組b10中元素b4的指針為p,則p+3所指向的元素為_b7_,p-2所指向的元素為_b2_。57假定x=5,y=6,則執(zhí)行表達式y+=x-計算后,x和y的值分別為_4_和_11_。58用于從鍵盤上為變量輸入值的標準輸入流對象是_cin_。59若二維數組a有m列,設a00位于數組的第一個位置上,則計算任一元素aij在數組中位置序號的公式為_i*m+j+1_。60已知有定義“int x, a=5,7,9, *pa=a;”,在執(zhí)行“x=+*pa;”語句后,x的值是_6_。6
28、1執(zhí)行int p=new int操作得到的一個動態(tài)分配的整型對象為_*p_。62對于類中定義的任何成員,其隱含訪問權限為_private_。63為了避免在調用成員函數時修改對象中的任何數據成員,則應在定義該成員函數時,在函數頭的后面加上_const_關鍵字。64如果一個派生類的基類不止一個,則這種繼承稱為_多重繼承_。65假定用戶沒有給一個名為AB的類定義析構函數,則系統為其定義的析構函數為_AB()_。66若一個函數的定義處于調用它的函數之前,則在程序開始可以省去該函數的_原型_語句。67已知變量a定義為“int a=5;”,要使ra成為a的引用,則ra應定義為_ int &ra=a_。68
29、對于結構中定義的任何成員,其隱含訪問權限為_public_。69已知語句“couts;”的輸出是“apple”,則執(zhí)行語句“coutname等價的表達式是_(*p).name_。三、程序填充1斐波那契數列的第1和第2個數分別為0和1 ,從第三個數開始,每個數等于其前兩個數之和。求斐波那契數列中的前20個數,要求每行輸出5個數。 #include void main() int f,f1,f2,i; cout” 斐波那契數列:n”; f1=0; f2=1; coutsetw(6)f1setw(6)f2; for(i=3;i=20;i+) f=_(1)_; coutsetw(6)f; if(_(2
30、)_) coutendl; f1=f2; f2=_(3)_; coutendl; 【答案】 (1) f1+f2 (2) i%5=0 (3) f2在輸出屏幕上打印出一個由字符*組成的等腰三角形,該三角形的高為5行,從上到下每行的字符數依次為1,3,5,7,9。 #include void main() int i,j; for(i=1;_(1)_;i+) for(j=1;j=9;j+) if(j=5-i | _(2)_) cout ; else _(3)_; coutendl; 【答案】 (1) i=5+i (3) cout*3打印出2至99之間的所有素數(即不能被任何數整除的數)。 #include #include void main() int i,n; for(n=2; _(1)_; n+) int temp=in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息化技術在農業(yè)生產中的合作協議
- 農民工在崗培訓與勞務派遣合同
- 購買物業(yè)管理服務協議書
- 農業(yè)生產經營資金互助保障協議
- 智慧寓言伊索寓言故事解讀
- 高考語文復習:專題六、七
- 體育培訓中心學員意外事故的免責及保障協議
- 高考文言文斷句100題專項練習(附答案及翻譯最方便)
- 小馬過河自我成長的故事解讀
- 農業(yè)旅游開發(fā)手冊
- 叉車裝卸區(qū)域安全風險告知牌
- 2022屆江蘇省南京師范大學附屬中學高三(下)考前最后一模物理試題(解析版)
- 辦公用品供貨服務計劃方案
- 《普通生物學教案》word版
- 貴州省就業(yè)失業(yè)登記表
- 預防電信詐騙網絡詐騙講座PPT幻燈片課件
- 反興奮劑知識試題及答案
- 初中八年級上冊音樂課件4.2欣賞沃爾塔瓦河(14張)ppt課件
- 人教版五年級數學下冊每個單元教材分析(共九個單元)
- 深圳氫燃料共享單車項目投資計劃書【參考范文】
- 主要腸內營養(yǎng)制劑成分比較
評論
0/150
提交評論