反回文

题目
名词解释题
反回文
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)


参考答案:
  将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。
  [算法描述]
  #define StackSize 100 //假定预分配的栈空间最多为100个元素
  typedef char DataType;//假定栈元素的数据类型为字符
  typedef struct
  {DataType data[StackSize];
  int top;
  }SeqStack;
  int IsHuiwen( char *t)
  {//判断t字符向量是否为回文,若是,返回1,否则返回0
  SeqStack s;
  int i , len;
  char temp;
  InitStack( &s);
  len=strlen(t); //求向量长度
  for ( i=0; i  Push( &s, t[i]);
  while( !EmptyStack( &s))
  {// 每弹出一个字符与相应字符比较
  temp=Pop (&s);
  if( temp!=S[i]) return 0 ;// 不等则返回0
  else i++;
  }
  return 1 ; // 比较完毕均相等则返回 1
  }

第2题:

文件操作中语句public boolean delete()的功能是( )。

A.执行完后,删除文件

B.删除当前文件并释放资源

C.返回文件的最后修改时间

D.返回文件的字节长度


正确答案:B
解析:public boolean delete ()的功能是删除当前文件并释放资源,因此B为正确答案。其余选项中,选项A的功能由public void deleteOnExit ()实现;选项C的功能由public long lastModified ()实现;选项D的功能由public long length()实现。

第3题:

“人穷志不穷”的修辞格为( )。

A、仿词

B、回文

C、拈连

D、借代


参考答案:C

第4题:

下列五个DNA片段中含有回文结构的是()。

  • A、GAAACTGCTTTGAC
  • B、GAAACTGGAAACTG
  • C、GAAACTGGTCAAAG
  • D、GAAACTGCAGTTTC

正确答案:D

第5题:

回文序列


正确答案: DNA片段上的一段所具有的反向互补序列,常是限制性酶切位点。

第6题:

阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。

函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。

【C程序代码】

include <stdio.h>

include <stdlib.h>

int isPalm(long m)

{ /*判断m是否为回文数*/

int i = 0, k = 0;

char str[32];

while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/

str[k++] =(1)+ '0';

m = m / 10;

}

for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/

if ( str[i] != str[(2)] ) return 0;

return 1;

}

int main ( )

{

long n, a, t;

printf("input a positive integer:"); scanf("%ld",&n);

if (n < 100 || n > =1000) return -1 ;

while((3)) { /*n不是回文数时执行循环*/

printf("%ld-> ", n);

for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/

a =(4)*10 + t % 10; t = t / 10;

} /*end of for*/

n =(5); /*与反序数求和*/

} /*end of while*/

printf ("%id\n",n);

system("pause"); return 0;

}


正确答案:(1) m%10或其等价表示 (2) k-1-i (3) !isPalm(n)或isPalm(n)!=1或isPalm(n)= =0 (4) a (5) n+a
(1) m%10,或其等价表示 (2) k-1-i (3) !isPalm(n),或isPalm(n)!=1,或isPalm(n)= =0 (4) a (5) n+a 解析:本题考查C程序设计的基本能力。
函数isPalm(long m)的功能是判断m是否为回文数,其方法是先将m的各位数字依次取出转换为对应的数字字符保存在数组str中,然后再判断str中的字符序列是否对称。代码如下:
while(m>0){/*从个位数开始逐个取出m的各位数字并存入字符数组str*/
str[k++] = m %10 +'0';
m=m/10;
}
因此,空(1)处应填入“m%10",将数m的个位数字取出。以上while循环结束时,k的值即为m取初始值时的位数。
若需判断str[0]、str[1]、…、str[k-1]中的k个数字字符序列是否对称,则应依次比较str[0]与str[k-1]、str[1]与str[k-2]、…str[k/2-1]与str[k2+1]是否相等,若都相等,则是回文数;若其中有一处不等,则不是回文数。代码如下:
for(i=0;ik/2;i++)
if ( str[i] !=str[(2)] )return 0;
因此,空(2)处应填入“k-1-i”。
根据题目描述,从最初输入的数开始,直到得到一个回文数时结束,因此对于数n,调用函数is Palm(n),根据返回值确定n是否为一个回文数,空(3)处应填入“!isPalm(n)”。
为了求一个数t的反序数,可从其个位数字开始,依次取出其各位数字并进行组合。下面以t=345举例说明通过整除取余“%”、整除“/”取出各位数字并组合出543的过程。
初始时:a=0t=345
下一步:345%10=>5a*10+5=>a=5t/10=345/10=>t=34
下一步:34%10=>4a*10+4=>a=54t/10=34/10=>t=3
下一步:3%10=>3a*10+3=>a=543t/10=3/10=>t=0
因此,可知空(4)处应填入“a”。
最后数n与其反序数a相加得到新的数,继续产生回文数的过程。空(5)处应填入“n+a”。

第7题:

Folder对象的Files属性是()。

A.返回文件夹的名字

B.返回文件夹中的所有的子文件夹

C.返回文件夹的所有的文件

D.返回该文件夹的父文件夹对应的Folder对象


参考答案:C

第8题:

Python内置函数_____________用来打开或创建文件并返回文件对象。


正确答案:open()

第9题:

所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。


正确答案: ints,k;
inti,j;
int[]a=newint[20];
boolpos;
while(true)
{
s=-1;
while(s<0)
{
Console.Write("请输入一个正整数或者只按一个数字0:");
s=int.Parse(Console.ReadLine());
if(s==0)return;
}
k=s;
pos=true;
i=-1;
while(k>0)
{
i++;
a[i]=k%10;
k=k/10;
}
//注意:数组a的长度为(i+1)
for(j=0;j<(i+1)/2;j++)
if(a[j]!=a[i-j])
{
pos=false;
break;
}
if(pos)Console.WriteLine("{0}是回文数。",s);
elseConsole.WriteLine("{0}不是回文数。",s);
}

第10题:

反回文


正确答案: 波浪状装饰线条,上凸下凹。