首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2019-03-19
42
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如, 字符串中的内容为:
****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun(char *a)
{
/*以下代码仅供参考*/
int i=0,k;
while(a
==’*’)i++;
k=i;
while(a
!=’\0’)/*以下程序段实现
非*字符前移*/
{
}
a[k]=’\0’;
}
main()
{char s[81];void NONO();
printf("Enter a
string:\n");gets(s);
fun(s);
printf("The string after
deleted:\n");puts(s);
NONO();
}
void NONO()
(/*本函数用于打开文件,输入数据,调用
函数,输出数据,关闭文件。*/
FILE *in,*out;
int i;char s[81];
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(in,"%S",s);
fun(s);
fprintf(out,"%s\n",s);
}
fclose(in);
fclose(out);
}
选项
答案
void fun( char *a ) { int i=0,k; while(a[i]==’*’) i++; k=i; while(a[i]!=’\0’) {if(a[i]!=’*’) a[k++]=a[i]; i++; } a[k]=’\0’; }
解析
本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*”,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5~6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9~12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
转载请注明原文地址:https://kaotiyun.com/show/W6Rp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库的故障恢复一般是由()来执行恢复。
函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。voidfun(float*sn,intn){
执行下面的程序后,a的值是() #defineSQR(X)X*X main() { inta=10,k=2,m=l; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); }
有如下程序 #include<stdio.h> main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16)); int i,s=0; for(i=0;i<4;i++)s+=a[i
执行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;P=&a[0][0];m=p[4];
执行语句printf(“%u\n”,+12345)的输出结果是()。
在C语言中,存储类型为()的变量只在使用它们时才占用存储空间。
下面的程序通过函数average计算数组中各元素的平均值,请填空。floatavetage(int*pa,intn) {inti; floatavg=0.0; for(i=0;i<n;i++); avg
下述程序的输出结果是()。#includemain(){inti;for(i=1;i<=10;i++){if(i*i>=20)&&(i*i<=100))break;
若变量已正确定义并赋值,则以下符合C语言语法的表达式是()。
随机试题
患者,男,17岁。因暴饮暴食诱发腹痛,脘腹胀满,按之不舒,嗳腐吞酸,大便夹有不消化食物,苔厚腻,脉滑实。方选
患者,女,45岁。失眠2个月,近日来入睡困难,有时睡后易醒,醒后不能再睡,甚至彻夜不眠,舌苔薄,脉沉细。治疗应首选
B股账户是专门为投资者买卖()而设置的。Ⅰ.人民币特种股票Ⅱ.境外上市外资股Ⅲ.境内上市外资股Ⅳ.境内上市股
维果斯基的“最近发展区”意指()。
世界知识产权组织2016年3月16日在日内瓦总部发布公报说,公报显示,企业专利申请排名方面,()以3898件连续第二年位居榜首,美国高通公司和中国的中兴通讯分别以2442件和2155件位列其后。
A.inthefutureB.noxiousC.demandsD.intensifiedPhrases:A.Waterproblems【T13】______willbecomemoreintenseandmoreco
标准参照测验的题目分析包括内容效度分析、难度分析、区分度分析。其中进行题目的区分度分析时,常用的方法有
甲误将黄色染料当硫磺,制造了“炸弹”,并投掷到邻居刘某家,意图杀死刘某,但“炸弹”未能爆炸,刘家五口人安然无恙,甲的行为应认定为()(2016年一专一第19题)
Aperson’shomeisasmuchareflectionofhispersonalityastheclotheshewears,thefoodheeatsandthefriendswithwhomh
窗体上有名为Text1、Text2的两个文本框,和一个由3个单选按钮组成的控件数组Optionl,如图1所示。程序运行后,如果单击某个单选按钮,则执行Text1中数值与该单选按钮所对应的运算(乘1、乘10或乘100),并将结果显示在Text2中,如图2所示
最新回复
(
0
)