2024年春二级vc上机试卷参***(vc03)
一、改错题(20分)
题目】以下程序的功能是:对于给定的整型数组,判断该数组中是否存在一个子数组,其元素的和为0(假设该数组中不存在值为0的元素)。如果存在,则输出第一个满足条件的子数组。
所谓子数组,就是从原数组中提取若干个(至少1个)连续元素所构成的数组。例如,数组,其子数组的元素之和为0。这里的算法采用如下原理:
对于数组x1,x2, …xn,如果x1+…+xi=x1+…+xi+xi+1+…+xj(j>i),则xi+1+…+xj=0。
正确程序的输出如下:
数组中第一个和为0的子数组为:-1 2 1 -2
含有错误的源程序如下:
#include <>
void print(int x,int i,int j)
cout<<"数组中第一个和为0的子数组为:";
for(int k=i;k<=j;k++)
cout<}
int zero_sum(int x,int count)
int i;
int *x1=new int(countcount]
for(i=0;i x1[i]=x[i];
for(i=1;i x1[i]+=x1[i-1
/x1[0]为x[0],x1[1]为x[0]+x[1],…x1[i]为x[0]+ x[1]+…x[i]
for(i=0;i for(int j=i+1;jif(x1[j]==0) ;
int b=zero_sum(a,sizeof(asizeof(a)/sizeof(int)
if(!b)
cout<<"数组中不存在和为0的子数组"<}
二、编程题(20分)
题目】试定义一个类soldiers,给出若干个士兵的身高数据(假设他们的身高各不相同),对士兵进行重新排列,要求任意相邻两个士兵之间的身高之差各不相同。具体要求如下:
(1)私有数据成员。
int *height; 指向存放士兵身高的数组。
int size; 士兵的个数。
2)公有成员函数。
soldiers(int *h, int n); 构造函数,为成员height动态分配n个整型存储空间,并利用参数h所指向的数组(n个元素)初始化height所指向的数组,用n初始化size。
~soldiers();析构函数,撤销指针height所占用的动态存储空间。
int check();检测指针height所指向的士兵的排列方式是否符合题意,即相邻两个士兵之间的身高差是否都不相同。若是,则返回1;否则,返回0。
void sort();对height所指向的数组中的元素按从小到大的次序进行排列。
int resolve();对height所指向的数组进行重新排列,使得任意相邻士兵间的身高之差各不相同。
算法要求: 先调用函数check(),判断当前数组是否符合要求,若符合,则返回0,否则进行下面的操作。
调用成员函数sort(),对士兵按身高从小到大进行排序。
取身高数据最小的士兵排在第1个位置,再取身高数据最大的士兵排在第2个位置;在剩下的士兵中取身高最小的排在第3个位置,取身高最大的排在第4个位置;依此类推,直至将所有的身高数据排完为止。这样排列的士兵一定满足题目要求。
void print();输出height所指向的数组的元素。
3)在主函数中对该类进行测试。
输出示例:原队列: 178 167 172 180 170 182 184 176 174
重排后的队列: 167 184 170 182 172 180 174 178 176
参***:#include <>
#include <>
class soldiers
int *height;
int size;
public:
soldiers(int *h, int n): height(new int[n]),size(n)
~soldiers()
int check()
delete tmp;
return 1;
void sort()
int resolve()
if(size%2!=0)
tmp+size-1)=*height+size/2);
for(i=0; iheight+i)=*tmp+i);
delete tmp;
return 1;
void print()
void main()
int h=
soldiers s(h,9);
cout<<"原队列: "
cout<<"按题意排列后的队列: "
等考复习VC02答案
2011年春二级vc上机试卷参 vc02 一 改错题 20分 题目 在英文文章中,左双引号和右双引号之间没有区别。但是,在某英文编辑系统中,为了区分左 右双引号,用两个连续字符 键盘中数字1左边的符号 代替左双引号,用两个连续单引号 代替右双引号。以下程序实现上述转换。输入 输出示例如下 下划线部分...
全国等考C语言和9月真题,附答案
则由关系r和s得到关系t的操作是。a 自然连接 b 交 c 除 d 并。10 定义无符号整数类为uint,下面可以作为类uint实例化值的是。a 369 b 369 c 0.369 d 整数集合。11 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。a c语言程序仅可以编译...
2019中考语文复习语言运用答案
2010年中考复习资料语言运用答案。1 d b a c2 a c d b3 c4 b5 b6 诗圣著千秋7 笑骂皆文章8 聚天地精华且读中西万本书9 万家箫管乐中秋10 宋濂勤奋手录书。14 宣传标语示例 赏 绿色 美景,唱 红色 歌谣 唱 红色 歌曲,建美好江西。短信示例 加油,我们支持你!相信你...