首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2019-03-19
77
问题
假定输入的字符串中只包含字母和*号。请编写函数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全国计算机二级
相关试题推荐
以下程序运行后的输出结果是【 】。main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a;a=c;c=tif(a<c&&b<c)t=b;b=a;a=t;prin
以下程序的输出结果为【】。main(){intk=1;white(k<=15)if(++k%3!=2)continue;elseprintf("%d",k);print
请读程序片段: inti=65536;printf("%d”\n”,i; 上面程序片段的输出结果是()
若有定义和语句: intw[2][3],(*pw)[3];pw=w; 则对w数组元素的非法引用是()
有如下程序 #include<stdio.h> main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16)); int i,s=0; for(i=0;i<4;i++)s+=a[i
有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf(
函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s
有以下程序:int*f(int*x,int*y){if(*<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;
若有以下类型说明语句:charw;intx;flooaty,z;则表达式w*x+z-y的结果为______类型。
若变量已正确定义并赋值,则以下符合C语言语法的表达式是()。
随机试题
TheAmazon-WalmartShowdownThatExplainstheModernEconomyA)WithAmazonbuyingthehigh-endgrocerychainWholeFoods,s
设intx=1;a=9,b=6,c=9,d=8;执行语句:if(a>b)if(c>b)if(b>d)x=2;elsex=6;后x的值是()
狗脊应香附应
某乡人民政府批准了本应由县土地管理局批准的李某的占地建房申请。1年后,县土地管理局认定该乡政府的越权批准行为无效,并作出了拆除李某已建房屋的处罚决定。李某不服而向法院起诉,请求法院撤销县土地管理局的处罚决定,并判令乡政府赔偿因越权批准行为所造成的损失。
如图2.4—17所示,挡墙背直立、光滑,墙后的填料为中砂和粗砂,厚度分别为h1=3m和h2=5m,重度和内摩擦角见图示。土体表面受到均匀满布荷载q=30kPa的作用,试问荷载q在挡墙上产生的主动土压力最接近下列哪个选项?
在建设项目可行性报告中不能满足工程分析的需要时,目前可供选择的方法有()。
下列资产负债表项目中,可以根据有关总账余额直接填列的有()。
擅长人物画,现有摹本《女史箴图》、《洛神赋图》传世的著名画家是()。
以下对八位帝王称号归类正确的是()。
中国共产党在抗日民族统一战线中。争取中间势力必须具备的条件是
最新回复
(
0
)