001017面向对象程序设计天津大学考试参考资料答案Word文件下载.docx
《001017面向对象程序设计天津大学考试参考资料答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《001017面向对象程序设计天津大学考试参考资料答案Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
+'
cout<
a<
'
b<
='
a+b<
endl;
break;
-'
a-b<
*'
a*b<
/'
a/b<
%'
a%b<
default:
运算符错误!
}
}
若程序运行时输入:
5/8
则输出结果是:
输出结果:
5/8=0
2.
iomanip.h>
{
inti,j,k;
for(i=1;
i<
=3;
i++)//控制输出行
{
for(j=1;
j<
=6-i;
j++)//每行前的空格
cout<
"
//输出四个空格
for(k=1;
k<
=i;
k++)
setw(4)<
k;
for(k=i-1;
k>
0;
k--)
cout<
1
121
12321
3.
intm,n;
输入2个正整数:
cin>
m>
n;
while(m!
=n)
while(m>
n)
m=m-n;
while(n>
m)
n=n-m;
”m=”<
m<
输入:
921
m=3
4.
#include<
classfact{
private:
intn;
public:
voidsetn(inti){n=i;
intgetn(){returnn;
longgetfact();
voidprint(){cout<
n<
!
="
getfact()<
};
longfact:
getfact(){
inti;
longf=1;
for(i=n;
i>
1;
i--)
f*=i;
returnf;
factfa;
for(inti=1;
=6;
i++)
fa.setn(i);
fa.print();
1!
=1
2!
=2
3!
=6
4!
=24
5!
=120
6!
=720
5.
voidweaver(char*str1,char*str2,char*str3)
while(*str1!
=NULL&
&
*str2!
=NULL)
*(str3++)=*(str1++);
*(str3++)=*(str2++);
*str3=0;
charstr1[]天津大学考试参考资料参考的答案="
xyz"
char*str2="
123"
charstr3[100]天津大学考试参考资料参考的答案;
weaver(str1,str2,str3);
str3<
x1y2z3
6.#include<
inta[4]天津大学考试参考资料参考的答案,i,j,k;
for(i=0;
4;
i++)
a[i]天津大学考试参考资料参考的答案=0;
k=3;
for(j=0;
j<
=k;
j++)
a[j]天津大学考试参考资料参考的答案=a[i]天津大学考试参考资料参考的答案+3;
a[1]天津大学考试参考资料参考的答案<
a[3]天津大学考试参考资料参考的答案<
1518
7.#include<
string.h>
char*max,str[3]天津大学考试参考资料参考的答案[10]天津大学考试参考资料参考的答案={"
Wang"
"
Zhang"
Li"
max=str[0]天津大学考试参考资料参考的答案;
3;
if(strcmp(max,str[i]天津大学考试参考资料参考的答案)<
0)
max=str[i]天津大学考试参考资料参考的答案;
Themaxstringis:
max<
Zhang
8.#include<
intf(intp);
inta[]天津大学考试参考资料参考的答案={1,2,3,4,5};
for(inti=0;
5;
f(a[i]天津大学考试参考资料参考的答案)<
intf(intp)
staticints=1;
s*=p;
returns;
12624120
9.#include<
classcube
public:
cube(intl=6,intw=4,inth=2)
{
le=l;
wd=w;
ht=h;
}
~cube()
le="
le<
wd="
wd<
ht="
ht<
volume="
volume()<
intvolume(){returnle*wd*ht;
private:
intle,wd,ht;
cubecone(10,8,5),ctwo;
le=6wd=4ht=2
volume=48
le=10wd=8ht=5
volume=400
10.#include<
for(a=1,b=1;
=10;
b++)
if(a>
=10)
break;
if(a==1)
{
a+=3;
continue;
a-=3;
a="
b="
a=1b=11
11.#include<
classmyclass
intx,y;
staticlongsum;
myclass(inta,intb){x=a;
y=b;
voidgetxy()
sum*=x*y;
sum="
sum<
longmyclass:
sum=1;
myclassob1(1,3);
ob1.getxy();
myclassob2(2,4);
ob2.getxy();
myclassob3(5,6);
ob3.getxy();
sum=3
sum=24
sum=720
12.#include<
intdays[]天津大学考试参考资料参考的答案={31,28,31,30,31,30,31,31,30,31,30,31};
classdate{
inty,m,d;
date(inty1,intm1,intd1){y=y1;
m=m1;
d=d1;
date(){y=0;
m=0;
d=0;
voiddisp(){cout<
y<
-"
d<
frienddateoperator+(date&
d2,intday);
dateoperator+(date&
d2,intday)
datedy;
dy.y=d2.y;
dy.m=d2.m;
day+=d2.d;
while(day>
days[dy.m-1]天津大学考试参考资料参考的答案)
day-=days[dy.m-1]天津大学考试参考资料参考的答案;
if(++dy.m==13)
dy.m=1;
dy.y++;
dy.d=day;
returndy;
dateda(2014,9,1),db,dc;
db=da+100;
db.disp();
dc=da+395;
dc.disp();
2014-12-10
2015-10-1
13.#include<
classAreaclass
Areaclass(doublex=0,doubley=0)
height=x;
width=y;
protected:
doubleheight;
doublewidth;
classBox:
publicAreaclass
Box(doubleh,doublew):
Areaclass(h,w){}
doubleArea();
classTriangle:
publicAreaclass
Triangle(doubleh,doublew):
Areaclass(h,w){}
doubleArea();
doubleBox:
Area(){returnheight*width;
doubleTriangle:
Area(){returnwidth*height*0.5;
Boxobj1(2.5,4.0);
Triangleobj2(4.0,3.5);
Box="
obj1.Area()<
Triangle="
obj2.Area()<
Box=10
Triangle=7
三.程序填空
1.以下程序将从键盘输入的20个整数按升序进行排序,并在屏幕上输出排序结果。
请在空白处填入合适的内容。
______________________;
inta[20]天津大学考试参考资料参考的答案,i;
20;
a[i]天津大学考试参考资料参考的答案;
__________________;
i++)//输出排序后结果,每行输出5个数
a[i]天津大学考试参考资料参考的答案<
if(______________)
voidsortdata(inta[]天津大学考试参考资料参考的答案)
intt;
19;
for(intj=0;
20-i-1;
if(_______________)
{
t=a[j]天津大学考试参考资料参考的答案;
a[j]天津大学考试参考资料参考的答案=a[j+1]天津大学考试参考资料参考的答案;
a[j+1]天津大学考试参考资料参考的答案=t;
}
voidsortdata(inta[]天津大学考试参考资料参考的答案)
sortdata(a)
++i%5==0
a[j]天津大学考试参考资料参考的答案<
a[j+1]天津大学考试参考资料参考的答案
2.下面是统计一个英文句子中单词个数、最长单词及其字符数的程序,请在空白处填入合适的内容。
constintSIZE=20;
charbuf[SIZE]天津大学考试参考资料参考的答案;
charlargest[SIZE]天津大学考试参考资料参考的答案;
intcurLen,maxLen=-1;
;
Inputwords:
\n"
while()
curLen=strlen(buf);
cnt++;
if()
maxLen=curLen;
}
cnt<
maxLen<
largest<
intcnt=0
cin>
buf
curLen>
maxLen
strcpy(largest,buf)
3.以下程序的功能是输出100以内被4整除且个位数为6的所有整数。
请在横线处填写适当内容。
voidmain(){
inti,k;
for(i=0;
i<
________;
i++){
k=+6;
if()continue;
100
i*10
k%4
4.以下程序实现复数加和复数赋制运算,请在空白处填入合适的内容。
classcomplex{
doublereal,image;
complex(){real=0;
image=0;
complex(doubler,doublei){real=r;
image=i;
complexoperator+(complex&
a,constcomplex&
b);
complex________________(complex&
c);
voidprint();
complexoperator+(complex&
b)
returncomplex(a.real+b.real,a.image+b.image);
complex&
complex:
operator=(complex&
c)
real=c.real;
imag=c.imag;
return;
voidcomplex:
print()
real<
”+”<
image<
{complexc1,c2(1.5,4.0),c3(6.5,-2.8);
complexc4=c2+c3;
c1=c4;
c1.print();
c4.print();
friend
operator=
*this
5.以下的程序实现求分数序列2/1,3/2,5/3,8/5,13/8,21/13,……前10项的和。
在横线处填写适当内容。
#defineN10
inti,m,n,k;
;
m=2,n=1;
for(i=1;
;
i++){
s=s+1.0*m/n;
k=m;
m=;
n=;
”s=”<
s<
doubles=0
=N
m+n
k
6.以下程序将从data1.dat中读出的内容显示在屏幕上,并将其中的字母写到文件data2.dat中去。
fstream.h>
intmain()
{charch;
fstreaminfile,outfile;
infile.open(,ios:
in);
if(!
infile)
{cout<
″文件1不能打开!
\n″;
return0;
outfile.open(,ios:
out);
outfile)
″文件2不能打开!
return0;
while(infile.get(ch))
ch;
if(ch>
=’a’&
ch<
=’z’||ch>
=’A’&
=’Z’)
infile.close();
outfile.close();
return1;
”data1.dat”
”data2.dat”
ouffile.put(ch)或output<
ch
7.为使下面的程序执行后输出矩形的面积,请在空白处填入合适的内容。
classPoint{//定义点类
Point(doublei,doublej)
{x=i;
y=j;
doubleArea()const
{return0.0;
doublex,y;
classRectangle:
publicPoint{//定义矩形类(点类的公有派生类)
Rectangle(doublei,doublej,doublek,doublel):
Point(i,j)
{w=k;
h=l;
{returnw*h;
doublew,h;
voidmain()
Point*p;
Rectanglerec(3.5,1.2,5.2,7.5);
矩形的面积是:
p->
Area()<
virtual
virtualdoubleArea()const或doubleArea()const
p=&
rec
四.编程题
1.输入10个考生的学号和某门课的考试分数(0-100),然后根据每个学生的分数判断并显示每个学生的学号和等级。
等级关系为:
90<
=分数<
=100,等级为A;
80<
90,等级为B;
70<
80,等级为C;
60<
70,等级为C;
0<
60,等级为F。
当分数<
0或分数>
100时,显示“学号为**的考生成绩输入错”,并重新输入该生的成绩,不再输入学号。
inti,num,score;
请输入学生的学号和考试分数(0-100):
i