C.語言程序設計試題試題與答案_第1頁
C.語言程序設計試題試題與答案_第2頁
C.語言程序設計試題試題與答案_第3頁
C.語言程序設計試題試題與答案_第4頁
C.語言程序設計試題試題與答案_第5頁
已閱讀5頁,還剩62頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言程序設計試卷,c++語言程序設計試題及答案一、單項選擇題(每題1分,共20分)C語言規定:在一個源程序中, main函數的位置(C)。必須在最開始必須在系統調用的庫函數的后面可以任意必須在最后下面四個選項中,均是合法浮點數的選項是 (B)。+1e+15e-9.403e2-.6012e-4-8e5123e1.2e-.4+2e-1-e3.8e-45.e-0若a=-14,b=3,則條件表達式a<b?a:b+1的值為(A)。-14B.-13C.3D.4已知:intn,i=1,j=2; 執行語句n=ivj?i++:j++; 貝Ui和j的值是(c).1,2B.1,3C.2,2D.2,3為了判斷兩個字符串si和s2是否相等,應當使用(D)if(s1==s2)B.if(s1=s2)if(strcmp(s1,s2))if(strcmp(s1,s2)==0)以下正確的描述是(B)。函數的定義可以嵌套,但函數的調用不可以嵌套。函數的定義不可以嵌套,但函數的調用可以嵌套。函數的定義和函數的調用均不可以嵌套。函數的定義和函數的調用均可以嵌套。在C語言中,下面對函數不正確的描述是 (D)。當用數組名作形參時,形參數組值的改變可以使實參數組之值相應改變。允許函數遞歸調用。函數形參的作用范圍只是局限于所定義的函數內。子函數必須位于主函數之前。(A)如果在一個函數中的復合語句中定義了一個變量,則以下正確的說法是(A)該變量只在該復合語句中有效該變量在該函數中有效該變量在本程序范圍內均有效該變量為非法變量以下正確的函數形式是(D)。doublefun(intx,inty){z=x+y;returnz;}fun(intx,y){intz;returnz;}fun(x,y){intx,y;doublez;z=x+y;returnz;}doublefun(intx,inty){doublez;z=x+y;returnz;}以下程序的輸出結果是(B)。#include<stdio.h>#defineF(y)8.19-y#definePRINT(a)printf("%d",(int)(a))voidmain(void){intx=2;PRINT(x*F(3));}10B.13C.11D.報錯(C)以下程序中編譯和運行結果均正確的一個是(C)A.voidmain(void){union{intn;floatx;}comm={1};printf("%d",comm.n);}B.voidmain(void){union{intn;floatx;}comm={12.5};printf("%f",comm.x);}C.voidmain(void){union{floatx;intn;}comm={12.5}printf("%f",comm.x);}D.voidmain(void){union{intn;floatx;}comm=5;printf("%d",comm.n);}以下不合法的運算是(A)設有定義:nta=1,*p=&以下不合法的運算是(A)p++;B.a--;C.b++;D.c--;13.以下程序中調用scanf函數給變量a輸入數值的方法是錯誤的,其錯誤(8B)13.以下程序中調用main()int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}*p表示的是指針變量p的地址*p表示的是變量a的值,而不是變量a的地址*p表示的是指針變量p的值*p只能用來說明p是一個指針變量若numa、b和c都是int型變量,則執行表達式num=(a=4,b=16,c=32);后num的值為(C)。A.4B.16C.32D.52已有如下定義和輸入語句,若要求a1,a2,c1,c2的值捌血,20,A和B,當從第一列開始輸入數據時正確的數據輸入方式是(C),(注表示空格)intal,a2,charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A.10A_20_BB.10_A_20_BC.10A20BD.10A20_B若有說明:inta[10];則對a數組元素的正確引用是(C)。A.a[10]B.a[3.5]C.a[5-3]D.a[-1]在C語言中,一維數組的定義方式為類型說明數組名A)A.[整型常量表達式]B.[表達式][整型常量]D.[整型表達式]以下能對一維數組a進行正確初始化的語句是(C)ina[10]=(0,0.0,0,0);inta[1O]={};C.inta[] ={0};inta[10]={10*1};以下程序段(C)。x=-1;do{x=x*x;}while(!x);A.是死循環B.循環執行二次循環執行一次D.有語法錯誤以下關于do-while循環的不正確描述是(B)。do-while的循環體至少執行一次do-while循環由do開始,用while結束,在while(表達式)后面不能寫分號在do-while循環體中,一定要有能使 while后面表達式的值變為零("假")的操作do-while的循環體可以是復合語句二、是非判斷題(每題1分,共15分)C語言規定,標識符中的字母一般區分大、小寫。TTOC\o"1-5"\h\z2?控制臺標準輸入設備一般是指鍵盤。 T使用while和do-while循環時,循環變量初始化的操作應在循環語句之前處理。 T循環體中continue語句的作用是結束整個循環的執行。 F關系表達式的值是0或1。T若有說明:inta[3][4]={0} ,則只有元素a[0][0]可得到初值0。T字符串作為一維數組存放在內存中。 T字符數組中的一個元素存放一個字符 To字符數組中的最后一個字符必須是 '\0'。F形參為指針變量時,實參必須是數組名。 F用數組名作函數參數時傳遞的是數組的值。 F全局變量可以被任何一個函數中的任何一個表達式使用。 T一個函數可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數據。表達式i++與++i在任何場合功能完全相同。在賦值表達式中,賦值號左邊的變量和右邊的表達式之值的數據類型可以不相同。三、多項選擇題(每題1分,共5分)若要求在if后一對圓跨括號中表示a不等于0的關系,則不能正確表示這一關系的表達式為(ABC).TOC\o"1-5"\h\za<>0!aa=0aa!=0選出所有合法的常量(CEGIJ)。3e22.5-e-3-.1e-1'BASIC''\045'0fd0xfdaLe8J."\""以下關于函數原型說法錯誤的是: (ADFHI)對變量的定義”和“聲明”是一回事,對函數的“定義”和“聲明”也是一回事。在聲明函數原型時,允許只寫出參數的類型,而不必寫出參數的名稱。如果在定義函數時不指定函數類型,系統會隱含指定函數類型為 int型。調用一個函數時,函數名、實參個數、實參類型必須與函數原型一致。如果被調函數的定義出現在主調函數之前,可以不必加以聲明。所有的函數之間可以互相調用。在C語言中,所有函數都是平行的,一個函數不能從屬于另一個函數,即不能嵌套定義的。如果函數沒有返回值,在定義時可以省略函數類型。在C語言中,任何函數的定義都不允許為空。C語言規定,實參變量對形參變量的數據傳遞是“值傳遞”。請從下面關于指針的敘述中,選出5個正確的敘述。(ABDEH)指針即地址。指針須先賦值后使用。⑶當指針p指向數組a的首址后,由于p和a都能引用數組元素,所以這里 p和a是等價的int*p 表示定義了一個指向int類型數據的指針變量 p。數組的指針是指數組的起始地址。若有定義inta[4],*p=a,則p++后p指向數組a所占內存的第二個字節。使用指針變量作函數參數采取的是"值傳遞"的方式。相同類型的指針可以進行減法運算。指針變量和許多變量一樣可以進行四則運算。指針p指向數組元素a[2],若要其指向a[4],執行p=p*2即可。以下關于數組的敘述中,5個最確切的說法是:(BEGHI)在聲明一個數組變量時必須指定大小。必須用常量表達式來說明一個數組變量的大小。在對數組進行初始化時大括號中的數據個數必須和數組的大小相同。有變量定義inta[3]={0,1,2},b[3]; ,可以用b=a,使數組b的每個元素和a的每個元素相等。在C語言中,可以將字符串作為字符數組來處理。定義了字符數組charc[11];為了給它賦值,可以用c="china";。⑺如果有chars[15]={"lama\0student"};,貝Ustrlen(s)的值為6。C語言中,二維數組中元素排列的順序是:按行存放。在C語言中,不能對局部的數組變量進行初始化。在聲明時對數組進行進行初始化必須指定數組大小。四、程序運行結果題(每題4分,共20分)(4分)下面程序的運行結果是(①)。#include<stdio.h>voidmain(void){inti;chara[]="Time",b[]="Tom";for(i=0;a!='\0'&&b!='\0';i++)if(a==b)if(a>='a'&&a<='z')printf("%c",a-32);elseprintf("%c",a+32);elseprintf("*");}(4分)下面程序段的運行結果是(①)。i=1;s=3do{s+=i++;if(s%7==0)continue;else++i;}whlie(s<15);printf("%d",i);(4分)若運行時輸入:5999,則以下程序的運行結果(保留小數點后一位)是(①)voidmain(void){intx;floaty;scanf("%d",&x);if(x>=0&&xv=2999)y=18+0.12*x;if(x>=3000&&xv=5999)y=36+0.6*x;if(x>=6000&&xv=10000)y=54+0.3*x;printf("%6.1f",y);}(4分)以下程序的運行結果是(①)。voidmain(void){inta=1,k;for(k=0;k<3;k++)printf("%4d",f1(a))}intfl(intx){staticintz=3,y=0;y++;z++;return(x+y+z);}(4分)以下程序的功能是計算函數 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y) 的值,請選擇填空。#include<stdio,h>#include<math.h>floatfun1(float,float);voidmain(void){floatx,y,z,sum;scanf("%f%f%",&x,&y,&z);sum=fun1(①)+fun1(②);printf("sum=%f\n",sum);}floatfun1(floata,floatb){floatnum;num=a/b;returnnum;}五、程序填空題(每題2分,共20分)下面程序的功能是用公式 :nXn/6=1/(1X1)+1/(2X2)+1/(3X3)+……求n的近似值,直到最后一項的值小于 10e-6為止。#include<stdio.h>#include<math.h>voidmain(void){longi=1;①pi=0;while(i*i<=10e+6){pi= ②;i++;}pi=sqrt(6.0*pi);printf("pi=%10.6f\n",pi);}下面程序的功能是把以下給定的字符按其矩陣格式讀入數組 str1中,并輸出行列號之和是3的數組元素。voidmain(void){charstr1[4][3]={'A','b',C,'d','E','f7G','h',T,'j','K','i'};intx,y,z;for(x=0;x<4;x++)for(y=0;①;y++){z=x+y;if(②)printf("%c\n",str1[x][y]);}}以下程序的功能是用遞歸方法計算學生的年齡,已知第一位學生年齡最小,為 10歲,其余學生一個比一個大 2歲,求第5位學生的年齡。遞歸公式如下:age(1)=1Oage(n)=age(n-1)+2(n>1)#include<stdio.h>intage(intn){intc;if(n==1)c=1O;elsec=①;returnc;}以下程序的功能是判斷輸入的年份是否是閏年。voidmain(void){intyear,yes;scanf("%d",&year);if(year%400==0)yes=1;elseif(①)yes=1;else②;if(yes)printf("%dis",year);elseprintf("%disnot",year);printf("aleapyear.\n");}以下程序實現:輸入三個整數,按從大到小的順序進行輸出。voidmain(void){intx,y,z,c;scanf("%d%d%d",&x,&y,&z);if(①){c=y;y=z;z=c;}if(②){c=x;x=z;z=c;}if(③){c=x;x=y;y=c;}printf("%d,%d,%d",x,y,z);}六、填空題(每題1分,共20分)在C語言中,一個float型數據在內存中所占的字節數為 (①)個字節;一個double型數據在內存中所占的字節數為(②)個字節。一、單項選擇題.下面正確的字符常量是:“c”B)‘’’C)‘WD)‘’.下列字符串中不能作為 C++標識符使用的是:A)WHILEB)userC)_1varD)9stars.執行語句序列的輸出結果是 。inti=O;while(i<25)i+=3;coutvvi;A)24B)25C)27D)28.下列符號中可以用作 C++標識符的是 。A)radiusB)foo?barC)elseD)3room.若a是int類型變量,則表達式a=25/3%3的值是:A)3B)2C)1D)0.以下敘述中不正確的是:在不同的函數中可以使用相同名字的變量函數中的形參是局部變量在一個函數內部定義的變量只在本函數范圍內有效在一個函數內部定義的變量在所有函數內部有效.變量的引用,其含義是指該變量的:A.值B.類型C.別名D.地址.已知定義:chars[1O];則下面不表示s[1]的地址的是:As+1B.*(s+1)C.&s[O]+1D.&s[1].通常拷貝構造函數的參數是:A.對象B.對象的成員C.對象的引用D.對象的指針10.派生類對象的構造順序是先調用:A.派生類的構造函數 B.基類的構造函數C內嵌對象的構造函數D.友元類的構造函數二、 填空題1.動態多態是指在—(1) 時才確定使用哪個—(2)___函數的方式。2.友員不是類的成員,但必須在 —(3)—予以聲明,它具有存取類的—(4)—成員的特權。3.C++中class與struct的主要區別是在缺省訪問權限時, __(5)_的成員為私有的,而_(6)_的成員為公有的。.若有定義語句:inta=3,b=2;,則表達式a<b?a:b的值是___⑺ 。.表達式:26%3=___(8) ,32/5=___(9) 。6.類的成員包括__(10)_和—(11)—兩種,在面向對象的術語中,前者稱為屬性、后者稱為方法。其訪問權限有三種,由符號 _(12)_、__(13)—和_(14)_指定,其中具有__(15)_權限的成員只有類中的成員函數才能訪問、而具有 _(16)_權限的成員在任何函數中都可訪問。.對基類成員的初始化,必須在派生類構造函數的 (17)中進行。.C++源程序文件的擴展名是(18),頭文件的擴展名是(19)o.若n為整型,則表達式n=(float)2/3的值是(20)。三、 寫出程序的運行結果.寫出程序運行結果include<iostream.h>#include<string.h>classCRect{private:charcolor[10];intleft;inttop;intlength;intwidth;public:CRect();CRect(char*c,intt,intlef,intlen,intwid);voidSetColor(char*c);voidSetSize(intl=100,intw=100);voidMove(intt,intl);voidDraw();};CRect::CRect(){strcpy(color,"Black");top=0;left=0;length=O;width=O;}CRect::CRect(char*c,intt,intlef,intlen,intwid){strcpy(color,c);top=t;left=lef;length=len;width=wid;}voidCRect::SetColor(char*c){strcpy(color,c);}voidCRect::SetSize(intl,intw){length=l;width=w;}voidCRect::Move(intt,intl){top=t;left=l;}voidCRect::Draw(){coutvv"矩形左上角坐標為("vvleft<v","vvtopvv")"vvendl;coutvv"矩形長和寬分別為"vvlengthvv","vvwidthvvendl;coutvv"矩形的顏色是"vvcolorvvendl;}voidmain(){CRectr;r.SetColor("Red");r.Move(10,20);r.SetSize(100,200);r.Draw();r.Move(50,50);r.SetColor("Blue");r.Draw();}.寫出程序運行結果#include<iostream.h>classA{intx,y;public:A(){x=0;y=0;}A(inta,intb){x=a;y=b;}~A(){if(x==y)cout<v"x=y"vvendl;elsecout<v"x!=y"vvendl;}voidDisplay(){coutvv"x="v<xvv",y="vvyvvendl;}};voidmain(){Aa1,a2(2,3);a1.Display();a2.Display();}.寫出程序運行結果#include<iostream.h>classA{private:intn;public:A(inti){n=i;}operator++(){n++;}operator++(int){n+=2;}voidDisplay(){coutvv"n="v<nv<endl;}};voidmain(){Aa(2),b(2);a++;++b;Display();Display();}.寫出程序運行結果#include<iostream.h>intfuncl(intn);intfunc2(intn);voidmain(){intsum;sum=func2(5);coutvvsumvvendl;}intfuncl(intn){if(n==1)returnl;elsereturnn*func1(n-1);}intfunc2(intn){ints=0;for(inti=1;i<=n;i++)s+=func1(i);returns;}四、編程(根據要求填上程序缺少的部分)1.完成如下的程序,使得輸出為:1234#include<iostream.h>#include<math.h>classA{private: ⑴ protected: (2) public:A(inta,intb,intc){X=a;Y=b;Z=c;}intGetX(){returnX;}intGetY(){returnY;}intGetZ(){returnZ;}};classB (3) {private:intK;public:B(inta,intb,intc,intd) (4) {K=d;}voidShow(){coutv<GetX()vvGetY()vvZvvKvvendl;}};voidmain(){Bb(1,2,3,4);b.Show();}.在主函數中定義有30個元素的數組s,函數func1()的功能是將2、4、6、?、56、58、60分別賦給數組元素s[0]、s[1]、s[2]、?、s[27]、s[28]、s[29]。函數func2()的功能是按順序將數組的每5個元素求平均值并存入數組w中(即將s[0]、s[1]、s[2]、s[3]、s[4]的平均值存入w[0]中,s[5]、s[6]、s[7]、s[8]、s[9]的平均值存入w[1]中,?)。請填空使程序正確運行。#include<iostream.h>#include<math.h>voidfunc1(doubles[]){inti,k;for(k=2,i=0;i<30;i++){s[i]=k; (5) }}voidfunc2(doubles[],doublew[]){doublesum;inti,k;for(k=0,i=0,sum=0;i<30;i++){ (6) if((i+1)%5==0){w[k]=sum/5; (7) k++;}}}voidmain(){doubles[30],w[6];func1(s);func2(s,w);}C++程序設計試題及答案(一)答案一、 單項選擇題1.CTOC\o"1-5"\h\zDAABDDACb二、 填空題1.執行,成員類中,私有class,struct20.221.2,6數據成員,函數成員public,private,protect,私有,公共42..cpp.h43.0.5三、 寫出程序的運行結果1.矩形左上角坐標為 50,50矩形長和寬分別為100,100矩形的顏色是Bluex=0,y=0x=2,y=3x=yx!=yn=3n=45四、 編程(根據要求填上程序缺少的部分)intX,Y;intZ;publicA:A(a,b,c)k+=2;sum+=s[i];sum=0;C++程序設計試題及答案(二)一、填空題(20分,每空1分)當使用關鍵字—(1)_作為函數返回類型時,該函數不返回任何值。2.在類中必須聲明成員函數的_(2)__,成員函數的_(3)_部分可以寫在類外.如果需要在被調函數運行期間,改變主調函數中實參變量的值,貝U函數的形參應該是 _(4)類型或__(5)—類型.當一個變量被聲明為另一個變量的引用時,此變量就成為被引用變量的 _(6)_。此時,對其中一個變量值的修改, __(7)_(會/不會)影響到另一個變量的值。.友員不是類的成員,但必須在 —(8)_予以聲明,它具有存取類的_(9)_成員的特權。.如果需要在被調函數運行期間,改變主調函數中實參變量的值,則函數的形參應該是(10)_類型或—(11)_類型.友員不是類的成員,但必須在 —(12)_予以聲明,它具有存取類的_(13)_成員的特權。.如果需要在被調函數運行期間,改變主調函數中實參變量的值,則函數的形參應該是(14)_類型或___(15)_類型下面程序將字符數組a復制到字符數組b中main(){chara[]="lamaboy.",b[20];inti;for(i=_(16)_;a[i]!='\0';i++){—(17)—;}—(18)—;}10.下面程序的功能是計算1-3+5-7+?-99+101的值存在中,請填空#include<stdio.h>main()inti,t=1,s=O;for(i=1;iv=101;_(19)_){s=s+i*t;t=_(20)__;}}二、判斷以下說法的正確性,正確的劃",錯誤的劃x( 10分,每個題目2分)如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個函數自動繼承基類中虛函數的特性。在C++中,關鍵字class與struct具有完全相同的作用。若有定義:doublex[3][5];則x數組行下標的上限是3,下限是1。.說明函數原型時不需要指明每個參數的類型,只需要說明每個參數的名字就可以了。.如果在一個程序塊中有兩個變量具有相同的名字,并且都有效,只是它們的作用域不同,則優先訪問作用域較大的那個變量。三、單項選擇題(30分,每題2分).程序段inta,b;a=5;b=a++;cout?b;的輸出應為:4B)5C)6D)7.程序段inti,a;for(i=0;iv=10;i++)a=i;coutvvi;的輸出應為:0B)9C)10D)113.下列有關函數重載的敘述中,錯誤的是 A)函數重載就是用相同的函數名定義多個函數B) 重載函數的參數列表必須不同C) 重載函數的返回值類型必須不同D) 重載函數的參數可以帶有默認值int*p1,*p2,a[10];p1=a;p2=&a[5];則p2-p1的值為:A)無法確定B)10C)5D)125.變量的指針,其含義是指該變量的:A)值B)地址C)名D)一個標志派生類的成員函數不能訪問基類的 。A)公有成員和保護成員 B)公有成員C)私有成員D)保護成員7.數字字符0的ASCII值為48,若有以下程序voidmain(){chara='1',b='2';cout<<b++vv”,”;coutvvb-avvendl;}程序運行后的輸出結果是:3,2B)50,2C)2,2D)2,508.有以下程序voidmain(){inta[3][3],*p,i;P=&a[0][0];for(i=0;i<9;i++)P[i]=i;for(i=0;i<3;i++)cout<<a[1][i];}程序運行后的輸出結果是:A)012B)123C)234D)3459.以下敘述中錯誤的是:對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出數組名代表的是數組所占存儲區的首地址,其值不可改變C程序執行中,數組元素的下標越界時,系統給出“下標越界”的出錯信息D可以通過賦初值的方式確定數組元素的個數有以下程序voidmain(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++).亠 avcoutvv*pvv, ;}程序運行后的輸出結果是:A)1,2,3,4,5,6,7,8,9,0,B )2,3,4,5,6,7,8,9,10,1,C0,1,2,3,4,5,6,7,8,9,D )1,1,1,1,1,1,1,1,1,1,有以下程序voidmain(){intc=35;intb=c&c;cout?b;}程序運行后的輸出結果是:A0B)70C)35D)1執行下列程序段后,正確的結果是:inti=0,s=1;while(i<3){s+=i;i++;}cout?s;A)5B)6C)4D)3執行下列程序段后,正確的結果是:chara[7]=”abcdef”;charb[4]=”ABC;strcpy(a,b);cout<<a[5];A)eB)fC)OD)無輸出下列帶缺省值參數的函數說明中,正確的說明是intFun(intx,inty=2,intz=3);intFun(intx=1,inty,intz=3);intFun(intx,inty=2,intz);intFun(intx=1,inty,intz);拷貝構造函數的作用是:進行數據類型的轉換用對象調用成員函數用對象初始化對象用一般類型的數據初始化對象四、寫出程序的運行結果(20分,每題10分)1.函數sub的功能是什么?寫出運行結果。1.函數sub的功能是什么?寫出運行結果。#include<iostream.h>longsub(intnum){inti;longsubsum=1;for(i=1;i<=num;i++)subsum*=i;return(subsum);}voidmain(){inti;longsum=0;for(i=1;i<=5;i++){sum+=sub(i);cout<vivv","vvsumvvendl;}}2.寫出程序運行結果#includeviostream.h>classBase{public:voidWhoAml(){coutvv"ClassBass"vvendl;}virtualvoidWho(){cout<v"ClassBass"v<endl;}};classDerived:publicBase{public:voidWhoAml(){coutvv"ClassDerived"vvendl;}voidWho(){coutvv"ClassDerived"vvendl;}};voidmain(){Base*p;Baseb;Derivedd;p=&b;p->WhoAml();p->Who();p=&d;p->WhoAmI();p->Who();}五、編程(根據要求填上程序缺少的部分)( 20分,每題10分)函數Convert()將一個數字字符串轉換為對應的整數,請填空,實現函數的功能#include<iostream.h>intConvert(char*str);voidmain(){chars[10]="12345";intn=Convert(s);coutvvnvvendl;}intConvert(char*str){intnum=0,digit;for(inti=0;(1);i++){digit=(2);num=num*10+digit;}returnnum;}函數Convert()將一個數字字符串轉換為對應的整數,請填空,實現函數的功能#include<iostream.h>intConvert(char*str);voidmain(){chars[10]="12345";intn=Convert(s);coutvvnvvendl;}intConvert(char*str){intnum=O,digit;for(inti=0;(3);i++){digit=(4);num=num*10+digit;}returnnum;}C++程序設計試題及答案(二)一、填空題1.void函數頭,函數體引用,指針別名,會類中,私有引用,指針類中,私有引用,指針a[i]=b[i]a[i]='\0'54.i=i+2二、判斷以下說法的正確性.VTOC\o"1-5"\h\zXXXX三、單項選擇題1.CTOC\o"1-5"\h\zBA.D.BDBADBDBACD四、寫出程序的運行結果30.從1連乘到num5,1532.ClassBassClassBassClassDerivedClassDerived五、編程(根據要求填上程序缺少的部分)1.(1)i<strlen(str)(2)str[i]2.⑴i<10(2)s[i]C++程序設計試題及答案(三)時間:2011-07-1718:54來源:未知作者:admin點擊:2840次標簽:C++程序設計試題及答案(三)學號:專業:層次:姓名:題號一二三四五六七八九十總分得分注意:所有答案都要寫在答題卡上一、單項選擇題 1.設有數組定義:chararray[]=China;則數組array所占的空間為:A)4個字節B)5個字節C)6個C++程序設計試題及答案(三)學號:專業:層次:姓名:題號四五六七八九十總分得分注意:所有答案都要寫在答題卡上一、單項選擇題.設有數組定義:chararray[]=”China”;則數組array所占的空間為:4個字節B)5個字節C)6個字節D)7個字節.下列選項中,與實現運行時多態性無關的是 。重載函數B)虛函數C)指針D)引用.若a是int類型變量,則計算表達式a=1000%999的值是:A)0B)1C)2D)3.下面程序段中,for循環的執行次數是:inti=1O;for(i=1;i<10;i++)coutvv ;A)9B)10C)8D)7有以下程序voidmain(){inta[3][3],*p,i;P=&a[0][0];for(i=0;i<9;i++)P[i]=i;for(i=0;i<3;i++)cout<<a[1][i];}程序運行后的輸出結果是:A)012B)123C)234D)345.以下敘述中錯誤的是:對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出數組名代表的是數組所占存儲區的首地址,其值不可改變程?蛑蔥兄校??樵?氐南鹵暝澆縭保?低掣??ldquo;下標越界”的出錯信息D可以通過賦初值的方式確定數組元素的個數.有以下程序voidmain(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++).亠 avcoutvv*pvv, ;}程序運行后的輸出結果是:A)1,2,3,4,5,6,7,8,9,0,B )2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9,D )1,1,1,1,1,1,1,1,1,1,.有如下函數模板定義:template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列對func()的調用中,錯誤的是A)func(3,5);B)func(3.0,5.5)C)func(3,5.5)D)func((double)3,5.5).有如下類聲明:classA{intx;public:A(intn){x=n;}};classB:publicA{inty;public:B(inta,intb);};下列函數中哪一個是正確的構造函數B::B(inta,intb):x(a),y(b){}B::B(inta,intb):A(a),y(b){}B::B(inta,intb):x(a),B(b){}B::B(inta,intb):A(a),B(b){}10.類的析構函數的作用是A)對象的初始化)刪除對象時的清理任與一般成員函數一樣D)類的初始化二、填空題.若要訪問指針變量所指向的數據,應使用表達式__(1)__。.面向對象程序設計中的多態性包括靜態多態性和動 態多態性,有者由(2)—機制支持,而后者則由—(3)—機制支持。.弓I入虛基類的目的是為了解決多重繼承中的 (4)—和—(5)—問題4、有一種只在循環語句或switch語句中使用的流程控制語句,表示該語句的關鍵是—(6)_。.下面程序的功能是計算1-3+5-7+?-99+101的值存在s中,請填空。#include<stdio.h>main(){inti,t=1,s=0;for(i=1;iv=101;_(7)_){s=s+i*t;t=_(8)_;}}.在C++語言中,邏輯假用 (9) 表示。.類的成員包括—(10)—和—(11)—兩種,在面向對象的術語中,前者稱為屬性、后者稱為方法。其訪問權限有三種,由符號 —(12)___、__(13)—和__(14)—指定,其中具有—(15)—權限的成員只有類中的成員函數才能訪問、而具有—(16)—權限的成員在任何函數中都可訪問。.構造函數是一個特殊的成員函數,其特殊性表現在創建對象時會 —(17)—。構造函數名必須與__(18)__相同。.函數重載是指一組函數具有相同的 __(19)—,在函數調用時,編譯程序根據__(20)—個數和類型確定使用那一個版本。三、判斷以下說法的正確性,正確的劃",錯誤的劃x.析構函數是一個函數體為空的成員函數。.函數重載可以實現動態多態,虛函數可以實現靜態多態。.若有定義:doublex[3][5];則x數組列下標的上限是5,下限是1。.不能在類的構造函數中對其靜態數據成員進行初始化。.在C++中,可以使用關鍵字struct定義類。用class定義的類中,默認的訪問權限是私有的。.一個類中必須要有公有成員和私有成員。.如果在一個程序塊中有兩個變量具有相同的名字,并且都有效,只是它們的作用域不同,則優先訪問作用域較小的那個變量。.如果一個成員函數只訪問一個類的靜態數據成員,則可將該成員函數說明為靜態成員函數。10.構造函數不能重載。四、寫出程序的運行結果1.寫出程序運行結果#include<iostream.h>classPerson{public:Person。{cout<v"ConstructPerson"vvendl;}?Person。{cout<v"DestructPerson"v<endl;}};classStudent:publicPerson{public:Student(){coutvv"ConstructStudent"vvendl;}?Student。{cout<v"DestructStudent"v<endl;}};classTeacher:publicPerson{pub

溫馨提示

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

評論

0/150

提交評論