Java ACM 入门竞赛试题(含详细答案)_第1页
Java ACM 入门竞赛试题(含详细答案)_第2页
Java ACM 入门竞赛试题(含详细答案)_第3页
Java ACM 入门竞赛试题(含详细答案)_第4页
Java ACM 入门竞赛试题(含详细答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaACM入门竞赛试题(含详细答案)适用场景:ACM新生选拔赛、校内Java算法竞赛、算法入门训练考试时长:90分钟满分:100分说明:所有编程题使用Java语言作答,代码简洁可AC,无特殊算法门槛,侧重基础语法、逻辑、循环、数组、简单贪心与模拟一、选择题(每题3分,共10题,30分)1、以下关于Java基本数据类型,说法正确的是?()A、byte类型取值范围是-128~127B、float类型精度高于doubleC、boolean类型可以赋值为0和1D、char类型占用4字节2、以下代码的输出结果是?()PlainText

inta=5;

a+=a-=a*a;

System.out.println(a);A、-15B、-20C、-40D、03、Java中数组的特点错误的是?()A、数组长度固定不可变B、数组下标从0开始C、可以存储不同数据类型的数据D、数组属于引用类型4、以下循环执行次数是?()PlainText

for(inti=1;i<=10;i+=2){}A、10次B、5次C、4次D、无数次5、ACM竞赛中,Java快速读取大量数据优先使用?()A、ScannerB、BufferedReaderC、System.outD、Random6、以下能正确实现交换两个整数变量a、b值的是?()A、intt=a;a=b;b=t;B、a=b;b=a;C、a=a+b;b=a-b;a=a+b;D、以上都不对7、while(true)循环如何正确终止?()A、用continueB、用breakC、直接删除循环D、return无法终止8、以下结果为true的是?()PlainText

Strings1="abc";

Strings2=newString("abc");A、s1==s2B、s1.equals(s2)C、s1=s2D、无正确答案9、ACM编程中,关于输入输出说法错误的是?()A、尽量避免循环内多次printlnB、大数据量用BufferedWriter输出C、Scanner读取速度比BufferedReader快D、换行可以用"\n"提升效率10、以下不属于排序算法的是?()A、冒泡排序B、选择排序C、二分查找D、插入排序二、填空题(每题4分,共5题,20分)1、Java中,________关键字可以跳出当前单层循环。2、int[]arr=newint[5];数组默认初始值全为________。3、三元运算符的格式:条件?表达式1:________。4、for循环初始化语句执行________次。5、判断两个字符串内容相等必须使用________方法。三、编程题(共3题,50分)1、整数求和(15分)题目描述:输入两个整数a、b,输出a到b之间所有整数的和(包含a和b,保证a≤b)。输入:一行两个整数ab输出:一个整数,区间和样例输入:110样例输出:552、偶数统计(15分)题目描述:输入n个整数,统计其中偶数的个数,并输出所有偶数的平均值(保留1位小数)。输入:第一行一个整数n,第二行n个整数输出:第一行输出偶数个数,第二行输出偶数平均值样例输入:512346样例输出:34.03、冒泡排序(20分)题目描述:输入n个整数,使用冒泡排序对数组进行升序排序,输出排序后的数组,数字中间用空格分隔。输入:第一行整数n,第二行n个整数输出:一行排序后的整数样例输入:6925183样例输出:123589四、详细答案与解析(一)选择题答案1、A解析:float精度低于double;boolean只能是true/false;char占2字节。2、C解析:赋值从右往左计算,原式拆解:a=a+(a=a-25),最终结果-40。3、C解析:Java数组只能存储同一种数据类型数据。4、B解析:i取值1、3、5、7、9,共5次。5、B解析:BufferedReader为高效字符读取,适配ACM大数据输入。6、A解析:B会丢失数据,C数值相加可能溢出,只有临时变量交换最稳妥。7、B解析:break终止循环,continue仅跳过本次循环。8、B解析:==比较地址,equals比较字符串内容。9、C解析:Scanner效率远低于BufferedReader。10、C解析:二分查找是查找算法,不是排序算法。(二)填空题答案1、break2、03、表达式24、15、equals()(三)编程题标准答案(可直接AC)1、整数求和PlainText

importjava.util.Scanner;

publicclassMain{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

inta=sc.nextInt();

intb=sc.nextInt();

intsum=0;

for(inti=a;i<=b;i++){

sum+=i;

}

System.out.println(sum);

}

}思路:遍历区间所有数累加,入门循环基础题。2、偶数统计PlainText

importjava.util.Scanner;

publicclassMain{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intn=sc.nextInt();

intcount=0;

doublesum=0;

for(inti=0;i<n;i++){

intnum=sc.nextInt();

if(num%2==0){

count++;

sum+=num;

}

}

System.out.println(count);

//保留1位小数

System.out.printf("%.1f\n",sum/count);

}

}思路:遍历判断偶数,统计个数和总和,最后计算平均值并格式化输出。3、冒泡排序PlainText

importjava.util.Scanner;

publicclassMain{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intn=sc.nextInt();

int[]arr=newint[n];

//读入数组

for(inti=0;i<n;i++){

arr[i]=sc.nextInt();

}

//冒泡排序

for(inti=0;i<n-1;i++){

for(intj=0;j<n-1-i;j++){

if(arr[j]>arr[j+1]){

intt=arr[j];

arr[j]=arr[j+1];

arr[j+1]=t;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论