问题 问答题

fclose(out);

答案

参考答案:
int jsValue(long n)
{
int i,str1,half;
char xy[20];
ltoa(n,xy,10); /*将长整数n转换成与其等价的字符串存入xy指向的字符串中,输出串为十进制*/
str1=strlen(xy); /*求字符串的长度*/
half=str1/2;
for(i=0;i<half;i++)
if(xy[i]!=xy[--str1])break; /*判断字符串是否左右对称*/
if(i>=half) return 1; /*如果字符串是回文,则返回1*/
else return 0; /*否则返回0*/
}

解析:本题考查的知识点如下;
(1)将整型变量转换成字符串。
(2)字符串长度的确定和循环的使用。
(3)字符串是否对称的判断。
回文数是指其各位数字左右均对称的整数,因为给出的数的位数不确定,.所以不采用将各位上的数字转变成单独的数再比较的方法。这里使用函数char*ltoa(long num,char*str,int radix),其功能是将长整数num转换成与其等价的字符串存入str指向的字符串中,输出串的进制由radix决定。将整数转变成字符串后,判断字符串是否左右对称。求得字符串长度后设置两个变量,一个从字符串的头开始向后移动,一个从字符串的倒数第二个元素开始向前移动,直到移至数组的中间元素。若两者所决定的数组元素均相等,则字符串左右对称。

解答题
单项选择题