10-11-2 非电类上机考试第一场试卷_A(2011 年 1 月)
学号 姓名 成绩
(考试时间 70 分钟,卷面分数 100 分)
一、改错题:(50 分)
【题目】下面程序是求 n1 与 n2(100<n1<n2<1000 且 n2-n1<=200)之间
符合下列条件的数:该数的最高两位组成的整数与该数的各位数字平方和相等。
其中 fun 函数的功能是将 n1~n2 范围内符合条件的数据存放在 x 数组中。如
n1=100,n2=200。则该程序运行后的输出结果是: 103 113
【要求】只允许在原语句上进行修改,可以增加个别说明语句,但不能增加或删
除整条程序语句或修改算法。
【注意】 将源程序以“学号 F1.cpp”为文件名存入 Z 盘自己的目录中。
#include<iostream.h>
void fun(int x[],int n1,int n2)
{
int i,j=0;
for(i=n1;i<=n2;i++)
{
int s,m=i;
while(m)
{ s=s+(m%10)*(m%10);
m/=10;
}
if(s=i/10) x[j++]=i;
}
}
void main()
{
int i,n1,n2;
int a[100];
cout<<"请输入起始范围:";
cin>>n1>>n2;
if(n1<100||n1>=1000||n2-n1>=200)
return;
fun(a[],n1,n2);
for(i=0;a[i];i++)
cout<<a[i]<<' ';
cout<<endl;
}