首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
admin
2017-09-23
23
问题
规定输入的字符串中只包含字母和*号。请编写函数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://kaotiyun.com/show/Isxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行程序时的输入为123456789,则程序的运行结果为()。#include"stdio.h"main(){inta,b;scanf("%2d%*2d%1d",&a,&B);printf("%d\n",
C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是()。
运行下面的程序,输入字符串MicrosoftVisualStudio,则程序的执行结果是()。#include<stdio.h>main(){charChr[20];scanf("%s",&Chr);p
下列4个程序中,完全正确的是()。
下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta
有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串从小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)fo
当把4个表达式用做if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是()。
下面程序的功能是:计算1~20之间的奇数之和与偶数之和,请填空使程序功能完整。#include<stdio.h>main(){inta=0,b=0,c=0,i;for(i=0;i<=20;i+=2){a+=
下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!=’c’)s[j++]=
随机试题
连接相邻椎弓板的结构有
既能祛风湿,又能补肝肾,还能安胎的药物是
患者,女性,32岁。妇科检查发现子宫后倾。有利于矫正子宫后倾的体位是
甲公司租赁乙公司大楼举办展销会,向众商户出租展台,消费者李某在其中丙公司的展台购买了一台丁公司生产的家用电暖器,使用中出现质量问题并造成伤害,李某索赔时遇上述公司互相推诿。上述公司的下列哪一主张是正确的?
下列各项中属于建设项目总经理的职权的是()。
曼尼司公司的档案记录被保存成一种只有通过其现在的计算机系统才能进入的格式,这样当系统不能适当运行时,就得不到这些记录。为了防止因计算机失灵而不能取它们的记录的可能性,曼尼司计划用一个新系统取代现在的计算机系统,该新系统保存记录的格式可以进入几个不同的系统。
债的变更是指不改变债的主体而改变债的内容的情形。债的变更需建立在原来存在合法有效的债的关系的基础上,且只能发生在债成立后、尚未履行或者尚未完全履行之前。已经终止的债,无变更的意义。根据上述定义,下列属于债的变更的一项是:
1945年秋至1946年夏,我国国内形势的基本特点是()。
A容器中有12%的盐水300g,B容器中有8%的盐水200g,现在往两容器中加入等量的盐,使得二者浓度相同,则需要加入()g盐.
1945年8月,中共中央发表对时局的宣言,明确提出的口号是
最新回复
(
0
)