首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:****A*BC*DEF
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如,字符串中的内容为:****A*BC*DEF
admin
2018-09-27
69
问题
假定输入的字符串中只包含字母和*号。请编写函数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(2=0;i<10;i++){
27 fscarlf(in,’’%s’’,s);
28 fun(s);
29 fprintf(out,’’%s\n’’,s);
30 }
31 fclose(in);
32 fclose(out);
33 }
选项
答案
1 void fun( char *a ) 2 { int i=0,k; 3 while(a[i]==’*’)i++; 4 k=i; 5 while(a[i]!=’\0’) 6 {if(a[i]!=’*’) 7 a[k++]=a[i]; 8 i++; 9 } 10 a[k]=’\0’; 11 }
解析
本题所需要的功能是是处理一个输入的只含字母和“*”的字符串,除了字符串前导的“*”号之外,将串中其它“*”号全部删除。并且在编写函数时,不得使用C语言提供的字符串函数。这里根据题意,很快我们就知道需要使用循环语句和条件语句来进行功能的实现。第一步要自己输入字符串,这就需要格式输入函数;第二步就要进行功能函数了,这里的就要一开始是否有“*”的存在,有多少个“*”,这个是很重要的判断。因为根据题意虽然是要删除“*”,但是字符串前面的“*”是不用删除的,无论有多少个都不能删除,然后当没有“*”或者跳过字符串前面“*”后,就要到达第一个字母了,字母保留,然后后面遇见“*”就删除,依次循环进行下去,一直到字符串结束,这些功能的实现就需要条件语句和循环语句的使用了;第三步将处理过后的字符串输出,得到新的字符串,程序就可以结束了。
本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*”,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5~6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9~12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
转载请注明原文地址:https://kaotiyun.com/show/78xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的功能是将字符串s中所有小写字母’a’删去,请填空。#include<stdio.h>main(){chars[]="absuWWUDJFKFLaaakdK";inti,j;for(i=j=0;s[i]!=
在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。
以下关于C语言数据类型的叙述中正确的是()。
以下函数值的类型是______。fun(floatx){floaty;y=3*x-4;returny;}
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。
若有下列定义(设int类型变量占2个字节):floatx=123.4567;则下列语句:printf("x=%5.2f",x);输出的结果是()。
下面程序输出的结果是______。main(){inti=5,j=9,z;x=(i==j?i:(j=7));printf(:\n%d,%d",i,j);}
以下四个选项,不能看作一条语句的是()。
在表示C语言的整型变量时,表示“无符号整型”的符号是()
随机试题
我国环境管理除遵循国家管理的一般性原则外,还遵循一些特殊原则,具体包括()
现场勘查记录不包括()
语颤减弱见子()
下列何项是利用仪器所提供的一条水平视线来获取两点之间高差的测量方法:
对破产人的特定财产享有担保权的权利人,对该特定财产享有优先受偿的权利,此项权利即别除权。对此,下列说法正确的有()。
中国公民张先生是某民营非上市公司的个人大股东,同时也是一位作家。2015年5月取得的部分实物或现金收入如下:(1)公司为其购买了一辆轿车并将车辆所有权办到其名下,该车购买价为35万元。经当地主管税务机关核定,公司在代扣个人所得税税款时允许税前减除的数额为
下列属于浙江省国家级地质公园的有()。
人类的物质生产劳动过程必须具备的三个基本条件或基本要素是人的劳动、劳动资料和劳动对象。()
在一棵完全二叉树中,其根的序号为1,(54)可判定序号为p和q的两个节点是否在同一层。
人类文明迄今已经历了原始文明、农业文明和工业文明,目前,人类社会正处在由工业文明向生态文明的转型期。工业文明是以经济快速发展、社会财富不断快速增长为标志,极大地满足人们对物质的需求。由于工业文明的快速发展,中国已成为世界制造业大国,随之而来的是资源的过度开
最新回复
(
0
)