已知类SubClass的getSum方法返回其父类成员i与类SubClass成员i的和,类SuperClass中的getSum为纯虚拟函数,程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。
[C++代码]
01 #inclUde<iostream>
02 using namespace std;
03 class SuperClass {
04 private:
05 int i;
06 publiC:
07 SuperClass()(i=5;)
08 virtual iht getValueO(return i ;)
09 virtual int getSum()=0;
10 };
11 class SubClass:public SuperClass{
12 int J ;
13 public:
14 SubClass(int j):j(0){
15 (1) =j; //用参数j的值更新数据成员
16 };
17 int getValue(){return j;)
18 int getSum(){
19 return (2) getValue()+j;
20 }
21 };
22 void main(void){
23 SuperClass s=new SubClass(-3);
24 cout<<s->getValue()<<"";
25 tout<<s->getSum()<<endl;
26 delete s;
27 }
已知类SubClass的getSum方法返回其父类成员i与类SubClass成员i的和,类SuperClass中的getSum为纯虚拟函数,程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。
[C++代码]
01 #inclUde<iostream>
02 using namespace std;
03 class SuperClass {
04 private:
05 int i;
06 publiC:
07 SuperClass()(i=5;)
08 virtual iht getValueO(return i ;)
09 virtual int getSum()=0;
10 };
11 class SubClass:public SuperClass{
12 int J ;
13 public:
14 SubClass(int j):j(0){
15 (1) =j; //用参数j的值更新数据成员
16 };
17 int getValue(){return j;)
18 int getSum(){
19 return (2) getValue()+j;
20 }
21 };
22 void main(void){
23 SuperClass s=new SubClass(-3);
24 cout<<s->getValue()<<"";
25 tout<<s->getSum()<<endl;
26 delete s;
27 }
已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和;类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22行语句时成员变量i的值,最后给出程序运行后的输出结果。
[Java代码]
行号 代码
01 public class UainJava{
02 public static void main(String[]args){
03 SuperClass s=new SubClass();
04 System.out.printin(s.getValue());
05 System.out.printIn(s.getSum()):
06 }
07 }
08 abstract class SuperClass {
09 private int i;
10 public SuperClass(){i=5;}
11 public int getValue(){
12 return i:
13 }
14 public final abstract int getSum():
15 }
16 class SubClass extends SuperClass{
17 int j;
18 public SubClass(){
19 this(-3);
20 }
21 public SubClass(int j){
22 (1) .j=j;
23 }
24 publiC int getValue()(return j;}
25 public int getSum(){
26 return (2) .getValue()+j;
27 }
28
设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子问剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。
本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如,10粒珠子颜色对应字符串为aaabbbadcc,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。
[C函数]
int count(char *s,int start,int end)
{ int i,c=0,color:s[start],step=(start>end)?-1:1;
for(i=Start;s[i]==color;i+=step){
if(step>0 && i>end || (1) ) break;
(2) ;
}
return c;
}
void main()
{ char t,s[120];
int i,k,c,len,maxc,cut=0;
printf("请输入环上代表不同颜色珠子字符串:");
scanf("%s”,s);
len=strlen(s);
for(i=maxc=0; i<len;i++)( /*尝试不同的剪开方式*/
c=count(s,0,len-1);
if(c<len) c+=count( (3) );
if(c>maxc) { cut=i;maxc=c;)
/*数组s的元素循环向左移动一个位置*/
t=s[0];
for(j=1;j<len;j++) (4) ;
(5) ;
}
printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);
}
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如,28的因子为1,2,4,7,14,而28=1+2+4+7+14,因此28是“完全数”。
[C函数1]
int factors(int n)
{ int i,s;
for(i=1,s=0;i<=n/2;i++)
if(n%i=0) (1)______;
if( (2)______ )return 0;
rerurn-1;
}
[说明2]
函数int maxint(int a[],int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[C函数2]
int maxint(int a[],int k)
{ int t;
if( (3)_____ ) return (4)_______;
t=maxint(a+1, (5)______ );
return(a[0]>t)?a[0]:t;
}
已知一棵二叉树用二叉链表存储,t指向根节点,P指向树中任一节点。下列算法为输出从t到P之问路径上的节点。
[C程序]
#define MaxSize 1000
typedef struct node {
TelemType data ;
struct node *ichiid,*rchiid;
}BiNode,*BiTree;
void Path(BiTree t,BiNode *P)
{BiTree *stack[Maxsize],*stackl[Maxsize],*q;
int tag[Maxsize],top=0,topl;
q=t;
/*通过先序遍历发现P*/
do{while(q!=NULL &&q!=p)
/*扫描左孩子,_日.相应的节点不为P*/
{ (1) ;
stack[top]=q;
tag[top]=0;
(2) ;
}
if(top>0)
{ if(stack[top]=P) break; /*找到P,栈底到栈顶为t到P*/
if(tag[top]==1)top--;
else { q=stack[top];
q=q->rchiid;
tag[top]=1;
}
}
} (3) ;
top--;topl=0;
while(top>0) {
q=stack[top]; /*反向打印准备*/
topl++;
(4) ;
top--;
}
while( (5) ){ /*打印栈的内容*/
q=stackl[topl]j
printf(q->data);
topl--;
}
}
阅读以下说明和流程图,回答问题1~3,将解答填入答题纸的对应栏内。
说明:信息处理过程中经常需要将图片或汉字点阵作旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示。
在上述流程图a和b所示的算法中:
(1) 矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置?
(2) A(i,j)后来又被复制到矩阵C中的哪个位置?
(3) 填补流程图b中的空缺。
高级经济师考试试题精选练习(1)
高级经济师考试模拟练习题之单选题(1
高级经济师考试试题精选练习(2)
高级经济师考试试题精选练习(3)
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟试题及答案
高级经济师考试试题及答案:单选练习题
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟题及答案练习(1)
高级经济师考试模拟题及答案练习(2)