面向对象程序设计简答题.docx

上传人:b****6 文档编号:8581280 上传时间:2023-01-31 格式:DOCX 页数:56 大小:31.20KB
下载 相关 举报
面向对象程序设计简答题.docx_第1页
第1页 / 共56页
面向对象程序设计简答题.docx_第2页
第2页 / 共56页
面向对象程序设计简答题.docx_第3页
第3页 / 共56页
面向对象程序设计简答题.docx_第4页
第4页 / 共56页
面向对象程序设计简答题.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

面向对象程序设计简答题.docx

《面向对象程序设计简答题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计简答题.docx(56页珍藏版)》请在冰豆网上搜索。

面向对象程序设计简答题.docx

面向对象程序设计简答题

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;

cout

circlec(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1