面向对象程序设计简答题.docx
《面向对象程序设计简答题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计简答题.docx(56页珍藏版)》请在冰豆网上搜索。
面向对象程序设计简答题
1、
请在横线中填入程序,完成如下PID控制仿真程序.(注意符号、标点符号、括号用半角)
#include
classAAA
{
intA,B;
public:
AAA()
{A=100;B=200;
cout<<"deflatconstructing\n";
}
AAA(inti,intj)
{A=i,B=j;
cout<<"constructing\n";}
~AAA(){cout<<"destructing\n";}
voidprint()
{cout<<><><><"\n";}>
friendintadd(AAA&s1);
};
intadd(AAA&s1)
{return(s1.A+s1.B);}
voidmain()
{AAAa1,*a2;
ints;
a2=newAAA(5,6);
a1.print();
a2->print();
s=add(*a2);
cout<<”s=”<<><>
deletea2;
}
运行结果是:
问题反馈
【教师释疑】
正确答案:
【defaultconstructingdeflatconstructingconstructing100,2005,6s=11destructingdestructing】
2、#include
classCdate
{
intday,month,year;
public:
Cdate()
{
day=1;
month=1;
year=1999;
cout<<"defaultconstructing\n";}
Cdate(intd,intm,inty)
{
day=d;
month=m;
year=y;
cout<<"constructing\n";
}
~Cdate(){cout<<"destructing"<<><"><><><>voidprint()
{cout<<><"><><>};
voidmain()
{Cdatea1,*a2;
a2=newCdate(30,12,1996);
a1.print();
a2->print();
deletea2;
}
运行结果是:
<"><">问题反馈
【教师释疑】
正确答案:
【defaultconstructingconstructing1/1/199912/30/1996destructing12/30/1996destructing1/1/1999】
3、#include
voidf(int*p1,int*p2)
{int*t;
t=p1;p1=p2;p2=t;
}
main()
{inta=10,b=20;
cout<<><>
f(&a,&b);
cout<<><>
}
问题反馈
【教师释疑】
正确答案:
【10201020】
4、#include
fun(int*s,intn1,intn2)
{intt;
while(n1<>
{t=*(s+n1);
*(s+n1)=*(s+n2);
*(s+n2)=t;
n1++;n2--;}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
fun(p,0,3);fun(p+3,1,6);
for(i=0;i<10;i++)
{if(i%5==0)cout<<>
cout<
}
运行结果:
问题反馈
【教师释疑】
正确答案:
【08】
1、#include
#include
#include
main()
{
inta=4,b=5,c,d;
cout<<”sqrt(a)=”<c=a>b?
a:
b;
cout<<”c=”<<>
cout<<><><><>
d=a;
if(a>b)
d=8;
elseif(a==b)
d=0;
else
d=-1;
cout<<”d=”<<><>
}
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【sqrt(a)=2c=545d=-1】
2、#include
#include
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1<>
{
s=*p1;*p1=*p2;*p2=s;
p1++;
p2--;
}
}
main()
{
chara[10]="abcdefghi";
char*p=newchar[10];
strcpy(p,"student");
cout<<"compare:
"<<>
if(strcmp(a,p)==0)
cout<<"a==p"<<>
if(strcmp(a,p)>0)
cout<<"a>p"<<>
if(strcmp(a,p)<0)
cout<<"a
cout<<"before:
\n";
cout<<><>
cout<<><>
cout<<"callfun"<<>
fun(a,strlen(a));
fun(p,strlen(p));
cout<<"after:
\n";
cout<<><>
cout<<><>
}
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【campare:
a】
3、#include
floatconstPI=3.14;
classpoint
{
private:
floatx,y,area;
public:
point(floatx1=0.0,floaty1=0.0)
{
cout<<"point构造函数被调用!
\n";
}
virtual~point()
{
cout<<"point析构函数被调用!
\n";}
virtualfloatgetarea(){return0.0;}
};
classcircle:
publicpoint
{private:
floatr;
public:
circle(floatx1,floaty1,floatNr):
point(x1,y1)
{
r=Nr;
cout<<"circle构造函数被调用!
\n";
}
~circle(){cout<<"circle析构函数被调用!
\n";}
floatgetarea()
{
returnPI*r*r;
}
};
voidmain()
{
point*p,p1(3,4);
p=&p1;
coutcirclec(1,1,1);
p=&c;
cout
}
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【point构造函数被调用!
0point构造函数被调用!
circle构造函数被调用!
3.14circle析构函数被调用!
point析构函数被调用!
point析构函数被调用!
】
4、#include
classTest;
voidfun1(Testt);
Testfun2();
classTest
{
public:
Test(intn=1){val=n;cout<<"Con."<
Test(constTest&t){val=t.val;cout<<"Copycon."<<>
Test&operator=(Test&t)
{
val=t.val;
cout<<"Assignment."<<>
return*this;
}
private:
intval;
};
voidmain()
{
Testt1
(1);
Testt2=t1;
Testt3;
t3=t1;
fun1(t2);
t3=fun2();
}
voidfun1(Testt){}
Testfun2()
{
Testt;
returnt;
}
运行结果为:
问题反馈
【教师释疑】
正确答案:
【Con.Copycon.Con.Assignment.Copycon.Con.Copycon.Assignment.】
1、intfun(inti,intj)
{
ints;
i=i+2;
j=j-1;
s=i+j;
returns;
}
voidmain()
{
inti=4,j=5;
cout<<><”><><”=""><=""fun(i,j)="">};
程序运行结果为:
<”>问题反馈
【教师释疑】
正确答案:
【4510】
2、inty=1,x,*p,a[]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
cout<<>
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【19】
3、#include
classA{
inta;
public:
A(intaa=0){a=aa;}
~A(){cout<<"DestructorA!
"<<><>
};
classB:
publicA{
intb;
public:
B(intaa=0,intbb=0):
A(aa){b=bb;}
~B(){cout<<"DestructorB!
"<<><>
};
voidmain()
{
Bx(5),y(6,7);:
}
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【DestructorB!
7DestructorA!
6DestructorB!
0DestructorA!
5】
4、lassBox{
private:
inta,b,c;
public:
Box(inta1,intb1,intc1)
{a=a1;
b=b1;
c=c1;}
intvolum()
{
intv;
v=a*b*c;
returnv;
}};
voidmain()
{
Boxbox(4,5,6);
cout<<”体积为:
”<<>
}
程序运行结果为:
问题反馈
【教师释疑】
正确答案:
【体积为:
120】
5、#include
#include
voidmain()
{
inti,max;
charch;
charstr[]="1234567";
for(i=0,j=strlen(str)-1;i;i++,j--)
{
ch=str[i];
str[i]=str[j];
str[j]=ch;
}
cout<<><>
}
程序运行结果
问题反馈
【教师释疑】
正确答案:
【7654321】
6、
不用第三个变量,实现两个数的对调操作。
#include
intmain()
{
inta,b;
cin>>a>>b;
cout<<><><>
a=【?
】;
b=【?
】;
a=【?
】;
cout<<><>
}
问题反馈
【教师释疑】
正确答案:
【a+b|a-b|a-b】
7、
分别求出一批非零整数中的偶数、奇数的平均值,用零作
为终止标记。
#include
intmain()
{
intx,i=0,j=0;
floats1=0,s2=0,av1,av2;
cin>>x;
while(【?
】)
{
if(x%2==0){s1=s1+x;i++;}
【?
】
{
s2=s2+x;
j++;
}
【?
】;
}
if(i!
=0)
av1=s1/i;
else
av1=0;
if(j!
=0)
【?
】;
else
av2=0;
cout<<"oushujunzhi:
"<<"jishujunzhi><><><>
return0;
}
<><><>问题反馈
【教师释疑】
正确答案:
【x!
=0或x|else或elseif(x%2==1)或elseif(x%2!
=0)或if(x%2)|cin>>x|av2=s2/j】
8、统计一个字符串中的字母、数字、空格和其它字符的个数。
#include
intmain()
{
chars1[80];inta[4]={0};
intk;
【?
】;
gets(s1);
【?
】;
puts(s1);
for(k=0;k<4;k++)
cout<<>
}
voidfun(chars[],intb[])
{
inti;
for(i=0;s[i]!
='\0';i++)
if('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
elseif(【?
】)
b[1]++;
elseif(【?
】)
b[2]++;
else
b[3]++;
return0;
}
问题反馈
【教师释疑】
正确答案:
【voidfun(chars[],intb[])|fun(s1,a)|】
9、
输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
include
intmain()
{
intm,n,k,i=0;
for(m=100;m<=1000;m++)
{
【?
】;
n=m;
do
{
k=k+【?
】;
n=n/10;
}
【?
】;
if(k%15==0)
{
cout<<>
i++;
if(i%10==0)【?
】;
}
}
retun0;
}
问题反馈
【教师释疑】
正确答案:
【k=0|n%10或n-n/10*10或n-10*(n/10)|while(n>0)或while(0】
1、以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,然后输出a,b,c的值。
请填空。
#include
main()
{
inta,b,c;
inttemp;
cout<<"Entera,b,c:
";
cin>>a>>b>>c;
temp=[];
a=b;
b=[];
[]
cout<<"a="<
}问题反馈
【教师释疑】
正确答案:
【#includeintmain(){inta,b,c;inttemp;cout<<"Entera,b,c:
";cin>>a>>b>>c;temp=[];a=b;b=[];[]cout<<"a="<2、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数.请填空.
#include
#include
main()
{
intn,i,j;
cout<<"输入非零的整数(输入零结束程序)";
i=j=0;
cin>>n;
while[]
{
if(n>0)
i=[];
if(n<0)
[];
cin>>n
}
cout<<"i="<<><>
}问题反馈
【教师释疑】
正确答案:
【#include#includeintmain(){intn,i,j;cout<<"输入非零的整数(输入零结束程序)";i=j=0;cin>>n;while[<(n!
=0)>]{if(n>0)i=[];if(n<0)[];cin>>n}cout<<"i="<3、斐波那契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:
0,1,1,2,3,5,8,13,21,...等。
下面这个程序就是求斐波哪契数列的前20个数。
请填空。
#include
voidmain()
{
intf,f1,f2,i;
f1=0;f2=1;
cout<<><><><>
for(i=3;i<=20;[])
{
f=[];
cout<<><>
f1=f2;
f2=[];
}
}问题反馈
【教师释疑】
正确答案:
【#includevoidmain(){intf,f1,f2,i;f1=0;f2=1;cout<】
4、下面这个程序打印出以下这个三角形.请填空。
0
11
222
3333
44444
555555
6666666
77777777
888888888
9999999999
voidmain()
{
inti,j;
for(i=0;i<[];i++)
{
for(j=0;j<[];j++)
[];
cout<<>
}
}问题反馈
【教师释疑】
正确答案:
【voidmain(){inti,j;for(i=0;i<[<10>];i++){for(j=0;j<[];j++)[cout<];cout<】
5、如图所示,该算式在四个字母所在处欠缺四个数位,下面这个程序用穷举法搜寻解法。
请填空。
1A8
*3B
_________
C73D
#include
voidmain()
{
intA,B,C,D;
intx,y,z;
for(A=1;A<=9;A++)
for(B=1;B<=9;B++)
for(C=1;C<=9;C++)
for(D=1;D<=9;D++)
{
x=100+[]+8;
y=30+B;
z=[]+700+30+D;
if([])
cout<<"A="<<>
}
}问题反馈
【教师释疑】
正确答案:
【#includevoidmain(){intA,B,C,D;intx,y,z;for(A=1;A<=9;A++)for(B=1;B<=9;B++)for(C=1;C<=9;C++)for(D=1;D<=9;D++){x=100+[]+8;y=30+B;z=[]+700+30+D;if([])cout<<"A="<6、以下程序的功能是:
从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束,请填空。
#include
voidmain()
{
[];
cin>>x;
amax=x;
amin=x;
while([])
{
if(x>amax)
amax=x;
if([])
amin=x;
cin>>x;
}
cout<<"amax="<<>
}问题反馈
【教师释疑】
正确答案:
【#includevoidmain(){[];cin>>x;amax=x;amin=x;while([=0>]){if(x>amax)amax=x;if([】
7、以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
intfun(intn)
{
intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=[];
}
[]
}
voidmain()
{cout<<"m="<<[])<<>
问题反馈
【教师释疑】
正确答案:
【intfun(intn){intm=0,f=1,i;for(i=1;i<=n;i++){m+=i*f;f=[<-f或f*-1或-1*f或f*(-1)或(-1)*f>];}[]}voidmain(){cout<<"m="<<[])<】
8、函数fun的功能是计算x^n。
主函数中已经正确定义m、a、b变量并赋值,并调用fun函数计算:
m=a^4+b^4-(a+b)^3。
(说明:
x^n即x的n次幂)
#include
doublefun(doublex,intn)
{
inti;doubley=1;
for(i=1;i<=n;i++)
[];
[]
}
voidmain()
{
doublem,a,b;
a=7.3;
b=5.1;
m=[];
cout<<"m="<<><>
}问题反馈
【教师释疑】
正确答案:
【#includedoublefun(doublex,intn){inti;doubley=1;for(i=1;i<=n;i++)[];[]}voidmain(){doublem,a,b;a=7.3;b=5.1;m=[];cout<<"m="<】
9、以下程序的功能是:
在主函数中输入一个整数n,调用函数fun计算n的所有因子(不包括1与自身)之和。
#include
intfun(intx)
{
ints=0,i;
for(inti=2;i<=x-1;i++)
if([])
s+=i;
[];
}
voidmain()
{
intn,sum;
cout<<"请输入一个整数:
";
cin>>n;
cout<<[];
}问题反馈
【教师释疑】
正确答案:
【#includeintfun(intx){ints=0,i;for(inti=2;i<=x-1;i++)if([])s+=i;[];}voidmain(){intn,sum;cout<<"请输入一个整数:
";cin>>n;cout<<[】
10、以下程序的功能是将一个字符串的内容颠倒过来。
#include//或#include
#include
voidmain()
{
inti,max;
charch;
charstr[]="1234567";
for(i=0,j=strlen(str)-1;[<>];[])
{
ch=str[i];
[];
str[j]=ch;
}
printf("%s\n",str);//或cout<<><>
}问题反馈
【教师释疑】
正确答案:
【以下程序的功能是将一个字符串的内容颠倒过来。
#include//或#include#includevoidmai