版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1题目:定义(dngy)一个描述学生基本情况的类Student,数据成员(chngyun)包括学号、C+成绩、英语和数学成绩,成员函数(hnsh)包括获取学号、求出总成绩和平均成绩,格式: long getID() int sum ()double avg ()#include using namespace std;/*Program*/ class Student long ID,c,e,m;public:Student(long _ID,long _c,long _e,long _m)ID=_ID;c=_c;e=_e;m=_m;long getID()return ID;int sum
2、()return c+e+m;double avg ()return (c+e+m)/3;/* End */void main(void) Student s(201211145, 90, 80, 97); coutID:s.getID()endl; couttThe sum of source:s.sum()endl; couttThe avg of source:s.avg()endl;2题目:定义一个处理日期的类TDate,它有3个私有数据成员:Day, Month, Year,并实现如下要求:构造函数重载,缺省的年月日置0; TDate() TDate(int day) TDate(i
3、nt day, int month) TDate(int day, int month, int year) #include using namespace std;class TDate int Day, Month, Year;/*Program*/public:public: TDate () Day=0; Month=0; Year=0; ;TDate (int day) Month=0; Year=0; Day=day; TDate (int day, int month) Year=0; Day=day; Month=month; TDate (int day, int mont
4、h, int year) Day=day; Month=month; Year=year; /* End */ void display() if(Day+Month+Year=0) cout日期(rq)无效endl; else cout今天(jntin)是; if(Year!=0) coutYear年; if(Month!=0) coutMonth月; if(Day!=0) coutDay日endl; ;/end class TDate void main(void) TDate d1,d2(24),d3(24,3),d4(24,3,2012); d1.display (); d2.disp
5、lay (); d3.display (); d4.display ();/*-3题目:定义(dngy)一个三角形类Ctriangle,求三角形面积和周长#include #include using namespace std; class Ctriangle private: double a,b,c; public: Ctriangle(double x,double y,double z) a=x;b=y;c=z; double GetZhouChang(); double GetArea(); void display() coutCtriangle:a=a,b=b,c=cendl;
6、 coutZhouChang:GetZhouChang()endl; coutArea:GetArea()endl; ; /*Program*/double Ctriangle :GetZhouChang() return a+b+c; double Ctriangle :GetArea() double p=(a+b+c)/2; double t=p*(p-a)*(p-b)*(p-c); return sqrt(t) ; /* End */void main() Ctriangle T(3,4,5); T.display(); 4题目(tm):定义个time类,其三个数据成员(chngyun
7、)分别代表小时分秒,使其对象可以(ky)按格式“hh:mm:ss”显示时间。要求写一个带三个参数的默认构造函数。#include using namespace std;/*Program*/class Time int h,m,s;public:Time(int ss=0,int mm=0,int hh=0)h=hh;m=mm;s=ss;void print(void);/* End */void Time:print(void) couth:m:sendl;void main(void) Time t1(27,37,5), t2(27,37), t3(27), t4; cout格式(g s
8、hi)=hh:mm:ssendl; t1.print(); t2.print(); t3.print(); t4.print();数组与指针(zhzhn)1题目(tm):有一个数组,内放10个整数,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换。#include #include using namespace std;void main() int a10; int i,min,j,temp;/min为最小值,j为最小值下标 cout请输入10个数n; for(i=0;iai;/*Program*/ min=a0;j=0; for(i=0;i10;i+) if(ai=min)
9、j=i; min=ai; temp=aj;aj=a0;a0=temp;cout交换后数组endl; for(i=0;i10;i+) coutai ; coutendl;/* End */2题目:下面的函数(hnsh)统计子字符串substr在字符串str中出现(chxin)的次数,如果substr在str中不出现(chxin),则返回值0。请完成该函数。格式:int str_count(char *substr, char *str)输出结果见图:样张.JPG-*/#include #include using namespace std;/*Program*/int str_count(ch
10、ar *substr, char *str)int q=strlen(substr),p=strlen(str),a=0,w=0,y=0,b=0,o=0; for(int i=0;ip;i+)/q,p表示字符串的长度 for(a=0;aq;a+)/先在字符串s中 int b=i; if(substra=strb)/当字符串ss的第一个字符与字符串s的第a个字符相等时; w+;b=b+1;/w表示字符串s中能与ss相等的数目; if(w=q) y+;w=0;/当又一次在s中寻找到ss时y+; continue; return y;/* End */void main(void) char ss1
11、00; char *s=ABCDabcd1234+-*/XYZxyz/ABCDabcd1234+-*/Aa1 ABCDabcd; cout母串=sendl; cout待计数子串=; cin.getline(ss,99); cout子串在母串中共出现str_count(ss,s)次endl;3题目:定义(dngy)一个函数min,求n个数中的平均值、最小数和其下标(xi bio),并在主函数(hnsh)中打印平均值、最小数和下标。格式:int min(int *s, int n,double &aver)注意:如有多个最小值,以第一个为准。输出结果见图:样张.JPG-*/#include usi
12、ng namespace std;/*Program*/int min(int *s, int n,double &aver)int j=0,i;double sum=s0;for(i=1;in;i+)sum+=si;if(sisj)j=i;aver=sum/n;return j;/* End */void main(void) int pos; double aver; int s10=34,12,83,56,29,93,56,12,88,72; int s13=12,83,56; int n=10; int i; pos=min(s,n,aver); coutn个数如下:endl; for
13、(i=0;in;i+ ) coutsi ; coutn平均值=averendl; cout最小值=sposendl; cout位置=pos+1endl; n=3; pos=min(s1,n,aver); coutn个数如下:endl; for(i=0;in;i+ ) couts1i ; coutn平均值=averendl; cout最小值=s1posendl; cout位置(wi zhi)=pos+1endl;4题目(tm):输入一个16进制数,将其转换(zhunhun)为10进制数输出结果见图:样张.JPG#include#includeusing namespace std;void ma
14、in() char data164=A7; int data10=0,d; int i; /*Program*/ 方法1sscanf( data16, %X, &data10 );方法2/for(i=0;data16i!=0;i+)/ /d=(data16i=0&data16i=9)/?data16i-0:data16i-A+10);/data10=data10*16+d;/ /* End */ coutdata10endl;5题目:有一个34的矩阵,要求编写程序求出其中值最大的那个元素的值,以及其所在的行号和列号。运行结果见样张.JPG#include using namespace std
15、;void main(void) int a34 = 1,3,5,6,8,10,11,9,18,13,14,15; int max; / 保存最大值 int n; / 保存最大值所在行的行号 int m; /保存最大值所在列的列号/*Program*/max=0;max=a00; for(int i=0;i3;i+)/i是行,三行四列;/这里的ij要注意顺序。 for(int j=0;jmax)max=aij; n=i; m=j;/* End */ couta34矩阵(j zhn)中最大的值为:maxendl; cout最大值行号(xn ho):nendl; cout最大值列号:mendl;/
16、*-数组与指针(zhzhn)21题目:输入一个字符串,把其中的字符按逆序输出,如输入light,输出thgil.#include#includeusing namespace std;void main() char c,str=light; int i,length; /*Program*/ int temp; int j=0; length=0; do if(strj!=0)/统计出字符串的长度; length+; j+; while(strj!=0); /coutlength; for(i=0;i(length-1)/2-1) strlength=0; break; /* End */
17、coutstrendl;2题目:m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回(fnhu),将低于平均分的分数放在below所指的数组中。例如(lr),但score数组的数据(shj)为10、20、30、40、50、60、70、80、90时,函数返回的人数应该时4,below中的数据应为10、20、30、40。输出结果见图:样张.JPG#include using namespace std;/*Program*/ int choose(int *grade,int N,int *below) int q=0,sum=0,ave=0; for
18、(int i=0;iN;i+) sum=sum+gradei; ave=sum/N; int j=0,w=0; for(i=0;iN;i+) if(gradeiave) belowj=gradei; j+; w+; belowj+1=0;/添加结束符;这一步不能至于括号外 return w; /* End */void main(void) const int N=9; int scoreN=10,20,30,40,50,60,70,80,90; int belowN=-1,-1,-1,-1,-1,-1,-1,-1,-1; int number,i; number=choose(score,N
19、,below); cout低于平均分的人数=numberendl; cout低于平均分的分数=; for(i=0;inumber;i+) coutbelowi ; coutendl; 3题目(tm):编写程序求解M*M矩阵(j zhn)的两条对角线上的元素之和。#include using namespace std;const int M=5;void main(void) int minor; / 主对角线上元素(yun s)之和 int leading; / 次对角线上元素之和 int aMM= 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,15,
20、16,17,18,19,20, 21,22,23,24,25 ;/*Program*/minor=0;leading=0; for(int i=0;i5;i+) minor=minor+aii;leading=leading+ai4-i;/* End */ cout主对角线上元素之和=leadingendl; cout次对角线上元素之和=minorendl;4题目:有n个数,已按由小到大顺序排列好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。输出结果见图:样张.JPG-*/#include #include using namespace std;void mai
21、n() int i,n,j; int a11=10,20,30,40,50,60,70,80,90,100; for(i=0;i10;i+) coutai ; coutendl; coutn;/*Program*/ int s=0,d=0;/sum表示数列(shli)长度;do s+; d+; while(ad!=0); int sum=0;/sum和s用两个(lin )变量较好。sum=s;asum=n;asum+1=0;int min=0,tep=0;for(i=0;i=sum;i+)min=i; for(j=i+1;jaj) min=j; tep=ai; ai=amin; amin=te
22、p;cout插入后的数组endl;for(i=0;isum+1;i+)coutai ;coutendl; /* End */类的组合(zh);1定义(dngy)一个点类Point,包括(boku)x坐标和y坐标(int)。定义一个CRect类,代表一个矩形,要求CRect类中有代表矩形的左上角坐标(x1,y1)和右下角坐标(x2,y2)点类的对象,要求CRect类中有两个成员函数RectHeight()和RectWidth(),通过这两个函数能得到矩形的高和宽。(高和宽必须为非负数)输出结果见样张.JPG#include #include using namespace std;/*Progr
23、am*/class Point public:int x,y;Point(int x1=0,int y1=0)x=x1;y=y1; void setP(int x1,int y1)x=x1;y=y1; ; class CRect Point lefttop,rightbottom; public: CRect(Point a,Point b):lefttop(a),rightbottom(b) CRect() void SetR(Point a,Point b)lefttop=a;rightbottom=b; int RectHeight() return fabs(lefttop.y-rig
24、htbottom.y); int RectWidth() return fabs(rightbottom.x-lefttop.x); ; /* End */int main() Point p1(1,9),p2(8,5),p3,p4; /p1-左上角坐标 1-x坐标 9-y坐标 p2-右下角坐标 8-x坐标 5-y坐标 CRect cr(p1,p2),cr1; coutHeight=cr.RectHeight()endl; /输出矩形高度 coutWidth=cr.RectWidth()endl; /输出矩形宽度 p3.setP(1,1);/改变p坐标 p4.setP(3,5); / 改变(g
25、ibin)p4坐标(zubio) cr1.SetR(p3,p4); /p3-左上角坐标(zubio) p4-右下角坐标 coutHeight=cr1.RectHeight()endl; coutWidth=cr1.RectWidth()endl; return 0;2题目:定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径和表示圆心坐标的点类对象。圆类成员函数包括构造函数、求面积的函数和输出显示圆心坐标及圆半径的函数。输出结果见样张.JPG#include using namespace std;const double PI=3.14159;/*Pr
26、ogram*/class Point int x,y; public: Point()x=y=0; Point(int xx,int yy) x=xx;y=yy; SetP(int xx,int yy) x=xx;y=yy; int getX()return x; int getY()return y; ; class Circle double radius; Point p1; public: Circle() p1.SetP(0,0); radius=0; Circle(Point pp,int r) p1.SetP(pp.getX(),pp.getY(); radius=r; SetC
27、C(Point pp,int r) p1.SetP(pp.getX(),pp.getY(); radius=r; double getArea(); void show(); ;double Circle:getArea() return PI*radius*radius;/* End */void Circle:show()cout圆心X坐标=p1.getX(),圆心Y坐标=p1.getY()endl; cout圆半径=radiusendl;int main() Point p1(9,2),p2; /9为x坐标,2为y坐标 Circle c1(p1,7),c2; /7为半径 p1为圆心点 c
28、1.show(); cout圆的面积(min j)=c1.getArea()endl; p2.SetP(1,1);/改变(gibin)圆心坐标 c2.SetCC(p2,4);/以p2为圆心坐标(zubio),改变c2的半径 c2.show();/显示c2 cout圆的面积=c2.getArea()endl; return 0;综合题5 题目:编写函数计算y=1!+2!+3!.n! ,n作为参数传递,在主函数调用该函数并输出结果。注意:自己定义的函数中不能有cout!运行结果见图 样张.JPG#include using namespace std;/*Program*/int fun(int
29、n)int t=1,s=0; for(int i=0;in; cout1!+2!+3!.+n!=fun(n)endl; return 0; 7电文(dinwn)加密的算法是:将字母A变成F,a变成f,B变成G,b变成g,依次(yc)类推,V变成A,W变成B,等等(dn dn)。其他字符不变。从键盘输入一串电文,用函数将其加密,再在主函数中输出加密后的串。输出结果见图:样张.JPG#include using namespace std;/*Program*/char s10; int i=0; char encryptionCH(char x) si=x; char en10; if(si=A&si=a&si=V&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国手机镜头行业并购重组扩张战略制定与实施研究报告
- 2025-2030年中国LED 驱动芯片行业营销创新战略制定与实施研究报告
- 2025-2030年中国北斗卫星手表行业商业模式创新战略制定与实施研究报告
- 2025-2030年中国中餐行业开拓第二增长曲线战略制定与实施研究报告
- 市政道路竣工验收质量评估报告-定稿
- 建设项目环境保护设施竣工验收程序及说明-(空白表)
- 者楼镇高洛小学文明礼仪实施方案
- 化纤高档服装项目可行性研究报告
- 医疗器械定期风险评价报告范文
- 2022-2027年中国血管舒缓素行业发展监测及投资战略咨询报告
- 小学六年级数学100道题解分数方程
- GB/T 17684-2008贵金属及其合金术语
- 安全管理流程图加强完善版
- 第一讲-研发创新型企业需要IPD(下)徐骥课程-
- 2022年08月北京外交学院非事业编科研助理招聘14人高频考点卷叁(3套)答案详解篇
- 甲状腺结节的超声规范化诊断教学课件
- 职业健康监护技术规范
- 安徽省白酒生产企业名录395家
- 多媒体技术与应用ppt课件(完整版)
- 2022年五年级数学兴趣小组活动记录
- 阅读题赊小鸡
评论
0/150
提交评论