首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的水号全部删除。形参h已指向字符串中第—个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,若字符串中的内容为“
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的水号全部删除。形参h已指向字符串中第—个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,若字符串中的内容为“
admin
2017-02-24
44
问题
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的水号全部删除。形参h已指向字符串中第—个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为“****A*BC*DEF*G********”,删除后,字符串中的内容应当是“****ABCDEFG********”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void fun(char*a,char*h,char*P)
{
}
main()
{
char s[81],*t,*f ;
printf("Enter a string:\n");
gets(s);
t=f=s ;
while(*t)
t++;
t--;
while(*t==’*’)
t--;
while(* f==’*’)
f++;
fun(s,f,t);
printf("The string after deleted:\n");
puts(s);
}
选项
答案
void fun(char*a,char*h,char*p) { int i=0; char*q=a; /*将前导*号保存到a中*/ while(q<h) { a[i]=*q;q++;i++; } /*继续遍历数组*/ while(q<p){ if(*q!=’*’) { /*如果不是木保存到a中*/ a[i]=*q;i++; } q++; } /*将末尾*号保存到a中*/ while(*q) { a[i]=*q;i++;q++; } a[i]=’\0’;
解析
本题的重点是要选择好判断条件,首先是需要判断前导*号的结束,然后判断是否指向最后一个字母,最后补充尾部*号。
转载请注明原文地址:https://kaotiyun.com/show/L0Dp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){intifor(i=0;______!=’\0’;i++);return(i);}
以下程序的输出结果是______。#include<stdio.h>main(){intifor(i=’a’;i<’f’;i++,i++)printf("%c",i-’a’+’A’);printf("\n");}
阅读下面程序,则执行后的输出结果是______。#include"stdio.h"main(){intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);elseprintf("%d",y)
有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i;fprintf(f
以下叙述中错误的是
以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。#includestructlist{intd
下列程序的输出结果是#include"stdio.h"#defineN3#defineM3voidfun(inta[M][N]){printf("%d\n",*(a[1]+2));}main(){inta
若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是
有以下程序intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}则以下函数调用语句错误的是
随机试题
Thinkofsuccessaswater.Inthecourseofprogress,itflows.Waterbreaksrockandreshapesland.Successsimilarlychangest
可以进行双重造影的检查方法是
急性肝炎( )阻塞性黄疸( )
A.人参归脾丸B.六味地黄丸C.龟灵集D.西洋参E.红参老年人偏于心脾两虚的应服
出院前患者护理包括()。
甲公司以试用买卖方式促销A冰箱,规定试用期3个月,如发现冰箱有质量问题,公司随时给予更换。乙与甲公司签订试用买卖合同,时间自1999年3月15日开始。到了1999年6月16日,甲公司要求乙付款,乙称冰箱有质量问题,要求解除试用合同。下列陈述正确的是:(
在下列报关单证中,海关认为必要时需查阅或收取的预备单证是()。
甲、乙签订合同,甲方购买乙方一批货物,现由于特殊原因的出现,甲方准备解除合同,根据合同法律制度的规定,下列表述中错误的有()。
甲公司2015年发生如下经济业务:(1)甲公司原持有乙公司30%的股权,2015年又斥资10000万元自A公司取得乙公司另外50%股权。至此甲公司持有乙公司80%的股权并取得控制权,甲公司与A公司不存在任何关联方关系。增资时乙公司有1000万元的现金及银
某地方电视台要播放一部30集的电视剧,如果要求每天播出的集数互不相等,则最多可以播放几天?
最新回复
(
0
)