必胜高考网_全国高考备考和志愿填报信息平台

必勝高考網 > 計算機類 > 計算機等級 > 資訊 >

2015年計算機二級考試《C++》突破試卷(2)

時間: 家輝2 資訊

  23在c++語言中,數據封裝要解決的問題是( )。

  A.數據的規范化

  B.便于數據轉換

  C.避免數據丟失

  D.防止不同模塊之間數據的非法訪問

  參考答案:D

  參考解析:數據封裝為了防止不同模塊間數據的非法訪問及修改。

  24在C++中,Cin是一個(  )。

  A.類B.對象C.模板D.函數

  參考答案:B

  參考解析:本題考查流對象cin,屬于基礎知識,cin是輸人流對象,負責從鍵盤獲取數據,然后送到內存。本題答 案為B。

  25在公有派生情況下,有關派生類對象和基類對象的關系,下列敘述不正確的是( )。

  A.派生類的對象可以賦給基類的對象

  B.派生類的對象可以初始化基類的引用

  C.派生類的對象可以直接訪問基類中的成員

  D.派生類的對象的地址可以賦給指向基類的指針

  參考解析:公有繼承的派生類和基類是子類型的關系,所謂子類型是類型間一般和特殊的關系,即派生類是基類的子類型或者說基類的操作可以被用于操作派生類的對象。

  26要建立文件流并打開當前目錄下的文件6le.dat用于輸入,下列語句中錯誤的是(  )。

  A.ifstream fin=ffstream.open(”file.dat”);

  B.ifstream*fin=new ifstream(”file.dat”);

  C.ifstream fin;fin.open(”file.dat”);

  D.ifstream*fin=new ifstream();fin->open(”file.dat”);

  參考答案:A

  參考解析:本題考查對文件流輸入的操作,可以調用文件流的成員函數pen,一般形式如下:文件流對象.0pen(磁盤文件名,輸入/輸出方式)。根據以上格式,可以判斷A選項錯誤。

  27某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是(  )。

  A.10B.8C.6D.4

  參考解析:根據二叉樹的基本性質3:在任意一顆二叉樹中,度為0的葉子結點總是比度為2的結點多一一個,所以本題中是5+1=6個。

  28下面的語句中錯誤的是( )。

  A.int a=5;int x[a];B.eonst int a=5;int x[a];C.int n=5;int *P=new int[a];D.const int n=5;int *p=new int[a];

  參考答案:A

  參考解析:在c++中定義數組時,數組的范圍參數在靜態定義時必須是一個常數,而在動態分配內存定義時可以是常數,也可以是一個賦了值的參數故選項A是錯誤的定義方法。

  29if語句的語法格式可描述為:

  格式l:if(<條件>)<語句>

  或

  格式2:if(<條件>)<語句l>

  else<語句2>

  關于上面的語法格式,下列表述中錯誤的是( )。

  A.<條件>部分可以是一個if語句,例如if(if(a==0)…)…

  B.<語句>部分可以是一個if語句,例如if(…)if(…)…

  C.如果在<條件>前加上邏輯非運算符!并交換<語句l>和<語句2>的位置,語句功能不變

  D.<語句>部分可以是一個循環語句,例如if(…)while(…)…

  參考答案:A

  參考解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項錯誤;B選項就是if語句嵌套;C選項其實就是將判斷條件顛倒,然后執行語句也顛倒,所以效果一樣;D選項也正確。

  30結構化程序設計的基本原則不包括( )。

  A.多態性B.自頂向下C.模塊化D.逐步求精

  參考答案:A

  參考解析:結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。

  31下列有關繼承和派生的敘述中,正確的是( )。

  A.派生類不彘訪問基類的保護成員

  B.作為虛基類的類不能被實例化

  C.派生類應當向基類的構造函數傳遞參數

  D.虛函數必須在派生類中重新實現

  參考解析:派生類可以訪問基類的保護成員,而不能訪問基類的私有成員。作為虛基類的類可以被實例化。虛函數如果沒有派生類中重新實現,那么仍然使用基類的成員函數。

  32下列關于this指針的描述中,正確的是(  )。

  A.類的成員函數都有this指針

  B.類的友元函數都有this指針

  C.任何與類相關的函數都有this指針

  D.類的非靜態成員函數都有this指針

  參考答案:D

  參考解析:this作用域是在類內部,當在類的非靜態成員函數中訪問類的非靜態成員時,編譯器會自動將對象本身的地址作為一個隱含參數傳遞給函數。另外,全局函數和靜態函數都不能使用this指針。所以答案為D。

  33已知函數f的原型是void f(int*a,long&B.;,變量v1、v2的定義是:

  int v1;long:v2;

  下列調用語句中正確的是( )。

  A.f(v1,&v2);B.f(v1,v2);C.f(&v1,&v2);D.f(&v1,v2);

  參考答案:D

  參考解析:函數參數的3種傳遞方式:①將變量名作為形參和實參,即傳值方式;②傳遞變量指針;③引用形參,本題中函數f的第一個形參為指針,那么調用f函數時,第一一個參數必須是地址,所以必須是&v1.第二個形參為引用,所以對應實參為v2即可。故本題答案為D。

  34設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課Sc(學號,課號,成績),則表Sc的關鍵字(鍵或碼)為( )。

  A.課號,成績

  B.學號,成績

  C.學號,課號

  D.學號,姓名,成績

  參考解析:學號是學生表s的主鍵,課號是課程表c 的主鍵,所以選課表sc的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇c。

  35有如下程序:

  #inClude using namespaCe耐: Class MyClass{

  publiC:

  MyClass(){++Count;}

  ~MyClass(){--Count;}

  statiC int getCount(){retum Count;} private:

  statiC int Count;

  }; ‘ int MyClass::Count=0;

  int main() {

  MyClass obj;

  Cout<

  MyClass+ptr=new MyClass: Cout<

  Cout<

  }

  執行這個程序的輸出結果是( )。

  A.121B.232C.221D.122

  參考答案:A

  參考解析:本題考查靜態數據成員。靜態數據成員在內存中只占一份空間,靜態數據成員屬于類,即使不定義對象,也會給靜態數據成員分配空間,可以被引用。本題中先是定義了一個對象obj,執行構造函數使得靜態數據成員count變為了l,然后又定義了指針對象,執行構造函數后,count變為了2,釋放指針后,執行析構函數,使得count變為了1。所以本題答案為A。

  36數據流圖中帶有箭頭的線段表示的是(  )。

  A.控制流B.事件驅動C.模塊調用D.數據流

  參考答案:D

  參考解析:數據流圖中帶箭頭的線段表示的是數據流,即沿箭頭方向傳送數據的通道,一般在旁邊標注數據流名。

  37下列程序的運行結果為( )。

  #include template

  class FF

  {TT al,a2,a3; public:

  FF(TT bl,TT b2,TT b3){al=bl;a2=b2;a3=b3;} TT Sum(){return al+a2+a3;};

  }

  void main()

  { FFx(int(1.1),2,3),Y(int(4.2),5,6); cout<

  A.6.1 15.2B.6 15C.6 15.2D.6.1 15

  參考答案:B

  參考解析:本題考查模板函數的應用,表達式int(1.1)和int(4.2)足將1.1和4.2強制轉換為整型。

  38下列選項中不屬于結構化程序設計原則的是( )。

  A.可封裝B.自頂向下C.模塊化D.逐步求精

  參考答案:A

  參考解析:結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。

  39有三個關系R,S和T如下:

  其中關系T由關系R和s通過某種操作得到,該操作為( )。

  A.選擇B.投影C.交D.并

  參考答案:D

  參考解析:并關系T中包含了關系R與s中的所有元組,所以進行的是并的運算。

  40下列控制格式輸入/輸出的操作符中,能夠設置浮點數精度的是(  )。

  A.setpreCisionB.setwC.setfillD.showpoint

  參考答案:A

  參考解析:iomanip中定義的操縱符包括:setfill(ch) 用ch填充空白、setprecision(n)將浮點精度置為n、setw(w)、讀寫w個字符的值showpoint沒置小數點。

  二、基本操作題

  41清使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl,此工程中包含了類Pets(“寵物”) 和主函數main的定義。程序中位于每個“//ERROR****found ****”之后的一行語句有錯誤,請加以改 正。改正后程序的輸出結果應為:

  Name:sonny Type:dog

  Name:John Type:dog

  Name:Danny Typc:cat

  Name:John Type:dog

  注意:只修改每個“//ERROR ****found ****”下的那一行,不要改動程序中的其他內容。

  #include

  using namespace sm; enum Pets_type{d09,cat,bird,fish};

  class Pets{ private:

  char *name; Pets_type type; public:

  Pets(const char *name=”sonny”,Pets_type type=dog);

  Pets&operator=(const Pets&s);

  ~Pets();

  void show()eonst;};

  Pets::Pets(eonst char$naIne,Pets_type type)

  //構造函數 {

  This ->name=new char[strlen(name)+1];

  strcpy(this一>name,name);

  //ERROR *********found********* type=type;

  }{ Pets::~Pets()//析構函數,釋放name所指向的字符串

  { //ERROR *********found********* name=’/0‘;

  }

  Pets&Pets::0perator=(const Pets&s){

  if(&s==this)//確保不要向自身賦值 return *this;

  delete[]name;

  name=new char[strlen(S.name)+1];//ERROR *********found*********

  strcpy(this一>nmne,name); type=S.type:

  return *this;}

  void Pets::show()const

  cout<<“Name:”<

  參考解析:

  (1)this一>type=type;

  (2)delete[]name;

  (3)strepy(this->name,s.name);

  三、簡單應用題

  42請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個程序文件main.Cpp,其中有坐標點類point、線段類Line和三角形類Triangle的定義.還有main函數的定義。程序中兩

  Side l:9.43398 Side 2:5

  Side 3:8 area:20 注意:只在橫線處填寫適當的代碼,不要改動程序中的其他內容,也不要刪除或移動“//****found****”。

  #inClude #nClude using namespaCe std;

  Class Point{//坐標點類 publiC:

  Const double x,y;

  Point(double x=0.0,double Y=0.0):x(x),Y(Y){} //**********found**********

  double distanCeTo(_____) Const{

  //到指定點的距離

  return sqrt((x-P.X)*(x-P.x)+(Y-P.Y)*(Y-P.Y)); }

  };

  Class Line{//線段類 publiC:

  eonst Point pl,p2;//線段的兩個端點

  //**********found**********

  Line(Point pl,Point p2):——{}

  double length()eonst/retum pl.distanCeTo(p2);}//線段的長度 };

  Ct彝SS Triangle{//三角形類 publiC:

  Const Point pl,p2,p3;//三角形的三個頂點 //**********found**********

  Triangle(_____):pl(p1),p2(p2),p3(p3){} double lengthl()Const{//邊pl,p2的長度

  retum Line(pl,p2).1ength(); }

  double length2()Const{//邊p2,p3的長度 return Line(p2,p3).1ength();

  }

  double length3()Const{//邊p3,pl的長度 returnLine(p3,pl).1ength();

  }

  double area()Const{//三角形面積

  //**********found********** double s=_____;

  return sqrt(s{(S-lengthl())*(s-length2())*(s—length3())); }

  };

  int main(){

  Triangle r(Point(0.0,8.0),Point(5.0,0.0),Point(0.0,0.0)); Cout<<”Side l:”<

  Cout<<”Side 2:”<

  retum 0;

  參考解析:

  (1)eonst Point&P

  (2)pl(p1),p2(p2)

  (3)Point pl,Point p2,Point p3

  (4)(1engthl()+length2()+length3())/2

  四、綜合應用題

  43請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明的DataList類,是一個用于表示數據表的類。DataList的重載運算符函數0perator+,其功能是求當前數據表與另一個相同長度的數據表之和;即它返回一個數據表,其每個元素等于相應兩個數據表對應元素之和。請編寫這個operator+函數。程序的正確輸出應該是:

  兩個數據表: 1,2,3,4,5,6 3,4,5,6,7,8 兩個數據表之和:

  4,6,8,10,12,14 要求:

  補充編制的內容寫在“//********333********”與“//********666********”之間,不得修改程序

  的其他部分。

  注意:程序最后將結果輸出到文件。ut.dat中。輸出函數writeToFile已經編譯為。bj文件,并且在本程序中調用。

  //DataList.h

  #inClude using namespaCe std;

  ClaSS DataList{//數據表類 intfen;

  double*d; publiC:

  DataList(int len,double data[]=NULL); DataList(DataList&data);

  int length()Const{retum len;}

  double getElement(int i)Constt return d[i];}

  DataList operator+(Const DataList&list)Const;//兩個數據表求和 void show()Const;//顯示數據表

  };

  void writeToFile(Char$,Const DataList&); //main.Cpp

  #inClude”DataList.h”

  DataList::DataList(int len,double data[]):len(ien){ d=new double[1en];

  for(int i=0;i

  d㈨i=(data==NULL?0.0:data[i]);

  }

  DataList::DataList(DataList&data):len(data.1en){ d=new double[1en];

  for(int i=0;i

  DataList DataList::0perator+(Con8t DataList&list,)Const{//兩個數據表求和 double*dd=new double[1ist.1ensth()];

  //********333********

  //********666********

  return DataList(1ist.1ength(),dd); }

  void DataList::show()Const{//顯示數據表 f()r(int。i=0;i

  eout<

  Cout<

  int main(){

  double sl[]={1,2,3,4,5,6};

  double s2[]={3,4,5,6,7,8};

  DataList list1(6,sl),list2(6,s2);//定義兩個數據表對象 eout<<”兩個數據表:”<

  listl.show(): list2.show(); eout<

  (1istl+list2).show();

  writeToFile(””,listl+list2); return 0:

  參考解析:

  f0T(int i=0;i

  dd[i]=d[i]+list.d[i];

55675 主站蜘蛛池模板: 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 迪威娱乐|迪威娱乐客服|18183620002| 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 好杂志网-首页| 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 搪瓷反应釜厂家,淄博搪瓷反应釜-淄博卓耀 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | PCB接线端子_栅板式端子_线路板连接器_端子排生产厂家-置恒电气 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 保温杯,儿童婴童奶瓶,运动水壶「广告礼品杯定制厂家」超朗保温杯壶 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 |