首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
admin
2013-03-29
25
问题
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为:*********A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为********A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun(char *a,int n)
{
}
main()
{ char s[81];int n;void NONO();
printf("Enter a string:\n");
gets(s);
printf("Enter n:");scanf("%d",
&n);
fun(s,n);
printf("The string after deleted:
\n");puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用
函数,输出数据,关闭文件。 */
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);
}
选项
答案
int i=0,k=0; char*t=a; while(*t==’*’) { k++; t++; } t=a ; if(k>n) t=a+k—n ; while(*t) { a[i]=*t; i++; t++; } a[i]=’\0’;
解析
(1)首先由字符串头开始判断字符是否为"*"号字符,如果字符是符号"*",则对"*"号进行统计。
(2)根据统计的"*"号数目结合题目中对"*"号个数的要求,判断是执行对"*"号的截取操作,还是什么都不用做。
(3)然后将其他的所有字符拷贝到字符串,最后记得在新串s的末尾加上结束符"’\n’"。
转载请注明原文地址:https://kaotiyun.com/show/SXJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是structnode{chardata;structnode*next;}a,b,*p=&a,*q=&b
下面程序的运行结果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;
若二维数组a有m列,则在a[i][j]前的元素个数为
若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。
以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。#include"stdio.h"main(){chara1[20],a2[20];intn=0,t;
数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。
以下程序的功能是()#include<stdio.h>main(){FILE*fp1;*fp2;fp1=fopen("filel","r");fp2=fopen("file2","w");wh
设有如下的函数funct(x)floatx;{x*=x;printf("\n%d",x);return(x);}则函数的类型()
下面程序的功能是输出数组s中最大元素的下标,请填空。main(){intk,p,s[]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)if(s[p]>s[k])【】
随机试题
骨盆骨折由于解剖位置的关系,易于出现并发伤,以下描述错误的是
原发性支气管肺癌的最常见组织类型为
根据甲、乙、丙三个零件的已知数据(见下表),应选择()为价值工程的对象。
在特殊情况下,经本单位负责人批准,档案保管人员可以允许他人查阅或者复印会计档案原件。()
在国际货币市场上比较典型、有代表性的同业拆借利率是指()。
俗话说“满招损,谦受益……虚心使人进步,骄傲受人落后”,教师在团队合作中,最好首先做到()。
1971年10月,联合国大会以压倒多数的票数决定恢复中华人民共和国在联合国的合法权利。这一重大事件发生的原因是多方面的,下列关于原因的分析,正确的是()。
20世纪50年代,英国首相丘吉尔________于美苏技术的飞跃发展,乃开始对技术正视。1956年的白皮书是技术教育的绿灯,继而技术学院纷纷成立。今天,科技已经普遍成为大学知识结构的一个组成部分。就大学教学与研究来说,不但再没有轻忽“实用性”知识的现象,实
BarackObamaspentmuchtimeonthecampaigntrailproposingadramaticvisiontochangenotonlytheUnitedStatesforthebett
报据《EIA/TIA568A/B商用建筑物电信布线标准—199s》,综合布线系统分为三个等级,其中增强型综合布线等级要求每个工作区至少()个以上信息插座。
最新回复
(
0
)