本文目录一览:
- 1、一道关于蓝桥杯java组的练习题,运行没有问题可是一提交到系统就显示错误,求各位大神赐教
- 2、全国信息技术应用大赛 前五届的JAVA预赛 试题(单选题与多选题)及答案! 复赛与决赛 题的答案。 谢谢了!
- 3、蓝桥杯算法训练 java算法 表达式求值
- 4、蓝桥杯往年本科java试题。。。 非常感谢
- 5、蓝桥杯 省赛 大概什么样的成绩可以一等奖进决赛?
一道关于蓝桥杯java组的练习题,运行没有问题可是一提交到系统就显示错误,求各位大神赐教
输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0
你没有实现这一点。。。所以报错
全国信息技术应用大赛 前五届的JAVA预赛 试题(单选题与多选题)及答案! 复赛与决赛 题的答案。 谢谢了!
第五届全国ITAT教育工程就业技能大赛预赛试题Java程序设计
一、单选题(共计60题)
下列有关事件监听器的描述正确的是()。C
A、一个监听器只能接受一个组件产生的事件
B、只有一个监听器可以被附加到一个组件上
C、多个监听器可以被附加到一个组件
D、以上描述都不对
当下列程序执行时,其输出结果是()。D
A、2k
B、7k
C、-7k
D、-3k
下列关于修饰符混用的说法错误的是()。B
A、abstract不能与final并列修饰同一个类
B、staic方法中能处理非static的属性
C、abstract方法必须在abstract类中
D、abstract类中不可以有private的成员
下列容器是从java.awt.Window继承的是()。D
A、Applet
B、Panel
C、Container
D、Frame
关于构造方法,下列叙述错误的是()。B
A、构造方法是类的一种特殊方法,它的方法名必须与类名相同
B、构造方法的返回类型只能是void型,且书写格式是在方法名前加void前缀
C、构造方法的主要作用是完成对类的对象的初始化工作
D、一般在创建新对象时,系统会自动调用构造方法
下面2个文件位于相同目录下,编译运行后会出现的情况是()。B
//File P1.java
package MyPackage;
class P1{
void afancymethod(){
System.out.println("What a fancy method");
}
}
//File P2.java
public class P2 extends P1{
public static void main(String argv[]){
P2 p2 = new P2();
p2.afancymethod();
}
}
A、2个文件都可以编译,P2运行输出“What a fancy method”
B、2个文件P1编译成功,P2编译时报错误
C、2个文件都可以编译,P2运行时报错误
D、2个文件都不能编译
关于以下组件接口的描述正确的是()。C
A、TextArea组件可实现的接口是ActionListener
B、Choice组件可实现的接口是ActionListener
C、List组件可实现的接口,除了ItemListener,还可以是ActionListener
D、以上都不对
下面代码执行后的结果是()。C
public class Test3 {
private int court;
public static void main(String argv[]) {
Test3 s = new Test3(99);
System.out.println(s.court - 5);
}
Test3(int ballcount) {
court = ballcount + 10;
}
}
A、由于court是私有变量,因此产生一个编译失败错误
B、99
C、104
D、109
Java虚拟机指的是()。D
A、由Java语言操作的家用设备(通常是一个漂亮的小烤箱)
B、运行Java程序所需的硬件设备
C、Java源代码的编译器
D、Java字节代码的解释程序
java.util.HashTable可以实现的接口是()。C
A、Java.util.Hashable.
B、Java.util.List.
C、Java.util.Map.
D、Java.util.Collection.
下列说法正确的是()。B
A、字节流中的数据以16位字节为单位进行读写
B、字符流中的数据以16位字符为单位进行读写
C、InputStream和OutputStream是字符流的两个顶层父类
D、Reader和Writer是字节流的两个顶层抽象父类
下列关于线程调度的叙述中,错误的是()。D
A、调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会
B、调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会
C、当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行
D、具有相同优先级的多个线程的调度一定是分时的
下列有关整型的最终属性 i 的定义正确的是()。C
A、static int i;
B、final i;
C、static final int i=50;
D、final float i=1.2f;
对于方法重载,下列说法不正确的是()。D
A、允许在一个类的定义中多个方法使用相同的方法名
B、实现了java的编译时多态
C、方法的参数表必须不同,包括参数的类型和个数
D、方法的返回类型修饰符必须相同
下列Java常见事件类中,属于窗体事件类的是()。B
A、InputEvent
B、WindowEvent
C、MouseEvent
D、KeyEvent
分析下面的HTML部分代码 :
APPLET code=file_name
width=60
height=60
/APPLET
下列选项可以替代文件名以正确装载运行Hello类小程序的是()。C
A、"Hello.bytecode"
B、"Hello.applet "
C、"Hello.class "
D、"Hello.java"
Java JDK中,用于反编译的命令是()。D
A、javac
B、java
C、jdb
D、javap
下列程序段的输出结果是()。B
void complicatedExpression(){
int x=20, y=30;
boolean b;
b=x50y60||x50y-60||x-50y60||x-50y-60;
System.out.println(b);
}
A、true
B、false
C、1
D、0
Java语言的许多特点中,()是C++语言所不具备的。B
A、高性能
B、跨平台
C、面向对象
D、有类库
下面代码行中编译的时候不会报警告或错误的是()。D
A、float f=1.3;
B、char c="a";
C、byte b=257;
D、boolean b=false;
下列有关构造函数描述正确的是()。D
A、所有类都必须定义一个构造函数
B、构造函数必须有返回值
C、构造函数必须访问类的非静态成员
D、构造函数可以初始化类的成员变量
编译和运行下面代码时显示的结果是()。A
public class ThisConstructorCall {
public ThisConstructorCall(String s) {
System.out.println("s = " + s);
}
public ThisConstructorCall(int i) {
this("i = " + i);
}
public static void main(String args[]) {
new ThisConstructorCall("String call");
new ThisConstructorCall(47);
}
}
A、s = String call
s = i = 47
B、String call
s = i
C、s = String call
i = 47
D、String call
s = i = 47
分析下面的代码,其输出结果是()。B
public class Test3 {
public static void main(String[] args) {
String foo = "blue";
String bar = foo;
foo = "green";
System.out.println(bar);
}
}
A、一个异常抛出
B、blue
C、null
D、green
Frame类对象的默认布局是()。B
A、FlowLayout布局
B、BorderLayout布局
C、CardLayout布局
D、GridLayout布局
下面关于类的说法错误的是()。D
A、类是Java语言中的一种复合数据类型
B、类中包含数据变量和方法
C、类是对所有具有一定共性的对象的抽象
D、Java语言的类支持单继承和多继承
运行以下代码,并在命令行输入:java MyProg good morning,则输出结果是()。B
public class MyProg {
public static void main(String argv[])
{
System.out.println(argv[0]);
}
}
A、myprog
B、good
C、morning
D、Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2"
字符输出流类都是()抽象类的子类。C
A、FilterWriter
B、FileWrite
C、Writer
D、OutputStreamWrite
下面关于Java应用程序中main方法的写法,合法的是()。B
A、public static void main()
B、public static void main(String args[])
C、public static int main(String [] arg)
D、public void main(String arg[])
对象是Java中很重要的概念,下列说法中能准确地描述对象的是()。A
A、对象可以理解为一种数据结构,具有操作数据的方法
B、对象是抽象的,类可以通过对象来生成
C、对象是通过import语句引入到程序中的所有包
D、对象是一组具有共同的结构和行为的类
分析下面程序,其正确的输出结果是()。B
class A {
public static void main(String args[]) {
String s1, s2;
s1 = new String("we are students");
s2 = new String("we are students");
System.out.println(s1.equals(s2));
System.out.println(s1 == s2);
}
}
A、true,true
B、true,false
C、false,true
D、false,false
下列常见的系统定义的异常中,属于主机网络故障异常的是()。D
A、ClassNotFoundException
B、IOException
C、FileNotFoundException
D、UnknownHostException
下面代码执行后,正确的输出结果是()。A
String s1="You are hired!";
System.out.println(s1.replace(’h’,’f’)); //用f把字串中的h替换了
System.out.println(s1);
A、You are fired!
You are hired!
B、You are fired!
You are fired!
C、You are hired!
You are hired!
D、You are hired!
You are fired!
假定有变量定义: int k=7,x=12; 则下列选项中值为4的表达式是()。C
A、x%=(k%=5)
B、x%=(k-k%5)
C、(x%=k)-(k%=5)
D、x%=k-k%5
在Java中,创建日期类Date对象,需要在程序中用import导入的包是()。C
A、java.applet
B、java.awt
C、java.util
D、java.lang
下列叙述错误的是()。D
A、接口与类的层次无关
B、通过接口说明类所实现的方法
C、通过接口可了解对象的交互界面
D、接口与存储空间有关
当下列程序执行时,其输出结果是()。C
int i = 9;
switch (i) {
default:
System.out.println("default");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
A、default
B、zero
C、default, zero
D、没有输出结果
下列程序段的输出结果是()。D
public class OperatorsandExpressions{
public static void main(String args[]){
int a=5,b=4,c=3;
System.out.println("abc"+a+b+c+3);
}
}
A、abc15
B、abcabc3
C、abc3
D、abc5433
在Java中,所有类的根类是()。D
A、java.awt.Frame
B、java.lang.Class
C、java.applet.Applet
D、java.lang.Object
下列选项中关于程序运行结果的描述正确的是()。A
public class Ex4_7{
public static void main(String args[]){
int a[]=new int[5];
boolean b[]=new boolean[5];
System.out.print(a[1]);
System.out.println(b[2]);
}
}
A、程序运行结果为0false
B、程序运行结果为1true
C、程序无法通过编译
D、程序可以通过编译但结果不确定
setLayout ( )方法使用的参数类型是()。C
A、Graphics
B、Graphics2D
C、LayoutManager
D、Layout
有以下程序段:
class MyThread extends Thread {
public static void main(String args[]) {
MyThread t = new MyThread();
MyThread s = new MyThread();
t.start();
System.out.print("one.");
s.start();
System.out.print("two.");
} public void run() {
System.out.print("Thread");
}
}
则下列选项说法正确的是()。C
A、程序编译失败
B、程序运行结果为:one.Threadtwo.Thread
C、程序运行结果不确定
D、程序运行结果是:one.two.ThreadThread
不能通过add方法添加到Container容器中的是()。D
A、a Button
B、a Component
C、a Container
D、a MenuComponent
下面变量var的作用域范围是()。B
1) int x;
2) switch(x){
3) case 0:
4) {
5) int var;
6) //process
7) }
8) break;
9) case 1:
10) {
11) int var1;
12) //process
13) }
14) break;
15) }
A、1和15行之间
B、5和7行之间
C、3和7行之间
D、5和13行之间
在Java语言中,属于编译器自动导入的包是()。D
A、java.applet
B、java.awt
C、java.io
D、java.lang
下列常见的系统定义的异常中,编译时无法找到类的异常是()。A
A、ClassNotFoundException
B、IOException
C、FileNotFoundException
D、UnknownHostException
下面是一个Java程序片段:
public void paint (Graphics g)
{
int x = 20;
int y = 10;
paintPicture( g, x, y);
}
public void paintPicture(Graphics g, int a, int b)
{
g.setColor(Color.red);
}
当执行这段代码时,paintPicture方法中参数"a"的值将是()。C
A、10
B、0
C、20
D、这段代码不能够编译。这是一个错误,因为从来没有声明参数"a"和给它赋值
一个可以独立运行的Java应用程序,包含的main方法()。B
A、可以为一个或多个
B、只能有一个
C、可以为一个或零个
D、最多两个
下面语句段处理后,ch的值是()。D
char ch = ’A’;
ch = (char) (ch ^ 7);
A、A
B、C
C、D
D、F
当输入一个字节流时,需要()。A
A、实现DataInput接口
B、实现ObjectInput接口
C、Serializable接口
D、继承Reader抽象类
编译和运行下面代码时的显示结果是()。A
public class Test3 {
public static void main(String argv[]) {
Test3 c = new Test3();
String s = new String("ello");
c.amethod(s);
}
public void amethod(String s) {
String c = "H";
c += s;
System.out.println(c);
}
}
A、Hello
B、ello
C、elloH
D、编译错误
如下代码的执行结果是()。B
boolean m = true;
if ( m == false )
System.out.println("False");
else
System.out.println("True");
A、False
B、True
C、None
D、An error will occur when running
下面语句正确的是()。D
A、char=’abc’;
B、long l=oxfff;
C、float f=0.23;
D、double d=0.7E-3;
下列方法中可以用来创建一个新线程的是()。B
A、实现java.lang.Runnable接口并重写start()方法
B、实现java.lang.Runnable接口并重写run()方法
C、继承java.lang.Thread类并重写run()方法
D、实现java.lang.Thread类并实现start()方法
Applet可以完成的操作是()。C
A、读取客户端文件
B、在客户端创建新文件
C、读取Applet所在服务器的文件
D、在客户端调用其他程序
有整型数组:int[] x={2,33,88,5,10};,则调用方法 Arrays.sort(x) 后,数组x中的元素值依次是( )。C
A、88 33 10 5 2
B、2 5 33 88 10
C、2 5 10 33 88
D、2 5 33 10 88
自定义的异常类可从下列()类继承。D
A、Error
B、aWTError
C、VirtualMachineError
D、Exception及其子集
在Java图形用户界面编程中,若显示一些需要添加或修改的单行文本信息,一般是使用( )类的对象来实现。D
A、Label
B、Button
C、Textarea
D、TestField
监听器接口的方法返回值是()。C
A、int
B、String
C、void
D、Object
E、AWTEvent
在 Java 中,能实现多继承效果的方式是()。C
A、内部类
B、适配器
C、接口
D、同步
为AB类的一个无形式参数且无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。A
A、static void method( )
B、public void method( )
C、final void method( )
D、abstract void method( )
蓝桥杯算法训练 java算法 表达式求值
这两天看到的内容是关于栈和队列,在栈的模块发现了Dijkstra双栈算术表达式求值算法,可以用来实现计算器类型的app。
编程语言系统一般都内置了对算术表达式的处理,但是他们是如何在内部实现的呢?为了了解这个过程,我们可以自行搭建一套简易的算术表达式处理机制,这里就用到栈特性和本篇提到的Dijkstra算法。
概述:
算术表达式可能是一个数、或者是由一个左括号、一个算术表达式、一个运算符、另一个算术表达式和一个右括号组成的表达式。为了简化问题,这里定义的是未省略括号的算术表达式,它明确地说明了所有运算符的操作数,形式如下:
(1+((2+3)*(4*5)))
思路:
表达式由括号、运算符和操作数构成,我们根据以下4中情况从左至右逐个将这些实体送入栈处理:
1.将操作数压入操作数栈;
2.将运算符压入运算符栈;
3.忽略左括号;
4.在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算后的结果压入操作数栈;
在处理完最后一个右括号时,操作数栈上只会剩下一个值,它就是表达式的计算结果。这种方法咋一看难理解,但要证明它能计算得到正确的值很简单:
每当算法遇到一个括号包围,并由一个运算符和两个操作数组成的子式时,他都将运算符和操作数运算结果压入操作数栈。这样的结果就像是在输入中用这个值代替了该子表达式,因此用这个值代替子表达式得到的结果和原表达式相同。我们可以反复应用这个规律并得到一个最终值。
例如:
(1+((2+3)*(4*5)))
(1+(5*(4*5)))
(1+(5*20))
(1+100)
101
代码实现:
这里我采用C#来实现,最终运行效果完全符合预期,证明了此算法的正确性,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Evaluate
{
class Program
{
static void Main(string[] args)
{
string testExpress = "(1+((2+3)*(4*5)))";
Console.WriteLine(Evaluate(testExpress));
}
//DijkStra
static double Evaluate(string express)
{
var expressChars = express.ToArray();
Stack ops = new Stack();
Stack vals = new Stack();
if (express.Length 0)
{
foreach (var opt in expressChars)
{
switch (opt)
{
case '+':
case '-':
case '*':
case '/':
ops.Push(opt);
break;
case ')':
var op = ops.Pop();
var v = vals.Pop();
switch (op)
{
case '+':
v += vals.Pop();
break;
case '-':
v = vals.Pop() - v;
break;
case '*':
v *= vals.Pop();
break;
case '/':
v = vals.Pop() / v;
break;
}
vals.Push(v);
break;
case ' ':
case '(':
break;
default:
vals.Push(double.Parse(opt.ToString()));
break;
}
}
return vals.Pop();
}
return double.MaxValue;
}
}
}
总结:
Dijkstra算法充分利用了栈的特性,具备较高的执行效率,经过进一步的扩充修改,就完全可以实现具备科学计算功能的复杂计算类app。如果大家还有更好的,更适用的算法,欢迎在评论中给出地址,谢谢。
转载
蓝桥杯往年本科java试题。。。 非常感谢
一、单选题目(主要考擦java基础知识 好像25道)
1、String与StringBuffer区别 如:
2、final中的return switch中的break和return 执行的顺序和执行结果
3、for; do...while(); while()....do;循环的执行过程 涵盖 、 -- 的考核
4、循环中的break与continue
5、数组的定义:如:
有如下数组:
byte[] array1,array2[]
byte array3[][]
byte[][] array4
假设每个变量都已初始化,一下哪一条语句会导致编译错误?
A、array2 = array1; B、array2 = array3; C、array2 = array3;
D、A并且B ; E、A并且C ; F、B并且C ;
6、执行一下代码后,哪个结论是正确的?
A、s[10]为""; B、s[9]为null;
C、s[0]为未定义; D、s.length()为10;(详见《Java习题语言习题与解析》一书。P46)
7、构造函数定义的考核、继承、多态(文字描述的判断)
8、递归函数程序的考核,选择输出结果
9、静态成员,与非静态成员
10、函数重载(在多选里也出现、主要是选择哪个跟哪个构成重载,或否)
11、final static 的考核:如
A、static class TT{}
B、private class TT{}
C、abstract class TT{}
D、final public class TT{}
E、final abstract class TT{}
12、String对象分析一下程序:
public class X{
public static void main(String[] args){
String s = new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s = " world!";
}
}
该程序执行结果为:
A、编译成功,执行后输出:“Hello”
B、编译失败
C、编译成功,执行后输出"Hello word!"
D、编译成功,执行后引起异常
答案:A
13、静态方法构造方法 重载函数 覆盖的定义
14、文件操作
15、线程???(记不清)
二、多选题(五道)
1、重载:指出下列哪些方法与方法public void add(int a){}重载()
A、public int add(int a)
B、public void add(long a)
C、public void add(int a,int b)
D、public void add(float)
2、内部类与static
下面哪几种陈述是成立的?
A、一个内部类可声明为静态的
B、一个匿名内部类可声明为私有的
C、一个匿名内部类可声明为公共的
D、一个匿名内部类可声明可以继承一个抽象类
E、一个匿名内部类可声明为保护型
答案:AB
3、内部类的声明:
下面哪两个内部类的声明是合适的?
1.public class OuterClass{
private double d1 = 1.0;
//插入内部类代码
}
A、static class InnerOne{
public double methoda(){return d1;}
}
B、static class InnerOne{
static double methoda(){return d1;}
}
C、private class InnerOne{
public double methoda(){return d1;}
}
D、protected class InnerOne{
static double methoda(){return d1;}
}
E、public abstract class InnerOne{
public abstract double methoda(){return d1;}
}
答案:CE
在静态方法中不能访问静态成员,D也是静态方法中反问非静态成员。
4、下列陈述对默认的构造方法是成立的?
A、默认的构造方法为方法变量进行初始化
B、编译程序会为每一个类创建默认的构造方法
C、默认的构造方法调用其超类的无参数构造方法
D、默认的构造方法初始化在类中声明的实例变量
E、当一个仅有带参数的构造方法时,编译程序不会给这个类创建默认的构造方法
F、当一个类没有其他构造方法时,编译程序才为其创建默认的构造方法
答案:DEF
5、一道关于多态的选择题
三、填空题 5道
填空题,主要学会察API,开始会有API提供,可以进行运行调试。
1、文件操作、IO流的操作
2、重写父类方法
3、从API找方法,实现功能。(具体题目忘了)
4、接口???
5、。。。。
四、代码完善题
这道题,要规范的按照题目要求来做,
题目大概是这样:要求对26个字母实现,这样的运算
1、对26个字母求补集
2、对两个集合(都是字母) 求交集
3、求并集、求并集分两种:第一、把两个相加,第二、把两个重复出现的删除,
4、求差集,两个集合,或者是,一个集合对全集26个字母求差集。
蓝桥杯 省赛 大概什么样的成绩可以一等奖进决赛?
“蓝桥杯”省赛中成绩位于小组10%即可进入决赛。
省赛每个组别设置一、二、三等奖,比例分别为10%、20%、30%,总比例为实际参赛人数的60%,零分卷不得奖。省赛一等奖选手获得直接进入全国总决赛资格。所有获奖选手均可获得由工业和信息化部人才交流中心及大赛组委会联合颁发的获奖证书。
扩展资料
“蓝桥杯”不同组别所需知识:
1、Java高职高专组:基本语法、面向对象、网络编程、接口、集合、IO、多线程、内部类、异常。(数据结构、swing等图形界面不涉及,不涉及html、JSP、Tomcat、开源框架等web开发方面,不涉及JDBC、SQL等数据库编程方面)。
2、Java本科B组:解题所涉及的知识:Java高职高专组全部知识 + 数据结构(高校《数据结构》教材中出现的经典结构,及其通过组合、变形、改良等方法创造出的变种)
3、Java本科A组:Java本科B组全部知识 + 设计模式、反射、XML、多核与并发、测试理论、Swing界面。
4、c/c++高职高专组:结构、数组、指针、标准输入输出、文件操作、递归(在代码填空中不会出现c++知识,不会出现ANSI C之外的windows API调用)。