首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的
admin
2013-03-29
39
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:A*BC*DEF*G。
注意:部分源程序在文件FROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在
函数fun的花括号中填入你编写的若干语句。
#include
void fun(char *a,int n,int h,int e)
{
}
main()
{char s[81],*t,*f;int m=0,tn=0,
fn=0;void NONO();
printf(”Enter a string:\n”);
gets(s);
t=f=s;
while(*t)(t++;m++;)
t--;
while(*t==’*’){t--;tn++;)
while(*f==’*’){f++;fn++;)
fun(s,m,fn,tn);
printf(”The string after deleted:
\n”);puts(s);
NONO();
}
void NONO()
(/*本函数用于打开文件,输入数据,调用函
数,输出数据,关闭文件。*/
FILE*in,*out;
int i;char s[81],*t,*f ;
int m=0,tn=0,fn=0;
in=fopen(”in.dat”,”r”);
out=fopen(”out.dat”,”W”);
for(i=0;i<10 ; i++){
fscanf(in,”%s”,s);
t=f=s;
m=0;tn=0;fn=0;
while(*t){t++;m++;)
t--;
while(*t==’*’){t--;tn++;}
while(*f==’*’){f++;fn++;}
fun(s,m,fn,tn);
fprintf(out,”%s\n”,s);
}
fclose(in);
fclose(out);
}
选项
答案
char*p=a; int j=0,len=0; while(*p){p++; len++;} while(j
解析
(1)主函数中,首先统计字符串长度、前导和尾部"*"号的数量,把这些参数传给函数fun。
(2)根据字符串长度,前导以及尾部"*"号统计的数目,确定执行字符移动的起始位置。
(3)在循环中依次执行字符的移动。
转载请注明原文地址:https://kaotiyun.com/show/yPJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
下面程序段的输出为#include"stdio.h"main(){printf("%d\n",12<<2);}
以下程序的输出结果为()。#include<stdio.h>main(){char*alpha[6]={"ABCDEFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;
下述程序的输出结果是()。#include<stdio.h>voidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf("%d,",*(p++
主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){i
阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn
请阅读以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0
设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为______。
以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【】;s=s+t;}printf(
设函数fun的定义形式为: void fun(char ch,float x) { …… } 则以下对函数fun的调用语句中,正确的是 ______。
随机试题
在实际工作中常测口腔、直肠或腋窝的温度来代表体温,三处温度由高至低的顺序为
苦味酸动力学法测定成人血清肌酐的参考值为
下列除哪项外,均符合问诊的要求
A.4.0×109/LB.3.0×109/LC.2.0×109/LD.1.0×109/LE.0.5×109/L白细胞减少是指外周血白细胞绝对值持续低于()
接合是指
收益乘数是房地产的价格除以其某种年收益所得的倍数,具体的有()。
年末ABC公司正在考虑卖掉现有的一台闲置设备。该设备干8年前以50000元购入,税法规定的折旧年限为10年,按直线法计提折旧,预计净残值率为10%:目前可以按10000元价格卖出,假设所得税税率为25%,卖出现有设备对本期现金流量的影响是()
古希腊古风后期的人物雕像,开始出现健美的青年男人体,后来被称为()。
感恩节
Now,morethanever,itdoesn’tmatterwhoyouarebutwhatyoulooklike.Janetwasjusttwenty-fiveyearsold.Shehada
最新回复
(
0
)