首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2017-07-27
33
问题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如, 字符串中的内容为:
****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 void fun(char*a)
3 {
4 /*以下代码仅供参考*/
5 int i=0,k;
6 while(a
==’*’)i++;
7 k=i;
8 while(a
!=’\0’)/*以下程序段实现非*字符前移*/
9 {
10 }
11 a[k]=’\0’;
12 }
13 main()
14 {char s[81];void NONO();
15 printf(’’Enter a string:\n’’);gets(s);
16 fun(s);
17 printf(’’The string after deleted:\n’’);puts(s);
18 NONO();
19 }
20 void NONO()
21 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
22 FILE *in,*out;
23 int i ; char s[81];
24 in=fopen(’’in.dat’’,’’r’’);
25 out=fopen(’’out.dat’’,’’w’’);
26 for(i=0;i<10;i++) {
27 fscanf(in,’’%s’’,s);
28 fun(s);
29 fprintf(out,’’%s\n’’,s);
30 }
31 fclose(in);
32 fclose(out);
33 }
选项
答案
2 void fun( char *a ) 3 { int i=0,k; 4 while(a[i]==’*’)i++; 5 k=i; 6 while(a[i]!=’\0’) 7 {if(a[i]!=’*’) a[k++]=a[i]; 8 i++; 9 } 10 a[k]=’\0’; 11 }
解析
本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*”,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5~6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9~12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
转载请注明原文地址:https://kaotiyun.com/show/iKDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的输出结果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)main()
下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
以下是while语句的基本形式:while(表达式){语句:}其中“表达式”()。
下列选项中,不能作为合法常最的是()。
开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。
字符串"%%\"ABCDEF\"\\"的长度是()。
C语言源程序名的后缀是()。
诊断和改正程序中错误的工作通常称为()。
C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是()。
以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26
随机试题
在新抹砂浆、现浇混凝土面层涂饰建筑涂料,常温要求的时间分别是()d以上。
脐带中的脐动脉有几根
患者女,35岁,胃大部切除术后切口化脓,创面脓液量多,有臭味,此时应选用()
“用最严谨的标准、最严格的监管、最严厉的处罚、最严肃的问责,确保广大人民群众‘舌尖上的安全’”。不久前闭幕的中央农村工作会议,把食品安全放在更加重要的位置来谋划,四个“最”__________,一个“确保”__________。这样的宣示与承诺,对农产品生
票据基础关系也称为非票据关系。下列各项属于票据基础关系的是:()
某上市公司拟在1年内购买重大资产,所需资金比例占公司资产总额的45%,此项决议需经出席会议的股东所持表决权的()以上通过。
古代希腊的民主制度,主要是以雅典为代表建立和发展起来的。根据亚里士多德在《雅典政制》中的记载,雅典原来也是贵族当政,按照门第和财富选任执政官,后来经过多次改革,民主政治才逐渐完善起来。 这段文字直接支持了这样一个观点,即()。
给定资料1.2011年2月17日,网络上出现了一篇名为《内地“皮革奶粉”死灰复燃长期食用可致癌》的文章。文章说,销声匿迹数年后,内地再现“皮革奶粉”踪影,内地疑有不良商人竟将皮革废料的动物毛发等物质加以水解,再将产生出来的粉状物掺入奶粉中,意图提高奶类的
与下面例句语法结构相同的一项是()。例:他的报告能使听讲的学生了解课本以外的新知识。
TheAmericanfarmershavealwaysbeenindependentandhard-working.Intheeighteenthcenturyfannerswerequiteself-sufficien
最新回复
(
0
)