首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:求出S所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 例如,当字符串中的内容为“abcdabfabcdx”,t中的内容为“ab”
给定程序MODI1.C中函数fun的功能是:求出S所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 例如,当字符串中的内容为“abcdabfabcdx”,t中的内容为“ab”
admin
2019-09-02
32
问题
给定程序MODI1.C中函数fun的功能是:求出S所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为“abcdabfabcdx”,t中的内容为“ab”时,输出结果应是“abcdx”。
当字符串中的内容为“abcdabfabcdx”,t中的内容为“abd”时,则程序输出未找到信息“not be found!”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include<string.h>
char*fun(char*s,char*t)
{
char*p,*r,*a;
/**********found**********/
a=Null;
while(*s)
(p=s; r=t;
while(*r)
/**********found**********/
if(r==p)
{ r++;p++;}
else break;
if(*r==’\0’)a=s;
s++;
}
return a;
}
main()
{
char s[100],t[100],*p;
printf("\nPlease enter strings:");scanf("%s",s);
printf("\nPlease enter substringt:");scanf("%s",t);
p=fun(s,t);
if(p)printf("\nThe result is:%s\n",p);
else printf("\nNot found!\n");
}
选项
答案
(1)a=NULL; (2)if(*r==*p)
解析
函数功能是求得字符串中某子串最后一次出现的地址。(1)第一个标识下面:语句“a=Null;”中的Null未定义。NULL代表空值,但程序中写成了Null。所以,改成“a=NULL;”。(2)程序的主体是二重循环,其中,外循环使指针s逐个指向字符串的字符,直到遇到串结束符退出循环,内循环检查指针p与r所指字符串是否匹配。因为这里p、r是指针,如果使用判断表达式“if(r==p)”,那么比较的是地址,而题目要求比较它们所指的字符。所以,改为:“if(*r==*p)”。
转载请注明原文地址:https://kaotiyun.com/show/jORp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序在文件PROG1.C中。
请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把
以下选项中不合法的标识符是
若有以下程序#includevoidsp(int*a){intb=2;a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3,*p=&k;sp(p);printf("%d,%d\
有以下程序#includeintfun(charS[]){intn=0;while(*s<=’9’&&*s>=n’0’){n=10*n+*s-’0’;s++;)return(n);}main(){chars[10]={’
若有以下程序,编译时出现错误,你认为出错的是#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=A)/*第4行*/d=c;;/*第5行*/;/*第6行*/printf("%d,%d,%d\n",a,b
若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是
下列选项中不属于软件生命周期开发阶段任务的是
下面不属于软件需求分析阶段任务的是
随机试题
艾滋病的病原体是
脘腹痞胀,水声辘辘,泛吐清水此属()
甲公司的主营业务收入为210亿元,主营业务成本为182.50亿元,年初存货为60亿元,年末存货为10亿元,其存货周转天数是()天。
二氧化硫的治理工艺划分为()。
一般的管理方法不包括( )。
焊工贾某、王某在市职业大学教学楼工地负责焊接一个4.5m×2m×1.5m的水箱。两人在当天完成了4/5的工作量,下班后为了赶进度、抢工期,工地负责人又临时安排了一名油工加班施工,将水箱焊好的部分刷上了防锈漆。因箱顶离屋顶仅有50cm高的间隔,通风不良,到第
假设某一产品的需求价格弹性大于1,那么价格升高1%会使得需求数量
()指证券登记结算机构依法设立的用于垫付或弥补因违约交收、技术故障、操作失误、不可抗力等造成的证券登记结算机构的损失的一种基金。
1974年罗夫曼提出的社区社会工作的三大模式是( )。
如果加载一个窗体,先被触发的事件是
最新回复
(
0
)