本文目錄一覽:
- 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調用)。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247084.html