首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G**
admin
2017-09-23
65
问题
规定输入的字符串中只包含字母和*号。请编写函数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/Isxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
先有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.C"main(){fun();printf("\n");}
以下程序运行后的输出结果是()。#include<string.h>main(){charch[]="abcd",x[4][4];inti;for(i=0;i<4;i++)strcpy(x[i],ch);fo
在下列选项中,没有构成死循环的程序段是()。
已知下列函数定义:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}则调用此函数的正确写法是(假设变量a的说明为int
下列4个程序中,完全正确的是()。
下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",
以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\
下面结构体的定义语句中,错误的是()。
以下函数定义的类型符是()。fff(doublex){printf("%f",x+x);}
随机试题
“文件"功能区主要用来新建、打开、保存、打印文件,2010版还给大家提供了“________”功能,便于直接打开最近使用过的工作簿。
诊断先天性风疹综合征,下列哪些最可靠
脊髓损伤最轻微的类型是()。
流动资产投资工程项目的可行性研究报告,应当包括合理用能的专题论证。()
措施项目费的计算方法中,()计价适用于可以计算工程量的措施项目,主要是指一些与工程实体有紧密联系的项目。
下列不属于金融衍生工具的是()。
陈先生购得某只股票,每股股票每季度末分得股息3元,若年利率是6%,则该股票的价格为()元。
根据企业所得税法律制度的规定,下列各项中,准予在企业所得税税前扣除的是()。
国家的根本大法是()。
下列叙述中正确的是______。
最新回复
(
0
)