首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它 “*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:****A*BC*DE
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它 “*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:****A*BC*DE
admin
2017-02-28
8
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它 “*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:****A*BC*DEF*G******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
voici fun( char *a )
{
/*以下代码仅供参考*/
int i=0,k;
while(a
==’*’) i++;
k=i;
while(a
!=’\0’)/*以下程序段实现
非*字符前移*/
{
}
a[k]=’\0’;
}
main()
{ char s[81]; void NONO();
printf ("Enter a string:\n"); gets (s);
fun( s );
printf( "The string after
deleted: \n"); puts (s);
NONO();
}
void NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *in, *out;
int i;char s[81];
in =fopen( "in.dat","r");
out =fopen( "out.dat","w");
for(i=0;i<1 0;i++){
fscanf (in,"ooS",s);
fun (s);
fprintf (out,/;%s\n/;,s),
}
fclose (in);
fclose (out);
}
选项
答案
2 voicl fun( char *a ) 3 { int i=0,k; 4 while(a[i]==’* ’) i++; 5 k=i; 6 wnile(a[i]! =’\0’) 7 { if(a[i] != ’* ’) a[k++]=a[i]; 8 i++; 9 } 10 a[k]=’\0’; 11 }
解析
本题所需要的功能是是处理一个输入的只含字母和“*”的字符串,除了字符串前导的“*”号之外,将串中其它“*”号全部删除。并且在编写函数时,不得使用C语言提供的字符串函数。这里根据题意,很快我们就知道需要使用循环语句和条件语句来进行功能的实现。第一步要自己输入字符串,这就需要格式输入函数;第二步就要进行功能函数了,这里的就要一开始是否有“*”的存在,有多少个“*”这个是很重要的判断。因为根据题意虽然是要删除“*”,但是字符串前面的“*”是不用删除的,无论有多少个都不能删除,然后当没有“枣”或者跳过字符串前面“*”后,就要到达第一个字母了:字母保留,然后后面遇见“*”就删除,依次循环进行下去,一直到字符串结束,这些功能的实现就需要条件语句和循环语句的使用了;第三步将处理过后的字符串输出,得到新的字符串,程序就可以结束了。
本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*’,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5—6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9—12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
转载请注明原文地址:https://www.kaotiyun.com/show/YgID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
根据以下资料,回答以下问题。下表是某旅游网站上推荐的从M地到N地的机票价格(5月30日)及在线支付的优惠活动。5月30日早晨,王先生由于记错了时间,10:30到达机场时,所购班次的飞机已经起飞。幸运的是隔天同一班次的机票还有售,且价钱不变,
下列关于法律推理的说法中,正确的是()。
行政机关在其法定职权范围内,依法可以委托下列哪种组织实施行政许可?()
我国体现人民主权原则的宪法规定,不包括()。
河北省河流众多,长度在18公里以上1000公里以下者就达300多条。境内河流大都发源或流经燕山、冀北山地和太行山山区,其下游有的合流人海,有的单独人海,还有因地形流人湖泊不外流者。主要河流从南到北依次有漳卫南运河、子牙河、大清河、永定河、潮白河、蓟运河、滦
下列有关监护人的说法,错误的是()。
根据下列材料回答问题。2006—2012年,上表中指标数值逐年减小的指标有()。
研究发现,蓝毗尼地区的有机碳、元素碳、左旋葡聚糖、半乳聚糖、甘露聚糖、对羟基苯甲酸、香草酸、丁香酸和脱氢松香酸均在秋季呈现出高值而夏季最低。该地区的左旋葡聚糖含量与南亚受生物质燃烧影响严重地区的浓度水平相当,说明生物质燃烧对蓝毗尼地区的大气环境产生了重要影
下列选项中的现象所蕴含的物理原理相同的是()。
请完成下列Java程序。程序的执行结果是生成一个具有一个TextField类型的对象in、Button类型的对象btn和Label类型的对象out图形用户界面,程序的功能是计算用户输入数的平方。注意:请勿改动main()主方法和其他已有的语句内容
随机试题
非线粒体生物氧化特点是
患者,女性,50岁。因与家人吵架后服甲胺磷100ml,2小时后被家人发现送入急诊。体检时神志尚清,下列体征不应该出现的是
男性,70岁。既往咳嗽、咳痰30年,活动后气短10年,最近1年出现双下肢水肿。肺功能显示阻塞性通气障碍,FEV1占预计值的50%。该患者发生阻塞性肺气肿多为
苯丙酮尿症治疗主要是
顶进小型箱涵穿越铁路路基时,可用调轨梁或()加固线路。
在我国,企业债券的发行采取()。
根据合同法及相关规定,下列关于合同转让的说法哪些是正确的?
GI高的食物在胃肠内停留时问短,释放快,血糖浓度波动小。()
2005年3月15日,上海市相关部门在对肯德基多家餐厅进行抽捡时,发现新奥尔良鸡翅和新奥尔良鸡腿堡调料中含有“苏丹红一号”成分。16日上午,百胜集团上海总部通知全国各肯德基分部“从16日开始,立即在全国所有肯德基餐厅停止售卖新奥尔良鸡翅和新奥尔良鸡腿堡两种
设f(u)连续,则∫0xdu∫u1υf(u2一υ2)dυ=________.
最新回复
(
0
)