首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODII.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串; 若未找到,则函数值为NULL。 例如,当字符串中的内容为:”abcdabfabcdx”,
给定程序MODII.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串; 若未找到,则函数值为NULL。 例如,当字符串中的内容为:”abcdabfabcdx”,
admin
2013-04-02
59
问题
给定程序MODII.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;
若未找到,则函数值为NULL。
例如,当字符串中的内容为:”abcdabfabcdx”,t中的内容为:”ab”时,输出结果应是:abcdx。
当字符串中的内容为:”abcdabfabcdx”,t中的内容为:”abd”时,则程序输出未找到信息:notbe found!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
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 string S :"); scanf("%s", s);
printf("\nPlease enter substring t :"); scanf("%s", t);
p = fun(s, t);
if (p) printf("\nThe result is : %s\n", p);
else printf("\nNot found !\n");
}
选项
答案
a=NULL; 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/HDJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。intisprime(inta){inti;for(i=2;i<=a/2;i++)
以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。main(){inti,j;for(i=0;[];i++){j=i*10
以下程序的输出结果是[]。main(){inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i++)s+=-a[i][i]+a[i][3-i
有以下程序 void fun 1 (char *p) { char *q; q=p; while(*q!=’\0’) {(*q)++;q++;}
有以下程序 main() {int i,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<=3;j++)
对如下二叉树进行后序遍历的结果为______。
下面程序的功能是:将N行N列二维数组中每一行的元素进行排序,第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大到小排序,例如:#defineN4voidsort(inta[][N])
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。若有以下程序段 q=s; s=s->next; p=s; while(p->next) p
下列定义变量的语句中错误的是______。
以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。main(){intx,y,z,max,*px,*py,*pz,*pmax;scanf("%d%d%d",&x,&y,&z
随机试题
热铆时的钉孔直径可比钉杆直径________。
输血最常见的并发症是
2016年8月20日早晨6时许,某市许多居民在做饭时发现自来水颜色变黄并带有强烈异味,遂反映给供水部门。市水务公司接到电话后立即通知自来水厂检查水样。发现该市第一水厂和第二水厂的自来水带有异味,有生物污染的可能,水务公司立即向市政府及有关部门报告。
刘某打算加入某合伙企业,成为合伙人。那么,依照我国合伙企业法,刘某要成为该合伙企业的合伙人必须符合以下哪些条件?()
下列说法中,正确的是()。
表达人的心理过程的内容的是()。
根据以下资料。回答以下题。河北省2010年全年城镇居民人均可支配收入达16263.4元,比上年增长10.5%。农民人均纯收入达5958元,增长15.7%。城镇居民人均消费支出10318.3元,增长6.6%;农民人均生活消费支出3845元,增长14.8%。
下列各句中画线的成语,使用恰当的一句是:
WhydoPeopleShrink?DidyoueverseethemovieHoney,Ishrunkthekids?It’saboutawackydad(who’salsoascientist)wh
A.apparentB.increasingC.influencedD.desirableE.speededupF.intoG.wideningH.mediumI.institutionalJ.gathere
最新回复
(
0
)