首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用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
57
问题
使用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全国计算机二级
相关试题推荐
设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关键码值B在序列中的序号是()。
以下程序运行后输入:3,abcde<回车>,则输出结果是______。#include<string.h>move(char*str,intn){charcemp;inti;temp=str[n-1];f
不改变关系表中的属性个数但能减少元组个数的是()。
以下程序的输出结果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++
下面程序的输出结果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=
在下列字符序列中,合法的标识符是()
现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1
若希望下列的程序运行后输出25,程序空白处的正确选项是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-4
设有定义语句:int a[][3]={{0},{1}{2}};,则数组元素a[1][2]的值是【 】。
下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。Voidsub(floatx,noaty,【】z){【】=x+y;}
随机试题
抗甲状腺药物改用维持量后一般还需继续治疗( )。
患者,女性,6岁。食蚕豆后突感畏寒,发热,皮肤发黄。血红蛋白60g/L,网织红细胞0.15,尿胆原阳性,胆红素阴性。对明确诊断最重要的检查是()
患儿,男,6岁。发热伴腹泻5天,胸闷、心悸2天。查体:心率52次/分,心律略不齐。ECG示二度房室传导阻滞,血清肌钙蛋白T(+)。该患儿的诊断是
在经济运行中,证券投资基金的融资功能在客观上是由()因素决定的。
甲公司为上市公司,和乙公司同为增值税一般纳税人,适用的增值税税率均为17%。于2011年1月1日销售给乙公司(股份有限公司)产品一批,价款为2000万元(不含税)。双方约定3个月后付款。乙公司因财务困难无法按期支付货款。至2011年12月31日甲公司仍未收
销售费用预算和销售预算是两个独立的预算,二者之间不存在任何关系。()
下列各项中,符合《税务行政复议规则》的有()。
在我国近现代学制改革中,明确规定将学堂改为学校,实行男女教育平等,允许初等小学男女同校的学制是()。
《国家中长期教育改革和发展规划纲要(2010—2020年)》提出,教育公平的基本要求是保障公民依法享有受教育的权利,关键是()。
Researchsuggeststhatparentalinvolvementinschoolisvitaltoachild’sacademicsuccess.However,ifyou’reasingleparent
最新回复
(
0
)