首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如, 字符串中的内容为:****A*BC*DE
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如, 字符串中的内容为:****A*BC*DE
admin
2019-03-19
38
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如, 字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG*******。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun(char *a, char *p)
{
}
main ()
{ char s[81],*t;
void NONO ();
printf("Enter a string:\n");
gets (s);
t=s;
while(*t)t++;
t-;
while(*t==’*’)t--;
fun(s , t);
printf("The string after
deleted: \n");puts (s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调
用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i ; char s[81],*t ;
in = fopen("in.dat","r");
out = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(in, "%s", s);
t=s;
while(*t)t++;
t--;
while (*t==’*’) t--;
fun(s,t);
fprintf(out, "%s\n", s) ;
}
fclose(in);
fclose(out); }
选项
答案
char *q=a; int j=0; while(*q&&q
解析
(1)首先,主函数中使指针移到字符串的最后一个字符,对字符串由串尾开始进行操作。
(2)然后,指针由尾开始向头移动,查找第一个非“*”号字符,指针t指向后一个非“*”,即从最后一个非“*”,字符开始的字符都不需要删除,将前面的其他“*”号全部删除后,将尾部的“*”字符往前移动即可。
(3)确定了字符数组的最后一个字符非“*”后,调用fun函数,在fun函数中,将原串中由起始位置的字符开始到最后一个非“*”逐个查询该字符是否是“*”字符,如果是则删除,并将后面的字符往前移动;然后将t之后的字符移动到前面,最后在字符串的后面添加“’\0’”即可。
转载请注明原文地址:https://kaotiyun.com/show/KBRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}
用树形结构来表示实体之间联系的模型称为()。
有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*fl)(),int(*f2)(),intx}{returnf2(x)-f1(x)
将以下程序写成三目运算表达式是【】。if(a>b)max=a;elsemax=b;
软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。
Jackson方法是一种面向______的结构化方法。
执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是()main(){chars[100]intc,i;scanf("%c",&C);scanf("%d",&i);
设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1,则T中的叶子结点数为()。
下面的程序通过函数average计算数组中各元素的平均值,请填空。floatavetage(int*pa,intn) {inti; floatavg=0.0; for(i=0;i<n;i++); avg
下面程序的功能是两个整数进行交换,请填空。sub(int*x,int*y){【】z=*x;*x=*y;*y=z;return;}main(){intm,n,*t1,*t2;
随机试题
女性,31岁。低热、乏力伴腹胀3个月。查体:腹部膨隆,腹壁柔韧感,有压痛和轻反跳痛,移动性浊音阳性。腹水为渗出液。为明确诊断,最有价值的检查是
夏季,1岁男孩,发热、呕吐、腹泻3d。体温38℃,每日腹泻10多次,稀便,少量黏液。1d来尿少,6h无尿。查体:眼窝、前囱深陷,皮肤干燥,弹性极差,肢端凉。大便镜检偶见白细胞,血钠130mmol/L。最有可能的诊断为
表示肺癌已有全身转移的表现是
保险人向被保险人赔偿保险金后,被保险人未经保险人同意放弃对第三者请求赔偿的权利的,该行为无效。( )
下列属于价值链活动中辅助活动的是()。
各责任中心相互提供的产品采用协商定价的方式确定内部转移价格时,其协商定价的最大范围应该是()。
运动量
Thiskindofglassesmanufacturedbyexperiencedcraftsmen______comfortably.
在Windows系统中,当用户选择“config.xml”文件并执行“剪切”命令后,被“剪切”的“config.xml”文件放在_________中。
Itisagreat______(convenient)tolivenearanundergroundstationorbusstop.
最新回复
(
0
)