首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。
admin
2018-10-23
49
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。
例如:
e[]={1,3,5,6},m是数组e的长度,即为4。
a[]={2,4,5,7,11,13},n是数组a的长度,即为6。
则执行的结果为:s[]={1,2,3,4,5,6,7,11,13}
补充函数fun(int s[],int e[],int a[],int m,int n),使之实现上述要求。
注意:请勿改动主函数。
1 #include<iostream.h>
2 void MergeAndSort(int s[], int e[],int a[],int m,int n]
3 {
4
5 }
6 int main()
7 {
8 int data[20],i;
9 int a[]={1,3,5,6};
10 int b[]={2,4,5,7,11,13};
11 cout<< ’’a[]=’’;
12 for(i=0;i<4;i++)
13 cout<<a
<<’,’;
14 cout<<end1;
15 cout<<’’b[]=’’;
16 for(i=0;i<6;i++)
17 cout<<b
<< ’,’;
18 cout<<end1;
19 MergeAndSort(data,a,b,4,6);
20 cout<<’’s[]=’’;
21 for(i=0;i<9;i++)
22 cout<<data
<<’,’;
23 cout<<end1
24 return 0;
25 }
选项
答案
1 int i,j,k; 2 i=0; 3 j=0; 4 k=0; 5 while(i<m&&:j<n) 6 { 7 if(e[i]<a[j]) 8 { 9 s[k++]=e[i++];//取小的,因为从小到大排序 10 } 11 else if(e[i]==a[j])//相等,取e[i]或a[j]都可 12 { 13 s[k++]=e[i]; 14 i++; 15 j++; 16 } 17 else //e[i]>a[j],取小的a[j] 18 { 19 s[k++]=a[j++]; 20 } 21 } 22 while( i<m) s[k++] =e[i++];//如果数组e后面还有没有加进来的元素,则加进去 23 while(j<n) s[k++] =a[j++];//如果数组a后面还有没有加进来的元素,则加进去
解析
函数MergeAndSort(int s[],int e[],inta[],int m,int n)实现将数组e和数组a的合并,这两个数组已经照由小到大的顺序排列,因此只需逐个比较e数组和a数组的元素值,每次取两个元素值的小的,如果相等则取两个当中的任意一个均可。
(1)由审题分析可知,可设置循环来逐个读取e数组和a数组的元素值,然后选择小的元素放在数组s中,如果相等则取a数组元素或e数组元素均可,可以利用ifelse语句来进行判断。
(2)由于数组e和数组a长度可能不一定相同,因此在循环结束之后,还需要把长度长的数组的剩余的元素添加到s数字中,即循环结束后如果e数组内还有字符的话把e数组内剩下的字符添加到S数组内,同样如果a数组内还有字符的话把a数组内剩下的字符添加到s数组内。
转载请注明原文地址:https://www.kaotiyun.com/show/WwAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若已定义inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;则对数组元素的不正确的引用是()。
下列程序输出的结果是()。#include<stdio.h>un1(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}
在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classD
数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流;______和处理过程。
下面程序的输出结果为【】。#include<iostream>usingnamespacestd;voidinitialize(intprintNo,intstate=0);voidinitialize(iht
在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
下列数据结构中,属于非线性的是()。
如下程序编译时发生错误,错误的原因是show函数实现语句错误,则正确的语句应该为______。#include<iostream.h>classtest{private:inthum;public
设有以下类和对象的定义:classA{public:intm;…};Ak1,k2,*p1,*p2;则下面针对成员变量m的引用,错误的是
随机试题
A.滑膜B.肌肉及肌腱C.软骨D.骨E.关节鹱成人股骨头无菌坏死病变始于
A.系膜细胞及系膜基质增生B.系膜细胞及内皮细胞增生C.壁层上皮细胞及巨噬细胞增生D.脏层上皮细胞及巨噬细胞增生E.内皮细胞和上皮细胞系膜增生性肾小球肾炎的病变特点是
下述对阿司匹林的描述,错误的是()。
[2007年第33题]在图2.11.1所示双缝装置实验中,当入射单色光的波长减小时,屏幕上干涉条纹的变化情况是()。
背景资料:A公司经过招投标承包某轧钢生产线机电设备安装工程,合同暂估总价,结算时以合同约定的工程单价和实发工程量进行结算,工程单价不作调整。施工过程中发生下列事件:事件一:工程开工后,原材料涨价和机械租赁费涨价,施工单位因工程成本过高,向业主提出费用索
根据《证券法》的规定,下列各项中,表述错误的是()。
-1,0,(),32,75
某单位全体职工准备参加市里组织的广播体操比赛,若排成一个大方阵,则剩余5人;若将大方阵减少一行一列,则剩余的职工可以排成4行4列的方阵。那么此单位的职工共有多少人?
TheUNESCOheadquartersisin().
Look,thetreesarefallen;there______astrongwindlastnight.
最新回复
(
0
)