JAVA编程基础面试题.doc

上传人:飞****2 文档编号:52757138 上传时间:2022-10-23 格式:DOC 页数:23 大小:156KB
返回 下载 相关 举报
JAVA编程基础面试题.doc_第1页
第1页 / 共23页
JAVA编程基础面试题.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《JAVA编程基础面试题.doc》由会员分享,可在线阅读,更多相关《JAVA编程基础面试题.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、二、数据类型和变量和基本运算符1. 华氏温度和摄氏温度互相转换,从华氏度变成摄氏度你只要减去32,乘以5再除以9就行了,将摄氏度转成华氏度,直接乘以9,除以5,再加上32即行。double f = 100; / 华氏温度double c = 37; / 摄氏温度/ 华氏温度转摄氏温度System.out.println(f 32.0) * 5 / 9);/ 摄氏温度转华氏温度System.out.println(c * 9.0 / 5 + 32);2. 已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序。int a = 3;int b = 5;int tmp = a;/临时变量a =

2、 b;b = tmp;System.out.println(“a=” + a);System.out.println(“b=” + b);3. 不用第三方变量,将ab两个变量的值互换int a = 3;int b = 5;a=a+b; /用a获得总和b=a-b; /得到旧a值赋给ba=a-b; /得到旧b值赋给aSystem.out.println(“a=” + a);System.out.println(“b=” + b);4. 输入一个任意的浮点数,例如3.,保留其两位小数输出,无需四舍五入/创建输入流Scanner input = new Scanner(System.in);/得到输入

3、的浮点数double d = input.nextDouble();/将浮点数乘以100(保留2位)后取整,再除以100.0还原成浮点数System.out.println(int) (d * 100) / 100.0 );5. 输入一个任意的5位整数,将它保留到百位,无需四舍五入Scanner scanner =newScanner(System.in);inti = scanner.nextInt();System.out.println(i / 100 * 100);1. 输入一个01000的整数,求各位数的和,例如345的结果是3+4+512注:分解数字既可以先除后模也可以先模后除Sc

4、anner scan = new Scanner(System.in);int i = scan.nextInt();/分解数字int x1 = i / 1000;int x2 = i / 100 % 10;int x3 = i / 10 % 10;int x4 = i % 10;System.out.println(x1 + x2 + x3 + x4);2. 输入一个任意的大写字母AZ,转换为小写字母,(后面再练习输入一个字符串,大写全部转换为小写)char c = A;System.out.println(char) (c + 32) );/加32即小写对应字母3. 分页显示练习:定义一个

5、常量,设定数据总记录数为73条(随时可以变化),一页20条记录(随时可以变化),输入页码,打印记录总数,共几页,当前是第几页,当前记录从第n条到第n条final int rowcount = 73;/总记录数final int pagesize = 20;/一页多少条Scanner scan = new Scanner(System.in);int page = scan.nextInt();/输入页码/得到总页数int pagecount = rowcount % page = 0 ? rowcount / page : rowcount / page + 1;/起始记录int startr

6、ow = pagesize * (page 1) + 1;/终止记录int endrow = pagesize * page rowcount ? rowcount : pagesize * page;/打印输出System.out.println(“总记录数:” + rowcount + “,每页” + pagesize + “条,共”+ page + “页,当前是第” + page + “页,从”+ startrow + “条到” + endrow + “条“);三、逻辑判断语句1. 输入一个数字,判断是一个奇数还是偶数2. 将分页显示的功能增加判断,如果用户输入的小于1的页码,自动赋成1

7、,如果超出了总页码,自动赋成总页码3. 判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)4. 输入两个小于5000的正随机整数,求它们差的绝对值,并输出结果。Scanner sc =newScanner(System.in);inta = sc.nextInt();intb = sc.nextInt();intc = a b;if(c 0)System.out.println(c);elseSystem.out.println(-c);5. 输入一个年份,判断这个年份是否是

8、闰年6. 输入一个0100的分数,如果不是0100之间,打印分数无效,根据分数等级打印A,B,C,D,E7. 请编写一个实现如下功能的Application:从命令行依次取三个参数x, y, op做算术运算,其中x, y为int型数据,op为运算符(、之一),请显示x op y的结果。(此例子需要讲完String类的equals方法)8. 从命令行传入3个整数,求3个整数的和、积、最大值、最小值、平均值9. 将以上3个数字,从小到大排列,然后再从大到小排列。10. 输入年和月,得到这个月有多少天11. 续上题,输入年,月,日,判断这个日期是否是一个正确的日期12. 续上题,输入年,月,日,ne

9、xt|prior,如果是一个正确的日期,算出上一天或下一天13. 输入三角形的三条边,判断是否是一个三角形,三角形的形状:等腰三角形,等边三角形,直角三角形,普通三角形,求出周长,如果是直角三角形,另外求出面积14. 有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。15. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高

10、于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?注意定义时需把奖金定义成浮点型。Scanner sc = new Scanner(System.in);double money = sc.nextLong();/输入利润double comm1 = * 0.1;/10万内的奖金基数double comm2 = comm1 + * 0.075;/20万内的奖金基数double comm4 = comm2 + * 0.05;/40万内的奖金基数double comm6 = comm4 + * 0.03;/60万内的奖金基数

11、double comm10 = comm6 + * 0.015;/100万内的奖金基数double comm; /实际奖金/分支判断if (money = )comm = money * 0.1;else if (money = )comm = comm1 + (money ) * 0.075;else if (money = )comm = comm2 + (money ) * 0.05;else if (money = )comm = comm4 + (money ) * 0.03;else if (money =90 A =80 B =70 C =60 D 2) sum +;System

12、.out.println(“第” + sum + “天“);四、循环语句练习1. 求1100的累加和(以下几题用while循环求)2. 打印1100之间能被3整除且个位是6的数3. 求n的阶乘。例如5的阶乘是1*2*3*4*54. 用while循环打印幻灯片的符号5. 用while嵌套循环打印幻灯片的10乘10序列6. 以下例子用for循环实现,打印1100之间的奇数和偶数7. 打印1900年到2100年之间的闰年,一行打印4个8. 打印小九九乘法表的4种形状9. 用一层while循环打印小九九乘法表inti=1,j=1;while(i i)j = 1;i +;System.out.print

13、ln();1. 在控制台输出以下图形1. 打印以下图形123456789101112131415intj = 1,k = 1;/控制换行for(inti = 1;i k)j = 1;k +;System.out.println();1. 李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他的岁数之和是873,请编写程序计算李先生及其夫人的岁数各是多少。2. 有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小3. 用1、2、3、4能组成多少无重复数字的三位数4. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,

14、共经过多少米?再反弹弹起多少米?doublesn = 100;/高度100米doublehn = sn / 2; /第一次反弹反弹高度for(inti = 2;i = 5;i +)sn = sn + hn * 2; /第i次落地经过多少米hn = hn / 2; /第i次反弹的高度System.out.println(“第” + i + “次落地经过” + sn + “米“);System.out.println(“第” + i + “次反弹” + hn + “米“);5. 输出10100之间的全部素数。所谓素数n是指,除1和n之外,不能被2(n-1)之间的任何整数整除。6. 输入两个正整数m

15、和n,求其最大公约数和最小公倍数7. 打印所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该数本身,如1531的立方+ 5的立方+ 3的立方8. 完数,一个数如果恰好等于它因子之和,这个数即为完数,如6 = 1 + 2 + 39. 打印以下图形*10. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?11. 要求输出国际象棋棋盘for(inti = 1;i = 8;i +)for(intj = 1;j = 8;j +)if( (i + j) % 2 = 0)System.out.print(“”);elseSystem.out.print(

16、” “);System.out.println();1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问12个月内每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21.2. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5intn = 90;System.out.print(n + “=”);for(inti = 2;i = 1;i )x2 = (x1 + 1) * 2;x1 = x2;System.out.println(“第” + i + “天的桃子个数:” + x2);五、数组

17、练习(别忘了二维数组排序)1. 从控制台输入n个数,求出最大值和最小值2. 将一个数组中的元素逆序存放int a = 8 , 5 , 9 ,12 ,36;for(inti = 0;i a.length / 2;i +)inttemp = ai;ai = aa.length - 1 - i;aa.length - 1 - i = temp;3. 冒泡排序的下沉法int a = 4,3,2,1;for(inti = 0;i a.length 1;i +)for(intj = 0;j aj + 1)inttmp = aj;aj = aj + 1;aj + 1 = tmp;4. 冒泡排序的上浮法int

18、 a = 4,3,2,1;for(inti = 0;i a.length 1;i +)for(intj = i + 1;j aj)inttmp = ai;ai = aj;aj = tmp;5. 选择排序:先从数组中找出最小元素下标,然后和第一个元素交换,然后再找出从第二个元素到最后的元素中的最小元素和第二个交换,以此类推int a = 4, 3, 2, 1 ;for(inti = 0; i a.length; i+) intmin = i;/假定最小元素的下标for(intj = i + 1;j a.length;j +)if(aj amin)min = j;inttmp = ai;ai =

19、amin;amin = tmp;6. 插入排序:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序,直到待排序数据元素全部插入完为止。int a = 5, 8, 4, 7 ;for(inti = 1; i = 0 & temp aj) aj + 1 = aj;j;aj + 1 = temp;7. 输入n个数,求这n个数的最大公约数和最小公倍数int a = 25 , 75 , 50;/求最小值int min = a0; for (int i = 1;i a.length;i +)if (ai = 1;i )boolean flag = true;for (int

20、 j = 0;j a.length;j +)if (aj % i != 0)flag = false;break;if (flag)System.out.println(“最大公约数是:” + i);break;/-/求最大值int max = a0;for (int i = 1;i min)max = ai;/求最小公倍数for (int i = max; ;i += max)boolean flag = true;for (int j = 0;j a.length;j +)if (i % aj != 0)flag = false;break;if (flag)System.out.prin

21、tln(“最小公倍数是:” + i);break;8. 将10个费波那契数字赋给一个数组并打印出来int a =newint10;a0 = 1;a1 = 1;for(inti = 2; i a.length; i+) ai = ai - 1 + ai - 2;9. 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析:首先判断此数是否大于最后一个数,如果大于最后一个数,则不插入。然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。Scanner sc = new Scanner(System.in);int input = sc.nextInt();

22、int a = 4,7,12,15;if (input aa.length - 1)for (int i = 0;i a.length;i +)if (input = ai)int temp1 = ai;ai = input;/其他元素向下移动for (int j = i + 1;j a.length;j +)int temp2 = aj;aj = temp1;temp1 = temp2;break;10. 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。例如1 2 3 4 5 6 7移动4个就变成4 5 6 7 1 2 3Scanner sc = new Scann

23、er(System.in);int input = sc.nextInt();int a = 1, 2, 3, 4, 5, 6, 7 ;for (int i = 0;i input;i +)int temp1 = a0;for (int j = 1;j a.length;j +)int temp2 = aj;aj = temp1;temp1 = temp2;a0 = temp1;11. 将一个数组中的重复元素保留一个其他的清零。int a = 1, 2, 2, 3, 4, 5, 6, 4, 7 ,2 ,10;for(inti = 0;i a.length 1;i +)for(intj = i

24、+ 1;j a.length;j +)if(ai = aj)aj = 0;12. 从一个排好序的一维数组中查找指定的值的下标位置,用线性查找法int a = 1, 2, 3, 4, 5, 6, 7, 8, 9 ;Scanner sc =newScanner(System.in);intinput = sc.nextInt();for(inti = 0; i a.length 1; i+) if(input = ai)System.out.println(“下标是” + i);break;13. 用二分(折半)查找法查找上例int a = 1, 2, 3, 4, 5, 6, 7, 8, 9 ;S

25、canner sc = new Scanner(System.in);int input = sc.nextInt();int min = 0;/查找的起始下标int max = a.length 1; /查找的中止下标int middle;while (min amiddle)min = middle + 1;if (input amiddle)max = middle 1;14. 从一个二维数组中找出最小值15. 一个3乘3的二维数组,求其对角线之和int a = 1,2,3,4,5,6,7,8,9;intsum1 = 0;intsum2 = 0;for(inti = 0;i a.leng

26、th;i +)for(intj = 0;j ai.length;j +)if(i = j)sum1 += aij;if(i + j = 2)sum2 += aij;System.out.println(“对角线1:” + sum1 + “,对角线2:” + sum2);16. 二维数组的排序,每一个一维数组单独排序int a = 23, 1, 34 , 77, 89, 12, 35 , 23, 20 ;for(intk = 0;k a.length;k +)for(inti = 0;i ak.length 1;i +)for(intj = 0;j akj + 1)inttemp = akj;akj = akj + 1;akj + 1 = temp;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁