问题 填空题

以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串“yes!”,否则函数返回字符串“no!”,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adsda。请填空。#include <stdio, h>#include <string, h>char * huiwen(char * str){ char *p1, * p2; int i,t=0; p1 = str;p2 = 【10】 ; for(i =0;i<= strlen(str)/2;i ++ ) if( * pl ++ ! = * p2 -- ) { t = 1 ;break if( 【11】 ) return( "yes !" ); else return( "no!" );}main( ) { char str[50]; printf( "Iaput:" ); scanf(" % s", str); printf("%s \n", 【12】 );

答案

参考答案:p1+(stfien(str)-1)或str+(strlen(str)-1) t==0或!t huiwen(str)或 (strlen(str)-1)+p1或(stden(str)-1)+str

解析: 回文字符串是指正向与反向拼写都一样。由huiwen函数可知,[12]处应该填写调用函数huiwen(str)。在函数huiwen中,执行P1=str;使p1指向字符串str中第一个字符的地址,则[10]处应该使p2指向字符串str中最后一个字符的地址,故填p1+(stden(str)-1)或str +(strlen(str)-1)。本题要求如果是回文,则返回"yes!",否则,返回"no!",故当t=0时,说明字符串str为回文,所以[11]处应填t==0或!t。

判断题
单项选择题