① 什麼是面向對象的編程語言啊
面向對象語言(Object-Oriented Language)是一類以對象作為基本程序結構單位的程序設計語言。指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。
其特點如下:
(1)任何事物都是對象。
(2)運行期的基本實體,也是一個包括數據和操作這些數據的代碼的邏輯實體。
(3)每個對象可以有自己的內存空間包含其他對象。
(4)類是具有相同類型的對象的抽象。一個對象所包含的所有數據和代碼可以通過類來構造。
(5)程序由一系列的對象組合,它們通過發送消息告訴彼此做什麼。
(6)封裝是將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。
(7)一個特定類型的所有對象都可以接受同樣的消息。
(8)繼承是讓某個類型的對象獲得另一個類型的對象的特徵。
(9)每一個對象都有類型。
(10)多態是指不同事物具有不同表現形式的能力。
注意事項:
Java是一門面向對象編程語言,具有功能強大和簡單易用兩個特徵。
C語言是面向過程的程序設計語言,與C++,Java等面向對象的編程語言有所不同。
VB是一種面向對象的可視化程序設計語言,採取了事件驅動的編程機制。
(1)面向對象程序設計與c語言答案擴展閱讀:
面向對象編程的優點:
易維護 :可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在局部模塊。
易擴展 :通過繼承,我們可以大幅減少多餘的代碼,並擴展現有代碼的用途;
模塊化 :封裝可以定義對象的屬性和方法的訪問級別,通過不同的訪問修飾符對外暴露安全的介面,防止內部數據在不安全的情況下被修改。
方便建模:很多時候可以使用現實生活中對象的概念抽象後稍作修改來進行建模,極大方便了建模的過程。
② C++面向對象程序設計(譚浩強)習題答案
一、單項選擇題(每題1分,共20分)
1、在C語言程序中應包含一個 。
A)語句 B)函數調用 C)主函數 D)子函數
2、C程序 構成。
A)由主程序和子程序 B)可以由一個主函數和若干其他函數
C)只能由一個函數即主函數 D)可以由若干個主函數和其他函數
3、C語言基本類型包括( )
A) 整型、實型、邏輯型 B) 整型、實型、字元型、邏輯型
C) 整型、字元型、邏輯型 D) 整型、實型、字元型
4、邏輯運算符兩側運算對象的數據類型 。
A) 只能是0和1 B) 只能是0或非0正數
C) 只能是整型或字元型數據 D) 可以是任何類型的數據
5、設有定義:log x=-123456L,則能夠正確輸出變數x值的語句是 。
A)printf("x=%8dL\n",x); B)printf("x=%8dL\n",x);
C)printf("x=%1d\n",x); D)printf("x=%LD",x);
6、printf函數中用到格式符%5s,其中數字5表示輸出的字元串佔用5列,如果字元串長度小於5,則輸出按下列哪種方式進行 。
A)從左起輸出字元串 B)按原字元串長度從左到右輸出
C)右對齊輸出該字元串,左補空格 D)輸出錯誤信息
7、語句while(!e)中的條件!e等價與 。
A)e==0 B)e!=1 C)e!=0 D)e==1
8、設有程序段
int k=10;
while(k=0) k=k-1;
則下面描述中正確的是 。
A)while循環執行10次 B)循環是無限循環
C)循環體1次也不執行 D)循環體執行1次
9、初始化語句正確的是 。
A)int a[1][4]={1,2,3,4,5}; B)float x[3][ ]={{1},{2},{3}};
C)long b[2][3]={{1},{2},{3}}; D)double y[ ][3]={{1,2},{3},{4}};
10、若要求:如果字元串s1大於字元串s2,則執行語句1,應當使用 。
A)if(s1>s2) 語句1 B)if(strcmp(s1,s2)) 語句1
C)if(strcmp(s2,s1)>0) 語句1 D)if(strcmp(s1,s2)>0) 語句1
11、已知:char str1[10],str2[10]= "Hello! ";則在程序中能夠將字元串"Hello! "賦給數組str1的正確語句是 。
A)str1="Hello!" B)strcpy(str1,str2) C) str1=str2 D) strcpy(str2,str1)
12、若有說明:int *p ,m = 5 , n ; 以下正確的程序段是 。
A)p = &n ; scanf ("%d" ,&p) ; B) p = &n ; scanf ("%d" ,*p) ;
C) scanf ("%d" , &n) ; *p = n; D) p = &n ; *p = m ;
13、下面程序段的運行結果是 。
char *s = "abcde" ;
s + = 2 ; printf ("%d" ,s) ;
A) cde B) 字元'c' C)字元'c'的地址 D)無確定的輸出結果
14、設p1和p2是指向同一個字元串的指針變數,c為字元變數,則以下不能正確執行的賦值語句是 。
A) c = *p1 + *p2 ; B)p2 = c ; C) p1 = p2 ; D) c = *p1*(*p2) ;
15、若有以下定義,則對a數組元素地址的正確引用是 。
int a[5] , *p = a ;
A) p + 5 B) *a + 1 C) & a + 1 D) & a[0]
16、下列說法中錯誤的是 。
A) 主函數可以放在程序的任何地方。
B) 非主函數總是通過函數調用語句來執行。
C ) C程序的書寫格式靈活,一行可以寫多個語句。
D) C程序的注釋也參加編譯並出現在目標程序中。
17、以下說法正確的是 。
A) C語言程序總是從第一個定義的函數開始執行。
B) 在C語言程序中,要調用的函數必須在main()函數中定義。
C) C語言程序總是從main()函數開始執行。
D、C語言程序中的main()函數必須放在程序的開始部分。
18、已知字母A的ASCII碼為十進制數65,且c2為字元型,則執行語句c2=『A』+『6』-『3』後,c2中的值為 。
A) D B) 68 C) 不確定的值 D) C
19、以下敘述正確的是 。
A) 在C程序中,每行只能寫一條語句
B) 若a是實型變數,C程序中允許賦值a=10,因此實型變數中允許存放整型數
C) 在C程序中,%是只能用於整數運算的運算符
D) 在C程序中,無論是整數還是實數,都能被准確無誤地表示
20、如果已經定義的變數,正確交換變數a、b的是 。
A)a=b;b=a; B)a=b;t=a;b=t;
C)t=a;a=b;b=t; D)a=a+b;b=a-a;a=a-b;
21、下面輸入語句中正確的是 。(設:int a,b,c;)
A)input(a,b,c); B)scanf("%d%d%d",&a,&b,&c);
C)scanf(%d,%d,%d,&a,&b,&c); D)scanf("%d,%d,%d",a,b,c);
22、下面有關for循環的正確描述是 。
A)for循環只能用於循環次數已經確定的情況
B)for循環是先執行循環體,後判條件
C)在for循環中,不能用break語句跳出循環
D)for循環的循環體語句中,可以包含多條語句,但必須用花括弧括起來
23、C語言中while和do-while循環的主要區別是 。
A)do-while的循環體至少執行1次 B)while的循環條件比do-while的循環條件嚴格
C)do-while允許從外部轉到循環體內 D)do-while的循環體不能是復合語句
24、已知:int a[10];則對a數組元素的正確引用的是 。
A)a[10] B)a[3.5] C)a[5] D)a[10-10]
25、在C語言中,二維數組元素在內存中的存放順序是 。
A)按行存放 B)按列存放 C)由用戶定義 D)由函數決定
26、已知:int a[ ][3]={1,2,3,4,5,6,7};則數組a的第一維的大小是 。
A)2 B)3 C)4 D)無法確定
27、以下程序中調用scanf函數給變數a輸入數值的方法是錯誤的,其錯誤原因是 。
main( )
{ int *p ,*q , a,b ;
p =&a ;
printf ("input a:") ;
scanf ("%d" , *p) ;
… }
A) *p表示的是指針變數p的地址 B)*p表示的是變數a的值,而不是變數a的地址
C)*p表示的是指針變數p的值 D)*p只能用來說明p是一個指針變數
28、已有定義int k = 2 ; int *ptr1,*ptr2 ;且ptr1和ptr2均已指向變數k ,下面不能正確執行的賦值語句是 。
A) k = *ptr1+*ptr2 ; B) ptr2 = k ; C) ptr1 = ptr2 ; D) k = *ptr1 *(*ptr2) ;
29、變數的指針,其含義是指該變數的 。
A)值 B)地址 C)名 D)一個標志
30、若有語句int *point , a = 4 ; 和point = &a ; 下面均代表地址的一組選項是 。
A)a , point ,*&a B) &*a ,&a , *point
C) *&point , *point , &a D) &a , &*point ,point
31、在C語言中,回車換行符是( )
A. \ n B. \ t C. \ v D. \ b
32、下列字元串不是標識符的是( )
A. sum B. Average C. Day_night D. M.D.JOHN
33、 在C語言中,下列類型屬於構造類型的是( )
A.整型 B.字元型 C.實型 D.數組類型
34、設有如下定義:
int x=10,y=5,z;
則語句printf(「%d\n」,z=(x+=y,x/y));
的輸出結果是( )
A.0 B.1 C.3 D.4
35、在C語言中,語句和數據定義是用( )作為結束標記的
A.句號 B.逗號 C.分號 D.括弧
36、以下程序的輸出結果是( )
main( )
{ char c1=』8』,c2=』2』;
printf(「%c,%c,%d,%d\n」,c1,c2,c1-c2,c1+c2); }
A.因輸出格式不合法,輸出出錯信息
B.8,2,6,106 C.8,2,6,10 D.8,2,5,9
37、兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結果是( )
main( )
{int x;
scanf(「%d」,&x);
if(x++>5) printf(「%d\n」,x);
else printf(「%d\n」,x--); }
A.7和5 B.7和4 C.6和4
38、有如下程序段:
int k=0;
while(k++<=2) printf(「%d\n」,k);
則正確的執行結果是( )
A. 2 B. 0 C.1 D無結果
3 1 2
4 2 3
39、變數i的值為3,i的地址為2000,若欲使指針變數p指向變數i,則下列賦值正確的是( )
A.&i =3 B.*p=3 C.*p=2000 D p=&i
40、下面程序的執行結果是( )
main( )
{int i, *i_pointer;
i_pointer=&i;
*i_pointer=9;
printf(「i=%d」,i); }
A.i=0 B.i=9 C.i值不確定 D.程序有錯誤
41、表達式(int)2.1416的值時( )
A. 2 B. 2.1 C. 0 D. 3
42、下列運算符優先順序最高的是( )
A. > B. + C. && D. !=
43、程序段如下:
int k=1;
while (k=0) k=k+1;
則以下說法正確的是( )
A. while循環執行20次 B. 循環是無限循環
C. 循環體語句一次也不執行 D.循環體語句執行一次
44、C語言容許函數值類型預設定義,此時該函數值隱含的類型時( )
A. float型 B. Int型 C. Long 型 D. Double型
45、在C語言中引用數組元素時,其數組下標的數據類型是( )
A. 整型常量 B. 整型表達式
C. 整型常量和整型表達式 D. 任何類型的表達式
46、以下程序段的輸出結果是( )
char str[ ]=」ABCD」, *P=str;
printf(「% d \ n」, *( p+4 ));
A. 68 B. 0 C. 字元D的地址 D. 不確定的值
47、一個C程序的執行是從( )
A.本程序中的main函數開始,到main函數結束
B.本程序中的第一個函數開始,到本程序中的最後一個函數結束
C.本程序中的main函數開始,到本程序中的最後一個函數結束
D.本程序中的第一個函數開始,到本程序中的main函數結束
48、關於return語句,下列說法中不正確的是( )
A.函數可以通過return語句獲得返回值。
B.沒有return語句函數就不能獲得返回值。
C.return語句後面可以是常量、變數名或表達式,只要有確定的值
D.C語言中允許函數不返回值
49、按照C語言的規定,下列說法正確的是( )
A.實參可以是常量、變數或表達式,在傳遞給形參時,要求實參必須有確定的值
B.形參可以是常量、變數或表達式
C.實參可以為任意類型
D.形參與其對應的實參類型要求可以不一致
50、設有int a[ ]={10,11,12},*p=&a[0];則執行完*p++;*p+=1;後a[0],a[1],a[2]的值依次是 ( )
A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
51、C語言中基本數據類型包括 。
A、整型、實型、邏輯型 B、整型、實型、字元型
C、整型、字元型、邏輯型 D、整型、實型、數組 、字元型
52、下列常數中不能作為C語言常量的是 。
A、0xA5 B、2.5e-2 C、3e2 D、0582
53、下列不屬於C語言關鍵字的是 。
A、default B、void C、struct D、external
54、已知int j,i=1; 執行語句j= -i++;後,j的值是 。
A、1 B、2 C、-1 D、-2
55、已知int i,a; 執行語句i=(a=2*3,a*5),a+6;後,i的值是 。
A、6 B、12 C、30 D、36
56、已知int x=1,y=2,z; 執行語句z=x>y?++x:++y;後,z的值是 。
A、1 B、2 C、3 D、4
57、不能進行++和—運算的數據類型是 。
A、指針 B、double C、int D、long
58、為了明確表示不帶回函數值,定義函數時函數名前用 。
A、int B、void C、struct D、static
59、若有 int a[2][3]={1, 3, 5, 7, 9, 11};則a[1][2]的值為 。
A、3 B、5 C、11 D、9
60、對於存儲類型為 的變數,只有使用時才佔用內存單元。
A、static B、extern C、auto D、前面都不對
二、填空題 (每空1分,共20分)
1、用C語言編寫的程序,編譯成功後生成的文件擴展名是 ,連接成功後生成的文件擴展名是 。
2、用匯編語言寫的程序必須通過 程序翻譯後才能執行,而高級語言寫的源程序可以通過 程序翻譯一句執行一句的方式,也可以通過 程序一次翻譯產生目標程序,然後執行。
3、若x和n均是int型變數,且x和n的初值均為5,則計算下列表達式後x的值為 ,n的值為 。 x+=n++
4、若a是int型變數,則計算下面表達式後a的值為 。 a=25/3%3
5、若for循環用以下形式表示:for(表達式1;表達式2;表達式3) 循環體語句,則執行語句for(i=0;i<3;i++) printf("*");時,表達式1執行 次,表達式3執行 次。
6、在C程序中,從 開始到 結束的內容為注釋信息,並且注釋信息 (可以/不可以)出現在程序的任何地方。
7、C程序有且只有一個主函數,它的函數名是 ,主函數 (可以/不可以)調用任何非主函數,任何非主函數 (可以/不可以)調用主函數。
8、若有定義:char c=『\010』;則變數c中包含的字元個數為______。
9、雞兔共有30隻,腳共有90個,下面程序段是計算雞兔各有多少只,請填空。
for(x=1;x<=29;x++)
{y=30-x;
if( ) printf("%d,%d\n",x,y); }
10、一個C源程序至少包括_________個函數,即_______函數。
11、若有說明int i,j,k;則表達式i=10,j=20,k=30,k*=i+j的值為_______________。
12、語句"printf("%x,%o",16,12);"的輸出結果是 。
13、開發一個C程序的步驟是 , , , 。
14、一個C程序中必須包含一個且只包含一個 函數。
15、C語言中每個基本語句都以 結束。
16、C語言規定,對程序中用到的變數,必須先 ,後 。
17、單精度浮點型變數和雙精度浮點型變數的類型標識符分別為 和 。
18、C語言中唯一的三元運算符是 ,運算優先順序最低的運算符是 。
19、 函數可以嵌套 ,不能嵌套 。
20、欲將1,2分別輸入給x,y,則執行scanf(「x=%d,y=%d」,&x,&y);
語句時的輸入格為 。
21、若x=2,y=3,則執行x*=y+1語句後,x的值為 。
22、 是C程序的基本組成單位。
23、在循環語句中執行了break語句,則 。
24、C語言規定,凡不加類型說明的函數,一律按 。
25、函數調用的三種方式: 、 、 。
26、在函數調用中給出的參數稱 ,在函數定義中給出的參數稱 。
27、C語言中自動在每個字元串的末尾添加一個 。
28、if與else的配對關系中,else總是與 的if配對。
29、文件的打開使用 函數;文件的關閉使用 函數。
30、若int x [ ]={1, 3, 5},* p=x;則*(p++)的值為 。
31、一個函數由兩部分組成,他們是 和 。
32、C語言是通過 來進行輸入和輸出的。
33、C語言的數據類型有四大類,他們是 、 、 、 。
34、當執行以下程序段後,i的值為 、j的值為 、k的值為 。
int a,b,c,d,i,j,k;
a=10; b=c=d=5; i=j=k=0;
for( ; a>b; ++b) i++;
while (a>++c) j++;
do k++; while (a>d++);
35、若有以下定義:double w[10];則w數組元素下標的上限是 ,下限是 。
36、Break語句只能用於 和 語句。
37、在循環中,continue語句與break語句的區別是:continue語句只是 ,break 是 。
38、若有說明int i,j,k;則表達式i=10,j=20,k=30,k*=i+j的值為 。
39、語句"printf("%x,%o",16,12);"的輸出結果是 。
三、程序填空
1、下面程序的功能是在輸入的一批正整數中求出最大者,輸入0結束循環。請填空。
main()
{int a,max=0;
scanf("%d",&a);
while( );
{ if (max<a) max=a;
scanf("%d",&a);}
printf("%d",max);}
2、以下程序的功能是:從鍵盤上輸入若干學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,amax,amin;
scanf(「%f」,&x);
amax=x; amin=x;
while( )
{ if ( x>amax ) amax=x;
else if (x<amin) ;
; }
printf(「\namax=%f\namin=%f\n」,amax,amin);}
3、輸入若干字元,分別統計數字字元的個數、英文字母的個數,當輸入換行符時輸出統計結果,運行結束。
#include <stdio.h>
void main()
{ char ch; ;
while(( )!='\n')
{if(ch>='0'&&ch<='9') s1++;
if((ch>='a' && ch<='z')|| ) s2++;}
printf(「%d,%d\n」,s1,s2);}
4、findmax返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空。
findmax(int s[ ], int t)
{ int k,p;
for(p=0, k=p; p<t; p++)
if (s[p]>s[k]) ;
return ; }
5、以下程序的功能是:從鍵盤上輸入若干學生的成績,統計並輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。
main()
{ float x,amax,amin;
scanf(「%f」,&x);
amax=x; amin=x;
while( )
{ if ( x>amax ) amax=x;
else if (x<amin) ;
; }
printf(「\namax=%f\namin=%f\n」,amax,amin); }
6、輸入若干字元,分別統計數字字元的個數、英文字母的個數,當輸入換行符時輸出統計結果,運行結束。
#include <stdio.h>
void main()
{ char ch;
_________;
while(( )!='\n')
{if(ch>='0'&&ch<='9') s1++;
if((ch>='a' && ch<='z')|| ) s2++;}
printf(「%d,%d\n」,s1,s2);}
7、下面程序的功能是求出用數字0至9可以組成多少個沒有重復數字的三位數。請填空。
main()
{int i,j,k,count=0;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
if( ) continue;
else for(k=0;k<=9;k++)
if( ) count++;
printf("%d",count); }
8、輸出3——100之間的所有素數
#include 「stdio.h」
main()
{ int i,j;
for(i=3;i<=100;i++)
{for(j=2;j<=i-1;j++)
if( ) break;
if( )
printf(「%4d」,i);
} }
9、將字元串s中所有的字元『c』刪除
#include 「stdio.h」
main()
{ char s[80];
int i,j;
for(i=j=0;s[i]!=『\0』;i++)
if(s[i]!=『c』)
puts(s); }
10、用選擇法對10個整數排序(從小到大)
main()
{int i,j,min,temp,a[11];
for(i=1;i<=10;i++)
for(i=1;i<=9;i++)
{min=i;
for( ;j<=10;j++)
if(a[min]>a[j])
temp=a[i];
;
a[min]=temp;}
for(i=1;i<=10;i++)
}
四、判斷題 (每題1分,共20分)
1、若有說明int c;則while(c=getchar());是正確的C語句。 ( )
2、int i,*p=&i;是正確的C說明。 ( )
3、7&3+12的值是15。 ( )
4、在C語言中,函數既可嵌套調用又可嵌套定義。 ( )
5、for( ; ; )S中的語句S必執行無窮多次。 ( )
6、unsigned 和
③ 面向對象程序設計期末大作業題目(C語言)
面向對象程序設計
期末大作業題目
第1題:設計一個學生學籍管理系統
學生信息包括:姓名、學號、性別和英語、數學、程序設計、體育成績。
從鍵盤輸入數據,建立數據文件student.dat。
實現對學生或學號查詢,顯示信息。
對所有學生,按照班級計算平均成績。
分別按照英語、數學、程序設計和體育成績排序生成結果文件。
程序清單:
第2題:自定義一個示意性的復數類
自定義一個示意性的復數類型complex,其中含有若干個成員函數,使用該類可以完成復數的加法以及對復數的輸出。請完成類定義並編制主函數,說明complex類對象,對定義的各成員函數進行調用。class complex{ double real; //復數實部 double imag; //復數虛部public: complex(); //無參構造函數 complex(double r, double i); //兩參構造函數 complex addCom(complex c2);
//調用者對象與對象c2相加,返回complex類對象 void outCom ();
//輸出調用者對象的有關數據(各分量) }; 進一步,在類中添加對復數進行其他基本運算(如,復數減、乘、除、取模等)的相應成員函數,並通過主函數處的調用來驗證各函數的使用正確性。
程序清單:
第3題:設計一個模擬電信計費程序
假設電信計費標准:固定電話長途話費0.02元/秒,固定電話本地話費0.06元/分,無線電話長途話費1.00元/分,無線電話本地話費0.60元/分,無線電話接聽話費0.50元/分。
源數據文件中存放:電話號碼,電信服務類別,通話時間(秒)。
生成固定長途電話文件:長途電話號碼和通話時間。
生成固定本地電話文件:本地電話號碼和通話時間。
生成無線長途電話文件:長途電話號碼和通話時間。
生成無線本地電話文件:本地電話號碼和通話時間。
生成無線接聽電話文件:接聽電話號碼和通話時間。
生成統計電信費用文件:電話號碼、累計電信費用。
程序清單:
第4題:設計一個保留字(或關鍵字)的統計程序
建立保留字文件;
從源數據文件(C或C++語言程序)中,讀取字元或字元串,與保留字文件中的保留字進行匹配比較,並統計計數。
輸出兩張表文件:保留字計數,掃描程序的次數,非保留字計數。
程序清單:
程序清單:
第5題:設計一個數據文件處理程序
源數據文件中含有字元和數字,從中讀取數值數據(將連續的數字字元看成一個數值數據),和讀取的單詞(將連續的字母字元看成一個單詞)分別存放在不同的文件中,並且排序後輸出顯示。
例如:源數據文件old.dat包括:asjjk 12rtr 345 dasdd9&k32*dfasfkjk##dasfdf897,
則生成的數據文件new1.data包括:12 345 9 32 897
單詞文件new2.dat包括:asjjk rtr dasdd k dfasfkjk dasfdf
程序清單:
第6題:設計一個超長整數類
定義並實現超長整數類doublelong,要求如下:
64位數據長度,有符號
支持+、-、*、/運算
支持+=、-=、/=運算
支持cin>>和cout<<操作
你給多少錢?1500,全部幫你做下來,成交不?
④ 華師在線09面向對象程序設計作業答案
--------------------------------------------------------------------------------
作業名稱:面向對象程序設計
作業總分:100
學員姓名:mj07b201 學員成績:95
標准題總分:100 標准題得分:95
詳細信息:
題號:1 題型:單選題 本題分數:1
內容:
一個類的友元函數能夠訪問該類的( )
選項:
A、A)私有成員
B、B)保護成員
C、C)公有成員
D、D)所有成員
學員答案:
D
題號:2 題型:單選題 本題分數:1
內容:
下面關於類和對象的描述中,錯誤的是( )
選項:
A、A)類就是C語言中的結構體類型,對象就是C語言中的結構體變數
B、B)類和對象之間的關系是抽象和具體的關系
C、 C)對象是類的實例,一個對象必須屬於一個已知的類
D、 D)類是具有共同行為的若干對象的統一描述體
學員答案:
A
題號:3 題型:單選題 本題分數:1
內容:
以下各選項組中,均是C++語言關鍵字的組是( )
選項:
A、A) public operator this
B、 B)shod string static
C、 C)it while>=
D、 D)private cout printf
學員答案:
A
題號:4 題型:單選題 本題分數:2
內容:
設int a=10,b=11,c=12;,表達式(a+b) 的值為( )
選項:
A、A)2
B、 B)0
C、 C)-2
D、 D)1
學員答案:
B
題號:5 題型:單選題 本題分數:1
內容:
下列描述正確的是( )
選項:
A、A)表示m>n為true或mn&&m
B、 B)switch語句結構中必須有default語句
C、 C)if語句結構中必須有else語句
D、 D)如果至少有一個操作數為true,則包含「‖」運算符的表達式為true
學員答案:
D
題號:6 題型:單選題 本題分數:1
內容:
下面關於數組的描述錯誤的是( )
選項:
A、A)在C++語言中數組的名字就是指向該數組第一個元素的指針
B、 B)長度為n的數組,下標的范圍是0-n-1
C、 C)數組的大小必須在編譯時確定
D、 D)數組只能通過值參數和引用參數兩種方式傳遞給函數
學員答案:
D
題號:7 題型:單選題 本題分數:2
內容:
下面程序錯誤的語句是( )①#include ②void main() ③{ ④int*p=new int[1]; ⑤p=9; ⑥cout <<*p< ⑦delete[]p ⑧}
選項:
A、A)④
B、B)⑤
C、C)⑥
D、D)⑦
學員答案:
B
題號:8 題型:單選題 本題分數:2
內容:
下面的哪個選項不能作為函數的返回類型?( )
選項:
A、A)void
B、B)int
C、C)new
D、D)long
學員答案:
C
題號:9 題型:單選題 本題分數:1
內容:
不能作為重載函數的調用的依據是( )
選項:
A、A)參數個數
B、 B)參數類型
C、 C)函數類型
D、 D)函數名稱
學員答案:
B
題號:10 題型:單選題 本題分數:2
內容:
下列程序的輸出結果為( ),以下是引用片段: #include< iostream. h> int func(int n) { if〔n<1)return 1; else return n+func(n-1): return 0; } void main() { cout< 選項:
A、A) 0
B、B)10
C、C)15
D、D)16
學員答案:
D
題號:11 題型:單選題 本題分數:1
內容:
在C++語言中,數據封裝要解決的問題是( )
選項:
A、A)數據的規范化
B、 B)便於數據轉換
C、 C)避免數據丟失
D、 D)防止不同模塊之間數據的非法訪問
學員答案:
D
題號:12 題型:單選題 本題分數:2
內容:
以下程序中,錯誤的行是 ①#include ②class A ③{ ④ public: ⑤ int n=2: ⑥ A( int val){cout< 選項:
A、A)⑤
B、B)⑥
C、C)⑦
D、D)⑩
學員答案:
A
題號:13 題型:單選題 本題分數:1
內容:
下面有關重載函數的說法中正確的是()
選項:
A、A)重載函數必須具有不同的返回值類型
B、 B)重載函數形參個數必須不同
C、C)重載函數必須有不同的形參列表
D、D)重載函數名可以不同
學員答案:
C
題號:14 題型:單選題 本題分數:1
內容:
下列關於構造函數的描述中,錯誤的是()
選項:
A、A)構造函數可以設置默認參數
B、B)構造函數在定義類對象時自動執行
C、C)構造函數可以是內聯函數
D、D)構造函數不可以重載
學員答案:
D
題號:15 題型:單選題 本題分數:1
內容:
下面描述中,表達錯誤的是()
選項:
A、A)公有繼承時基類中的public成員在派生類中仍是public的
B、 B)公有繼承是基類中的private成員在派生類中仍是private的
C、C)公有繼承時基類中的protected成員在派生類中仍是protected的
D、 D)私有繼承時基類中的public成員在派生類中是private的
學員答案:
B
題號:16 題型:單選題 本題分數:2
內容:
在進行完任何C++流的操作後,都可以用C++流的有關成員函數檢測流的狀態;其中只能用於檢測輸入流狀態的操作函數名稱是()
選項:
A、A)fail
B、B)eof
C、 C)bad
D、D)good
學員答案:
B
題號:17 題型:單選題 本題分數:1
內容:
下列關於C++語言類的描述中錯誤的是( )
選項:
A、A)類用於描述事物的屬性和對事物的操作
B、 B)類與類之間通過封裝而具有明確的獨立性
C、C)類與類之間必須是平等的關系,而不能組成層次結構
D、 D)類與類之間可以通過一些方法進行通信和聯絡
學員答案:
C
題號:18 題型:單選題 本題分數:1
內容:
以下敘述中正確的是( )
選項:
A、A)構成C++語言程序的基本單位是類
B、 B)可以在一個函數中定義另一個函數
C、 C) main()函數必須放在其他函數之前
D、 D)所有被調用的函數一定要在調用之前進行定義
學員答案:
A
題號:19 題型:單選題 本題分數:2
內容:
己知有定義 以下是引用片段: const int D=5; int i=1; double f=0.32: char c=15; 則下列選項錯誤的是( )
選項:
A、A)++i
B、 B)D--
C、 C)C++
D、 D)--f
學員答案:
B
題號:20 題型:單選題 本題分數:2
內容:
下面程序的功能是把316表示為兩個加數的和,使兩個加數分別能被13和11整除,在劃線處應填入的選項是( ),以下是引用片段: void main() { int i=0,j,k; do{i++;k=316-13*i;}while( ); j=k/11; cout<<」316=13*」< }
選項:
A、A)k/11
B、B)k% 11
C、 C)k/11==0
D、D)k%11==0
學員答案:
B
題號:21 題型:單選題 本題分數:2
內容:
設有數組定義:char array[]=」China";,則數組array所佔的空間為( )
選項:
A、A)4個位元組
B、B)5個位元組
C、C) 6個位元組
D、D)7個位元組
學員答案:
C
題號:22 題型:單選題 本題分數:2
內容:
若已定義: int a[]={0,1,2,3,4,5,6,7,8,9},*P=a,i; 其中O≤i≤9,則對a數組元素不正確的引用是( )
選項:
A、A)a[p-a]
B、 B)*(&a[i])
C、C)p[i]
D、D)a[10]
學員答案:
D
題號:23 題型:單選題 本題分數:2
內容:
函數fun的返回值是( ) 以下是引用片段: fun(char*a,char*b) { int num=0,n=0; while(*(a+num)!=『\0』)num++; while(b[n]){*(a+num)=b[n];num++;n++;} return num; }
選項:
A、A)字元串a的長度
B、B)字元串b的長度
C、C)字元串a和b的長度之差
D、D)字元串a和b的長度之和
學員答案:
D
題號:24 題型:單選題 本題分數:2
內容:
下面程序的結果為( ),以下是引用片段: void main() { int i; int a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) cout< 選項:
A、A)1 5 9
B、B)7 5 3
C、C)3 5 7
D、D) 5 9 1
學員答案:
B
題號:25 題型:單選題 本題分數:1
內容:
下列描述中哪個是正確的( )。
選項:
A、A)私有派生的子類無法訪問父類的成員
B、 B)類A的私有派生子類的派生類,C無法初始化其祖先類A對象的屬性,因為類A的成員對類C是不可訪問的
C、 C)私有派生類不能作為基類派生子類
D、 D)私有派生類的所有子孫類將無法繼續繼承該類的成員
學員答案:
B
題號:26 題型:單選題 本題分數:1
內容:
下列關於構造函數說法不正確的是( )
選項:
A、A)構造函數必須與類同名
B、 B)構造函數可以省略不寫
C、 C)構造函數必須有返回值
D、 D)在構造函數中可以對類中的成員進行初始化
學員答案:
C
題號:27 題型:單選題 本題分數:1
內容:
如果友元函數重載一個運算符時,其參數表中沒有任何參數則說明該運算符是( )
選項:
A、A)一元運算符
B、B)二元運算符
C、 C)選項A)和選項B)都可能
D、D)重載錯誤
學員答案:
D
題號:28 題型:單選題 本題分數:1
內容:
在重載一個運算符時,如果其參數表中有一個參數,則說明該運算符是( )
選項:
A、A)一元成員運算符
B、B)二元成員運算符
C、C)一元友元運算符
D、D)選項B)和選項C)都可能
學員答案:
D
題號:29 題型:單選題 本題分數:2
內容:
建立派生類對象時,3種構造函數分別是a(基類的構造函數)、b(成員對象的構造函數)、c(派生類的構造函數)這3種構造函數的調用順序為( )
選項:
A、A)abc
B、 B)acb
C、 C)cab
D、 D)cba
學員答案:
A
題號:30 題型:單選題 本題分數:2
內容:
下面關於虛函數的描述,錯誤的是( )
選項:
A、A)在成員函數聲明的前面加上virtual修飾,就可把該函數聲明為虛函數
B、 B)基類中說明了虛函數後,派生類中對應的函數也必須說明為虛函數
C、 C)虛函數可以是另一個類的友元函數,但不能是靜態成員函數
D、 D)基類中說明的純虛函數在其任何派生類中都必須實現
學員答案:
B
題號:31 題型:單選題 本題分數:2
內容:
下面關於模板的描述,錯誤的是( )
選項:
A、A)函數模板和類模板的參數可以是任意的數據類型
B、 B)類模板不能直接使用,必須先實例化為相應的模板類.然後定義了模板類的對象後才能使用
C、 C)函數模板不能直接使用,需要實例化為模板函數後才能使用
D、 D)類模板的成員函數都是模板函數
學員答案:
A
題號:32 題型:單選題 本題分數:2
內容:
語句ofstream f(」SALARY. DAT",ios::app iios::binary);的功能是建立流對象f,試圖打開文件SAL:aRY. D AT並與之連接,並且( )
選項:
A、A)若文件存在,將文件寫指針定位於文件尾
B、若文件不存在,建立一個新文件
C、 B)若文件存在,將其置為空文件
D、若文件不存在,打開失敗
E、 C)若文件存在,將文件寫指針定位於文件首
F、若文件不存在,建立一個新文件
G、 D)若文件存在,打開失敗
H、若文件不存在,建立一個新文件
學員答案:
A
題號:33 題型:單選題 本題分數:2
內容:
下面程序的運行結果是( ) 以下是引用片段:#include void main(){ int num=1; int &ref=num; ref=ref+2; cout< 選項:
A、A)13
B、B)16
C、C)36
D、D)33
學員答案:
C
題號:34 題型:單選題 本題分數:2
內容:
設有定義int x; float v;,則10+x+v值的數據類型是( )
選項:
A、A)int
B、B)double
C、C)float
D、D)不確定
學員答案:
C
題號:35 題型:單選題 本題分數:2
內容:
下列程序的執行結果為( ) 以下是引用片段:#include void main() { int a=3,b=0; int*p=&a; b=+a++; cout<<*p<<","< 選項:
A、A)3,4
B、B)4,3
C、C)3,4
D、D)4,4
學員答案:
B
題號:36 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段:#include void main() { for(int a=0,x=0;!x&&a<=10;a++) { a++; }; cout< 選項:
A、A)10
B、B)11
C、C)12
D、D) 0
學員答案:
C
題號:37 題型:單選題 本題分數:2
內容:
下列程序的輸出結果為( ) 以下是引用片段:#include void main() { char *a[]={"hello","the","world"}; char**pa=a; pa++; cout<<*pa; }
選項:
A、A)hello
B、 B)the
C、 C)world
D、 D)hellotheworld
學員答案:
B
題號:38 題型:單選題 本題分數:1
內容:
決定C++語言中函數的返回值類型的是( )
選項:
A、A) return語句中的表達式類型
B、 B)調用該函數時系統隨機產生的類型
C、 C)調用該函數時的主調用函數類型
D、 D)在定義該函數時所指定的數據類型
學員答案:
D
題號:39 題型:單選題 本題分數:2
內容:
下列程序的運行結果為( )以下是引用片段: #includevoid print(double a){cout<<++a;} void print(int a,int b) { cout< A、A)1.2 34
B、 B)2.2 34
C、 C)1.2 43
D、 D)2.2 43
學員答案:
D
題號:40 題型:單選題 本題分數:1
內容:
對類成員訪問許可權的控制,是通過設置成員的訪問控制屬性實現的,下列不是訪問控制屬性的是( )
選項:
A、A)公有類型
B、 B)私有類型
C、 C)保護類型
D、 D)友元類型
學員答案:
D
題號:41 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段: #include class A { public: A(){cout<<"1";} ~A(){cout<<"2";} }; class B:public A { public: B(){cout<<"3";} ~B(){cout<<"4";} }; void main() { B b; }
選項:
A、A)1234
B、 B)1324
C、 C)1342
D、 D)3142
學員答案:
C
題號:42 題型:單選題 本題分數:2
內容:
下列關於多態性的描述,錯誤的是( )
選項:
A、A)C++語言的多態性分為編譯時的多態性和運行時的多態性
B、 B)編譯時的多態性可通過函數重載實現
C、 C)運行時的多態性可通過模板和虛函數實現
D、 D)實現運行時多態性的機制稱為動態綁定
學員答案:
C
題號:43 題型:單選題 本題分數:2
內容:
當使用fstream流類定義一個流對象並打開一個磁碟文件時,文件的隱含打開方式為( )
選項:
A、A)ios::in
B、 B)ios::out
C、 C)ios::in|ios::out
D、 D)以上都不對
學員答案:
D
題號:44 題型:單選題 本題分數:2
內容:
下列程序的運行結果是( ) 以下是引用片段: #include class A { int a; public: A(){a=0;} A(int as) { a=as; cout< 選項:
A、A 23
B、B 12
C、 C 35
D、D 25
學員答案:
B
題號:45 題型:單選題 本題分數:2
內容:
下面程序的輸出結果是( ) 以下是引用片段: #include class example { int a; public: example(int b){a=b++;} void print(){a=a+1;cout< A、A)2 2
B、B)4 3
C、C)4 2
D、D)3 2
學員答案:
C
題號:46 題型:單選題 本題分數:2
內容:
在派生類中重新定義虛函數時必須在( )方面與基類保持一致。
選項:
A、A 、 參數個數
B、B 、 參數名字
C、C 、 操作內容
D、D 、 賦值
學員答案:
A
題號:47 題型:單選題 本題分數:2
內容:
C++ 類體系中,不能被派生類繼承的有( )。
選項:
A、A 、 轉換函數
B、B 、 構造函數
C、C 、 虛函數
D、D 、 靜態成員函數
學員答案:
B
題號:48 題型:單選題 本題分數:2
內容:
下列虛基類的聲明中正確的是( )
選項:
A、A 、 class virtual B: public A
B、B 、 class B: virtual public A
C、C 、 class B: public A virtual
D、D 、 virtual class B: public A
學員答案:
B
題號:49 題型:單選題 本題分數:1
內容:
C++語言是從早期的C語言逐漸發展演變而來的.與C語言相比,它在求解問題方法上進行的最大改進是( )
選項:
A、A)面向過程
B、B)面向對象
C、C)安全性
D、D)復用性
學員答案:
B
題號:50 題型:單選題 本題分數:1
內容:
C++語言的跳轉語句中,對於break和continue說法正確的是()
選項:
A、A)break語句只應用與循環體中
B、B)continue語句只應用與循環體中
C、C)break是無條件跳轉語句,continue不是
D、D)break和continue的跳轉范圍不夠明確,容易產生問題
學員答案:
B
題號:51 題型:單選題 本題分數:2
內容:
下列關於模板的說法正確的是( )
選項:
A、A)模板的實參在任何時候都可以省略
B、B)類模板與模板類所指的是同一概念
C、 C)類模板的參數必須是虛擬類型的
D、D)類模板中的成員函數全部都是模板函數
學員答案:
D
題號:52 題型:單選題 本題分數:2
內容:
表示在輸出時顯示小數位,和在文件輸入時判斷文件尾的函數分別是( )
選項:
A、A) showbase()和eof()
B、B)showpoint()和eof()
C、 C)showpoint()和bad()
D、D)showpoint()和good()
學員答案:
B
題號:53 題型:單選題 本題分數:2
內容:
若定義int k=7,x=12;,則值為3的表達式是( )
選項:
A、A)x%=(k%=5)
B、B)x%=(k-k%5)
C、 C)x%=k-k%5
D、D)(x%=k)-(k%=5)
學員答案:
D
題號:54 題型:單選題 本題分數:2
內容:
在位運算中,操作數每右移一位,其結果相當於( )
選項:
A、A)操作數乘以2
B、B)操作數除以2
C、C)操作數乘以4
D、D)操作數除以4
學員答案:
B
題號:55 題型:單選題 本題分數:2
內容:
有以下結構體說明和變數的定義,且指針p指向變數a,指針q指向變數b。則不能把節點b連接到節點a 之後的語句是( ), 以下是引用片段: struct node { char data; struct node*next; }a,b,*p=&a,*q=&b;
選項:
A、A)a. next=q
B、 B)p. next=&b
C、 C)p->next=&b
D、 D)(*p).next=q
學員答案:
B
題號:56 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段: #include class A { int num; public: A(int i){num=i;} A(A &a){num=a. num++;} void print(){cout< 選項:
A、A)11
B、 B)12
C、 C)21
D、 D)22
學員答案:
C
題號:57 題型:單選題 本題分數:2
內容:
如果類A被說明成類B的友元,則( )
選項:
A、A)類A的成員即類B的成員
B、 B)類B的成員即類A的成員
C、 C)類A的成員函數不得訪問類B的成員
D、 D)類B不一定是類A的友元
學員答案:
D
題號:58 題型:單選題 本題分數:2
內容:
可以用p.a的形式訪問派生類對象P的基類成員a,其中a是( )
選項:
A、A)私有繼承的公有成員
B、 B)公有繼承的私有成員
C、 C)公有繼承的保護成員
D、 D)公有繼承的公有成員
學員答案:
D
題號:59 題型:單選題 本題分數:2
內容:
for(int x=0,y=0;!x& &y<=5;y++)語句執行循環的次數是()
選項:
A、A)0
B、 B)5
C、 C)6
D、 D)無次數
學員答案:
C
題號:60 題型:單選題 本題分數:2
內容:
考慮函數原型void test(int a,int b=7,char="*"),下面的函數調用中,屬於不合法調用的是()
選項:
A、A)test(5)
B、 B)test(5,8)
C、 C)test(6,"#")
D、 D)test(0,0."*")
學員答案:
C
記得給我分啊