应用题
请使用VC6或使用[答题]菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.cpp,请编写一个函数int huiwen(int n),用于求解所有不超过200的n值,其中n的平方是具有对称性质的回文数(回文数是指一个数从左向右读与从右向左读是一样的,例如:34543和1234321都是回文数)。求解的基本思想是:首先将n的平方分解成数字保存在数组中,然后将分解后的数字倒过来再组成新的整数,比较该整数是否与n的平方相等。
注意:请勿修改主函数main和其他函数中的任何内容,只在横线处编写适当代码,也不要删除或移动“//****found****”。
//proj2.cpp
#include <iostream>
using namespace std;
int huiwen(int n)
{
int arr[16], sqr, rqs=0, k=1;
sqr =n*n;
for(int i=1; sqr!=0; i++)
{
//******** found********
______;
sqr/ =10;
}
for(;i>1; i--)
{
rqs+ =arr[i-1]* k;
//******** found********
______;
}
//******** found********
if(______)
return n;
else
return 0;
}
int main ()
{
int count =0;
cout <<'The number are: '<<endl;
for(int i=10; i<200; i++)
if(huiwen(i)) cout << ++count << '\t'<<i<<'\t'<<i* i<<endl;
return 0;
}
【正确答案】arr[i]=sqr% 10 k*=10 n*n==rqs
【答案解析】[考点] 本题考查的是huiwen函数,其中涉及数组、for循环和if语句。 (1)主要考查考生对数组的掌握,使用数组存储整型数字,分解整数sqr。 (2)主要考查考生对数组的掌握,利用数组元素组成整数rqs。 (3)主要考查考生对if语句的掌握,如果两数相等就说明n是回文数。