关于回文字符串,描述正确的是()。
第1题:
A、Column
B、Row
C、Index
D、Indirect
第2题:
请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES:否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。
例如:字符串LEVEL是回文,而字符串123312就不是回文。
注意;部分源程序已存在文件test26_.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。
文件test26_2.cpp的内容如下:
include<iostream.h>
include<stdio.h>
define N 80
int fun(char*str)
{
}
void main()
{char s[N];
cout<<"Enter a string:"<<endl;
gets{s);
cout<<"\n\n";
puts(s);
if(fun(s))
cout<<"YES\n";
else
cout<<"NO\n";
}
第3题:
●试题二
阅读下列函数说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。
【函数2.1说明】
函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:"LEVEL"是回文字符串,而"LEVAL"不是。
【函数2.1】
int palindrome(char s[])
{char*pi,*pj;
pi=s;pj=s+strlen(s)-1;
while(pi<pj && (1) ){
pi++;pj--;
}
if( (2) )return -1;
else return 0;
}
【函数2.2说明】
函数f(char*str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
例如若str的值为"33123333435",del的值为"3",调用此函数后,将输出3个子字符串,分别为"12"、"4"和"5"。
【函数2.2】
void f(char*str,char del)
{int i ,j ,len;
len=strlen(str);
i=0;
while(i<len){
while( (3) )i++;/*忽略连续的标志字符*/
/*寻找从str[i]开始直到标志字符出现的一个子字符串*/
j=i+1;
while(str[j]!=del && str[j]!=′\0′)j++;
(4) =′\0′;/*给找到的字符序列置字符串结束标志*/
printf(″%s\t″,&str[i]);
(5) ;
}
}
●试题二
【答案】(1)*pi==*pj(2)pi<pj或者等价表达式(3)str[i]==del(4)str[j](5)i=j+1
【解析】(1)指针pi从左往右移动,指针pj从右往左移动,每移动一次,判断二者指向的元素是否相等,所以此处应填入判断语句*pi==*pj。(2)pi如果能移动到pj右面,说明字符串是回文字符串,否则返回-1,所以此处应填入pi<pj或者其他等价表达式。(3)此处表达式判断当前字符是否等于标志字符del,即填入 str[i]==del。(4)此处表达式为符合要求的字符串置结束标志,此时j已指向最后,所以应填入str[j]即可。(5)此处语句是修改i指针进行下一次循环,所以应填入i=j+1。
第4题:
第5题:
写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1
第6题:
A.substitute
B.match
C.sum
D.len
第7题:
给定程序中,函数fun的功能是:判断形参s所指字符串是否是”回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。”回文”是正读和反读都一样的字符串:不区分大小写字母)。
例如,LEVEL和Level是”回文”,而LEVLEV不是”回文”。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK.1.C中。
不得增行或删行,也不得更改程序的结构!
第8题:
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
【函数2.1说明】
函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。
【函数2.1】
int palindrome( char s[ ] )
{ char * pi, * pj;
pi=s; pj=s+strlen(s)-1;
while( pi<pj&&(1)){
pi ++ ;pj --
}
if((2))return -1;
else return 0;
}
【函数2.2说明】
函数f(char * str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
例如若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”、“4”和“5”。
【函数2.2】
void f( char * str, char del)
{ int i ,j ,len;
len = strlen (str)
i=0;
while(i < len) {
while((3))i++; /*忽略连续的标志字符*/
/*寻找从str[i]开始直到标志字符出现的一个子字符串*/
j=i+1;
while(str[j] != del && str[j] ! = '\0')j ++
(4): '\0'; /*给找到的字符序列置字符串结束标志*/
printf("%s\t",&str[i]);
(5);
}
}
第9题:
试题3
本程序中,函数fun的功能是判断字符串是否是回文,若是回文,则返回1,主函数中输出YES;否则,函数返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而123312就不是回文。请在函数fun的花括号中填入你编写的若干语句。(注意:不改动程序的结构,不得增行或删行。)
#include <stdio.h>
#define N 80
int fun ( char *str)
{
}
main()
{ char s[N];
printf(“Enter a string : ”) ;
gets (s) ;
printf(“\n\n”) ;
puts (s) ;
if (fun (s))
printf (“YES\n”) ;
else
printf (“N0\n”) ;
nono ();
}
nono ()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件.*/
int i;
FILE *rf, *wf ;
char s[N] ;
rf = fopen (“bc.in”,“r”) ;
wf = fopen (“bc.out”,“w”) ;
for ( i=0; i<10; i++ )
{ fscanf (rf, “%s”,s ) ;
if (fun ( s ))
fprintf (wf, “%s YES\n”, s ) ;
Else
fprintf(wf, “%s NO\n”, s ) ;
}
fclose (rf) ;
fclose (wf) ;
}
第10题: