首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
假定输入的字符串中只包含字母和·号。请编写函数fun,它的功能是:使字符串的前导·号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*********A*BC*DE
admin
2013-03-29
27
问题
假定输入的字符串中只包含字母和·号。请编写函数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://jikaoti.com/ti/CKn0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是()
为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()
用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum
若有定义:inta[2][3];则才a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为
以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。#include"stdio.h"main(){chara1[20],a2[20];intn=0,t;
以下程序段用于构成一个简单的单向链表。请填空。struetSTRU{intx,y;floatrate;【】p;}a,b;a.x=0;a.y=0;a.rate=0;a.p=
函数调用语句;fseek(fp,-20L,SEEK_END);的含义是()
fprintf函数的一般调用方式是()
以下程序段给数组所有的元素输入数据,请选择正确答案填入。()#inelude<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);
随机试题
Engineeringstudentsaresupposedtobeexamplesofpracticalityandrationality,butwhenitcomestomycollegeeducationIam
下列叙述符合公文写作基本要求的是()
男性,40岁。进行性上升性左下肢麻木1年余伴右下肢肌力减退就诊。大小便无明显障碍。体检:左肋弓以下感觉减退,双侧腹壁反射减弱,右侧膝反射亢进。该患者的诊断最可能为
股骨干与股骨颈构成的颈干角约为
营养物质吸收的主要部位是
关于出售、购买假币罪的共犯关系,下列哪些说法是错误的?关于甲出售、购买假币与使用假币的行为,下列哪些说法是错误的?
( )是与会计要素的确认基础相联系的原则。
《城市居民委员会组织法》规定,()有选举权和被选举权,但是,依照法律被剥夺政治权利的人除外。
教育学生的感情基础()。
教师自编问卷中的主观题主要包括()
最新回复
(
0
)