主观

●试题六

阅读以下说明和Java代码,将解答写入答题纸的对应栏内。

【说明】

请完成下列Java程序。程序的执行结果是生成一个具有一个TextField类型的对象in、Button类型的对象btn和Label类型的对象out图形用户界面,程序的功能是计算用户输入数的平方,如图3所示。

注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。

【程序】

import javA.awt.*;

import javA.awt.event.*;

public class square {

public static void main(String args[]){

 (1) 

 }

}

class AppFrame. extends Frame{

TheAdapterTest listener=new TheAdapterTest();

TextField in=new TextField (5) ;

Button btn=new Button("计算");

Label ut=new Label("用于显示计算结果");

public AppFrame()

{

setLayout(new FlowLayout());

add(in);

add(btn);

add(out);

btn.addActionListener(new BtnActionAdapter());

addWindowListener(listener);

setSize(400,100);

show();

}

class BtnActionAdapter implements (2) {

public void actionPerformed( (3) ){

String s=in.getText();

double d= (4) 

double sq=d*d;

out.setText(d+"的平方是:"+sq);

}

}

class TheAdapterTest extends WindowAdapter

{

public void windowClosing( (5) )

{

System.exit (1) ;

}

}

}

参考答案
您可能感兴趣的试题

阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素a[0]~a[n-1]循环向右平移k个位置。

为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标p,并将a[p]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[0]的备份值移到正确位置。

若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至a[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。

若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。

例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。

【函数】

void rcr(int a[],int n,int k)

{int i,j,t,temp,count;

count=0;/*记录移动元素的次数*/

k=k%n;

if( (1) ){/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/

i=0;

while(count

j=i;t=i;

temp=a[i];/*备份a[i]的值*/

/*移动相关元素,直到计算出a[i]应移动到的目标位置*/

while((j= (2) )!=i){

a[t]=a[j];

t= (3) ;

count++;

}

 (4) =temp;count++;

 (5) ;

}

}

}

●试题二

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:

#define MAXSIZE 32

typedef struct{

int *elem;/*栈的存储区*/

int max; /*栈的容量,即栈中最多能存放的元素个数*/

int top;/*栈顶指针*/

}Stack;

【代码】

int InitStack(Stack *S,int n)/*创建容量为n的空栈*/

{S->elem=(int*)malloc(n *sizeof(int));

if(S->elem==NULL)return-1;

S->max=n; (1) =0;return 0;

}

int Push (Stack *s,int item)/*将整数item压入栈顶*/

{if(S->top==S->max){printf(″Stack is full!\n″);return-1;}

 (2) =item;return 0;

}

int StackEmpty(Stack S){return(! S.top)?1∶0;}/*判断栈是否为空*/

int Pop(Stack *S)/*栈顶元素出栈*/

{if(! S->top){printf(″Pop an empty stack!\n″);return -1;}

 return (3) ;

}

void MultibaseOutput(long n,int B)

{int m;Stack S;

 if(InitStack(&S,MAXSIZE)){printf(″Failure!\n″);return;}

 do {

if(Push(&S, (4) )){printf(″Failure!\n″);return;}

n= (5) ;

 }while(n !=0);

while(! StackEmpty(S)){/*输出B进制的数*/

m=Pop(& S);

if(m<10)printf(″%d″,m);/*小于10,输出数字*/

else printf(″%c″,m+55);/*大于或等于10,输出相应的字符*/

 }

 printf(″\n″);

}

●试题一

阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。

【算法说明】

某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。

本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。

【算法】

第一步读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。

第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。

第三步根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:

1.1→L,N→H

2.INT((L+H)/2)→K

3.若E=ENG(K),则C→CN(K),转向第二步

若E

4.若H

对I=N,L,-1(始值,终值,增量)循环执行:

ENG(I)→ENG(I+1)

CN(I)→CN(I+1)

然后,将E和C分别存入 (3) 和 (4) ,N+1→N最后转向第二步

否则,转向 (5) 

第四步将数组ENG和CN输出,形成新的英汉词典文件,算法结束。

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服