C程序设计上机考试复习题及答案(优化版).docx_第1页
C程序设计上机考试复习题及答案(优化版).docx_第2页
C程序设计上机考试复习题及答案(优化版).docx_第3页
C程序设计上机考试复习题及答案(优化版).docx_第4页
C程序设计上机考试复习题及答案(优化版).docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计 上机试题考试时间:180分钟(注:以下所有题目均要求上机实现)第一题 ( 20分)声明数组如下,按要求编写程序, 以f1.cpp作为文件名,存放到D盘: double a=1.1,5.2,7.3,4.4, b4;要求使用泛型算法 完成:1.将数组a内容反转,并正向 输出数组 a的内容.2.将数组a的内容拷贝到数组b, 并逆向输出数组b的内容.3.将数组b按降幂排序,并输出数组b的内容.4.在数组a中查找4.4的位置,并输出.#include #include #include#include using namespace std; void main() double a=1.1,5.2,7.3,4.4,b4; reverse(a,a+4); copy(a,a+4,ostream_iterator(cout, ); coutendl; reverse_copy(a,a+4,ostream_iterator(cout, ); coutendlendl; copy(a,a+4,b); copy(b,b+4,ostream_iterator(cout, ); coutendl;reverse_copy(a,a+4,b); copy(b,b+4,ostream_iterator(cout, ); coutendlendl; sort(a,a+4); copy(a,a+4,ostream_iterator(cout, ); coutendl; sort(a,a+4,greater(); copy(a,a+4,ostream_iterator(cout, ); coutendlendl;double *x=find(a,a+4,4.4);if (x=a+4) coutno value 4.4; else couthave value is *x; coutendl;第二题(20分)定义队列类模板queue(先进先出),队列的大小由使用者确定。要求该类模板对外提供如下二种基本操作:(1)insert(入队列)(2)front(出队列),用数组来实现 #include using namespace std; template class queue T x size ; int current, front, rear; public : queue ( ) current = 0 ; front = 0 ; rear = 0 ; . . . .insert(. . . .); . . . .front(. . . .); ;templateboolQueue:insert(Queue&Q,Ta) /入队列if(front=0&rear=current-1)returnfalse;inti;i=rear+1;Q.xi=a;returntrue;/-出队templateboolQueue:front(Queue&Q) if(current=0)/检测队列是否为空returnfalse;inti; for(i=0;icurrent;i+) Q.xi=Q.xi+1; returntrue;第三题(20分)设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。Bank类包括私有数据成员top(当前账指针),date(日期),money(金额),rest(余额)和sum(累计余额)。有三个成员函数bankin()(处理存入账),bankout()处理取出账)和disp()(输出明细账)请完成函数的实现。本题部分程序如下: #include#include#define Max 100class Bankint top;char dateMax10;/日期int moneyMax;/金额int restMax;/余额static int sum;/累计余额public:Bank()top=0;void bankin(char d ,int m)void bankout(char d ,int m)void disp(); ;#include#include#include#define Max 100Using namespace std;class Bankint top;char dateMax10; / 日期int moneyMax; / 金额int restMax; / 余额static int sum; / 累计余额public:Bank()top=0;void bankin(char d,int m)strcpy(datetop,d);moneytop=m;sum=sum+m;resttop=sum;top+;void bankout(char d,int m)strcpy(datetop,d);moneytop=-m;sum=sum-m;resttop=sum;top+;void disp();int Bank:sum=0;void Bank:disp()int i;printf( 日期存入 取出余额n);for(i=0;itop;i+)printf(%8s,datei);if(moneyi0)printf( %6d,-moneyi);elseprintf(%6d ,moneyi);printf(%6dn,resti);void main()Bank obj;obj.bankin(2013.05.14,1000);obj.bankin(2013.05.12,2000);obj.bankout(2013.03.02,500);obj.bankout(2013.04.20,800);obj.disp();第四题(20分)写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组使它每一个元素指向一个派生类对象。#include class Shapepublic:virtual double area() const=0;class Square:public Shape public: Square(double s):side(s) /面积 double area() const return side*side; /周长 double circumference() const return (side*4); private: double side; ; class Trapezoid:public Shape public: Trapezoid(double i,double j,double k,double n,double m):a(i),b(j),h(k),n(0),m(0) /面积 double area() const return (a+b)*h/2); /周长 double circumference() const return (a+b+n+m); private: double a,b,h; /定义梯形的两个腰 double n,m; class Triangle:public Shape public: Triangle(double i,double j):w(i),h(j) /面积 double area() const return(w*h/2); /周长 double circumference() const return (w*3); private: double w,h; void main() Shape *p3; Square se(5); Trapezoid td(2,5,4,2 ,3.0); Triangle te(5,8); p0=&se; p1=&td; p2=&te;/总面积计数器 double da=0;/总周长计数器double SumCir = 0; /求总面积的和 for(int i=0;iarea(); /求总周长的和For(int I = 0;i circumference();cout总面积是:daendl; cout”总周长是:” SumCirendl;s第五题 (20分)1 在D:盘建立file1.txt文件,内容如下。编程将file1.txt的文件内容拷贝到另一个文件file2.txt。两个文件位于同一目录。problem KURseed 142number_decision_variables 2maxgen 100outputfile dtlz_output.txtindividual_mutation_probability 1individual_recombination_probability 1#include #include using namespace std;voids main()char ch;ifstream fileR(D:/ file1.txt);/读取D盘的文本文件ofstream fileW (D:/ file2.txt,ios:app);/创建文本文件w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论