上海大學C++2014-2015秋A-答案-t_第1頁
上海大學C++2014-2015秋A-答案-t_第2頁
上海大學C++2014-2015秋A-答案-t_第3頁
上海大學C++2014-2015秋A-答案-t_第4頁
上海大學C++2014-2015秋A-答案-t_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

上海大學C++2014-2015秋A---答案--t序號試卷第1頁(共5頁)序號4.[]GetData函數(shù)功能是Get它動態(tài)創(chuàng)建的包含有數(shù)據(jù)的基地址,及數(shù)據(jù)個數(shù),好的設計方案及客戶對它的正確調(diào)用是: A.int

GetData(int4.[]GetData函數(shù)功能是Get它動態(tài)創(chuàng)建的包含有數(shù)據(jù)的基地址,及數(shù)據(jù)個數(shù),好的設計方案及客戶對它的正確調(diào)用是: A.int

GetData(int*pp); int*pd;intn=GetData(pd); B.int

*GetData(intn); intn=3;int*pd=GetData(n); C.int

GetData(intpp); int*pd;intn=GetData(pd); D.int

GetData(int**pp); int*pd;intn=GetData(&pd);5.[]已有定義classK{private: K();}; 修改錯誤: A.去掉private: B.Kk1;改為Kk1(); C.private改為public D.};改為}6.[](多選)設計一個影片管理系統(tǒng),包括一般影片、外國片,影片剪接,現(xiàn)有一部外國影片Titanic(泰坦尼克號),如下的解決方案正確的有:A.Film作為基類,F(xiàn)oreignFilm和DirectorCut作為Film的派生類。B.Titanic作為Film的的成員變量。C.Titanic是ForeignFilm的一個實例。D.Film作為類ForeignFilm和類DirectorCut的成員變量。 E.數(shù)據(jù)輸出Output函數(shù)采用虛成員函數(shù),F(xiàn)ilm、ForeignFilm、DirectorCut都實現(xiàn)它。7.[]已有定義:classBC{public:intb;voidmfunc(){cout<<"BC";}};classDC:publicBC{public:intd;voidmfunc(){BC::mfunc();cout<<"DC";}};BCbc;

DCdc;

BC*pb=newDC;以下代碼正確的是:A.bc.d=1; B.pb->d=1; C.DC*p=pb;

p.d=1;D.DC*pdc=static_cast<DC*>(pb);pdc->d=1;8.[]重載右移操作符,從流輸入數(shù)據(jù)到復數(shù)類對象,設計方案選擇:A.istream&operator>>(istream&istm,Complex&c);B.istream&operator>>(istreamistm,Complexc);C.istream&operator>>(istream&istm,Complexc); D.istreamoperator>>(istreamistm,constComplex&c);E.Complexoperator<<(istreamistm);2014~2015學年一. 選擇(16分,每題2分)1.[]以下面向?qū)ο蟪绦蛟O計(OOP)的基本概念不正確的是A. 計算機并不僅僅是一臺機器,它更像我們大腦的一部分。B. 面向?qū)ο蟪绦蛟O計語言的目的是為了解決現(xiàn)實世界的模擬問題(如變電站系統(tǒng)).C. 對象類型的設計是面向?qū)ο蟪绦蛟O計的中心任務。D. 繼承表示了基本類型和派生類型之間的相似性,一個基類具有所有由它派生出來的類型所共有的特性和行為。E. 當處理類型層次結(jié)構(gòu)時,程序員常常希望不把對象看作是某一特殊類型,而把它看作基本類型,應用OOP的多態(tài)性,編寫不依賴于特殊類型的代碼。F. C++語言中類實際上就是對象。2.[]要訪問名空間IEC中的標識符LPHD,C++的方法是A.IEC::LPHD B.IEC.LPHDC.IEC:LPHD C.usingnamespacestd; LPHD3. []動態(tài)分配n個float元素的內(nèi)存空間,C++編程方法是:A.float*p=newfloat[sizeof(float)]*n; B.floata[]=newfloat[n];C.float*p=newfloat[n];D.floata[n];intmain(){intmain(){Kk1;return0;}注:教師應使用計算機處理試題的文字、公式、圖表等;學生應使用水筆或圓珠筆答題。試卷第2頁(共5頁)6.6.C++標準模板庫的名空間的名稱是___________7.函數(shù)參數(shù)的設計其數(shù)據(jù)傳遞有三種方式,分別是傳________________________8.實現(xiàn)下面的類classCPerson{protected: stringname;public: voidsetname(stringname){_____8.1___=name;} stringgetname(){returnname;}};classCStudent:________8.2____________{ doublescore;public: _____8.3_____(){}//構(gòu)造函數(shù) ______8.4____________{this->name=name;}//構(gòu)造函數(shù) ______8.5______{}//析構(gòu)函數(shù) staticintcompareScore(Student&stu1,Student&stu2) { if(stu1.getscore()<stu2.getscore())return-1; elseif(_____________8.6_____________)return1; elsereturn0; } doublegetscore(){returnscore;} voidsetscore(doublescore){this->score=score;}};改寫getname成員函數(shù)為外聯(lián)式實現(xiàn)___________8.7_____________________改寫setscore成員函數(shù)為外聯(lián)式實現(xiàn)_____8.8______________________________ 二.填空(26分,1,7題每題3分,其他每空1分)1.面向?qū)ο蟪绦蛟O計語言的主要特征是______________________________2.返回對象的引用,修改下面代碼int&dl(intn){ ___________intj=2*n; returnj;}3.下面代碼CA和CB類型的對象分別有___3.1____個數(shù)據(jù)成員,實現(xiàn)類的構(gòu)造函數(shù),初始化數(shù)據(jù)成員classCA{private: inta;public: CA(inta){_____3.2_______}};4.設計一個函數(shù)decode,功能是對字符串,用密鑰解碼,設計函數(shù)原型 (接口)是:___4.1__________________________________________其中相關參數(shù)和返回的說明:________4.2__________________________5.異常處理代碼填空intdiv(inta,intb){ if(b==0) ______5.1____“error:b==0”; returna/b;}classclassCB:publicCA{ intb;public: CB(inta,intb)________3.3______ { _____3.4______}};intintmain(){ try { intu,v; cin>>u>>v; cout<<"u/v="<<div(u,v); } _____5.2_______ { cout<<e<<endl; } return0;}試卷第3頁(共5頁)2.下面代碼的輸出結(jié)果__________________2.下面代碼的輸出結(jié)果__________________classB{public: B(){cout<<"B";}virtual~B(){cout<<"~B";}};voidmain(){ B*p=newZ;deletep;}3.下面的程序?qū)懭氲絛ata.txt文件中的內(nèi)容___________3.1________________________屏幕顯示的輸出的內(nèi)容_________________________3.2_____________________#include<fstream>#include<sstream>usingnamespacestd;;intmain(){ ostringstreamostm; stringname="wang";intage=20; ostm<<"姓名"<<name<<"年齡"<<age<<endl; ofstreamofile("data.txt"); ofile<<ostm.str();//寫入到文件 ofile.close(); ifstreamifile("data.txt"); if(ifile) { stringstr1,name,str2;intage; while(ifile>>str1>>name>>str2>>age) { cout<<"姓名"<<name<<"去年"<<age<<"今年"<<age-2<<endl; } ifile.close(); } return0;}intmain(){ vector<____8.9_______>students; for(inti=0;i<10;i++) { stringname; intscore; cin>>name>>score; CStudentstu(name); stu.setscore(score); students.push_back(stu); } assert(students.size()>0);cout<<”與”<<students[0].getname()<<”分數(shù)相同的學生有:”<<endl; for(inti=1;i<students.size();i++) { intcomp=______________________8.10__________________________; if(comp==0)//i學生如果與0學生分數(shù)相同{ cout<<students[i].getname()<<endl;} } return0;}三.閱讀程序(18分,每小題2分)1.寫出輸出結(jié)果:________ classB {protected:virtualvoidf(){cout<<”B”<<endl;} public: voidg(){f();} }; voidmain(){Dd; d.g(); }classclassZ:publicB{public: Z(){cout<<"Z";}virtual~Z(){cout<<"~Z";}};classD:publicBclassD:publicB{ protected: virtualvoidf(){cout<<”D”<<endl;}};試卷第4頁(共5頁)classIReportHandleclassIReportHandle{public: virtualvoidhandleReport(stringr)=0;①};classDevServiceClass{ vector<IReportHandle*>m_RCBs; stringm_r; voiddchgReport()//數(shù)據(jù)已變化,報告訂閱者 { for(autoit=m_RCBs.begin();it!=m_RCBs.end();it++)② { IReportHandle*p=*it; p->handleReport(m_r); } }public: voidhookReport(IReportHandle*p)//訂閱報告 { m_RCBs.push_back(p);③ } voidupdate(stringr)//更新數(shù)據(jù) { m_r=r; ④ dchgReport(); }};classDevClientClass:publicIReportHandle{ stringm_name;public: DevClientClass(){m_name="DevClient";}⑤ virtualvoidhandleReport(stringr)//處理數(shù)據(jù) { cout<<m_name<<"handleReport:"<<r<<endl;⑥ }};4.下面代碼的輸出結(jié)果__________________classA{public: voidm(constchar*str){ cout<<”A”<<str<<endl; }};classZ:publicA{public: voidm(){ cout<<"Z"<<endl; }};intmain(){ Zz1; z1.m(); z1.A::m(“a”); return0;}5.下面是設備監(jiān)控系統(tǒng)采用事件驅(qū)動機制編寫的一個簡單示例程序,列出程序先后運行到斷點位置(已用標號標記)的序號,或顯示結(jié)果鍵盤輸入數(shù)據(jù)前,程序依次運行到的斷點序列號_________5.1____________從鍵盤輸入MMXU1.PNV.phsA.cVal.mag.f=100.5A回車后的斷點位置:__5.2___斷點位置⑧然后程序依次運行到的斷點序列號:5.3程序顯示的輸出結(jié)果:5.4#include<string>#include<iostream>#include<vector>usingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){ DevServiceClassdev;⑦ DevClientClasscli; dev.hookReport(&cli); charstr[200]; cin.getline(str,sizeof(str));//采集數(shù)據(jù) dev.update(str); ⑧ return0;}試卷第5頁(共5頁)五.程序設計五.程序設計(20分,第1題8分,第2題7分,第3題5分)設計一個模板容器類,功能是元素的壓入和彈出在同一端進行,滿足先進后出的要求.并編一個main函數(shù)測試該模板容器。模板容器類接口要求:類名:Stack模板參數(shù)表含模板類型參數(shù)T,和實例類型參數(shù)size(表示容器最大容量) 成員函數(shù): push:壓入元素; pop:彈出元素 empty:容器是否空; full:容器是否滿 main()函數(shù)要求:創(chuàng)建你的模板容器類對象,循環(huán)壓入n個string字符串,然后彈出顯示。2.使用MFC設計一個圖形層次類要求1)抽象圖形類CShape成員變量m_x,m_y成員函數(shù)draw(CDC*),moveTo(x,y),CShape(x,y)CShape(x=0,y=0)2)圓類CCircle成員變量m_x,m_y,m_r成員函數(shù)draw(CDC*),moveTo(x,y),setR(r),CCircle(x,y,r)3)矩形框類CRectBox成員變量m_x,m_y,m_x1,m_y1成員函數(shù)draw(CDC*),moveTo(x,y),CRectBox(x,y,x1,y2)4)柱狀圖類CBarChart成員變量m_x,m_y,m_x1,m_y1//邊框 m_datas//畫柱狀圖的int數(shù)據(jù)容器成員函數(shù)moveTo(x,y),CBarChart(x,y,x1,y2) draw(CDC*)//畫出邊框,畫出數(shù)據(jù)的柱狀圖,設每根柱的寬度=元素個數(shù)/(m_x1-m_x)addData(int)//添加數(shù)據(jù)到注:MFC相關類CDC類相關的成員函數(shù) boolRectangle(intx1,inty1,intx2,inty2);//畫矩形框(左上角,右下角) boolEllipse(intx1,inty1,intx2,inty2);//畫橢圓(左上角,右下角) 程序不要求考慮畫筆及其填充色的問題。 類間關系要使用繼承.3.IEC61850變電站通信網(wǎng)絡與系統(tǒng)C++程序設計(課外項目代碼)四.改錯(對有標號的行,有錯標記X,無錯標記√)(20分,每小題0.5分)classIObj{public: virtualvoidvfunc(intx)=0;//1____} //2___classBC:IObj //3____{ intb; staticints; constintc;public: BC():c(0){}//4_____ BC(intx){b=x;c=0;}//5____ void~BC(){}//6____ int&getRef() {returnthis->b;}//7____ staticvoidstaticFuncSet(intx) { this->b=x;}//8_____ intgetC() {returnc;} //9_____ staticvoidstaticFuncSetS(intx) {s=x;} //10______intgetS() {returnthis->s;}//11______ virtualvoidvfunc(intx) {protectedFunc(x);}//12_______ voidm(intx) {vfunc(x);}//13_____private: voidprivateFunc(constchar*str){cout<<str<<b;}//14______protected: voidprotectedFunc(intx){b=s*x;}};classclassDC:publicBC//15._____{public: intd; DC(){} DC(intx,inty):d(x)//16_____{BC(y);}//17______ ~DC(int*p){deletep;}//18______ virtual~DC(){}//19______ virtualvoidvfunc(inta) {d=a;}//20_______ voidm(constchar*str);};voidDC::m(constchar*str)//21.____{ BC::m(0); //22_____ privateFunc(str);//23____ protectedFunc(0);//24_______}intBC::s=0; //25____intmain(){IObjobj; //26_____ DCdc;//27_____ dc.m(10); //28______ dc.m("abc");//29___ int&r=dc.getRef();//30____ BCbc; bc.privateFunc(“aaa”);//31_____ tectedFunc(1);//32_____ BC::staticFuncSetS(1); //33_____ IObj*pobj=newBC(2); pobj->vfunc(1); //34____BC*pbc=(BC*)pobj; //35_____deletepobj; //36_____ BC*pb=&dc; //37_____ BC::m(2); //38______pb->vfunc(1);//39______ DC*pdc=dynamic_cast<DC*>(pb);//40____}答卷第1頁(共3頁)成績題號第二題填空題成績題號第二題填空題(續(xù))5.1(1分)throw5.2(1分)catch6(1分)std7(3分)值,地址,引用8.1(1分)this->name=name8.2(1分)publicCPerson8.3(1分)CStudent8.4(1分)CStudent(stringname)8.5(1分)virtual~CStudent()8.6(1分)stu1.getscore()>stu2.getscore()8.7(1分)stringCPerson::getname(){returnname;}8.8(1分)voidCStudent::setscore(doublescore){this->score=score;}8.9(1分)CStudent8.10(1分)CStudent::compareScore(students[0],students[i]);小計題號第三題閱讀題18分1(2分)D2(2分)BZ~Z~B3.1(2分)姓名wang年齡203.2(2分)姓名wang去年20今年184(2分)ZAa5.1(2分)7,5,3,5.2(2分)85.3(2分)4,2,65.4(2分)DevClienthandleReport:MMXU1.PNV.phsA.cVal.mag.f=100.5A小計上海大學2014~2015學年秋季學期答卷A課程名:面向?qū)ο蟪绦蛟O計A課程號:09366046學分:4應試人應試人學號應試人所在院系題號一二三四五六七八九得分題號第一題選擇題16分每小題2分1F2A3C4D5C6ACE7D8A小計:題號第二題填空題26分1(3分)封裝繼承多態(tài)2(1分)static3.1(1分)1,23.2(1分)this->a=a;3.3(1分):CA(a)3.4(1分)this->b=b;4.1(1分)voiddecode(constchar*str,constchar*key,char*tex);4.2(1分)不返回,str:待解碼的字符串,key:密鑰,tex:解碼后的文本注:教師應使用計算機處理試題的文字、公式、圖表等;學生應使用水筆或圓珠筆答題。答卷第2頁(共3頁)小計:五.程序設計小計:五.程序設計20分(1題8分,2題7分,課外題5分)1.第四題改錯題20分每小題0.5分題號題號題號題號題號1√2X3X4√5X6X7√8X9√10√11√12√13√14√15√16√17X18X19√20√21√22√23X24√25√26X27√28X29√30√31X32X33√34√35√36√37√38X39√40√小

溫馨提示

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

評論

0/150

提交評論