首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等r个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G* * *,
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等r个,则不做处理,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*******A*BC*DEF*G* * *,
admin
2021-02-25
32
问题
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等r个,则不做处理,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G* * *,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G***一;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。r的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
void fun(char*a,in n)
{
}
main()
{
char s[81];int n;、aid NONOO;
printf("Enter a siring:\n");gets(s);
printf("Enter n:");scanf("%d",&n);
fun(s,n):
printf("The string after deleted:\n");
puts(s);
NONOO:
}
void NONOO
{/*本函数用于打歼文件,输入数据,调用函数。输出数据,关闭文件。*/
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,"%s\n",s);
fclose(in):
fclose(out);
}
选项
答案
void fun(char*a,int n) { int i=0; int k=0; 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/Nvz0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
在黑盒测试方法中,设计测试用例的根据是
下列叙述中正确的是
有以下程序段:struct{floatweight;charsex;charname[10];}rec,*ptr;ptr=&rec;从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是()。
有以下程序:#includecharf(charx){returnx*x%10+’0’:}main(){chara;intb=0;for(a=0;a
设有定义:chars[81];inti=0;以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是while((s[i++]=getchar())!=’\n’);s[i]=’\0’;
关于switch语句的叙述中正确的是()。
以下选项中,能正确进行字符串赋值的是()。
设有定义语句:char*aa[2]={"abcd","ABCD"};则以下叙述正确的是
随机试题
下列不是除去注射液中鞣质方法的是
患者男,51岁,在某基层医院行鼻中隔矫正及下鼻甲部分切除术时因鼻腔出血严重未完成手术即行鼻腔填塞,术后2天抽出鼻腔填塞物后患者又再度出m,行前鼻孔填塞后止血效果仍然不佳,且患者全身情况逐渐衰竭,遂转至某大医院,转入时,患者神志模糊,不时从口中吐出血液,测血
患者,男性,44岁。前一日因车祸致颅底骨折,2小时前突然呕吐咖啡色液300ml。诊断首先考虑为()
知觉是人脑对客观事物
某市商业银行2010年第2季度有关业务资料如下:(1)向生产企业发放贷款取得利息收入500万元,逾期贷款的罚息收入8万元。(2)6月份购入A、B两种债券,购入价分别为50万元和80万元;当月又将债券卖出,A债券售出价55万元;B债券售出价8
学校组织教师旅游,4个老教师老赵、老钱、老孙、老李和4个年轻教师小赵、小钱、小孙、小李一起参加。在旅馆里,他们8人住4个房间,满足以下条件:(1)每个房间住一老一少。(2)同姓人不住同一个房间。(3)如果老孙不和小李住一个房间
1KB的存储容量能存储的汉字机内码的个数是______。
HowlongdidEmilyDickinsonliveinthehousewhereshewasborn?
WhichofthefollowingsentencesisINCORRECT?
DearSir,Irecentlypurchasedacomputerfromyourstore.WhenIgotithome,thecomputerwasunabletoconnecttoanynetwork
最新回复
(
0
)