首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
39
问题
使用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全国计算机二级
相关试题推荐
已知字母a的ASCII码为十进制数的97,下面程序的输出结果是______。 main() { char c1,c2; c1=’a’+’5’-’3’; c2=’a’+’6’-’3’; printf("%c,%d\n",c1,c2); }
以下程序的输出结果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);
有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,++y),z+2);}运行该程序的输出结果是()。
以下程序运行后的输出结果是______。main(){inta=3,b=4,c=5,t=99;i[(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t
以下程序的输出结果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++
设有以下语句:charstrl[]="string",str2[8],*str3,*str4="string";则_______不是对库函数的正确调用。
有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:cas
设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【 】。
下面程序的输出结果是______。main(){staticchara[]="language",b[]="program";char*ptrl=a,*ptr2=b;intkfor(k=0;k<7;k++)if(*(ptrl+k)==
随机试题
2021年上半年,S市工业战略性新兴产业总产值7164.68亿元,比去年同期增长19.6%,两年平均增长12.3%。其中,新能源汽车、新能源和高端装备产值同比分别增长2.5倍、32.1%和24.5%。2021年上半年,全市第三产业增加值15080.35亿
中医诊断为最应选的治疗方剂为
下列各项,不符合胁痛肝郁气滞证主症特点的是()
下列关于可行性研究中项目建设方案研究内容和任务的说法,正确的有()
以下不是危险化学品经营企业必须具备的条件是()。
下列属于共同经营特征的是()。
甲将邻居交售粮站的稻米淋洒农药,取出部分作饵料,毒死麻雀后售与饭馆,非法获利5000元。关于甲行为的定性,下列选项正确的是
下列程序段执行后,内存变量s1的值是()。s1="network"s1=stuff(s1,4,4,"BIOS")?s1
下列关于C++函数的说明中,正确的是()。
A、 B、 C、 C
最新回复
(
0
)