首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2019-03-19
81
问题
假定输入的字符串中只包含字母和*号。请编写函数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全国计算机二级
相关试题推荐
函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。voidfun(float*sn,intn){
若有定义和语句: intw[2][3],(*pw)[3];pw=w; 则对w数组元素的非法引用是()
有以下程序intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;seanf("%d",&
执行语句printf(“%u\n”,+12345)的输出结果是()。
下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int*p,intn){int*q;intmax,min;max=min=*p;for(q=p;【】
有下列程序:#include<stdio.h>main(){charc;while((c=getchar())!=’,’)putchar(++C);}程序运行时,如果从键盘输入:A,B,<CR>,则输出结
下列程序的运行结果是______。#include<stdio.h>main(){inta,b,C;a=3;b=4;c=5;if(a>B)if(a>C)printf("%d",A);
有以下程序 main() { int a [3][2]={0},(* ptr [2],i,j; for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);pb++;} for(i=0;i<3;i++)
要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。
在数据管理技术发展的三个阶段中,数据共享最好的是______。
随机试题
论述如何建设美丽中国。
利尿剂治疗心功能不全的作用是通过
A.醛和酮B.多环芳烃C.多氯联苯D.亚硝酸盐E.胺类化合物为了使肉制品成色良好,加工中添加一种护色剂。但添加过量或混合不均匀时,食入较多的该种物质可引起食用者出现全身皮肤、黏膜紫绀等缺氧症状。肉品中这种有害物质最可能是()
属于艾炷直接灸的方法是属于间接灸的方法是
患者,女,21岁。四肢关节痛6个月,近2个月出现面颊部对称性红斑,口腔溃疡反复发作,检查白细胞2.7×109g/L,血沉67mm/h,该患者最可能的诊断是
消防技术服务机构受托对某地区银行办公的综合楼进行消防设施的专项检查,银行数据中心机房设置了IG541气体灭火系统,以组合分配方式设置A、B、C三个气体灭火防护区。断开气体灭火控制器与各防护区气体灭火驱动装置的连接线,进行联动控制功能试验。据了解,消防维保单
以下软件中()属于应用软件。
家庭生命周期的发展过程正确的顺序是()。
三名游泳运动员一起进行训练,同时入水,当甲游1圈时,乙正好超过甲半圈,丙超过甲四分之一圈。他们三人总共游了15圈。问丙游了多少圈?()
请根据材料一,分析“泔水油”现象屡禁不止的原因。请仔细阅读材料三,为彻底解决马路公共设施被盗问题,请你站在政府主管部门的角度,制定出具体的“治盗”措施。
最新回复
(
0
)