CCF认证模拟考试题目参考答案Java.pdf

上传人:s****u 文档编号:12791516 上传时间:2020-05-24 格式:PDF 页数:8 大小:135.51KB
返回 下载 相关 举报
CCF认证模拟考试题目参考答案Java.pdf_第1页
第1页 / 共8页
CCF认证模拟考试题目参考答案Java.pdf_第2页
第2页 / 共8页
CCF认证模拟考试题目参考答案Java.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述
模拟练习试题参考答案(Java) 为了帮助大家熟悉 CCF 软件能力认证考试的操作方式与答题环境,了解试题的大致 难 度, 做好考前的准备, 故在此提供试题的参考答案。Java 程 序是灵活的, 为了解决同一个问 题,即使结果相同,程序的内容也不一定是完全一致的,仅供各位在练习时参考。 1. 出现次数最多的数 import java.util.*; public class Main public static void main(String args) new Main().run(); public void run() Scanner fin = new Scanner(System.in); int N = fin.nextInt(); int count = new int10001; for (int i = 0; i N; +i) +countfin.nextInt(); int maxCount = -1; int result = 0; for (int i = 1; i maxCount) maxCount = counti; result = i; System.out.println(result); 2.ISBN 号码 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main public static void main(String args) BufferedReader bin = new BufferedReader(new InputStreamReader(System.in); try int sum=0;char cc=0; String isbn_0 = bin.readLine(); String isbn = isbn_0.replace(-, ); for(int i=0; i9; i+) int ii = (int)isbn.charAt(i)-48; sum += ii * (i+1); sum = sum % 11; if(sum = 10) cc = X;/ else cc = (char)(sum+48); if(cc = isbn.charAt(9) System.out.println(Right); else isbn_0 = isbn_0.substring(0,12) + cc; System.out.println(isbn_0); catch(Exception e) e.printStackTrace(); 3.最大的矩形 import java.util.*; public class Main public static void main(String args) new Main().run(); public void run() Scanner fin = new Scanner(System.in); int N = fin.nextInt(); int height = new intN; for (int i = 0; i N; +i) heighti = fin.nextInt(); int result = 0; for (int i = 0; i = 0; -j) if (heightj heighti) break; +width; for (int j = i + 1; j N; +j) if (heightj heighti) break; +width; int area = width * heighti; result = Math.max(result, area); System.out.println(result); 4.有趣的数 import java.util.*; public class Main public static void main(String args) new Main().run(); public void run() Scanner fin = new Scanner(System.in); int N = fin.nextInt(); long count = new long8; count6 = 0; count7 = 1; long mod = 1000000007; for (int i = 2; i = N; +i) long newCount = new long8; newCount0 = (count0 * 2 + count1 + count3) % mod; newCount1 = (count1 * 2 + count2 + count5) % mod; newCount2 = (count2 + count6) % mod; newCount3 = (count3 * 2 + count4 + count5) % mod; newCount4 = (count4 + count7) % mod; newCount5 = (count5 * 2 + count6 + count7) % mod; newCount6 = 0; newCount7 = 1; count = newCount; System.out.println(count0); 5.Im stuck! import java.util.*; public class Main public static void main(String args) new Main().run(); public void run() Scanner fin = new Scanner(System.in); int R = fin.nextInt(); int C = fin.nextInt(); fin.nextLine(); int board = new intR + 2C + 2; int rowStart = 0, colStart = 0, rowEnd = 0, colEnd = 0; for (int i = 1; i = R; +i) String line = fin.nextLine(); for (int j = 1; j = C; +j) char c = line.charAt(j - 1); switch (c) case #: break; case -: boardij = 5; break; case |: boardij = 0 xA; break; case +: case S: case T: boardij = 0 xF; break; case .: boardij = 0 x8; break; default: break; if (c = S) rowStart = i; colStart = j; else if (c = T) rowEnd = i; colEnd = j; int dr = new int 0, -1, 0, 1; int dc = new int 1, 0, -1, 0; / Scan 1: find all cells which can reach T boolean visited = new booleanR + 2C + 2; boolean canReachT = new booleanR + 2C + 2; initVisited(visited); canReachTrowEndcolEnd = true; visitedrowEndcolEnd = true; Queue queue = new LinkedList(); queue.add(rowEnd); queue.add(colEnd); while (!queue.isEmpty() int r = queue.remove(); int c = queue.remove(); for (int i = 0; i 4; +i) int nr = r + dri; int nc = c + dci; if (visitednrnc) continue; if (boardnrnc queue.add(nr); queue.add(nc); visitednrnc = true; /* for (int i = 1; i = R; +i) for (int j = 1; j = C; +j) if (canReachTij) System.out.println(i = + i + , j = + j); */ if (!canReachTrowStartcolStart) System.out.println(Im stuck!); return; / Scan 2: get result boolean rCanReach = new booleanR + 2C + 2; initVisited(visited); queue.clear(); visitedrowStartcolStart = true; rCanReachrowStartcolStart = true; queue.add(rowStart); queue.add(colStart); while (!queue.isEmpty() int r = queue.remove(); int c = queue.remove(); for (int i = 0; i 4; +i) if (boardrc int nr = r + dri; int nc = c + dci; if (visitednrnc) continue; if (boardnrnc = 0) continue; rCanReachnrnc = true; queue.add(nr); queue.add(nc); visitednrnc = true; int result = 0; for (int i = 1; i = R; +i) for (int j = 1; j = C; +j) /* if (rCanReachij) System.out.println(i = + i + , j = + j); */ if (rCanReachij System.out.println(result); private void initVisited(boolean visited) int R = visited.length - 2; int C = visited0.length - 2; for (int i = 0; i = R + 1; +i) visitedi0 = true; visitediC + 1 = true; for (int j = 0; j = C + 1; +j) visited0j = true; visitedR + 1j = true; for (int i = 1; i = R; +i) for (int j = 1; j = C; +j) visitedij = false;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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