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