1编程题参考答案.docx

上传人:b****6 文档编号:8059024 上传时间:2023-01-28 格式:DOCX 页数:8 大小:17.94KB
下载 相关 举报
1编程题参考答案.docx_第1页
第1页 / 共8页
1编程题参考答案.docx_第2页
第2页 / 共8页
1编程题参考答案.docx_第3页
第3页 / 共8页
1编程题参考答案.docx_第4页
第4页 / 共8页
1编程题参考答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

1编程题参考答案.docx

《1编程题参考答案.docx》由会员分享,可在线阅读,更多相关《1编程题参考答案.docx(8页珍藏版)》请在冰豆网上搜索。

1编程题参考答案.docx

1编程题参考答案

第一题:

定义方法

(一)基本算法

37.请编写方法intrevInt(inta),该方法的功能是返回与十进制正整数a的数字顺序相反排列的正整数。

如已知正整数1234,方法返回值是4321。

2015.4

intrevInt(inta){

intb=0,g;

while(a>0){

g=a%10;b=b*10+g;a=a/10;

}

returnb;

}

练习:

请编写方法intgetSum(intx),该方法的功能是返回正整数x的各位数字的和。

intrevInt(intx){

intb=0,g;

while(x>0){

g=x%10;b=b+g;x=x/10;

}

returnb;

}

请编写方法doublegetSum(intx),该方法的功能是返回正整数x的各位数字的平均值。

doublerevInt(intx){

intb=0,g,n=0;

while(x>0){

g=x%10;b=b+g;x=x/10;n++;

}

return(double)b/n;

}

37.编写方法doublesumS(intn),已知参数n,求以下表达式前n项的和S返回。

s=2/1+3/2+5/3+8/5+13/8+……注:

下一项的分母=上一项的分子,下一项的分子=上一项的分子与分母的

和。

2015.10

doublesumS(intn){//要特别注意数据类型哟!

inti;doubles=0.0;

intfz=2,fm=1,temp;//temp用于保存前一个分母,避免覆盖

for(i=1;i<=n;i++){

temp=fm;//改变前的分母

s=s+(double)fz/fm;

fm=fz;

fz=fz+temp;

}

returns;

}

(二)字符串的运算

37.请编写方法voidstrReverse(Stringstr),该方法的功能是输出一个新字符串,新字符串字符排列顺序与原字符串str的字符排列顺序相反。

例如,strReverse(″ABCD″)所输出的结果是″DCBA″。

请使用字符串与字节数组的相互转换方法进行设计。

2010.1

voidstrReverse(Stringstr){

Stringn="";

for(inti=0;i<=str.length()-1;i++){

n=n+str.substring(str.length()-1-i,str.length()-i);

}

System.out.println(n);

}

/////////////////////////////////////////////////////

voidstrReverse(Stringstr){

byteb[]=str.getBytes();bytet;

for(inti=0;i

t=b[i];b[i]=b[b.length-1-i];b[b.length-1-i]=t;

}

Stringn=newString(b);

System.out.println(n);

}

37.请编写方法intcountNum(Stringstr),该方法的功能是统计已知字符串str中数字的个数。

例如,countNum("A42B83C2D")的返回值是5。

2010.10

intcountNum(Stringstr){

intn=0;

byteb[]=str.getBytes();//将字符串转换为字节数组来处理

for(inti=0;i

if(b[i]>=48&&b[i]<=57)n++;

//也可以写成

if(b[i]>='0'&&b[i]<='9')n++;

}

returnn;

}

(三)数组的运用

37.编写方法intsearchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。

2009.10

intsearchMaxNumIndex(int[]a){

intmax=a[0],n=0;

for(inti=1;i

if(a[i]>max){max=a[i];n=i;}

}

returnn;

}

37.请编写方法doubleaverageOfArray(double[]a),返回非空数组中正数的平均值(数组中可能有非正数元素)。

2011.1

doubleaverageOfArray(double[]a){

doublesum=0.0;intn=0;

for(inti=0;i

if(a[i]>0){sum=sum+a[i];n++;}//注意把这个两个语句放在IF中

}

returnsum/n;

}

37.请编写方法intcountOddNum(int[]a),该方法的功能是求已知数组a中奇数的个数。

要求根据方法的功能写出方法的代码。

2016.10

intcountOddNum(int[]a){

intn=0;

for(inti=0;i

if(a[i]%2!

=0)n++;

}

returnn;

}

37.编写方法int[]delete(int[]a

,intd),方法将创建一个新数组b,新数组b中只包含原数组中所有值不等于d的元素,并返回该新数组b。

2012.1

int[]delete(int[]a,intd){

intn=0,k=0;//k用来表示下标

for(inti=0;i

if(a[i]!

=d)n++;

intb[]=newint[n];//然后定义数组b

for(inti=0;i

if(a[i]!

=d){b[k]=a[i];k++;}//注意这里不能用b[i],只能用b[k]

}

returnb;

}

37.请编写方法int[]cubeArray(int[]a),返回一个新数组b,数组b的长度与参数数组的长度相同,其元素的值是参数数组对应各元素值的立方。

2012.10

int[]cubeArray(int[]a){

intb[]=newint[a.length];

for(inti=0;i

b[i]=a[i]*a[i]*a[i];

}

returnb;

}

37.编写方法int[]arrayReverse(int[]a),该方法的功能是返回一个新的数组b,新数组的元素排列顺序与参数数组的元素排列顺序相反。

2014.4

int[]arrayReverse(int[]a){

intb[]=newint[a.length],n=0;

for(inti=a.length-1;i>=0;i--){

b[n]=a[i];n++;//或者写成b[a.length-i-1]=a[i];

}

returnb;

}

37.请编写一个方法intfindMaximum(int[][]numbers),要求该方法返回二维数组中元素的最大值。

2011.10

intfindMaximum(int[][]numbers){

intmax=numbers[0][0];//注意max只能初始成第一个元素

for(inti=0;i

for(intj=0;j

if(numbers[i][j]>max)max=numbers[i][j];

}

}

returnmax;

}

37.编写方法int[][]transpose(int[][]a),方法将生成并返回一个新数组b,该数组为a的转置数组。

注:

数组转置指的是将数组的行、列内容互换。

2013.10

int[][]transpose(int[][]a){

intb[][]=newint[a[0].length][a.length];//a的列数为b的行数,a的行数为b的列数

for(inti=0;i

for(intj=0;j

b[j][i]=a[i][j];

}

}

returnb;

}

第二题:

图形用户界面设计题

1、完成界面设计(界面的设计:

JFrame;布局:

FlowLayout、BorderLayout、GridLayout、CardLayout,null;常用组件:

JLabel、JTextField、JButton、JTextArea、JPanel……;事件处理)

(1)JFrame的应用

importjava.awt.*;

importjavax.swing.*;

classMFrameextendsJFrame{

MFrame(Strings){

super(s);

//布局

//组件创建与加载

this.pack();//this.setSize(300,200);this.setBounds(300,200,400,500);

this.setVisible(true);

this.setDefaultColoseOperation(JFrame.EXIT_ON_COLOSE);

}

}

举例:

2009年1月、2010年1月、2014年4月、2015年10月、2016

年10月最后一题

(2)事件的处理actionEvent

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

classMFrameextendsJFrameimplementsActionListener{

MFrame(Strings){

super(s);

//布局

//组件创建与加载

//为事件源添加监视器

this.pack();//this.setSize(300,200);

this.setBounds(300,200,400,500);

this.setVisible(true);

this.setDefaultColoseOperation(JFrame.EXIT_ON_COLOSE);

}

//重写事件处理的方法

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==事件源对象){

//具体的事件处理内容

}

}

}

举例:

2013年10月

(3)事件处理中的两种常见问题:

a、文本框中数字的运算

doublec=Doble.parseDouble(text1.getText());//将文本框的内容转换为数字

doublef=c*9/5+32;

text2.setText(f+””);//text2.setText(String.valueOf(h));//将运算结果转换为字符串写回文本框

举例:

2010年10月、2011年1月

b、字符串的分析

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==button){

Strings=textA.getText();doublesum=0;

StringTokenizerfenxi=newStringTokenizer(s,",\n");//创建字符串分析对象

while(fenxi.hasMoreTokens()){//循环访问分析后的子串

sum=sum+Double.parseDouble(fenxi.nextToken());//将子串转换为数字参与运算

}

textA.setText(sum+””);//将结果写回文本框

}

}

举例:

2009年10月、2012年1月、2012年10月、2015年4月

(资料素材和资料部分来自网络,供参考。

可复制、编制,期待你的好评与关注)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1