首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为: ****A*BC*
admin
2017-07-27
56
问题
假定输入的字符串中只包含字母和*号。请编写函数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全国计算机二级
相关试题推荐
设Y为整型变量,A=1,A的地址为EF01;B=2,B的地址为EF02;执行语句B=&A;Y=&b;后Y的值()。
已知下列函数定义:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}则调用此函数的正确写法是(假设变量a的说明为inta[10])(
队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许删除的一端称作()。
若x=4,y=5,则x&y的结果是()。
下述语句中,在字符串sl和s2相等时显示“theyareEqual”的是()。
诊断和改正程序中错误的工作通常称为()。
设q1和q2是指向一个int型一维数组的指针变最,k为float型变量,下列小能正确执行的语句是()。
以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func(
若有运算符:>、=、<<、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为()。
在学生管理的关系数据库中,存取一个学生信息的数据单位是()。【10年3月】
随机试题
引起急性乳腺炎最常见细菌是
老年女性患者,多年来反复劳累后出现尿频、尿痛,腰膝酸软,神疲乏力,有时面浮肢肿,舌淡苔薄白,脉沉细,检查:双肾区叩击痛,尿白细胞10~15个/高倍视野,中段尿培养,菌落计数>105/ml。治疗应
室性早搏次数为哪项可以诊断为“频发性室性早搏”?()
甲公司与乙公司签订了一份买卖大米10吨的合同,但未约定交付地点。第二日,甲公司在未通知乙公司且未对大米进行分装的情况下,将30吨大米交给丙运往乙公司。运输途中,汽车发生车祸,致使包括乙公司所购大米在内的全部货物毁损。关于本案,以下说法正确的是:()
甲公司系品牌设计企业。经常承接一些节假日前的宣传与品牌设计工作,乙公司系燕窝销售公司,欲与甲公司合作七夕节主题的相关品牌宣传和推广事宜,双方就此签订合同。依据《合同法》,出现了下述哪种情况,甲公司有权解除合同?
关于我国禁止物品入境的说法正确的有( )。
出口许可证管理实行( )。
()是中国面积最大、交界邻国最多、陆地国界线最长的省(市、区)。
近10年来,某电脑公司的个人笔记本电脑的销量持续增长,但其增长率低于该公司所有产品总销量的增长率。以下哪项关于该公司的陈述与上述信息相冲突?
Insomeways,theUnitedStateshasmadespectacularprogress.Firesnolongerdestroy18,000buildingsastheydidintheGreat
最新回复
(
0
)