首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。函数fun将字符串s1和s2交叉合并形成新字符串s3,合并方法为:先取s1的第1个字符存入s3,再取s2的第1个字符存入s3,以后依次类推;若s
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。函数fun将字符串s1和s2交叉合并形成新字符串s3,合并方法为:先取s1的第1个字符存入s3,再取s2的第1个字符存入s3,以后依次类推;若s
admin
2018-10-20
15
问题
使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。函数fun将字符串s1和s2交叉合并形成新字符串s3,合并方法为:先取s1的第1个字符存入s3,再取s2的第1个字符存入s3,以后依次类推;若s1和s2的长度不等时,较长字符串多出的字符顺序放在新生成的s3后。
例如,当s1为:"123456789",s2为:"abcdefghijk"时,
输出结果应该是:1a263c4d5e6t7g8h9ijk
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
void fun(char*s1,char*s2,
char*s3)
{int i,j;
/*********found*********/
for(i=0,j=0;(s1
!=’\0’)&&(s2
!=’\0’);i++,j=j+1)
{s3[j]=s1
;
s3[j+1]=s2
;
}
if(s2
!=’\0’)
(for(;s2
!=’\0’;i++,
j++)
/*********found*********/
s3
=s2[j];
}
else if(sl
!=’\0’)
(for(;s1
!=’\0’;i++,j++)
s3[j]=s1
;
)
/*********found*********/
s3[j﹣1]=’\0’;
}
void main()
{char s1[128],s2[128],s3[255];
printf("Please input string1:");
gets(s1);
printf("Please 2nput str2ng2:");
gets(s2);
fun(s1,s2,s3);
printf("string:%s\n",s3);
}
选项
答案
(1)将for循环中的j=j+1改为j=j+2 (2)将s3[i]=s2[j]改为s3[j]:s2[i] (3)将s3[j﹣1]改为s3[j]
解析
(1)函数fun中,在两个字符串都未结束的情况下将s1[0]放入s3[0],将S2[0]放入s3[1],for循环将字符依次放入,即将s1
放入s3[j],s2
放入s3[j+1]中,每次循环数组s3中放入2个字符,所以循环变量j的变化为j=j+2;所以将for循环中的j=j+1改为j=j+2。
(2)当第一个循环结束后,数组s1或数组s2中仍然可能有字符没有存放至s3,根据题目要求,应该将其剩下的字符放入数组s3的尾部。使用for循环把s2放入s3,这里数组s3的下标应为j,所以应将s3
=s2[j]改为s3[j]=s2
。
(3)当s1[]或s2[]的最后一个字符放入s3[j]时,应该设置一个结束标志,该结束标志’\0’应存入s3[j]最后一个位置。因为将最后一个字符放入s3[j]中后,j执行j++,将结束标志’\0’放入此时的s3[j]中,所以将s3[j﹣1]改为s3[j]。
转载请注明原文地址:https://kaotiyun.com/show/TMxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#defineP3voidF(intx){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是()。
以下程序的输出结果是______。main()inta=3;printf("%d\n",(a+=a=a=a*a);}
下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=
有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)p
有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+
最简单的交换排序方法是
fscanf函数的正确调用形式是()。
设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。main(){intfindbig(int,int,int);int(*f)(),x,y,z,big;
随机试题
除哪项外,以下疾病治疗不当均可发展为红皮病:
患者,男性,40岁,搬家公司员工,搬东西上楼后突然出现胸痛、干咳、呼吸困难。此时应进行的检查是
根据民事诉讼法及司法解释的规定,对于人民法院作出的下列哪些裁判,当事人不服的可以提出上诉?()
下列哪个建筑物的桩基应进行沉降验算?[2010年第130题]
工程产品质量不合格,是指该工程产品没有满足()的要求。
名义汇率是指在实际汇率的基础上剔除了通货膨胀因素后的汇率。()
(2010年)20×7年5月8日,甲公司以每股8元的价格自二级市场购入乙公司股票120万股,支付价款960万元,另支付相关交易费用3万元。甲公司将其购入的乙公司股票分类为可供出售金融资产。20×7年12月31日,乙公司股票的市场价格为每股9元,20×8年1
某省2009年全年完成旅客运输量、货物运输量分别比上年增长9.5%和9.2%,旅客周转量、货物周转量增长8.1%和8.5%。完成港口货物吞吐量13.3亿吨,增长14.2%,其中外贸货物吞吐量2.0亿吨,增长24.5%。港口货物吞吐量中,集装箱吞吐量达878
生产关系一定要适合生产力状况规律的主要内容是()。
由人民代表大会产生,对它负责,受它监督的机关有
最新回复
(
0
)