首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序
请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序
admin
2015-06-08
38
问题
请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#defime N 80
int fun(char *str)
{
}
msin()
{ char s[N] ; void NONO();
printf(“Enter a string:”); gets(S);
printf(“\n\n”);puts(s);
if(fun(S))printf(“YES\n”);
else printf(“NO\n”);
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE*rf, *wf;
int i;char S[N];
rf=fopen(“in.dat”,“r”);
wf=fopen(“out.dat”,“W”);
for(i=0; i<10; i++) {
fscanf(rf, "%S", s);
if(fun(S))fprintf(wf,“%S
YES\n”,s);
e2Se fprintf(wf,“%S NO\n”,s);
}
fclose(rf); fclose(wf);
}
选项
答案
int i,n=0,flag=1; //初始设置标识位 flag=1 char *p=str; //设置工作指针 while (*p) //取字符串大小 { n++; p++; } for(i=0;i
解析
该程序功能是判断字符串是否为回文。其中,回文是指顺读和倒读都一样的字符串。解题过程首先利用while循环取得字符串的长度n,然后循环判断正序第i个字符和其对应的逆序字符n一1-i个是否相等,也就是判断是否是回文。
[解题思路]
进入fun函数,根据前面的分析:
主要思路是:
(1)首先用整型变量i表示所判断的字符串中前面对应元素的下标。i初值为0,n是字符串的长度,通过循环来求得n。
(2)然后,把下标为i的字符与下标为“n-1-i”的字符比较,如果相同,i加1,继续进行一对一的字符比较。不断重复此过程,直到i≥n/2为止。在此过程中,如果下标为i的字符与下标为“n-1-i”的字符不相同,则可以断定字符串不是吲文,立即退出函数。
(3)如果正常结束循环,就说明字符串符合回文条件。
转载请注明原文地址:https://kaotiyun.com/show/FaJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有以下定义:intt[3][2];,能正确表示t数组元素地址的表达式是______。
有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&B)&&(c<’B’);执行该程序段后,x的值为______。
下面程序的输出结果是______。main(){charstr[10],c=’a’;inti=0;for(;i<5;i++)str[i]=C++;printf("%s",str);}
有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。
有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}pr
下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。 intadd(intx,inty,【】,) {【】=x+y;}
以下程序的输出结果是_______。#include<stdio.h>main(){inti;for(i=1;i<5;i++){if(i%2)printf("*");elseco
数据库设计包括两个方面的设计内容,它们是_______。
下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。voidsub(floatx,floaty,【】z){【】=x+y;}
随机试题
三相交流换向器电动机启动转矩大,启动电流小。()
下列哪种物质的肾清除率能准确代表肾小球滤过率
我国乙脑的主要传播媒介是我国平原地区疟疾的主要传播媒介是
下列选项中,属于专业贷款的风险加权资产计量方法的有()。
春运高潮期间,农民工没有带身份证的习惯,引起购票麻烦,你作为社区民警。怎么宣传?
以下程序拟读取一个学生结构体中的人名,查找其年龄并输出:#include#include#includestructstu{charname[10];intage;};structstuteam[6]={’’zhangli’’,18,
C
Whichofthefollowingisthegirl’slowgrade?
Aswellastheproblemsconcernedwithobtaininggoodqualityaudiorecordings,recordingalsoraisesimportanttheoreticalprob
CrossCulturalAdvertisingAsuccessfulcrossculturaladvertisingcampaignlargelydependsoneffectivecrossculturalcommunic
最新回复
(
0
)