题目内容 (请给出正确答案)
[主观题]

阅读以下说明和Java程序,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】

对部分乐器进行建模,其类图如图6-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。阅读以下说明和Java程序,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 图6-1 类图 下面是实现上述设计的Java代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

【Java代码】 enum Note{ /* 枚举各种音调 */ MIDD[LE_C, C_SHARP, B_FLAT; //其他略 } interface Instrument { /* 接口,乐器 */ (1) ; //play方法接口 void adjust() ; //adjust方法接口 } class Wind (2) { public void play(Note n) { System.out.println("Wind.play()"+n); } public void adjust() { System.out.println("Wind.adjust()"); } } /* 类Percussion和Stringet实现代码略 */ class Brass (3) { public void play(Note n) { System.out.println("Brass.play()"+n); } public void adjust () { System.out.println("Brass.adjust()"); } } class Woodwind extends Wind { public void play (Note n) { System.out.println("Woodwind.play()"+n); } } public void tune(Instrument i) { i.play(Note.MIDDLE_C); } void adjust(Instrument i) { i.adjust(); } void tuneAll (4) e ) { class Music { for(lnstrument i : e) { adjust(i); tune(i); } } public static void main(String[] args) { Music music= (5) Music(); Instrument[] orchestra={ new Wind(), new Woodwind() }; music.tuneAll(orchestra); } 奉程序运行后的输出结果为: Wind.adjust() Wind.play() MIDDLE_C Wind.adjust() Woodwind.play() MIDDLE_C

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读以下说明和Java程序,填补代码中的空缺(1)~(5),…”相关的问题

第1题

阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说

阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。图5-1 类图 下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

【C++代码】 include<iostream> using namespace std; enum Note { /* 枚举各种音调 */ MIDDLE_C, C_SHARP, B_FLAT }; class Instrument{ /* 抽象基类,乐器 */ public: (1) ; //play函数接口 virtual void adjust()=0; //adjust函数接口 }; class Wind (2) { public: void play(Note n) { cout<<"Wind.play()"<<n<<end1; } void adjust() { cout<<"Wind.adjust()"<<end1; } }; /* 类Percussion和Stringed实现代码略 */ class Brass (3) { public: void play(Note n) { cout<<"Brass.play()"<<n<<end1; } void adjust() { cout<<"Brass.adjust ()"<<end1; } }; class Woodwind : public Wind { public: void play(Note n) { cout<<"Woodwind.play()"<<n<<end1; } }; class Music { public: void tune(Instrument* i) { i->play(MIDDLE_C); } void adjust(Instrument* i) { i->adjust(); } void tuneAll( (4) e[], int numIns) { /* 为每个乐器定调 */ for( int i=O; i<numlns; i++) { this->tune(e[i]); this->adjust(e[i]); } } }; /* 使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略 */ int main() { Music* music= (5) Music(); Instrument* orchestra[]={ new Wind(), new Woodwind() }; music->tuneAll(orchestra, size(orchestra)); /* size数组orchestra的元素个数 */ for (int i=0; i<size (orchestra), i++) delete orchestra[i]; delete music; } 本程序运行后的输出结果为: Wind.play() 0 Wind.adjust() Woodwind.play() 0 Wind.adjust()

点击查看答案

第2题

阅读以下说明和C程序,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】

函数areAnagrams(char *fstword, char *sndword)的功能是判断fstword和sndword中的单词(不区分大小写)是否互为变位词,若是则返回1,否则返回0。所谓变位词是指两个单词是由相同字母的不同排列得到的。例如,“triangle”与“integral”互为变位词,而“dumbest”与“stumble”不是。 函数areAnagrams的处理思路是检测两个单词是否包含相同的字母且每个字母出现的次数也相同。过程是先计算第一个单词(即fstword中的单词)中各字母的出现次数并记录在数组counter中,然后扫描第二个单词(即sndword中的单词)的各字母,若在第二个单词中遇到与第一个单词相同的字母,就将相应的计数变量值减1,若在第二个单词中发现第一个单词中不存在的字母,则可断定这两个单词不构成变位词。最后扫描用于计数的数组counter各元素,若两个单词互为变位词,则counter的所有元素值都为0。 函数areAnagrams中用到的部分标准库函数如下表所述。

【C函数】 int areAnagrams (char *fstword, char *sndword { int index; int counter [26]={0}; /* counter[i]为英文字母表第i个字母出现的次数,&39;A&39;或&39;a&39;为第0个,&39;B&39;或&39;b&39;为第1个,依此类推 */ if ( (1) ) /* 两个单词相同时不互为变位词 */ return 0; while(*fstword) { /* 计算第一个单词中各字母出现的次数 */ if (isalpha (*fstword)) { if (isupper (*fstword)) counter [*fstword -&39;A&39;]++; else counter [*fstword -&39;a&39;]++; (2) ; /* 下一个字符 */ } } while (*sndword) { if (isalpha (*sndword)) { index= isupper (*sndword) ? *sndword -&39;A&39;: *sndword -&39;a&39;; if (counter [index] ) counter [index] --; else (3) ; } (4) ; /* 下一个字符 */ } for (index = 0; index<26; index++) if ( (5) ) return 0; return 1; }

点击查看答案

第3题

阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明1】

阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明1】 函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。 【C函数】 int isPrime (int n) { int k, t; if (n==2) return 1; if(n<2|| (1) ) return 0; /* 小于2的数或大于2的偶数不是素数 */ t=(int)sqrt(n)+1; for (k=3; k<t; k+=2) if ( (2) ) return 0; return 1; } 【说明2】 函数int minOne(int arr[], int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。 【C函数】 int minOne (int arr[], int k) { int t; assert (k>0) ; if(k==1) return (3) ; t=minOne(arr+1, (4) ; if (arr[0]<t) return arr[0]; return (5) ; }

点击查看答案

第4题

请教:2017年软考初级程序员模拟试题及答案1第1大题第7小题如何解答?

【题目描述】

假设一棵二叉树的后序遍历序列为DGJHEBIFCA,中序遍历序列为DBGEHJACIF,则其前序遍历序列为______。

A.ABCDEFGHIJ

B.ABDEGHJCFI

C.ABDEGHJFIC

D.ABDEGJHCFI

【我提交的答案】: C
【参考答案与解析】:

正确答案:B

答案分析:

解析:这类题目,可以根据所给条件,还原二叉树,然后再进行前序遍历。还原二叉树的要点是首先确定根结点,再确定左子树的组成结点和右子树的组成结点。然后再针对每个左子树和右子树,继续确定其根结点以及左右子树。重点是,根据后序遍历的特点是,最后一个结点必然为根。中序遍历中,根结点的左边,是左子树的结点,右边是右子树的结点。

 分析过程如下:

 ①首先,根据后序遍历为DGJHEBIFCA,说明这棵二叉树的根为A。再根据中序遍历的结果:DBGEHJACIF,说明DBGEHJ在根结点A的左边,为左子树上的结点。CIF在根结点A的右边,是右子树上的结点。如图8-25所示。

 

 ②根据后序遍历结果,DGJHEBIFCA,说明CIF这棵子树上,C是根结点。再根据IF在中序遍历中的位置,可知FI都是其右子树。再根据后序遍历结果,可知, F为根,I是其右结点。如图8-26所示。

 

 ③对于DBGEHJ这棵左子树,根据后序遍历结果可知,B是其根结点。再根据中序遍历结果可知,D是其左子树,GEHJ是其右子树。如图8-27所示。

 ④对于GEHJ这个二叉树,根据后序遍历结果,E为根结点。再根据中序遍历结果,HJ为其右子树。G为其左子树。如图8-28所示。

 ⑤对于HJ,根据后序遍历结果,H是根,再根据中序遍历结果,J是H的右子树。构成二叉树如图8-29所示。

 

 对此二叉树进行前序遍历的结果是:ABDEGHJCFI。选项B为本题正确答案。

【我的疑问】

按答案的得出的树,中序遍历应该是DBGEHJACFI吧,这和题目的中序结果不一样啊。I应该是F的左子树吧?

点击查看答案

第5题

下列关于结构型变量的定义语句中,错误的是( )A.typedef struct CCCB.define GGG struct { char

下列关于结构型变量的定义语句中,错误的是( )

A.typedef struct CCC

B.define GGG struct { char name[20];GGG CCC { char name[20]; int age; int age; }GGG; }; GGG abc ; GGG CCC abc;

C.struct

D.struct { char name[20]; { char name[20]; int age; int age; }ccc; }abc; CCC abc;

点击查看答案

第6题

函数调用时,下列说法中不正确的是 ( )A.若用值传递方式,则形式参数不予分配内存B.实际参数和形式

函数调用时,下列说法中不正确的是 ( )

A.若用值传递方式,则形式参数不予分配内存

B.实际参数和形式参数可以同名

C.主调函数和被调用函数可以不在同一个文件中

D.函数间传送数据可以使用外部全局变量

点击查看答案

第7题

执行下列程序段后,变量y的值为( ) int x[]={1,2,3,4},y,*p=&x[1]; y=(*--P)++;A.1B.2C.3

执行下列程序段后,变量y的值为( ) int x[]={1,2,3,4},y,*p=&x[1]; y=(*--P)++;

A.1

B.2

C.3

D.4

点击查看答案

第8题

执行下列程序段后,x的位是( ) int a=8,b=7,c=6,x=1; if(a>6)if(b>7)if(c>8)x=2;els

e x=3;

A.0

B.1

C.2

D.3

点击查看答案

第9题

计算平方数时不可能引起二义性的宏定义是( )A.define SOR(x)x*xB.define SQR(x)(x)*(x)C. define

计算平方数时不可能引起二义性的宏定义是( )

A.define SOR(x)x*x

B.define SQR(x)(x)*(x)

C. define SQR(x)(x*x)

D. define SQR(x)((x)*(x))

点击查看答案

第10题

设有函数调用语句“f(x1,x1+x2,(x1,x2));”,正确的说法是( )A.调用的实际参数是2个B.调用的实际参

设有函数调用语句“f(x1,x1+x2,(x1,x2));”,正确的说法是( )

A.调用的实际参数是2个

B.调用的实际参数是3个

C.调用的实际参数是4个

D.调用时会出现语法错误。

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信