编程题.docx
《编程题.docx》由会员分享,可在线阅读,更多相关《编程题.docx(5页珍藏版)》请在冰豆网上搜索。
编程题
第一题:
定义方法
(一)基本算法
37.请编写方法intrevInt(inta),该方法的功能是返回与十进制正整数a的数字顺序相反排列的正整数。
如已知正整数1234,方法返回值是4321。
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+……注:
下一项的分母=上一项的分子,下一项的分子=上一项的分子与分母的和。
(二)字符串的运算
37.请编写方法voidstrReverse(Stringstr),该方法的功能是输出一个新字符串,新字符串字符排列顺序与原字符串str的字符排列顺序相反。
例如,strReverse(″ABCD″)所输出的结果是″DCBA″。
请使用字符串与字节数组的相互转换方法进行设计。
voidstrReverse(Stringstr){
Stringn=””;
for(inti=0;i<=()-1;i++){
n=n+()-1-i,()-i)
}
strReverse(Stringstr){
byteb[]=();bytet;
for(inti=0;i<2;i++){
t=b[i]b[i]=b[];b[]=t;
}
Stringn=newString(b);
请编写方法intcountNum(Stringstr),该方法的功能是统计已知字符串str中数字的个数。
例如,countNum("A42B83C2D")的返回值是5。
(三)数组的运用
37.编写方法intsearchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。
intsearchMaxNumIndex(int[]a){
intmax=a[0],n=0;
for(inti=1;i<;i++){
if(a[i]>max){max=a[i];n=i;}
}
returnn;
}
37.请编写方法doubleaverageOfArray(double[]a),返回非空数组中正数的平均值(数组中可能有非正数元素)。
37.请编写方法intcountOddNum(int[]a),该方法的功能是求已知数组a中奇数的个数。
要求根据方法的功能写出方法的代码。
37.编写方法int[]delete(int[]a,intd),方法将创建一个新数组b,新数组b中只包含原数组中所有值不等于d的元素,并返回该新数组b。
37.请编写方法int[]cubeArray(int[]a),返回一个新数组b,数组b的长度与参数数组的长度相同,其元素的值是参数数组对应各元素值的立方。
37.编写方法int[]arrayReverse(int[]a),该方法的功能是返回一个新的数组b,新数组的元素排列顺序与参数数组的元素排列顺序相反。
37.请编写一个方法intfindMaximum(int[][]numbers),要求该方法返回二维数组中元素的最大值。
37.编写方法int[][]transpose(int[][]a),方法将生成并返回一个新数组b,该数组为a的转置数组。
注:
数组转置指的是将数组的行、列内容互换。
第二题:
图形用户界面设计题
1、完成界面设计(界面的设计:
JFrame;布局:
FlowLayout、BorderLayout、GridLayout、CardLayout,null;常用组件:
JLabel、JTextField、JButton、JTextArea、JPanel……;事件处理)
(1)JFrame的应用
import.*;
import.*;
classMFrameextendsJFrame{
MFrame(Strings){
super(s);
;
import.*;
importMFrameextendsJFrameimplementsActionListener{
MFrame(Strings){
super(s);
//布局
//组件创建与加载
//为事件源添加监视器
();//(300,200);(300,200,400,500);
(true);
;
}
//重写事件处理的方法
publicvoidactionPerformed(ActionEvente){
if()==事件源对象){
//具体的事件处理内容
}
}
}
举例:
2013年10月
(3)事件处理中的两种常见问题:
a、文本框中数字的运算
doublec=());//将文本框的内容转换为数字
doublef=c*9/5+32;
(f+””);//(h));//将运算结果转换为字符串写回文本框
举例:
2010年10月、2011年1月
b、字符串的分析
publicvoidactionPerformed(ActionEvente){
if(()==button){
Strings=();doublesum=0;
StringTokenizerfenxi=newStringTokenizer(s,",\n");//创建字符串分析对象
while()){//循环访问分析后的子串
sum=sum+());//将子串转换为数字参与运算
}
(sum+””);//将结果写回文本框
}
}
举例:
2009年10月、2012年1月、2012年10月、2015年4月