版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷18(共9套)(共27題)國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj1下的工程proj1,此工程中含有一個(gè)源程序文件proj1.cpp。其中位于每個(gè)注釋“//ERROR****found****”之后的一行語(yǔ)句存在錯(cuò)誤。請(qǐng)改正這些錯(cuò)誤,使程序的輸出結(jié)果為:Thisobjectisno.1注意:只修改注釋“//ERROR****found****”的下一行語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。1//proj1.cpp2#include<20Stream>3usingnamespacestd;4classMyClasS5{6public:7MyClass():count(0){cout<<"Thisobjectis";)8//ERROR********found********9voidInc()const10{cout<<"no."<<++count<標(biāo)準(zhǔn)答案:(1)voidInc()(2)intcount;(3)obj->Inc();知識(shí)點(diǎn)解析:(1)考查考生對(duì)const的掌握,在Inc函數(shù)的函數(shù)體{cout<<"no."<<++count<”,而不能使用“.”。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj2下的工程proj2,其中定義了Component類(lèi)、Composite類(lèi)和Leaf類(lèi)。Component是抽象基類(lèi),Composite和Leaf是Compo-nent的公有派生類(lèi)。請(qǐng)?jiān)跈M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類(lèi)定義。此程序的正確輸出結(jié)果應(yīng)為:LeafNode注意:只能在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。l#inclUde2usingnamespacestd;34classComponent{5public:6//聲明純虛函數(shù)print()7//********found********89},1011classComposite:publicComponent{12public:13//**********found**********14voidsetChild(______)15{16m_chiid=chiid;17}18virtualvoidprint()const19{20m_child->print();21}22private:23Component*m_child;24};2526classLeaf:publicComponent{27public:28virtualvoidprint()const29{30//**********found**********31_______32}33};3435intmain()36{37Leafnode;38Compositecomp;39comp.setChild(&node);40Component*p=&comp;41p->print();42return0;43}標(biāo)準(zhǔn)答案:(1)virtualvoidprint()const=0;(2)Component*child(3)cout<<"Leaf.Node"<知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)純虛函數(shù)的掌握,題目要求聲明純虛函數(shù)print()。在其派生類(lèi)中print()函數(shù)的定義為virtualwildprint()const,由此可知純虛函數(shù)為virtualvoidprint()const=0。(2)主要考查考生對(duì)成員函數(shù)的掌握,題目要求填寫(xiě)函數(shù)voidsetChild的形參,由setChild的函數(shù)體可知形參為child,再看類(lèi)的私有成員m_child的定義:Component*m_child;。由此可知形參為:Component*child。(3)主要考查考生對(duì)純虛函數(shù)的掌握,先看主函數(shù)的程序:1Leafnode;2Compositecomp;3comp.setChiid(&node);4Component*p=?5p->print();第一條和第二條語(yǔ)句都是定義語(yǔ)句,第三條語(yǔ)句調(diào)用函數(shù)setChild,由setChild函數(shù)的定義可知,comp中的m_child等于node,第四條語(yǔ)句定義了個(gè)指針P指向comp的地址,也就是node,最后一條語(yǔ)句通過(guò)指針P調(diào)用函數(shù)print,也就是調(diào)用類(lèi)Leaf的函數(shù)print,因?yàn)轭}目要求輸出:LeafNode,因此在這里添加語(yǔ)句:cout<<"LeafNode"<三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)使用菜單命令或直接用VC6打開(kāi)考生文件夾下的工程prj03。請(qǐng)完善下列程序,實(shí)現(xiàn)一個(gè)Number類(lèi)。Add函數(shù)計(jì)算2個(gè)Number類(lèi)對(duì)象之和,并將和作為Number對(duì)象返回。這2個(gè)Number對(duì)象中各包含一個(gè)用字符串表示的10進(jìn)制正整數(shù),均不超過(guò)int的表示范圍。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),使用這組數(shù)據(jù)進(jìn)行測(cè)試時(shí)程序的輸出應(yīng)該是:100注意:只需在//********333********和//********666********之間填人所編寫(xiě)的若干語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。1#include2#include3#include4#include"proj3.h"5usingnamespacestd;6Number::Number(char*n){7num=newchar[strlen(n)+1];8strcpy(num,n);9}i0Number::Number(Number&n){11num=newchar[strlen(n.num)+1];12strcpy(num,n.num);13}14Number::Number(intn){15char*tmp=newchar[30];16itoa(n,tmp,10);//函數(shù)itoa的功能是將n轉(zhuǎn)換為字符串,存放于tmp指向的數(shù)組中17num=newchar[strlen(tmp)+1];18strcpy(num,tmp);19}20Number::~Number(){21if(num)22delete[]num;23}24NumberNumber::Add(Numbern){25//****333****262728//*******666*******29}30intmain(){31Numbernuml("32");32Numbernum2("68");33Number&num3=numl.Add(nurn2);34cout<標(biāo)準(zhǔn)答案:1inti=atoi(hum);2intj=atoi(n.GetNum());3retumNumt)er(i+i);知識(shí)點(diǎn)解析:主要考查考生對(duì)庫(kù)函數(shù)、對(duì)象成員和構(gòu)造函數(shù)使用的掌握情況,函數(shù)Add的功能是將函數(shù)參數(shù)n與自身相加,返回相加后的Number對(duì)象,Number類(lèi)中成員字符串num是用來(lái)表示十進(jìn)制的整數(shù),所以將兩個(gè)Number相加需要首先將字符串num轉(zhuǎn)化為整數(shù),這里需要使用庫(kù)函數(shù)atoi,將調(diào)用對(duì)象的num和對(duì)象n的num轉(zhuǎn)化為十進(jìn)制整數(shù)i,j,在轉(zhuǎn)化對(duì)象n的num成員時(shí),由于num是Number類(lèi)的私有成員,所以不能直接使用,而應(yīng)該通過(guò)成員函數(shù)GetNum()返回num;得到十進(jìn)制數(shù)i、j后,再用i與j的和構(gòu)造成Number對(duì)象,所以需要使用Number的參數(shù)為整數(shù)的構(gòu)造函數(shù),即Number(inti),構(gòu)造Number對(duì)象后返回。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正錯(cuò)誤,使得程序正確執(zhí)行,并且輸出以下語(yǔ)句:TestClassl:0TestClass2注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//********error********的下面。1#include2structTestClassl3{4TestClassl(inti=0)5{6mi=i;7}8voidprint()9{10cout<<"TestClassl:"<標(biāo)準(zhǔn)答案:(1)public:(2)TestClasslobj1(0);或TestClasslobj1;(3)TestClass2obj2;知識(shí)點(diǎn)解析:程序要求輸出TestClass1:0和TestClass2。從已定源程序的main主函數(shù)開(kāi)始入手,可以看出程序首先定義TestClass1和TestClass2類(lèi)型的變量,然后通過(guò)調(diào)用其中的print成員函數(shù)實(shí)現(xiàn)輸出結(jié)果。[解題思路](1)第1個(gè)標(biāo)識(shí)下的“private:~TestClass2()”是析構(gòu)函數(shù),它不是私有的,所以這里應(yīng)該為“刪除private:或修改為public:”。(2)第2個(gè)標(biāo)識(shí)下的“TestClasslobjl0;”語(yǔ)句是定義一個(gè)TestClass1類(lèi)型的對(duì)象objl(),根據(jù)類(lèi)TestClassl構(gòu)造函數(shù)的定義“TestClassl(inti=0)”,知道存在整型參數(shù),應(yīng)該補(bǔ)充參數(shù),或者只是先定義一個(gè)對(duì)象名,然后在使用時(shí)補(bǔ)充參數(shù),即修改為“TestClasslobjl(0);或TestClasslobjl;”。(3)同理第3個(gè)標(biāo)識(shí)下的“TestClass2obj20;”語(yǔ)句修改為“TestClass2obj2;”。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(char*sl,char*s2),此函數(shù)的功能是計(jì)算s1中出現(xiàn)s2的個(gè)數(shù),當(dāng)不出現(xiàn)時(shí),則返回0。如:sl為"1112223333aaaaeeffd"s2為"11"則返回1s2為"aa"則返回2注意:請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。1#include2//注意只能使用int類(lèi)型,不能類(lèi)型轉(zhuǎn)換3intfun(char*S1,char*S2)4{56}7voidmain()8{9charS1[1024];10charS2[256];11cout<<"pleaseinputastring:"<標(biāo)準(zhǔn)答案:1intSize:0;//初始化字符串統(tǒng)計(jì)變量個(gè)數(shù)2intS11en;3intS21en;4for(sllen=0;sl[sllen]!=0;sllen++);//第一個(gè)字符串循環(huán)5for(s21en=0;s2[s21en]!=0;s21en++);//第二個(gè)字符串循環(huán)6for(inti=0;i知識(shí)點(diǎn)解析:(1)該程序功能是計(jì)算s1中出現(xiàn)s2的個(gè)數(shù)。它的解題思路是兩個(gè)字符串逐個(gè)比較其中的字符,從而統(tǒng)計(jì)符合的字符串個(gè)數(shù)。(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,核心函數(shù)intfun(char*sl,char*s2)中的s1,s2參數(shù)為輸入的字符串。[解題思路](1)size變量用來(lái)存放s1中出現(xiàn)s2的個(gè)數(shù),初始值賦為0。(2)然后利用for循環(huán)對(duì)s2中的每一個(gè)字符與sl中的字符進(jìn)行比較。(3)如果循環(huán)中有符合條件的字符串,就將變量size個(gè)數(shù)加l。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。完成以下功能:(1)定義類(lèi)的私有變量a、b,請(qǐng)?jiān)谧⑨專(zhuān)?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成類(lèi)的構(gòu)造函數(shù),對(duì)變量a、b賦值,缺省兩個(gè)變量值為1,在注釋?zhuān)?*******2********之后添加語(yǔ)句。(3)完成打印函數(shù)display(),打印出“a*b=c”格式的一個(gè)乘法算式,在注釋?zhuān)?*******3********之后添加語(yǔ)句。(4)補(bǔ)充主函數(shù),使得打印9×9的乘法口訣。在注釋?zhuān)?*******4********后添加語(yǔ)句。注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。1#include2classCMyFormula3{4private:5//********1********67public:8//********2********910{11this->a=a;12this->b=b;13}14voidset(intx,inty)15{16a=x;17b=y;18}19voiddisplay()20{21//********3********2223}24};25intmain()26{27CMyFormulaformular(1,1);28for(inti-1;i<:9;i++)29{30//********4********31for(intj=1;j++)32{33formular.set(J,i);34formular.display();35cout<<"";36}37cout<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:inta,b;(2)添加語(yǔ)句:CMyFormula(inta=1,intb=1)(3)添加語(yǔ)句:cout<知識(shí)點(diǎn)解析:程序當(dāng)中定義了類(lèi)CMyFormula,含有a和b兩個(gè)成員變量,一個(gè)構(gòu)造函數(shù),改變成員變量a和b的值得set(intx,inty)函數(shù),打印a和b的乘積的display()函數(shù)。在主函數(shù)中定義了一個(gè)CMyFormula對(duì)象,然后不斷改變?cè)搶?duì)象的a和b的值,然后調(diào)用display()顯示,如此完成打印9×9的乘法口訣。[解題思路](1)第1個(gè)標(biāo)識(shí)下完成CMyFormula類(lèi)的私有變量a、b的定義,從函數(shù)set(intx,inty)的參數(shù)類(lèi)型可以看出a和b均為int型變量,故第1個(gè)標(biāo)識(shí)下應(yīng)添加“inta.b;”。(2)第2個(gè)標(biāo)識(shí)下添加構(gòu)造函數(shù)聲明,完成對(duì)變量a、b賦值,該構(gòu)造有兩個(gè)參數(shù)a和b,且a和b缺省值為1,因此第2個(gè)標(biāo)識(shí)下應(yīng)添加“CMyFormula(inta=1,intb=1)”。(3)打印函數(shù)display()在屏幕上打印出“a*b=c”格式的一個(gè)乘法算式,因此第3個(gè)標(biāo)識(shí)下應(yīng)添加“cout<國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:利用指針數(shù)組對(duì)形參ss所指字符串?dāng)?shù)組中的字符串按由長(zhǎng)到短的順序排序,并輸出排序結(jié)果。ss所指字符串?dāng)?shù)組中共有N個(gè)字符串,且串長(zhǎng)小于M。請(qǐng)?jiān)诔绦虻闹欣ㄌ?hào)處填入正確的內(nèi)容并把中括號(hào)刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN5#def2neM8voidfun(char(*ss)[M]){char*ps[N],*tp;inti,j,k;for(i=0;i標(biāo)準(zhǔn)答案:(1)i(2)ps[j](3)tp知識(shí)點(diǎn)解析:本題是按字符串的長(zhǎng)短進(jìn)行排序。填空1:外循環(huán)每循環(huán)一次,k應(yīng)保存當(dāng)前的i值,所以應(yīng)填i。填空2:使用內(nèi)循環(huán)對(duì)i+1后面的字符串長(zhǎng)度進(jìn)行比較,所以應(yīng)填ps[j]。填空3:此處的作用是交換兩個(gè)變量的值,所以應(yīng)填tp。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤或在中括號(hào)處填上正確的內(nèi)容并把中括號(hào)刪除,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#include#include#defimeN80intfun(char*s,char*t){intn;char*p,*r;n=0;/*********found*********/*r=t;while(*s){p=s;while(*r){if(*r==*p}{r++;p++;}elsebreak;if(*r==’\0’)n++;}/*********found*********/1;S++;}returnn;}voidmain(){chara[N],b[N];intm;printf("\nPleaseenterstringa:");gets(a);printf("\nPleaseentersubstringb:");gets(b);m=fun(a,b);printf("\nTheresultis:m=%d\n",m);}標(biāo)準(zhǔn)答案:(1)r=t;(2)r=t;或r=&t[0];知識(shí)點(diǎn)解析:從字符串s中找出子字符串的方法是:從第一個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷,若s串的當(dāng)前字符等于t串的第一個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串t的末尾,則跳出循環(huán);若s串的字符與t串的字符不對(duì)應(yīng)相同,則繼續(xù)對(duì)s串的下一個(gè)字符進(jìn)行處理。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫(xiě)函數(shù)fun,該函數(shù)的功能是:刪除一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如,若一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include#defineN80intfun(inta[],intn){}voidmain(){inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;printf("Tneoriginaldata:\n");for(i=0;i標(biāo)準(zhǔn)答案:intfun(inta[],intn){inti,j=1;for(i=1;i知識(shí)點(diǎn)解析:該程序的流程是:定義變量i和j,其中j用于控制刪除后剩下的數(shù)在數(shù)組中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if語(yǔ)句中的條件是a[j—1]!=a[i],其中a[j一1]就是新數(shù)組中的最后一個(gè)元素,若條件成立,則表示出現(xiàn)了不同的值,所以a[i]要保留到新數(shù)組中。注意本題中i和j的初值都要從1開(kāi)始,該算法只能用于數(shù)組已排序的題目中。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:TestClass2TestClass3注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在∥********error********的下面。#includeClassTestClass1{public:virtualVoidfun()=0;};classTestClass2:publicTestClassl{∥********error********intfun(){usingnamespacestd;cout<<“TestClass2”<fun();obj2.fun();return;}標(biāo)準(zhǔn)答案:(1)voidfun()(2)添加語(yǔ)句:public:(3)std::cout<<“TestClass3”<知識(shí)點(diǎn)解析:本題程序中的功能為輸出字符串TestClass2和TestClass3。從已定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)定義類(lèi)的對(duì)象,利用類(lèi)中定義的成員函數(shù)完成題目中要求的輸出。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.epp。閱讀下列函數(shù)說(shuō)明和代碼。函數(shù)sort(int&m,int&n,mt&1)實(shí)現(xiàn)將三個(gè)整數(shù)m、n、1由大到小輸出。m最大,1最小。程序分析:程序?qū)崿F(xiàn)時(shí),可以把最大的數(shù)放到m上,先將m與n進(jìn)行比較,如果mvoidsort(int&m,int&n,int&1){}intmain(){int×=9;inty=13;intz=一3;sort(x,y,z);cout<標(biāo)準(zhǔn)答案:Intt;if(m知識(shí)點(diǎn)解析:sort函數(shù)實(shí)現(xiàn)3個(gè)參數(shù)的從大到小的排序,可以采用很多方法來(lái)排序,比如選擇法排序、冒泡法排序等,這里要求采用比較的方法來(lái)實(shí)現(xiàn)排序,由于需要排序的數(shù)據(jù)較少,只有3個(gè),逐個(gè)比較就可以找到最大最值小進(jìn)行排序。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示日期的類(lèi)Date,但類(lèi)Date的定義并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。(1)定義私有成員變量year、month、day,分別表示年、月、曰,類(lèi)型為int。請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成構(gòu)造函數(shù),分別給year、month、day賦值,請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成重載符號(hào)“+=”的定義,請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成print()打印函數(shù),如2008年8月8日到屏幕和文件modi3.txt格式相同,請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:僅在函數(shù)指定位置添加語(yǔ)句,請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容。#include#include#include#includeusingnamespacestd;voidWriteFile(intc){0fstreamout1;out1.open(“modi3.txt”,iosbase::app);out1<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:intyear,month,day;(2)添加語(yǔ)句:year=y;month=m;day=d;(3)添加語(yǔ)句:Date&operator+=(intm)(4)添加語(yǔ)句:cout<知識(shí)點(diǎn)解析:在VC環(huán)境下打開(kāi)程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已給定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)調(diào)用類(lèi)Date和函數(shù)print實(shí)現(xiàn)各種輸出操作。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為:150200注意:錯(cuò)誤的語(yǔ)句在∥********error********的下面,修改該語(yǔ)句即可。提示:定義Numberl為一個(gè)整型數(shù)據(jù)位長(zhǎng)的變量。#include∥********error********struct{∥********error********intNumberl:1;intNumber2;)MyStruct;voidmain(){MyStructmstr;mstr.Numberl:150;mstr.Number2=15;∥********error********int*ptr=&mstr.Numberl;cout<<*ptr<標(biāo)準(zhǔn)答案:(1)typedefstruct(2)intNumberl:32;或intNumber1;(3)int*ptr=(int*)&mstr;知識(shí)點(diǎn)解析:(1)第1標(biāo)識(shí)下是定義結(jié)構(gòu)體,結(jié)構(gòu)體定義的一般形式為:struct<結(jié)構(gòu)體名>{<成員列表>}<變量名列表>;程序當(dāng)中定義結(jié)構(gòu)體名放在后面,MyStruct為結(jié)構(gòu)體變量類(lèi)型,相當(dāng)于typedef為已有的類(lèi)型定義一個(gè)新的類(lèi)型,第1個(gè)標(biāo)識(shí)下應(yīng)改為“typedefstruct"。(2)第2標(biāo)識(shí)下是定義Numberl為一個(gè)整型數(shù)據(jù)變量,整型數(shù)據(jù)位數(shù)為32(4字節(jié)),因此第2個(gè)標(biāo)識(shí)下應(yīng)改成“intNumberl:32;”或“intNumberl:”。(3)ptr為整型數(shù)據(jù)指針,mstr為MyStruct類(lèi)型結(jié)構(gòu)變量,兩者類(lèi)型不一致應(yīng)該做強(qiáng)制類(lèi)型轉(zhuǎn)換,第3個(gè)標(biāo)識(shí)下應(yīng)改成“int*ptr=(int*)&mstr;”,表示將mstr的地址給ptr,ptr指向MyStruct的第一個(gè)域Numberl,Numberl也是整形,類(lèi)型一致,故可通過(guò)ptr指針來(lái)改變Numberl的值。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,完成空出部分程序。函數(shù)fun(hatN[4])的功能是用4個(gè)數(shù)字,組成互不相同且無(wú)重復(fù)數(shù)字的三位數(shù),并將滿足所有條件的數(shù)字輸出到屏幕,并且每輸出一個(gè)三位數(shù)字就換一行。程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、0。組成所有的排列后再去掉不滿足條件的排列。如果判定第一個(gè)數(shù)字是0則也去掉。#include<10Stream.h>voidfun(intN[4]){}intmain(){intN[4]={1,2,3,0};fun(N);return0;}標(biāo)準(zhǔn)答案:inti,j,k;for(i=0;i<4;i++)//百位循環(huán){for(j=0;j<4;j++)//十位循環(huán)for(k=0;k<4;k++)//個(gè)位循環(huán)(if(i!=j&&j!=k&&k!=i&&N[i]l=0)//當(dāng)三位數(shù)不同,并且百位不為0{COUt<知識(shí)點(diǎn)解析:(1)該程序功能是輸出百、十、個(gè)位都不相同的組合。它的解題思路,利用三層循環(huán),對(duì)百、十、個(gè)位數(shù)字是否相同進(jìn)行判斷。(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,核心函數(shù)voidfun(intN[4])中的N[4]參數(shù)為存放輸入的四位數(shù)字的數(shù)組。解題思路(1)利用三層循環(huán),對(duì)要三位數(shù)字是否相同進(jìn)行判斷。(2)如果三位數(shù)不同,并且百位不為0。那么依次輸出這三位數(shù),即為三位數(shù)組成的數(shù)字。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示學(xué)生學(xué)號(hào)的類(lèi)CStudentlD,但類(lèi)CStudentlD的定義并不完整。運(yùn)行結(jié)果為:學(xué)生的學(xué)號(hào)為:200805學(xué)生名為:李偉刪除學(xué)生學(xué)號(hào)為:200805請(qǐng)按要求完成下列操作,將類(lèi)CStudentlD的定義補(bǔ)充完成:(1)定義classCStudentlD類(lèi)的私有數(shù)據(jù)成員IDvalue表示學(xué)生的學(xué)號(hào),為long型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨尅?*******1********之后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成默認(rèn)構(gòu)造函數(shù)CStudentlD的定義,使CStudentlD對(duì)象的默認(rèn)值為:id=0,并把學(xué)生的學(xué)號(hào)賦給IDvalue,并輸出“賦給學(xué)生的學(xué)號(hào):”及學(xué)號(hào)。請(qǐng)?jiān)谧⑨尅?*******2********之后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成默認(rèn)析構(gòu)函數(shù)CStudentlD的定義,使CStudentlD析構(gòu)時(shí)輸出“刪除學(xué)號(hào):”及學(xué)號(hào)。請(qǐng)?jiān)谧⑨尅?*******3********之后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成默認(rèn)構(gòu)造函數(shù)CStudentlnfo的定義。對(duì)應(yīng)兩個(gè)默認(rèn)參數(shù):要求定義charstName[],其默認(rèn)值為“noname”,定義longstlD,其默認(rèn)值設(shè)為0,并使它們賦值給相應(yīng)的類(lèi)數(shù)據(jù)成員。請(qǐng)?jiān)谧⑨尅?*******4********之后添加適當(dāng)?shù)恼Z(yǔ)句。注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include#includeC1asSCStudentID{∥********1********定義私有數(shù)據(jù)成員public:∥********2********定義默認(rèn)構(gòu)造函數(shù){IDvalue=id;cout<<“學(xué)生的學(xué)號(hào)為:”<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:longIDvalile;(2)添加語(yǔ)句:CStudentID(10ngid=0)(3)添加語(yǔ)句:~CStudentID()(4)添加語(yǔ)句:CStudent工nfo(char8tName[]=“nona.me”,longstID=O):id(stID知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下完成CStudentlD類(lèi)的私有數(shù)據(jù)成員IDvalue的定義,為long型的數(shù)據(jù),因此第1個(gè)標(biāo)識(shí)下應(yīng)添加“l(fā)ongIDvalue;”o(2)構(gòu)造函數(shù)完成類(lèi)成員變量的初始化,構(gòu)造函數(shù)名和類(lèi)名一致,該構(gòu)造函數(shù)帶有一個(gè)參數(shù)id,其默認(rèn)值為id=0,因此第2個(gè)標(biāo)識(shí)下應(yīng)添加“CStudentlD(longid=O)”。(3)析構(gòu)函數(shù)也和類(lèi)名一致,并且在前面加“一”以和構(gòu)造函數(shù)區(qū)分,析構(gòu)函數(shù)沒(méi)有參數(shù),故第3個(gè)標(biāo)識(shí)下應(yīng)添加“~CStudentlD()”。(4)CStudentlnfo包含的學(xué)生學(xué)號(hào)信息保存在類(lèi)CStudentlD的實(shí)例中,可通過(guò)調(diào)用類(lèi)CStudentlD的自定義構(gòu)造函數(shù)初始化,第4個(gè)標(biāo)識(shí)下應(yīng)添加“CStudentlnfo(charstName[]=”noname",longstlD=0):id(stlD)”。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正確運(yùn)行,并且使程序輸出的結(jié)果為:CMyObject,intheconstrutor~CMyObject,inthedestrutor注意:錯(cuò)誤的語(yǔ)句在//********error********的下面,修改該語(yǔ)句即可。1#include(iostream.h>2classCMyObject3{4//********error********56//********error********7CMyObject(cout<<"CMyObject,intheconstrutor"<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:public:(2)CMyobject(){cout<<"CMyObject,intheconstrutor"<知識(shí)點(diǎn)解析:程序中定義了類(lèi)CMyObject,含有一個(gè)構(gòu)造函數(shù)和一個(gè)析構(gòu)函數(shù),在構(gòu)造函數(shù)和析構(gòu)函數(shù)中分別輸出一段字符。[解題思路](1)構(gòu)造函數(shù)和析構(gòu)函數(shù)均為公有函數(shù),而在C++中默認(rèn)的訪問(wèn)屬性為私有(private),因此構(gòu)造函數(shù)和析構(gòu)函數(shù)必須說(shuō)明為public,即第1個(gè)標(biāo)識(shí)下應(yīng)添加“public:”。(2)函數(shù)定義中在函數(shù)名后均有一對(duì)括號(hào)表示函數(shù)聲明,因此第2個(gè)標(biāo)識(shí)下應(yīng)改為“CMyObject(){cout<<"CMyObject,intheconstmtor"<二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,補(bǔ)充空出的代碼。程序的功能是尋找1~500以內(nèi)的親和數(shù)并顯示出來(lái),函數(shù)amicableNum(intm,intn)判定兩個(gè)數(shù)是否是親和數(shù)。親和數(shù)的定義為:兩個(gè)數(shù)m和n,如果n的所有因子之和(因子除掉自身)等于m,且m的所有因子等于n,則m、n是互為親和數(shù)。注意:不能修改程序的其他部分,只能補(bǔ)充amicableNum(intm,intn)函數(shù)。1#include2intamicableNum(intn)3{4intsum=0;5for(int.i=1;i標(biāo)準(zhǔn)答案:1if(amicableNum(m)==n&&amicableNum(n)==m)2return1;3return0;知識(shí)點(diǎn)解析:函數(shù)amicableNum(intm,intn)判定兩個(gè)數(shù)是否是親和數(shù),親和數(shù)指兩個(gè)數(shù)的因子(除去本身)和分別是對(duì)方,因此在判斷親和數(shù)時(shí)先求這兩個(gè)數(shù)的因子和,然后比較便可知是否是親和數(shù)。[解題思路](1)程序中定義了兩個(gè)amicableNum0函數(shù),由于參數(shù)個(gè)數(shù)不同重載了amicableNum0函數(shù),函數(shù)amicableNum(intn)返回n的因子和,而函數(shù)amicableNum(intm,intn)則是判斷m和n是不是親和數(shù),兩個(gè)函數(shù)功能并不相同。(2)在amicableNum(intm,intn)函數(shù)中,可調(diào)用amicableNum(intn)函數(shù)求m和n的因子和,然后比較兩個(gè)因子和,如果兩個(gè)因子和相同則返回真,否則返回假。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。(1)定義類(lèi)的公有數(shù)據(jù)成員函數(shù)No、Name[32],其中No是int型的數(shù)據(jù),Name[32]為字符型。請(qǐng)?jiān)谧⑨專(zhuān)?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成函數(shù)set的定義,分別設(shè)置No和Name的值,請(qǐng)?jiān)谧⑨專(zhuān)?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成函數(shù)print(),請(qǐng)?jiān)谧⑨專(zhuān)?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句,打印的輸出如下:No=111Name=Garfield(4)加缺省構(gòu)造函數(shù),設(shè)置No為0,Name為空,請(qǐng)?jiān)谧⑨專(zhuān)?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。1#include2classTeStClass3{4public:5//********1********67//********2********89{10No=no;11for(inti=0;strName[i]!=0;i++)12{13Name[i]=strName[i];14Name[i+1]=0;15}16}17voidprint()18{19//********3********2021}22TeStClass()23{24//********4********2526}27};28intmain()29{30TestClassstu;31Stu.Set(111,"Garfield");32stu.print();33return0;34}標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:intNo;charName[32];(2)添加語(yǔ)句:voidSet(intno,char*strName)(3)添加語(yǔ)句:cout<<"No=II<知識(shí)點(diǎn)解析:本題程序的功能是利用成員函數(shù)set設(shè)置類(lèi)成員數(shù)據(jù)數(shù)值,并利用成員函數(shù)print輸出成員數(shù)值。在VC環(huán)境下打開(kāi)程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)調(diào)用類(lèi)TestClass和其構(gòu)造函數(shù)實(shí)現(xiàn)各種輸出操作。[解題思路](1)題目l要求“定義類(lèi)的公有數(shù)據(jù)成員函數(shù)No、Name[32],其中No是int型的數(shù)據(jù),Name[32]為字符型”。在已有程序中,類(lèi)定義的public區(qū)域中,定義變量No,Name[32],即在第1個(gè)標(biāo)識(shí)下添加語(yǔ)句“intNo;charName[32];”。(2)題目2要求“完成函數(shù)set的定義,分別設(shè)置No和Name的值”。第2個(gè)標(biāo)識(shí)下說(shuō)明函數(shù)set的語(yǔ)句中,應(yīng)該包括變量no,strName的定義,然后在函數(shù)中將其值賦值給No,Name,即添加定義語(yǔ)句“’voidSet(int,no,char*strName)”。(3)題目3要求“完成函數(shù)print()”,根據(jù)輸出結(jié)果,知道輸出的是No和Name的值,所以這里補(bǔ)全“cout<<"No="<國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、下列給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后將新字符串的首地址作為函數(shù)值返回。例如,若S所指字符串為“asd123fgh543df”,處理后新字符串為“asdfghdf123543”。請(qǐng)?jiān)诔绦虻闹欣ㄌ?hào)處填入正確的內(nèi)容并將中括號(hào)刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#includechar*fun(chars){inti,j,k,n;char*p,*t;n=strlen(s)+1;t=(char*)malloc(n*si-zeof(char));p=(char*)malloc(n*si—zeof(char));j=0;k=0;for(i=0;i=’a’)&&(s[i]<=’Z’))||((s[i]>=’A’)&&(s[i]<’Z’))){/*********found*********/t[j]=【1】;j++;}else{p[k]=s[i];k++;}}/*********found*********/for(i=0;i<【2】;i++)t[j+i]=p[i];/*********found*********/t[j+k]=【3】;returnt;}main(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf("\nTheresultis:%s\n",fun(s));}標(biāo)準(zhǔn)答案:(1)s[i](2)k(3)‘\0’或0知識(shí)點(diǎn)解析:填空1:將字符串s中所有字母元素賦給數(shù)組t。填空2:字符串中所有非字母元素放到字母元素后面,所以i的取值范圍是0~k。填空3:最后給字符串加入結(jié)束標(biāo)識(shí)‘\0’。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:傳入一個(gè)整數(shù)m,計(jì)算如下公式的值。例如,若輸入5,則應(yīng)輸出一0.283333。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#includedoublefun(intm){doublet=1.0;inti;for(i=2;i<=m;i++)/*********found*********/t=1.0一1/i;/*********found*********/;}voidmain(){intm;system("CLS");printf("\nPleaseenter1integernumbers:\n");scanf("%d",&m);printf("\n\nTheresultis%lf\n",fun(m));}標(biāo)準(zhǔn)答案:(1)t-=1.0/i;(2)returnt;知識(shí)點(diǎn)解析:(1)變量t存放公式的和,通過(guò)循環(huán)語(yǔ)句進(jìn)行復(fù)合運(yùn)算,因此此處應(yīng)改為t-=1.O/i;,注意此處應(yīng)進(jìn)行變量的類(lèi)型轉(zhuǎn)換。(2)循環(huán)結(jié)束后應(yīng)將和值返回給主函數(shù)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)編寫(xiě)函數(shù)fun,其功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次放到一維數(shù)組中。一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)是:334455334455334455334455注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#includevoidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0),n=0;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("\n");}fun(w,a,&n,3,4);pr2ntf("TheAarray:\n");for(i=0;i標(biāo)準(zhǔn)答案:voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(j=0;j知識(shí)點(diǎn)解析:題目要求實(shí)現(xiàn)將二維數(shù)組元素存入一維數(shù)組,需使用for循環(huán)語(yǔ)句來(lái)控制二維數(shù)組元素的下標(biāo),同時(shí)使用指針變量配合操作??梢杂脙蓚€(gè)循環(huán)來(lái)處理問(wèn)題,由于是按列的順序取出,所以第1個(gè)循環(huán)用于控制列下標(biāo),第2個(gè)循環(huán)用于控制行下標(biāo)。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第8套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使得程序正常運(yùn)行,并使程序輸出的結(jié)果為:Hello注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//********error********的下面。#includevoidmain(){//********error********typedefBOOLbool;//********error********BOOLa=FALSE;inti=0X80000000;//********error********a=!i;if(a){cout<<"Hello"<標(biāo)準(zhǔn)答案:(1)typedefboolBOOL;(2)BOOLa=false;(3)a=(i!=0);知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下的“typedefBOOLbool;”。typedef為C語(yǔ)言的關(guān)鍵字,作用是為一種數(shù)據(jù)類(lèi)型定義一個(gè)新名字。一般形式應(yīng)該是:typedef標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型新的數(shù)據(jù)類(lèi)型名,所以第1個(gè)標(biāo)識(shí)下應(yīng)該是“typedefboolBOOL:”。(2)C++中邏輯假的值應(yīng)該是false而不是FALSE,所以這里修改為“BOOLa=false;”。(3)題目要求輸出Hello,它要在“if(a)”為真的時(shí)候輸出“Hello”。i的值為0X80000000,第3個(gè)標(biāo)識(shí)下a=!i;語(yǔ)句中a的值為假。i!=0為真,所以修改為“a=(i!=0);”。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,補(bǔ)充空出的代碼。函數(shù)sum(intn)計(jì)算在n范圍內(nèi),能被7和11整除的所有整數(shù)的和(包括n在內(nèi))。注意:不能修改程序的其他部分,只能補(bǔ)充sum()函數(shù)。#includedoublesum(intn){}voidmain(){cout<標(biāo)準(zhǔn)答案:intresult=0;for(inti=11;i<=n;i++){if((i%7==0)&&(i%11==0)){result+=i;}}returnresult;知識(shí)點(diǎn)解析:(1)利用循環(huán)查找能所有小于等于n的能被7和11整除的數(shù),循環(huán)變量i從最小值11開(kāi)始,到n結(jié)束,即11<=i<=n。(2)在函數(shù)中定義累加變量result用來(lái)保存求和結(jié)果,在循環(huán)體內(nèi),逐個(gè)判斷每個(gè)i是否能被7和11整除,即(i%7=0)和(i%11==0)都滿足的話,說(shuō)明i能同時(shí)被7和11整除,將該值加到result上,循環(huán)結(jié)束返回result。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類(lèi)并不完整,按要求完成下列操作,將類(lèi)的定義補(bǔ)充完整。其中:定義了類(lèi)circle和column,column類(lèi)由circle類(lèi)protected派生,但是兩個(gè)類(lèi)的定義并不完整,請(qǐng)按照以下的要求,將程序補(bǔ)充完整。(1)定義類(lèi)circle的保護(hù)數(shù)據(jù)成員函數(shù)r和area,它們都是double型的數(shù)據(jù),請(qǐng)?jiān)谧⑨專(zhuān)?*******1********后完成。(2)添加類(lèi)circle的無(wú)參數(shù)的構(gòu)造函數(shù),使得類(lèi)circle對(duì)象的r默認(rèn)值為0,請(qǐng)?jiān)谧⑨專(zhuān)?*******2********后完成。(3)添加派生類(lèi)column的構(gòu)造函數(shù)的定義,使得參數(shù)為double型的height和radius并將其分別賦給數(shù)據(jù)成員h和基類(lèi)的r請(qǐng)?jiān)谧⑨專(zhuān)?*******3********之后完成。(4)完成派生類(lèi)column的成員函數(shù)print()的定義,請(qǐng)?jiān)谧⑨專(zhuān)?*******4********之后完成,使得輸出為:radius=5area=78.54height=10vol=785.4注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。#includeconstdoublepi=3.1416;Classcircle{protected://********1********public://********2********{r=0.0;}circle(doubleradius){r=radius;}Voidprint(){area=r*r*pi;cout<<"radius="<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:doubler,area;(2)添加語(yǔ)句:circle()(3)添加語(yǔ)句:column(doubleradius,doubleheight)(4)添加語(yǔ)句:cout<<”height="<知識(shí)點(diǎn)解析:(1)題目1要求“定義類(lèi)circle的保護(hù)數(shù)據(jù)成員函數(shù)r和area,它們都是double型的數(shù)據(jù)”。保護(hù)成員與private和public一樣是用來(lái)聲明成員的訪問(wèn)權(quán)限的。在已有程序circle類(lèi)中的protected:區(qū)域,添加變量r和area的定義,即“doubler,area;”。(2)題目2要求“添加類(lèi)circle的無(wú)參數(shù)的構(gòu)造函數(shù),使得類(lèi)circle對(duì)象的r默認(rèn)值為0”。在C++中,構(gòu)造函數(shù)是一種特殊的成員函數(shù),它的名字與類(lèi)同名,沒(méi)有參數(shù)的構(gòu)造函數(shù)一般形式為:構(gòu)造函數(shù)名(),所以這里添加“circle()”。(3)題目3要求“添加派生類(lèi)column的構(gòu)造函數(shù)的定義”。同(2),另外帶參數(shù)的構(gòu)造函數(shù)的一般格式為:構(gòu)造函數(shù)名(類(lèi)型1形參1,類(lèi)型2形參2,……),所以這里添加“column(doubleradius。doubleheight)”。(4)題目4要求“完成派生類(lèi)column的成員函數(shù)print()的定義”。根據(jù)題干中輸出結(jié)果,知道第一個(gè)輸出值為height,第二個(gè)輸出值為vol,即area*h,所以這里添加“cout<<"height="<國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第9套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.epp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為:1063022注意:錯(cuò)誤的語(yǔ)句在//*****error******的下面,修改該語(yǔ)句即可。#includeclassCMyClass{private:intnumber;intAdd(inti){returnnumber+=i;}intSub(inti){returnnumber-=i;}intMul(inti){returnnumber*=i;)intDiv(inti){if(i!=0){returnnumber/=i;}elsereturnnumber;}//*****error******typedefint(FUNC)(int);//*****error*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公益崗位用工合作協(xié)議3篇
- 2025年度電商平臺(tái)會(huì)員消費(fèi)返利協(xié)議3篇
- 2025年度廢塑料瓶回收與環(huán)保瓶蓋生產(chǎn)合同樣板3篇
- 二零二五年度農(nóng)機(jī)智能化作業(yè)合同書(shū)3篇
- 二零二五年度電子信息產(chǎn)品開(kāi)發(fā)合作協(xié)議書(shū)2篇
- 二零二五年度消防安全風(fēng)險(xiǎn)評(píng)估與整改方案協(xié)議3篇
- 農(nóng)村土地經(jīng)營(yíng)權(quán)抵押貸款擔(dān)保合同
- 2025年度醫(yī)藥研發(fā)人員競(jìng)業(yè)禁止勞動(dòng)合同書(shū)3篇
- 2025年度餐飲業(yè)食品安全責(zé)任書(shū)3篇
- 二零二五年度歷史文化名城拆遷房產(chǎn)分割與文物保護(hù)合同3篇
- JJG 633-2024 氣體容積式流量計(jì)
- 2023年河北中煙工業(yè)有限責(zé)任公司筆試試題及答案
- 物質(zhì)與意識(shí)的辯證關(guān)系
- 小學(xué)英語(yǔ)考試教師總結(jié)反思8篇
- SJ-T 11798-2022 鋰離子電池和電池組生產(chǎn)安全要求
- 多智能體仿真支撐技術(shù)、組織與AI算法研究
- 安全管理中人因素
- 餐廳年度總結(jié)計(jì)劃
- 83廣東省深圳市寶安區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 陜西省渭南市2023-2024學(xué)年高一上學(xué)期1月期末數(shù)學(xué)試題
- 2024屆新疆維吾爾自治區(qū)烏魯木齊市高三上學(xué)期第一次質(zhì)量監(jiān)測(cè)生物試題【含答案解析】
評(píng)論
0/150
提交評(píng)論