C++.docx
- 文档编号:28730228
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:25
- 大小:23.21KB
C++.docx
《C++.docx》由会员分享,可在线阅读,更多相关《C++.docx(25页珍藏版)》请在冰豆网上搜索。
C++
ProblemA:
重载函数:
max
TimeLimit:
1Sec MemoryLimit:
128MB
Submit:
2926 Solved:
2256
[Submit][Status][WebBoard]
Description
编写两个名为max的函数,它们是重载函数,用于求两个整数或实数的最大值。
它们的原型分别是:
intmax(inta,intb);
doublemax(doublea,doubleb);
返回值是a和b的最大值。
Input
输入4个数,前两个数是int类型的整数,后2个数是double类型的实数。
Output
输出2个数,每个数占一行。
第一个数对应于输入的两个整数的最大值,第二个数对应于输入的两个实数的最大值。
SampleInput
121.41.3
SampleOutput
21.4
HINT
AppendCode
append.cc,
#include
usingnamespacestd;
intmax(inta,intb)
{
returna>b?
a:
b;
}
doublemax(doublea,doubleb)
{
returna>b?
a:
b;
}
intmain()
{
inta,b;
doublec,d;
cin>>a>>b;
cout< cin>>c>>d; cout< return0; } ProblemB: 默认参数: 求圆面积 TimeLimit: 1Sec MemoryLimit: 128MB Submit: 2684 Solved: 2124 [Submit][Status][WebBoard] Description 编写一个带默认值的函数,用于求圆面积。 其原型为: doublearea(doubler=1.0); 当调用函数时指定参数r,则求半径为r的圆的面积;否则求半径为1的圆面积。 其中,PI取值3.14。 Input 一个实数,是圆的半径。 Output 输出有2行。 第一行是以输入数值为半径的圆面积,第二行是半径为1的圆面积。 SampleInput 19 SampleOutput 1133.543.14 HINT AppendCode append.cc, #include usingnamespacestd; doublearea(doubler=1.0) { return3.14*r*r; } intmain() { doubler; cin>>r; cout< cout< return0; } ProblemC: 求(x-y+z)*2 TimeLimit: 1Sec MemoryLimit: 128MB Submit: 1988 Solved: 1677 [Submit][Status][WebBoard] Description 编写一个程序,求解以下三个函数: f(x,y,z)=2*(x-y+z) f(x,y) =2*(x-y) f(x) =2*(x-1) 函数调用格式见append.cc。 append.cc中已给出main()函数。 Input 输入的测试数据为多组。 每组测试数据的第一个数是n(1<=n<=3),表示后面有n个整数。 当n为3时,后跟3个输入为x,y,z; 当n为2时,后跟2个输入为x,y; 当n为1时,后跟1个输入为x; 当n为0时,表示输入结束 输入的n不会有其他取值。 所有运算都不会超出int类型范围。 Output 每组测试数据对应一个输出。 输出x-y+z的值。 SampleInput 3121384523911173 SampleOutput 25656144 HINT AppendCode append.cc, #include usingnamespacestd; intf(intx,inty,intz) { return2*(x-y+z); } intf(intx,inty) { return2*(x-y); } intf(intx) { return2*(x-1); } intmain() { intn,x,y,z; while(cin>>n) { if(n==3) { cin>>x>>y>>z; cout< } if(n==2) { cin>>x>>y; cout< } if(n==1) { cin>>x; cout< } if(n==0) break; } } ProblemD: 编写函数: Swap(I)(AppendCode) TimeLimit: 1Sec MemoryLimit: 16MB Submit: 7178 Solved: 5079 [Submit][Status][WebBoard] Description 编写用来交换两个数的函数,使得“AppendCode”中的main()函数能正确运行。 ----------------------------------------------------------------------------- 用C实现三个函数int_swap()、dbl_swap()、SWAP(),其中SWAP()是个带参宏。 用C++实现两个函数,都以swap()命名。 以上函数的调用格式见“AppendCode”。 这里不给出函数原型,它们的参数请通过main()函数自行确定。 Input 输入为4行,每行2个数。 Output 输出为4行,每行2个数。 每行输出的两数为每行输入的逆序。 SampleInput 12579-3-12435 SampleOutput 5712-394-1253 HINT “AppendCode”中用到的头文件、全局变量或宏的定义应自行补充。 AppendCode append.c, append.cc, #include usingnamespacestd; voidswap(int*x1,int*y1) { intt; t=*x1; *x1=*y1; *y1=t; } voidswap(double*x2,double*y2) { doublet1; t1=*x2; *x2=*y2; *y2=t1; } intmain() { intx1,y1; cin>>x1>>y1; swap(&x1,&y1); cout< cin>>x1>>y1; swap(x1,y1); cout< doublex2,y2; cin>>x2>>y2; swap(&x2,&y2); cout< cin>>x2>>y2; swap(x2,y2); cout< } ProblemE: 编写函数: 三个数的最大最小值(AppendCode) TimeLimit: 1Sec MemoryLimit: 2MB Submit: 5131 Solved: 3346 [Submit][Status][WebBoard] Description 给出三个数a,b,c,最大值是? 最小值是? ----------------------------------------------------------------------------- 编写以下两个函数: get_num()的功能是读取输入的三个整数a,b,c; max_min()的功能是求出a,b,c的最大值和最小值。 以上函数的调用格式见“AppendCode”。 这里不给出函数原型,请通过main()函数自行确定。 Input 输入的第一个整数n,表示有n组测试数据,每组3个整数: a,b,c。 a,b,c都在int类型范围内。 Output 每组测试数据对应输出一行: 为a,b,c的最大值和最小值,格式见sample。 SampleInput 5201510101520100100001-1000 SampleOutput case1: 20,10case2: 20,10case3: 100,0case4: 1,-1case5: 0,0 HINT AppendCode append.c, append.cc, #include usingnamespacestd; intget_num(int&a,int&b,int&c) { cin>>a>>b>>c; } intmax_min(int&mmax,int&mmin,int&a,int&b,int&c) { if(a>b) mmax=a; else mmax=b; if(mmax mmax=c; if(a>b) mmin=b; else mmin=a; if(mmin>c) mmin=c; returnmmax,mmin; } intmain() { intcases; intmmax,mmin,a,b,c; cin>>cases; for(inti=1;i<=cases;++i) { get_num(a,b,c); max_min(mmax,mmin,a,b,c); cout<<"case"< "< } } ProblemF: 平面上的点——Point类(I) TimeLimit: 1Sec MemoryLimit: 4MB Submit: 6823 Solved: 2994 [Submit][Status][WebBoard] Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定。 现在我们封装一个“Point类”来实现平面上的点的操作。 根据“append.cc”,完成Point类的构造方法和show()方法。 接口描述: Point: : show()方法: 按输出格式输出Point对象。 Input 输入多行,每行为一组坐标“x,y”,表示点的x坐标和y坐标,x和y的值都在double数据范围内。 Output 输出为多行,每行为一个点,X坐标在前,Y坐标在后,Y坐标前面多输出一个空格。 每个坐标的输出精度为最长16位。 输出格式见sample。 C语言的输入输出被禁用。 SampleInput 1,23,32,1 SampleOutput Point: (1,2)Point: (3,3)Point: (2,1)Point: (0,0) HINT 注意精度控制,C语言的输入输出被禁用。 AppendCode append.cc, #include #include usingnamespacestd; classPoint { private: doublex,y; public: Point(doublexx,doubleyy) { x=xx; y=yy; } Point() { x=y=0; } voidshow() { cout< '<<""<<'('< } }; intmain() { charc; doublea,b; Pointq; while(std: : cin>>a>>c>>b) { Pointp(a,b); p.show(); } q.show(); } ProblemG: 定义一个类——myClass TimeLimit: 1Sec MemoryLimit: 128MB Submit: 765 Solved: 567 [Submit][Status][WebBoard] Description 有如下一个类: classmyClass { private: intattribute; public: myClass(inta=0); voidsetAttr(inta); //用于修改attribute的值 voidprintInfo(); //用于输出attrubute }; 请实现类的各个成员函数,使其能满足main函数中使用该类的需要。 Input 一个正整数。 Output 三个正整数,每个占一行。 SampleInput 25 SampleOutput 10025 HINT AppendCode append.cc, #include usingnamespacestd; classmyClass { private: intattribute; public: myClass(inta=0); voidsetAttr(inta); voidprintInfo(); }; myClass: : myClass(inta) { attribute=a; } voidmyClass: : setAttr(inta) { attribute=a; } voidmyClass: : printInfo() { cout< } intmain() { myClassm1(10),m2; inta; m1.printInfo(); m2.printInfo(); cin>>a; m2.setAttr(a); m2.printInfo(); return0; } ProblemH: 时间类的构造和输出 TimeLimit: 4Sec MemoryLimit: 128MB Submit: 2292 Solved: 1863 [Submit][Status][WebBoard] Description 封装一个时间类Time,用于时间处理的相关功能,支持以下操作: 1.Time: : Time(int,int,int)构造方法: 传递时分秒的三个参数构造对象。 2.Time: : showTime()方法: 输出“hh: mm: ss”,不足两位的要前面补0。 你设计一个时间类Time,使得main()函数能够正确运行。 函数调用格式见append.cc。 append.cc中已给出main()函数。 Input 输入的第一个整数n,表示有n组测试数据,每组3个整数: hh,mm,ss,分别表示时、分、秒,其值都在合法的时间范围内。 Output 每组测试数据对应一组输出“hh: mm: ss”,不足两位的输出需要前面补0,格式见sample。 SampleInput 5001059591112300235959 SampleOutput 00: 00: 0100: 59: 5901: 01: 0123: 00: 0023: 59: 59 HINT 输出格式用头文件 setw(w) : 设置数据的输出宽度为w个字符 setfill(c): 设置用字符c作为填充字符 AppendCode append.cc, #include #include usingnamespacestd; classTime { private: inth,m,s; public: Time(inthh,intmm,intss) { h=hh; m=mm; s=ss; } voidshowTime() { cout< (2)< "; cout< (2)< "; cout< (2)< } }; intmain() { intcases; cin>>cases; for(inti=1;i<=cases;++i) { inthour,minute,second; cin>>hour>>minute>>second; Timet(hour,minute,second); t.showTime(); } } ProblemI: 时间类的成员读写 TimeLimit: 4Sec MemoryLimit: 128MB Submit: 2061 Solved: 1791 [Submit][Status][WebBoard] Description 封装一个时间类Time,用于时间处理的相关功能,支持以下操作: 1.Time: : Time()无参构造方法。 2.成员读函数: Time: : hour() : 返回Time的小时数; Time: : minute(): 返回Time的分钟数; Time: : second(): 返回Time的秒数。 3.成员写函数: Time: : hour(int) : 传参修改Time的小时数; Time: : minute(int): 传参修改Time的分钟数; Time: : second(int): 传参修改Time的秒数。 你设计一个时间类Time,使得main()函数能够正确运行。 函数调用格式见append.cc。 append.cc中已给出main()函数。 Input 输入的第一个整数n,表示有n组测试数据,每组3个整数: hh,mm,ss,分别表示时、分、秒,其值都在合法的时间范围内。 Output 每组测试数据对应一组输出“hh: mm: ss”,不足两位的输出需要前面补0,格式见sample。 SampleInput 5001059591112300235959 SampleOutput 00: 00: 0100: 59: 5901: 01: 0123: 00: 0023: 59: 59 HINT 输出格式用头文件 setw(w) : 设置数据的输出宽度为w个字符 setfill(c): 设置用字符c作为填充字符 AppendCode append.cc, #include #include usingnamespacestd; classTime { private: inth,m,s; public: voidhour(inthh) { h=hh; } voidminute(intmm) { m=mm; } voidsecond(intss) { s=ss; } inthour() { returnh; } intminute() { returnm; } intsecond() { returns; } }; intmain() { Timet; intcases; cin>>cases; for(inti=1;i<=cases;++i) { inthour,minute,second; cin>>hour>>minute>>second; t.hour(hour); t.minute(minute); t.second(second); cout< (2)< "; cout< (2)< "; cout< (2)< } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+