首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2019-03-19
49
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如, 字符串中的内容为:
****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void 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<10;i++){
fscanf(in,"%S",s);
fun(s);
fprintf(out,"%s\n",s);
}
fclose(in);
fclose(out);
}
选项
答案
void fun( char *a ) { int i=0,k; while(a[i]==’*’) i++; k=i; while(a[i]!=’\0’) {if(a[i]!=’*’) a[k++]=a[i]; i++; } a[k]=’\0’; }
解析
本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*”,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5~6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9~12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
转载请注明原文地址:https://kaotiyun.com/show/W6Rp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有关return语句说法不正确的是()。
下列程序的输出结果是______。longfun5(intn)(longs;if((n==l)‖(n==2))s=2;
若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
请读程序片段: inti=65536;printf("%d”\n”,i; 上面程序片段的输出结果是()
以下叙述中错误的是______。
有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf(
下列数据结构中,能用二分法进行查找的是()。
下面的程序通过函数average计算数组中各元素的平均值,请填空。floatavetage(int*pa,intn) {inti; floatavg=0.0; for(i=0;i<n;i++); avg
函数sub的功能是根据下面近似分式求π的值。(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请在下面的函数中填空,完成求π值的功能。#include"math.h"doublesub(longm
主程序调用findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p+
随机试题
补体法荧光抗体技术是将荧光素标记在
计算机病毒是指
维持蛋白质二级结构稳定的主要因素是
一束自然光从空气射到玻璃板表面上,当折射角为30°的反射光为完全偏振光,则此玻璃的折射率为()。
希望股份有限公司在中期期末和年度终了时,按单项投资计提短期投资跌价准备,在出售时同时结转跌价准备。2005年6月10日以每股15元的价格(其中包含已宣告但尚未发放的现金股利0.4万元)购进某股票100万股进行短期投资;6月30日该股票价格下跌到每股12元;
窗花的制作工艺主要包括()
人类珍贵的文化传统,绵延久远,力道强劲,就像是这个世界上永恒的生命。它以很长的周期、有时甚至长过某代人一生的频度在_________着。它不会_________,即使有时候看不到了,也还在地底下扎着根、生长着.伺机而发。填入划横线部分最恰当的一项是:
个人品德在社会道德建设中具有基础作用,社会公德、职业道德和家庭美德建设,最终都要落实到个人品德的养成上。在现实生活中,个人品德的作用还表现为
下列程序中的this指针的作用是【 】。#include<iostream.h>classSample{intn;staticintst;
Asmostparentsofsmallchildrenwillreluctantlyadmit,nothingcanoccupyachildquiteliketelevision.Unfortunately,thes
最新回复
(
0
)