}
运行结果:
得分
评卷人
复查人
四、改错题(本大题共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);
}
main()
{
fun();
}
3.函数fun的功能是:
实现交换两个整数的值。
例如给a和b分别输入3和6,输出为a=6b=3 请改正程序中的4个错误,使它能得出正确的结果。
voidfun(inta,b)
{
intt;
t=a;
a=b;
b=t;
}
main()
{
inta,b;
printf("entera,b:
");scanf("%d%d",&a,&b);
fun(&a,&b);
printf("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 ;
}
main()
{
printf("%d\n",fun(500));
}
得分
评卷人
复查人
五、编程题(本大题共3小题,第1小题6分,第2、3小题各7分,共20分)请在每小题后的空白处编写程序。
1.编程求1!
+3!
+5!
+7!
+9!
。
(6分)
2.设计一个简单的计算机程序,实现加、减、乘、除运算。
(7分)
答案及评分标准
绝密★启用前
2012年上半年中原工学院高等教育自学考试专科助学考试
面向对象程序设计试卷
(课程代码02328)
一、选择题(本大题共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分)
constructing(1分)
1/1/1999(1分)
12/30/1996(1分)
destructing12/30/1996
destructing1/1/1999(1分)
3.(本小题共5分)运行结果:
1020分)
1020分)
四、改错题(本大题共4小题,每空5分,共20分)
1.
(1)t=1;或t=;(1分)
(2)t=t*j;或t*=j;(1分)
(3)s=s+t;或s+=t;(1分)
(4)printf("jiecheng=%f\n",s);(2分)
2.
(1)for(i=2;i<=m;i++)或for(i=2;m>=i;i++)或for(i=2;ii;i++)或for(i=2;1+m>i;i++)
(2分)
(2)y-=(i*i);或y=(i*i);或y-=(float)(i*i);或y=(float)(i*i);或y=i/i;或y=(float)i/(float)i;(2分)
(3) returny;或return(y);或return(y);(1分)
3.
(1) voidfun(int*a,int*b)或fun(int*a,int*b)(2分)
(2)t=*a;(1分)
(3)*a=*b;(1分)
(4)*b=t;(1分)
五、编程题(本大题共3小题,第1小题6分,第2、3小题各7分,共20分)
1.#include<>
voidmain()
{
inti,j;
doubles,sum=0;//1分
for(i=1;i<=9;i=i+2)//4分
{s=1;
for(j=1;j<=i;j++)
s=s*j;
sum=sum+s;
}
cout<<"1!
+3!
+5!
+7!
+9!
="<}
2.
#include<>
voidmain()
{floatnum1,num2,result;
charop;
cout<<"输入操作数1,运算符,操作数2:
"<cin>>num1>>op>>num2;
switch(op){//3分
case'+':
result=num1+num2;break;
case'-':
result=num1-num2;break;
case'*':
result=num1*num2;break;
case'/':
result=num1/num2;break;
default:
cout<";
}
if(op=='+'||op=='-'||op=='*'||op=='/')//3分
cout<}