首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2019-03-19
64
问题
假定输入的字符串中只包含字母和*号。请编写函数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全国计算机二级
相关试题推荐
执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是()main(){chars[100]intc,i;scanf("%c",&C);scanf("%d",&i);
下列选项中错误的说明语句是
以下叙述中错误的是______。
下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="ahDuj";char*s2="ABdUG":intt;t=strcmp(s1,s2);
若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%u,j=%x\n",i,j);输出的结果是()。
若有以下类型说明语句:charw;intx;flooaty,z;则表达式w*x+z-y的结果为______类型。
以下4个程序中,完全正确的是
有以下程序:#include<stclio.h>main(){charc;while((c=getchar())!=’?’)putchar(--c);}程序运行时,如果从键盘输入:Y?N?<回车>,则
以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。doublefun(doublex){return(x*x-2*x+6);}{
随机试题
Aprettypotplantmightmakeanunemotionalworkspacefeelmorepersonal.Butnewresearchhasrevealedthatofficeplantsdo
含20%(质量分数,下同)丙酮与80%空气的混合气进入吸收塔,塔顶喷水吸收丙酮。吸收塔出口气体含丙酮3%,塔底得到50kg含10%丙酮的水溶液,计算进吸收塔气体的量?
明确诊断后给以下药物,哪项不恰当
输入大量库存血,易引起
以下哪项药物不宜与细辛、赤芍、白芍、人参、丹参、玄参、沙参、苦参同用()
欣欣,男,四个月。因腹泻2日就诊,每日大便10余次,臀部皮肤潮红,伴有皮疹,有少许脱皮。臀部皮肤护理不妥的操作是
某基层法院审判员小李的下列做法中正确的是:()
A、47B、54C、53D、55B4×9+2÷2=37,4×10+6÷2=43,4×11+10÷2=49,故?=4×12+12÷2=54,正确答案是B选项。
材料1中荆人为什么失败?综合材料1、2、3,阐述它们体现的共同哲学原理及其方法论意义。
A、toB、untilC、upD、ontoA本题考核的知识点是介词。A项表示“到……”;B项表示“直到……”;C项表示“在……之上”。upto有“到……”的含义;D项表示“到……上面”。根据句义,应该选A。
最新回复
(
0
)