首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G***
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G***
admin
2020-10-26
31
问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
void fun(char *a,int n)
{
}
main()
{
char s[81];int n;void NONO();
printf("Enter a string:\n");gets(s);
printf("Enter n:");scanf("%d",&n);
fun(s,n);
printf("The string after deleted:\n");
puts(s);
NONO();
}
void NONO()
(/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *in,*out;
int i,n;char s[81];
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fscanf(in,"%s",s);
fscanf(in,"%d",&n);
fun(s,n);
fprintf(out,"%s\n",s);
}
fclose(in);
fclose(out);
}
选项
答案
void fun(char *a,int n) { int i=0; int k=0; char *p,*t; p=t=a; /*开始时,p与t同时指向数组的首地址*/ while(*t==’*’) {k++;t++;} /*用k来统计前部星号的个数*/ if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/ {while(*p) {a[i]=*(p+k—n); i++; p++; } a[i]=’\0’; /*在字符串最后加上结束标识位*/ } }
解析
本题考查:循环判断语句;字符串的操作。
字符串中前导*号不能多于n个,多余的删除。首先需要通过while循环统计字符串前导*号的个数,然后通过if条件语句完成前导*号的个数和n的比较,如果前导*号多于n个,需要把n个*号和其余字符重新保留。
转载请注明原文地址:https://kaotiyun.com/show/Gj3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有下列程序#include<stdio.h>voidmain(){intarry[][3]={{1,3},{5},{7,9}},i,j;for(i=2;i>=0;i--){for(j
下列叙述中正确的是()。
有以下程序:#includemain(){inti,k=0,a[10];for(i_0;i
有以下程序:#include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){default:
设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是()。
有以下程序:#includemain(){unsignedchara=8,C;c=a>>3;printf("%d\n",C);}程序运行后的输出结果是()。
将E-R图转换为关系模式时,实体和联系都可以表示为()。【09年3月】
以下函数按每行8个输出数组中的数据:voidfun(int*wintn){inti;for(i=0;i<n;i++){______printf("%d",w[i]);}printf
面向对象方法中,继承是指()。
有以下程序(strcat函数用于连接两个字符串):#include<stdio.h>#include<string.h>main(){chara[20]="ABCD\0EFG\0",b[]="IJK";strcat(a,b);prinff
随机试题
以下哪些主体有权直接向法院申请破产重整?()
中国某公司与甲国某公司因贸易合同的履行发生争议,有关案件在中国法院审理,并涉及向甲国某公司送达的问题。依相关司法解释,关于送达的方式,下列哪些选项是正确的?()
货物制造企业生产系统中,研究与开发的方式包括()
在设备安装调试的监理工作中,在开始具体的安装过程监理时,还需要完成( )工作。
下列有关可调总价合同特点的表述中,正确的有()。
航班在起飞前或到达后,由于包舱人或受雇人的原因而造成飞机延误,由此对承运人造成的损失,应由保险公司承担责任。()
企业对外提供的劳务分属不同会计期间且资产负债表日提供劳务的交易结果不能可靠估计的,不能采用完工百分比法确认其当期劳务收入。()
公安行政强制措施中对人身自由的强制措施主要有()。
Whichofthefollowingprepositionalphrasesisanadverbialofconcession?
TheRailwaysinBritainThesuccessofearlyrailways,suchasthelinesbetweenbigcities,/ledtoagreatincreaseinra
最新回复
(
0
)