首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
规定输入的字符串只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导,-号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函
规定输入的字符串只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导,-号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函
admin
2018-09-27
29
问题
规定输入的字符串只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导,-号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 void fun(char *a)
3 {
4 }
5 main()
6 { char s[81];
7 void NONO(),
8 printf(’’Enter a string:\n’’);gets(d);
9 fun(s);
10 printf(’’The string,after deleted:\n’’);puts(s);
11 NONO();
12 }
13 void NONO()
14 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
15 FILE *in,*out ;
16 int i;char s[81];
17 in=fopen(’’in.dat’’,’’r’’);
18 out=fopen(’’out.dat’’,’’w’’);
19 for(i=0;i<10;i++) {
20 fscanf(in,’’%s’’,s);
21 fun(s);
22 fprintf(out,’’%s\n’’,s);
23 }
24 fclose(in);
25 fclose(out);}
选项
答案
1 int j=0; 2 char *p=a; 3 while(*p==’*’)p++; 4 while((p){ 5 a[j++]=*p; 6 p++;} 7 a[j]=’\0’;
解析
该程序功能是将字符串中的前导“*”号全部删除,中间和尾部的“*”号不删除。本题的解题过程首先确定由串起始位置开始的第一个非“*”进行判断,将不是“*”的字符拷贝到字符串。
(1)首先,使用一个指针p指向串的起始位置,然后对指针p指向的字符进行判断,并且如果是“*”,那么跳过该字符,这样确定了由头开始的第一个非“*”的位置。
(2)然后,在循环过程中将第一个非“*”字符起始到串尾的字符拷贝到字符串a。
(3)最后,在新生成的字符串尾加’\0’。
转载请注明原文地址:https://kaotiyun.com/show/a8xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若输入3、4、5,程序的输出结果为【】。#include"math.h"main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c)
在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。
软件工程研究的内容主要包括:【】技术和软件工程管理。
有以下程序 main() {int x[3][2]={0},i; for(i=0;i<3;i++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0]
以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){i
有以下程序 void f(int*x,int*y) { int t; t=*x;*x=*y;*y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p { f(p,q)
下列程序的运行结果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d
已知a所指的数组中有N个元素。。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置填空。voidfun(inta[N],intk){inti:for(i=k;i
已知字母A的ASCII码为65。以下程序运行后的输出结果是【】。main(){chara,b;a=’A’+’5’-’3’;b=a+’6’-’2’;printf("%d%c\n",a,B);}
设有定义:char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是()。
随机试题
a_________adj.侵略的,放肆的;有进取心的,敢做敢为的
患者,男性,70岁。超声提示:膀胱内可见一个直径约2cm的结石,合并膀胱憩室。该患者首选的治疗方式为
《合同法》的立法宗旨是()
数字出版的主要特征包括()等。
幼儿平面手工活动的形式是()
①穿越灾难,我们更加懂得,人类是自然之子,在大自然的怀抱中孕育、进化、生长,我们_________要认识自然,还要敬畏自然、善待自然。②网络使现代人的阅读行为发生了革命性的变化:眼睛常常在网上快速、便捷地“暴走”,_________才进行一次细嚼慢咽式的传
某工厂4个车间的工人都出生在1985年到1988年间,如果统计任意2个车问的人数和,分别得到54、63、75、78、90、99这6个不同的结果。则人数最多的车间至少有多少工人出生于同一年?()
元世祖时,曾按居民贫富划分为上、中、下三等户,每等再分三级,如上上、上中、上下等,称为三等九甲,登记户等的册子称为()。
詹金斯和达伦巴赫(Jenkins&Dallenbach,1924)进行了“睡眠记忆”的实验,结果发现学习后立即睡觉比继续进行日常活动,对学习项目的保持量要高。该研究支持遗忘的
Everyotherweekitseemsanewstudycomesoutthataddstoouralready-formidablestoreofparentalworries.Butevenbythose
最新回复
(
0
)