首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等D个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****,若
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等D个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G****,若
admin
2022-06-24
30
问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等D个,则不做处理,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*******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("Entern:");scanf("%d",&n);
fun(s,n);
printf("The string after deleted:\n");
puts(s);
NON0( );
}
void NON0( )
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
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,"Askn",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://jikaoti.com/ti/8Jd0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[
有以下程序:#include#defineS(x)x*xvoidmain(){intk-5,j=2;prinff(“%d,%d\n”,S(k+j+2),S(+k+2));}程序的运行结果是(
有以下程序段int*p;p=_______malloc(sizeof(int));若要求使p指向一个int型的动态存储单元,在横线处应填入的是
以下选项中叙述正确的是()。
C语言中double类型数据占字节数为
有以下程序voidfun(intn,int*s){intf;if(n==1)*s=n+1;else{fun(n-1,&f);
若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c;;/*第5行*/;/*第6行*/printf("%d,%d,%d
在数据库系统中,用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是()。
已知“inta=6;”则执行“a+=a-=a*a;”语句后,a的值为()。
设有定义:inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0则a和b的值分别是
随机试题
A.小便点滴短少B.小便混浊如米泔水C.小便时尿道刺痛有血D.小便点滴不通E.小便有血血淋的主症是
公路工程经交通主管部门审查后,对于符合验收条件的,应自收到申请文件之日起()个月内组织竣工验收。
根据我国担保法律制度关于抵押权实现的说法,下列表述错误的是()。
报关企业注册登记许可应当具备的条件是:
以下基金中以投资价值型股票为主的是()。
根据《国有土地上房屋征收与补偿条例》的规定,市、县级人民政府应当组织有关部门对征收补偿方案予以公布,征求公众意见。征求意见期限不得少于()。
A会计师事务所接受甲公司(大型制造类公司)2014年财务报表审计业务,“影响生产与存货交易和余额的重大错报风险”可能包括()。
固定电话、有线电视、宽带等经营者向用户收取的开户费、扩容费以及类似收费,按照电信服务缴纳增值税。()
2013年全年研究生招生61.1万人,在学研究生179.4万人,毕业生51.4万人。普通本专科招生700万人,在校生2468.1万人,毕业生638.7万人。中等职业教育招生698万人,在校生1960.2万人,毕业生678.1万人。普通高中招生823万
Forthispart,youareallowed30minutestowriteacompositiononthetopic:Hobbies.Youshouldwriteatleast120wordsand
最新回复
(
0
)