1编程题参考答案0001.docx
- 文档编号:5883542
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:7
- 大小:17.57KB
1编程题参考答案0001.docx
《1编程题参考答案0001.docx》由会员分享,可在线阅读,更多相关《1编程题参考答案0001.docx(7页珍藏版)》请在冰豆网上搜索。
1编程题参考答案0001
第一题:
定义方法
(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.1voidstrReverse(Stringstr){
Stringn="";
for(int
i=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]>='0'&&b[i]<='9')n++; } returnn; } (3)数组的运用 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.1doubleaverageOfArray(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.1int[]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 =d){b[k]=a[i];k++;}//注意这里不能用b[i],只能用b[k] }returnb; } 37.请编写方法int[]cubeArray(int[]a),返回一个新数组b,数组b的长度与参数数组的长度相同,其元素的值是参数数组对应各元素值的立方。 2012.10int[]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.4int[]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(int i=0;i j=0;j 行中的列 if(numbers[i][j]>max) max=numbers[i][j]; } } returnmax; } 37.编写方法int[][]transpose(int[][]a),方法将生成并返回一个新数组b,该数组为a的转置数组。 注: 数组转置指的是将数组的行、列内容互换。 2013.10int[][]transpose(int[][]a){ intb[][]=newint[a[0].length][a.length];//a的列数为b的行数,a的行数为b的列数 for(inti=0;i b[j][i]=a[i][j]; } } returnb; } 第二题: 图形用户界面设计题 1、完成界面设计(界面的设计: JFrame;布局: FlowLayout、BorderLayout、GridLayout、CardLayout,null;常用组件: JLabe、lJTextField、JButton、JTextArea、JPane⋯l⋯;事件处理) (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.*; classMFrameextendsJFrame implementsActionListener{ 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、文本框中数字的运算double c=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月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 参考答案 0001