首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
admin
2018-03-28
10
问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。
例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
void fun(char*a,int n)
{
}
main()
{ char s[81];int n;
printf("Enter a string:\
n");
gets(s);
printf("Enter n:");
scanf("%d",&n);
fun(s,n);
printf("The string after
deleted:\n");
puts(s);
}
选项
答案
void fun(char,*a,int n) { int i=0,k=0; char*p,*t; p=t=a; /*将指针移动到字符串末尾*/ while(*t) t++; t一一; /*从后往前如果是‘*’则使k++,找到最后一个术所在的位置,并记录‘*’的个数*/ while(*t==’*’) /*指针t指向前一个,同时标量k增加—*/ {k++;t一一;) /*如果最后*的个数大于允许的个数*/ if(k>n) /*循环次数不大于前面的字符与最大允许*的个数之和*/ {while(*p&&p<t+n+1) /*把字符保存到数组a中*/ {a[i]=*p; i++;p++; } a[i]=’\0’; } }
解析
本题考查:循环判断语句;字符串的操作。
字符串中尾部*号不能多于n个,多余的要删除。首先需要通过while循环统计字符串尾部*号,然后通过if条件语句完成尾部*号数和n的比较,若尾部*号数多于n个,则需要把n个*号和其余字符重新保留。
转载请注明原文地址:https://www.kaotiyun.com/show/pxxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的输出结果是()。#includeintm=13;intfun(intx,inty){intm=2;return(x*y-m);}main(){
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 【】(double,double); main( ) {doublex,y; scanf("%lf%lf",&x,&y); printf("%lf\n",ma
以下程序运行后的输出结果是【】。#include<stdio.h>main(){inta,b,c;a=25;b=025;e=0x25;prinff("%d%d%d\n",a,h,c);
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是( )
以下程序的结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d
有以下程序#includeintfun(intX,inty){if(x!=y)return((x+y)/2):elsereturn(x):}main().{inta=
数字字符0的ASCII值为48,运行以下程序的输出结果是()。main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-a);}
设有如下宏定义#defineMYSWAP(z,x,y){z=x;x=y;y=z;}以下程序段通过宏调用实现变量a,b内容交换,请填空。floata=5,b=16,c;MYSWAP(【】a,b);
以下叙述中正确的是()。
若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
随机试题
Everystreetinthatneighborhoodhasadifferent________ofbuildingboastingacombinationofdifferentanglesandshapes.
胃食管反流病最常见的临床表现是
患者,女,14岁,检查发现:上前牙唇侧龈缘及龈乳头肿胀明显。龈缘有大量软垢,乳头呈球状突起,颜色暗红。质地软,探诊易出血。X线检查牙槽骨无明显吸收。其最可能的诊断是
某企业2016年度共发生财务费用45000元,其中:短期借款利息为30000元,票据贴现息为9000元(不附追索权),发行公司债券手续费6000元。则现金流量表补充资料中的“财务费用”项目应填列的金额为()元。
力量练习后,应及时补充营养物质促进组织更新修复,该物质是()。
Americanshaveagreatloveforinformalityandnowhereisthisbetterexpressedthanintheirlovefornicknames(昵称、绰号).Upon
有一个A(2)×B(2)的实验设计结果如下图,对该结果最可能的描述是()。
考虑一个两期经济。在每一期中都同时存在年轻人和老年人,每一个人都生活两期,从第一期的年轻人变成第二期的老年人。在第t期时,每个年轻人拥有一单位劳动,通过提供劳动获得劳动收入。年轻人在第£期时消费一部分劳动收c1,t(其中下标“1”表示年轻人,下标“t”表示
刑罚适用的目的是()。
在新民主主义革命中,中国人民的第一个最凶恶的敌人是( )
最新回复
(
0
)