首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
admin
2017-09-23
30
问题
规定输入的字符串中只包含字母和*号。请编写函数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://jikaoti.com/ti/kZa0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列定义变量的语句中错误的是()。
有以下程序:#include<stdio.h>intfun(int*k){intb=0;b=*k+b:return(B);}main(){inta[10]={1,2,3,4,5,6,7,8},i
以下程序段的输出结果是()。#include<stdio.h>main(){charp[][4]={"ABC","DEF","GHI"};inti;for(i=0;i<3;i++)puts(p[i
若有“doublea;”,则正确的输入语句是()。
设变量均已正确定义,若要通过scanf("%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
下面程序将二维数组a的行和列元素互换后存放到另一个二维数组b中,请填空。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)
数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-A);}
以下语句定义正确的是()。
下面程序的功能是:计算1~20之间的奇数之和与偶数之和,请填空使程序功能完整。#include<stdio.h>main(){inta=0,b=0,c=0,i;for(i=0;i<=20;i+=2){a+=
随机试题
A.人乳头瘤病毒感染B.雌激素水平过高C.雄激素减少,雌激素相对增多D.尿中hCG明显增高葡萄胎
大体积(>50ml)注射剂过滤和灌封生产区的洁净度要求是
下列属于柔性管理方法的是()。
旅游资源是造成旅游活动的最基本的因子。没有景观的地域分异,就不可能吸引需求不同的旅游者。自然旅游资源是自然存在的,是自然界经历了一万多年的演变而形成的。根据《中国旅游资源普查规范》,自然旅游资源分为地文景观类、水域风光类和生物景观类。人文旅游资源
行为主导型的绩效考评方法具有()的优点。
研究表明,大多数9岁以下儿童及少数青少年处于______道德水平。
Thebrainistrulyamarvel.Aseeminglyendlesslibrary,whoseshelveshouseourmostpreciousmemoriesaswellasourlifetime
抗战时期,中共为什么发动了延安整风运动?如何正确认识这次运动?
阅读终端在不断下移.打开手机就可以阅读到新闻,关注他人微博就可以了解到需要的信息。所以如果纸媒还_________地认为自己不可取代.那无疑是自寻死路。许多纸媒在新闻方面早已了,只要广告额下降到一定程度,关门是迟早的事。填入画横线部分最恰当的一项是:
去年米勒县的草莓种植园主在其草莓地施用了某种杀菌剂,今年他们报告说这些地里种植的草莓歉收。但是,由于今年附近没有用杀菌剂的地里也出现歉收,很明显施用杀菌剂不是这次歉收的原因。下面哪一项如果正确。最能削弱上面的论述?
最新回复
(
0
)