假设s是一个型如:”cat223dog456nice25ttt98″的串,其特征是数字与字符交错。我们希望知道这个串中有多少个数字段。假设该串必以字符开始。我们给出了如下代码,请完善之:

boolean old_tag = false;  // 表示开始不是数字

boolean tag = false;

int n = 0; // 数字组计数

for(int i=0; i<s.length(); i++){

char c = s.charAt(i);

tag = c>=’0′ && c<=’9′;  // 是否为数字

if(____________) n++;

old_tag = tag;

}

答案: !old_tag && tag

注意: tag && (!old_tag) 也对,  类似:tag==true && old_tag == false 这样的描述也对。

如果int[] x = … 已经指向一个整型数组,我们想把数组中的元素翻转(比如:1,2,3,4,5 变成:5,4,3,2,1),写了如下代码,请完善之:

for(int i=0; i<x.length/2; i++){

int t = x[i];

x[i] = ______________;

______________ = t;

}

答案:两个空都是:x[x.length-1-i]

注意:x[x.length-i-1] 也是对的。

冒泡排序仅仅在相邻两个元素间进行比较和交换。下面的程序实现了对某个整型数组中的元素进行冒泡排序,它在保证逻辑正确的前提下,避免了冗余的比较。请填写缺少的代码。

int[] targetArr  = {3,22,11,5,400,99,20,22,5};

for(int i=0; i<targetArr.length-1; i++)

{

for(int j=0; j<______________; j++)

{

if(targetArr[j]>targetArr[j+1])

{

int tmp = targetArr[j];

targetArr[j] = targetArr[j+1];

targetArr[j+1] = tmp;

}

}

}

参考答案:

targetArr.length-1-i

注意:如果填写targetArr.length-1 在逻辑上也正确,但不符合题目要求,因为这样多了一些没有必要的冗余比较。

一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只

问一百只鸡中公鸡、母鸡、小鸡各多少?请补充缺少的代码。

for(int cock=0; cock<=100; cock++)

{

for(int hen=0; hen<=100; hen++)

{

int chicken = 100 – cock – hen;

if(chicken % 3 != 0) ________________;

if(_________________________)

System.out.println(“cock=” + cock + “,hen=” + hen + “,chicken=” + chicken);

}

}

参考答案:

continue

cock*5 + hen*3 + chicken/3 == 100

注意: 加法、乘法的交换律

以下程序把一个整数翻转(8765变为:5678),请补充缺少的代码。

int n = 8765;

int m = 0;

while(n>0)

{

m = ________________________;

n = n / 10;

}

System.out.println(m);

参考答案: m * 10 + n%10

注意: 加法、乘法的交换律

下列代码取出一个整数的千位数字。请完善以下代码:

int n = 9175023;

int m = ___________________________;

System.out.println(m);

参考答案:n / 1000 % 10

注意: 也可以 n % 10000 / 1000, 总之以程序运行结果为度量

下列代码运行结果为:

12345

23456

89

23456789

即把一个串从数字不连续的位置断开。试完善之。

String s = “12345234568923456789”;

String t = “1”;

for(int i=1; i<s.length(); i++)

{

if(s.charAt(i)==s.charAt(i-1)+1)

{

t += s.charAt(i);

}

else

{

System.out.println(t);

_____________________________;

}

}

System.out.println(t);

参考答案: t = “” + s.charAt(i)

为了保证网络信息的健康,下列filter方法为聊天室实现了所谓“脏话过滤”功能。其中x存储原文,v中装入了若干禁止使用的词汇。比如“猪头”、“牛X”什么的。Filter方法把脏话替换为“***”,并返回过滤后的串。请完善之。

public static String filter(String x, Vector v)

{

for(int i=0; i<v.size(); i++)

x = __________________________________________;

return x;

}

参考答案: x.replaceAll((String)v.get(i), “***”)

本程序将网站“www.baidu.com”首页的内容复制保存在文件test.html中。写了如下代码,请完善之:

import java.net.*;

import java.io.*;

class DaSai{

public static void main(String[] args) throws Exception {

URL url=__________________________________;

BufferedReader in =_________________________________;

String inString;

File outfile=new File(“test.html”);

PrintWriter out=new PrintWriter(new FileWriter(outfile));

while ((inString=in.readLine())!=null){

out.println(inString);

}

in.close();

out.close();

}

}

答案:  1. new URL(“http://www.baidu.com”)

2. new BufferedReader(new InputStreamReader(url.openStream()))

其它写法以运行通过为准

该程序完整代码的运行结果如下,请在指定位置添加代码,实现程序功能。

程序运行结果:

(1)当输入abc时,运行结果如下:

abc is too short!

发生字符串太短异常:StringTooShortException

程序执行结束

(2)当输入abcdef,运行结果如下:

abcdef

程序执行结束

(3)当输入abcdefghijklmn时,运行结果如下:

abcdefghijklmn is too long!

发生字符串太长异常:StringTooLongException

程序执行结束

程序代码:

import java.io.*;

public class Test{

static void myFunc(String s)

throws StringTooShortException, StringTooLongException

{

if(s.length()>=5 && s.length()<=10)

System.out.println(s);    // 没有异常发生,正常显示字符串信息

else if(s.length()<5)

__________________________________;

else

___________________________________;

}

public static void main(String args[])throws IOException{

InputStreamReader in = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(in);

String str=br.readLine();

try{  myFunc(str);  }

catch(StringTooShortException e)    // 捕捉字符串太短异常

{ System.out.println(“发生字符串太短异常:”+e); }

catch(StringTooLongException e) // 捕捉字符串太长异常

{ System.out.println(“发生字符串太长异常:”+e);  }

finally     // 程序最后执行位置

{  System.out.println(“程序执行结束”); }

}

}

/

class StringTooShortException extends Exception{    // 自定义字符串太短异常类

public StringTooShortException(String s){

System.out.println(s+” is too short!”);

}

}

class StringTooLongException extends Exception{ // 自定义字符串太短异常类

public StringTooLongException(String s){

System.out.println(s+” is too long!”);

}

}

参考答案:

第一个空: throw new StringTooShortException(s)

第二个空: throw new StringTooLongException(s)

以下程序运行的结果如下,请根据程序的运行结果在下划线处填写相应代码。

程序的运行结果:

(2.5, 3.5, 4.5)

(2.5, 3.5, 4.5)

给出的程序代码:

class Point{

private double x,y,z;

public Point(double a, double b, double c){

x = a;

y = b;

z = c;

}

public Object clone(){

Object obj =                       ___;

return obj;

}

public String toString(){

String str =                       ____;

return obj;

}

}

public class Test {

public static void main(String[] arg){

Point p = new Point(2.5, 3.5, 4.5);

Point q = (Point)p.clone();

System.out.println(p);

System.out.println(q);

}

}

参考答案:

第一空: new Point(x,y,z)

第二空: “(“+x+”, “+y+”, “+z+”)”

以下程序的运行结果始终如下,请在下划线处添加相应代码。

运行结果:

DDDDDDDD

CCCCCCCC

BBBBBBBB

AAAAAAAA

程序代码:

import java.util.*;

class  A{

String sa ;

A(String str){

sa = str;

}

public String toString(){

return sa;

}

}

public class B {

public static void main(String args[]) {

Set<A> set = new HashSet<A>();

set.add(new A(“AAAAAAAA”));

set.add(new A(“BBBBBBBB”));

set.add(new A(“CCCCCCCC”));

set.add(new A(“DDDDDDDD”));

______;

while(it.hasNext()){

System.out.println(it.next());

}

}

}

参考答案:Iterator<A> it = set.iterator()

编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置)。已经写了如下代码,请完善之:

class  y{

public static void main(String[] args) throws Exception {

int a[][]={{1,2,3},{4,5,6}};

int b[][]=new int[3][2];

for(int i=0;i<2;i++){

for(int j=0;j<3;j++){

_____________________;

}

}

}

}

答案:

b[j][i]=a[i][j]

显示“DaSai”目录下以”Ex”开头的文件和目录,写了如下代码,请完善之:

import java.io.*;

class JavaFilter implements FilenameFilter{

String jf;

JavaFilter(String s){

jf=s;

}

//实现FilenameFilter接口的accept()方法

public boolean accept(File dir,String name){

return name.startsWith(jf);//name的前缀是否是参数jf

}

}

public class  Ex{

public static void main(String[] args) throws Exception {

File f=new File(“/DaSai”);

//过滤以“Ex”开头的文件和目录,存放到字符串数组s中。

String s[]=____________________________;

for(int i=0;i<s.length;i++){

File ff=new File(s[i]);// 根据s[i]创建File类对象

if(ff.isDirectory())

System.out.println(s[i]+” is a directory”);

else

System.out.println(s[i]+” is a file”);

}

}

}

答案:

f.list(new JavaFilter(“Ex”))

以下程序打印出0~9的数字,请补充缺少的代码。

public class MyTest

{

public static void f(int begin, int end)

{

__________________;

System.out.println(begin);

f(begin+1, end);

}

public static void main(String[] args)

{

f(0,9);

}

}

参考答案: if(begin>end) return

注意: 类似:end < begin 当然也对

在A B C D E F 六人中随机抽取3人中奖,要求中奖人不能重复。请完善以下代码:

public class MyTest

{

public static void main(String[] args)

{

Vector a = new Vector();

for(char i=’A'; i<=’F'; i++)  a.add(“” + i);

for(int k=0; k<3; k++)

{

int d = ____________________________;

System.out.println(a.remove(d));

}

}

}

参考答案:(int)(Math.random() * a.size())

注意: new Random().nextInt(a.size()) 也是正确答案

不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。下面的代码演示了如何把键盘输入的3进制数字转换为十进制。试完善之。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String s = br.readLine();

int n = 0;

for(int i=0; i<s.length(); i++)

{

char c = s.charAt(i);

if(c<‘0′ || c > ‘2’) throw new RuntimeException(“Format error”);

n = ______________________;

}

System.out.println(n);

参考答案:n * 3 + (c-‘0′)

注意: 3 * n  + c – 48 当然也是对的。

许多人都曾经玩过“拍七”游戏。规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17等都不能数出),下一人继续数下面的数字。违反规则者受罚。下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。

for(int i=1; i<100; i++)

{

if(i % 7 == 0)

printf(“*n”);

else if(___________________)

printf(“*n”);

else

printf(“%dn”, i);

}

参考答案 :i/10 == 7 || i%10 == 7:

java中,所有的字符都用unicode编码格式表示,占用2个字节。但当需要把一个字符流化到外设(比如写出到磁盘,通过网络传输等)时,就会涉及到编码方式。如果流化与反流化的编码方式不同,就会产生俗称的“乱码”现象。下列代码从磁盘读入一个用GBK编码的文本文件a.txt,写出为一个用utf-8编码的文件:b.txt,即实现了编码方式转换。请补充缺失的代码。

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(“a.txt”),”GBK”));

BufferedWriter bw = _________________________________________;

for(;;)

{

String  s = br.readLine();

if(s==null) break;

bw.write(s);

bw.newLine();

bw.flush();

}

参考答案:new BufferedWriter(new OutputStreamWriter(new FileOutputStream(“b.txt”), “utf-8″));

主要注意考生编码方式串写的位置。

不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。下面的代码演示了如何把键盘输入的3进制数字转换为十进制。试完善之。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String s = br.readLine();

int n = 0;

for(int i=0; i<s.length(); i++)

{

char c = s.charAt(i);

if(c<‘0′ || c > ‘2’) throw new RuntimeException(“Format error”);

n = ______________________;

}

System.out.println(n);

参考答案:n * 3 + (c-‘0′)

注意: 3 * n  + c – 48 当然也是对的。

有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。下面的程序以10个孩子为例,模拟了这个过程,请完善之(提示:报数的过程被与之逻辑等价的更容易操作的过程所代替)。

Vector a = new Vector();

for(int i=1; i<=10; i++)

{

a.add(“第” + i + “个孩子”);

}

for(;;)

{

if(a.size()==1) break;

for(int k=0; k<2; k++)

________________;

a.remove(0);

}

System.out.println(a);

参考答案:a.add(a.remove(0))

注意:a.add(a.get(0)); a.remove(0)    也可适当给分

(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形:

1

1   1

1  2  1

1  3   3   1

1  4   6   4   1

1  5  10  10   5   1

下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。

public static int f(int m, int n)

{

if(m==0) return 1;

if(n==0 || n==m) return 1;

return __________________________;

}

答案:  f(m-1,n-1) + f(m-1,n)

当然,加法交换是可以的。

如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。

a = a ^ b;

b = _________;

a = _________;

答案:

a ^ b

a ^ b

编程比赛 填空题 转载相关推荐

  1. 四川大学线下编程比赛第一题:数字填充

    四川大学线下编程比赛第一题:数字填充 公布公司: 有 效 期: CSDN 2014-09-27至2015-09-26 难 度 等 级: 答 题 时 长: 编程语言要求: 120分钟 C C++ Jav ...

  2. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

    金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同时他也是一个黑客. 考试结束后不久,他惊讶的发现自己的高等数学科目居然挂了,于是他果断入侵了学校教务部网站.在入侵的过程中,他发现了与 ...

  3. CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

    金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下 ...

  4. CSDN 厦门大学线下编程比赛第一题:求和(同余定理)

    题目意思: 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和. 输入描写叙述:測试数据有多组,以文件结尾.每行输入a,n(1<=a,n<=1000000). ...

  5. 金色十月线上编程比赛第二题:解密

    题目详情: 小强是一名学生, 同时他也是一个黑客. 考试结束后不久,他惊讶的发现自己的高等数学科目居然挂了,于是他果断入侵了学校教务部网站.在入侵的过程中,他发现了与成绩相关的内容是一个加密文件,这个 ...

  6. java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...

    一.根据题意,填写出空格中的内容 Java平台包括三个技术方向,其中J2ME代表____________.J2SE代表___________.J2EE代表____________.2.面向对象的四大概 ...

  7. 历届蓝桥杯Scratch编程国赛 初级 中级 青少年编程比赛国赛真题解析【持续更新 已更新至27题】

    历届蓝桥杯国赛真题 第十三界.十二届.十一届等历届青少年蓝桥杯Scratch编程比赛国赛真题解析 国赛真题01-河马带球[试看] [蓝桥杯国赛真题01]Scratch河马带球 少儿编程蓝桥杯Scrat ...

  8. python少儿编程讲师笔试题_小码王教育儿童编程教师面试:做笔试题(填空题和编程题,填空题 - 职朋职业圈...

    为了帮助职业圈网友能够及时了解小码王教育的面试流程以及面试过程所涉及的面试问题,职业圈小编把刚获得的小码王教育面试经验马上编辑好,快速提供给大家,以便能够尽快帮助到有需要的人.这次面试总共花了1天.面 ...

  9. 历届蓝桥杯Scratch编程省赛 初级 中级 青少年编程比赛省赛真题解析【持续更新 已更新至35题】

    历届蓝桥杯scratch省赛真题 历年蓝桥杯Scratch编程比赛省赛真题详细解析 省赛真题35-水面倒影 [蓝桥杯省赛真题35]Scratch水面倒影 少儿编程scratch编程蓝桥杯省赛真题讲解_ ...

最新文章

  1. json格式天气数据的获取,jsonp方式获取统计图数据
  2. NA-NP-IE系列实验36:扩展ACL
  3. Java面试题,深入理解final关键字
  4. 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒?
  5. 虚拟启动光盘-从ISO光盘镜像引导系统
  6. 【深度学习】卷积神经网络速成
  7. Building wheel for wrapt (setup.py) ... error
  8. Linux 使用ntpdate自动对时
  9. mysql ---- 官网的测试数据库
  10. 每个 Linux 用户都应该知道的命令行技巧
  11. H3C 防火墙无法ping通端口
  12. [HTA] - HTML应用程序
  13. 小米电视2+android,真实体验小米电视2方便安装第三方软件
  14. Word文档调整字间距的方法教程【收藏】
  15. fatal: ‘http://git.#####.com/test-auto/stability.git/‘ 鉴权失败
  16. cmd是计算机语言吗,cmd的含义和作用
  17. 手Q游戏中心的个性化推荐实战 | CSDN博文精选
  18. [渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(2)
  19. 微信公众号最新留言评论管理功能怎么开通获取?(内附留言功能开通视频链接)
  20. 2021年前装首破5万辆 AR HUD“棋逢对手”,竞逐量产桂冠

热门文章

  1. [笔试] 查找兄弟单词(2012/5/6 百度实习笔试题)
  2. 一天一篇latex刘海洋代码解析:1.2.4 命令与环境
  3. 使用JS实现博客搜索关键字高亮
  4. 计算机工程科学怎么翻译,汉英机器翻译中汉语篇章时间信息系统模型 - 计算机工程与科学.pdf...
  5. PooledConnection has already been closed.
  6. css动画让文字一行一行逐渐显示
  7. 二级计算机公共基础知识
  8. 电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键
  9. Android 谈谈自动化测试
  10. Python在振动信号处理中的应用(十一):倒频谱(Cepstrum)计算