02328面向对象程序设计3Word格式.docx
《02328面向对象程序设计3Word格式.docx》由会员分享,可在线阅读,更多相关《02328面向对象程序设计3Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
4.以下关于循环体的描述中,错误的是【C】A.循环体中可以出现break语句B.循环体中还可以出现循环语句
C.循环体中不能出现continue语句D.循环体中可以出现switch语句
5.for(i=0;
i<
5;
i++)语句执行循环的次数是【A】A.5B.1C.6D.无限
6.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是【D】A.3B.2C.4D.6
7.在调用函数时,如果实参是指针变量时,它与对应形参之间的数据传递方式是【B】A.单向值传递B.地址传递
C.由实参传给形参,再由形参传回实参D.传递方式由用户指定
8.考虑函数原型voidtest(inta,intb=7,char=’*’),下面的函数调用中,属于不合法调用的是【C】A.test(5)B.test(5,8)
C.test(6,”#”)D.test(0,0,‘*’)
9.继承类的构造顺序下面说法正确的是【B】A.先调用成员对象的构造函数B.先调用基类的构造函数
C.先调用自己的构造函数D.调用构造函数的顺序不确定
二、填空题(本大题共10小题,每小题2分,共20分)在每小题的空格中填上正确答案。
填错、不填均无分。
1.inta[2][3]={{5},{6}};
则数组元素a[0][0]的值为______。
2.C++程序设计中,可以将被调用函数中的值带回调用函数的三种方法分别是________________、通过全局变量返回和有通过数据文件返回。
3.含有纯虚函数的类叫______。
4.运算符重载时函数名由单词_______和运算符组成。
5.当建立一个新对象时,程序自动调用该对象的_______________函数。
6.对象是状态和________的封装体。
7.友元函数用关键字________说明,它可以访问类对象的所有成员。
8.C++中,多态性包含两种,________和动态。
三、阅读程序(本大题共4小题,每小题5分,共20分)请在每小题后的空白处填上程序运行结果。
1.#include<
>
classAAA
{
intA,B;
public:
AAA()
{A=100;
B=200;
cout<
<
"
deflatconstructing\n"
;
}
AAA(inti,intj)
{A=i,B=j;
constructing\n"
~AAA(){cout<
destructing\n"
voidprint()
{cout<
A<
"
B<
\n"
}
friendintadd(AAA&
s1);
};
intadd(AAA&
s1)
{return+;
voidmain()
{AAAa1,*a2;
ints;
a2=newAAA(5,6);
();
a2->
print();
s=add(*a2);
”s=”<
s<
endl;
deletea2;
}运行结果:
2.#include<
classCdate
intday,month,year;
Cdate()
day=1;
month=1;
year=1999;
defaultconstructing\n"
Cdate(intd,intm,inty)
day=d;
month=m;
year=y;
~Cdate(){cout<
destructing"
month<
/"
day<
year<
voidmain()
{Cdatea1,*a2;
a2=newCdate(30,12,1996);
}运行结果:
3.#include<
voidf(int*p1,int*p2)
{int*t;
t=p1;
p1=p2;
p2=t;
}
main()
{inta=10,b=20;
cout<
a<
””<
b<
f(&
a,&
b);
运行结果:
四、改错题(本大题共4小题,每小题5分,共20分)请找出程序中的错误语句并改正错误。
1.函数fun的功能是:
求1到20的阶乘的和。
程序中共有4条错误语句,请改正错误。
fun()
{
intn,j;
floats=,t;
for(n=1;
n<
=20;
n++)
{
s=1;
for(j=1;
j<
=n;
j++)
t=t*n;
s+t=s;
printf("
jiecheng=%d\n"
s);
fun();
3.函数fun的功能是:
实现交换两个整数的值。
例如给a和b分别输入3和6,输出为a=6b=3请改正程序中的4个错误,使它能得出正确的结果。
voidfun(inta,b)
intt;
t=a;
a=b;
b=t;
inta,b;
entera,b:
);
scanf("
%d%d"
&
fun(&
a=%db=%d\n"
a,b);
4.函数fun的功能是:
计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数值为4622。
请改正程序中的4个错误,使它能得出正确的结果。
intfun(intk)
intm=0,mc=0,j;
while((k>
=2)||(mc<
10))
{if((k%13=0)||(k%17=0))
{m=m+k;
mc++;
k++;
return;
%d\n"
fun(500));
五、编程题(本大题共3小题,第1小题6分,第2、3小题各7分,共20分)请在每小题后的空白处编写程序。
1.编程求1!
+3!
+5!
+7!
+9!
。
(6分)
2.设计一个简单的计算机程序,实现加、减、乘、除运算。
(7分)
答案及评分标准
2012年上半年中原工学院高等教育自学考试专科助学考试
一、选择题(本大题共20小题,每小题2分,共40分)
(1)C
(2)C(3)B(4)C(5)A
(6)D(7)B(8)C(9)B
二、填空题(本大题共20小题,每空1分,共20分)
1.5
2.通过return语句返回
3.抽象类
4.Operator
5.构造函数
6.操作
7.friend
8.静态
三、请阅读以下程序,写出运行结果(本大题共5小题,每小题4分,共20分)
1.(本小题共5分)运行结果:
defaultconstructingdeflatconstructing(1分)
constructing(1分)
100,200
5,6(1分)
s=11(1分)
destructing(1分)
destructing
2.(本小题共5分)运行结果:
defaultconstructing(1分)
1/1/1999(1分)
12/30/1996(1分)
destructing12/30/1996
destructing1/1/1999(1分)
3.(本小题共5分)运行结果:
1020分)
四、改错题(本大题共4小题,每空5分,共20分)
1.
(1)t=1;
或t=;
(1分)
(2)t=t*j;
或t*=j;
(3)s=s+t;
或s+=t;
(1分)
(4)printf("
jiecheng=%f\n"
(2分)
2.
(1)for(i=2;
=m;
i++)或for(i=2;
m>
=i;
m+1;
1+m;
m+1>
i;
1+m>
i++)
(2)y-=(i*i);
或y=(i*i);
或y-=(float)(i*i);
或y=(float)(i*i);
或y=i/i;
或y=(float)i/(float)i;
(3)returny;
或return(y);
或return(y);
3.
(1)voidfun(int*a,int*b)或fun(int*a,int*b)(2分)
(2)t=*a;
(1分)
(3)*a=*b;
(4)*b=t;
五、编程题(本大题共3小题,第1小题6分,第2、3小题各7分,共20分)
1.#include<
inti,j;
doubles,sum=0;
//1分
for(i=1;
=9;
i=i+2)//4分
{s=1;
s=s*j;
sum=sum+s;
1!
="
sum<
//1分
2.
#include<
voidmain()
{floatnum1,num2,result;
charop;
输入操作数1,运算符,操作数2:
cin>
num1>
op>
num2;
switch(op){//3分
case'
+'
:
result=num1+num2;
break;
-'
result=num1-num2;
*'
result=num1*num2;
/'
result=num1/num2;
default:
op<
是无效运算符!
if(op=='
||op=='
)//3分
num1<
num2<
result<
}精心搜集整理,只为你的需要
精心搜集整理,只为你的需要