《山东财经大学java程序设计基础06200081复习提纲及练习题文档.pdf》由会员分享,可在线阅读,更多相关《山东财经大学java程序设计基础06200081复习提纲及练习题文档.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、复习参考 考试题型:1.单项选择题(本大题共 15 小题,每小题 1 分,共 15 分)2.判断题(10 小题,每小题 1 分,共 10 分)3.填空题(本大题共 10 空,每个空 2 分,共 20 分)4.阅读程序,写出程序运行后的输出结果(本大题共 3 小题,每小题 6 分,共 18 分)5.编程题(本大题共 3 小题,共 37 分),其中 第 1 题:9 分(位操作),第 2 题 14(分排序或字符串处理),第 3 题 14 分(类与对象)。涉及数组、排序、字符串处理、类和对象(实例)、位操作(手写推算步骤及最终结果,要求看样题)等。考试涉及的相关知识点:1.java程序类型:(1)ja
2、va application(需 主类)、java程序、源程序、类、接口、字节码文件、包、JDK JVM javac.exe java.exe跨平台 java开发步骤 一二维数组等(2)java applet:java小程序(可以没有主类,是图形界面),主要用于网页(3)java script:网页或网站的“脚本”程序 2.标识符和关键字:class、interface final abstract static void byte short int long float double boolean String return 异常常用的关键字(try catch finally thro
3、w throws)3.表达式:=比较运算符:=instanceof+-前后关系?:算合语句 s+=5 s-=5 s*=5 s/=5 int a=b=10;4.程序控制结构:顺序、选择、循环(1)单路选择结构 if()(2)多路选择结构 if().else.(3)else if 结构(4)switch(break);while()do.while();break continue for(;)5.面向对象的程序设计:类:class 成员变量 方法成员 修饰符(访问、特征)static 变量成员或方法 实例变量成员或方法 UML图 对象:Object 创造对象 new 方法:void 方法、非 v
4、oid 方法、static 方法(类方法)、非 static 方法(实例方法)方法参数传递:实参 形参 传值 传引用(数组 对象 接口)多态:重载 重写 this、super 构造方法(在类的继承中可能用到的关键字 super)包:关键字 import、package 继承(组合:主类 main()与继承):继承 创新 改造 子类不能降低父类的访问级别 Super、this、上转型对象 Abstract、final 接口:interface (1)实现:implements 也是一种继承(包括 一般类与抽象类,多实现)(2)继承:extends(与类相比的“多继承”)(3)静态块(静态初始化器
5、)static 、构造块、构造方法以及在类的继承和实例生成中的相互关系和执行顺序。6.java 关于异常的相关知识点:(1)错误与异常:错误:程序在执行过程中由于硬件或操作系统出错,而导致的程序员无法控制的错误。异常:指硬件或操作系统正常时,程序遇到的运行错。由于语句中产生的语法错(不能通过编译)、语义错(能通过编译)、逻辑错(能通过编译)而使程序无法运行或运行后不能产生正确结果的现象。(2)异常类(Exception)java中常用到的跟异常有关的关键字:try catch finally throw throws 参考复习题:一、单项选择题 1以下说法正确的是_。(A)Java 中所有的方
6、法都必须在类内定义 (B)Java 中主方法可以不在类内定义,其他方法都必须定义在类内 (C)Java 中主方法必须定义在类内,其他方法可以不必定义在类内 (D)Java 中所有方法都不必在类内定义 2Java 源文件和编译后的文件扩展名分别是_。(A).class 和.java (B).class 和.class (C).java 和.class (D).java 和.java 3要开发 Java 程序,需要安装的开发包是_。(A)jdk (B)eclipse (C)notepad (D)记事本 4Java 中所有类的默认超类为_。(A)Object (B)Class (C)Main (D)
7、Super 5下列语句中能建立 scu包的语句是_。(A)import java.scu;(B)import scu;(C)package scu;(D)package java.scu;6关于 Object类中定义的 toString 方法,以下说法正确的是_。(A)toString 方法可以将 java预定义的类型转换为字符串类型 (B)toString 方法可以将字符串类转换为 java预定义的类型 (C)toString 方法可以将所有其他类型转换为字符串类型 (D)toString 方法可以将字符串类型转换为所有其他类型 7在子类的构造函数中要调用父类的构造函数,需要用哪个关键字_。
8、(A)final (B)extends (C)implements (D)super 8 在 Java 语言中,下列哪个包是编译器自动导入的?_。(A)java.lang (B) (C)javax.swing (D)java.util 9以下语句中,没有创建出字符串对象的是 _。(A)String str;(B)String str=“hello”;(C)String str=new String();(D)new String(“hello”);10关于布尔类型说法正确的是 _。(A)boolean表示布尔类型,它的取值只有 true和 false (B)bool表示布尔类型,它的取值只有
9、true和 false (C)boolean表示布尔类型,它的取值只有 1 和 0 (D)bool表示布尔类型,它的取值只有 1 和 0 11.编译 Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为_。A.java B.class C.html D.exe 12.设 x=1,y=2,z=3,则表达式 yz/x 的值是()。A.3 B.3.5 C.4 D.5 13 不能作为类及类成员的访问控制符的是()。A.public B.private C.static D.protected 14 为 AB 类的一个无形式参数无返回值的方法 method 书写方
10、法头,使得使用类名 AB作为前缀就可以调用它,该方法头的形式为_。A.static void method()B.public void method()C.final void method()D.abstract void method()15 Java application 中的主类需包含 main 方法,以下哪项是 main 方法的正确形参?_ A、Strings args B、String args C、String arg D、StringBuffer args 16以下关于继承的叙述正确的是_。A、在 Java 中类只允许单一继承 B、在 Java 中一个类只能实现一个接口 C
11、、在 Java 中一个类不能同时继承一个类和实现一个接口 D、在 Java 中接口只允许单一继承 17以下哪个不是 Java 的原始数据类型_ A、int B、Boolean C、float D、char 18给出下面代码,关于该程序以下哪个说法是正确的?_ public class Person static int arr=new int5;public static void main(String a)System.out.println(arr0);A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空 19下列哪些语句关于 Java 内存回收的说明是正确的?
12、_ A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 20以下代码段执行后的输出结果为_ int x=3;int y=10;System.out.println(y%x);A、-1 B、2 C、1 D、3 21.将字符串 s中的小写字母转换成大写字母的正确方法是:a)s.toLowercase()b)s.toUppercase()c)s.toUpperCase()d)s.toLowerCase()22.在 Java 中,所有类的根类是()。a)java.lang.Object b)jav
13、a.lang.Class c)java.applet.Applet d)java.awt.Frame 23有以下程序片段,下列哪个选项不能插入到行 1。_ 1.2.public class Interesting 3./do sth 4.A、import java.awt.*;B、package mypackage;C、class OtherClass D、public class MyClass 24在使用 interface 声明一个接口时,只可以使用()修饰符修饰该接口。A、private B、protected C、private protected D、public 25、有以下方法
14、的定义,请选择该方法的返回类型()。ReturnType method(byte x,double y)return(short)x/y*2;A、byte B、short C、int D、double 26、如下哪个是 Java 中的标识符()A、public B、super C、3number D、width 27.如下哪个是 Java 中的标识符()A、fieldname B、super C、3number D、#number 28.已知如下定义:已知如下定义:下面哪个语句不是合法的()A、B、s=s+100;C、int len=s.length;D、String t=s+“abc”;应该
15、是 s.length()29.如下哪个是 Java 中有效的关键字()A、name B、hello C、false D、good 30、下面的代码段执行之后 count的值是什么()int count=1;for(int i=1;i=5;i+)count+=i;System.out.println(count);A、5 B、1 C、15 D、16 31.定义一个类,必须使用的关键字是()A、public B、class C、interface D、static 32.定义一个接口必须使用的关键字是()A、public B、class C、interface D、static 33.下列程序段执
16、行后的结果是()。for(int i=0;is.length();i+=2)/i=0 2 4 6 System.out.print(s.charAt(i);A)aceg B)ACEG C)abcdefg D)abcd 34 应用程序的 main 方法中有以下语句,则输出的结果是()。String String boolean b1=s1.equals(s2);boolean b2=(s1=s2);A)true false B)false true C)true true D)false false 35 下面程序段执行后 b 的值是()。Integer integ=new Integer(9)
17、;boolean b=integ instanceof Object;A)9 B)true C)1 D)false 36.应用程序 Test.java 的源程序如下,在命令行键入:java Test aaa bb c 回车后输出的结果是()。public class Test public static void main(String args)int k1=args.length;/3 int k2=args1.length();/2 A)3 2 B)1 2 C)1 3 D)3 3 37、应用程序的 main 方法中有以下语句,则输出的结果是()。int b=1,2,2,2,2,2;int
18、 sum=0;/此处应该出错了 for(int i=0;ib.length;i+)for(int j=0;jbi.length;j+)sum*=bij;A)32 B)11 C)2 D)3 38.应用程序的 main 方法中有以下语句,则执行后输出的结果是()。int x=125,21,5,168,98;int max=x0;for(int i=1;i max)max=xi;System.out.println(max);A)125 B)5 C)98 D)168 39.程序 Test.java 编译运行后输出的结果是()。public class Test public static void
19、main(String args)int z=2;Test t=new Test();System.out.println(t.s1+z);A)java2 B)2 C)没有输出结果 D)java 40 应用程序的 main 方法中有以下语句,则输出的结果是()。double x=Double.parseDouble(s1);int y=Integer.parseInt(s2);System.out.println(x+y);A)12.5 B)120.5 C)12 D)“12.5”41.关于下面的程序 Test.java 说法正确的是()。public class Test int y;publ
20、ic static void main(String args)int z=2;System.out.println(x+y+z);A)3 B)102 C)12 D)程序有编译错误 说明:static String x=”1”;static int y;42.应用程序的 main 方法中有以下语句,则执行后输出的结果是()。int x=125,21,5,168,98;int min=x0;for(int i=1;ix.length;i+)if(xi、)类和类成员的修饰符 修饰符:1.访问修饰符(1)类:a)省略访问修饰符(default 或 friendly):即具有包访问特性,这时类只能被同
21、一个包中的类使用(Java将目录或文件夹称为“包”)。b)public 修饰符:对外公开,可以被所有其他类所使用(也具有包访问特性),如果不在同一目录中,必须用 import 引入或在代码中通过“包名.类名”引用。在一个java源程序中最多只能有一个类是 public 类。(2)类成员:a)无(default 或 friendly):可以在本类内和同包中的其它类访问 b)public:可以被所有类访问 c)private:只能在本类“内”访问 d)protected:可被本类、同包中的其他类、其他包中的子类所访问 访问权限(从高到低):public、protected、无、private 2.
22、特征修饰符(1)类:a)abstract:抽象类。类中可能含有只有方法头,而没有方法体的抽象类。它必须用子类继承(必须重写所有的父类中的抽象方法)或用抽象类继承该父类抽象类(可重写所有父类中的抽象方法或只写其中一部分或不写,但最终必须由一般类做子类来完成类的实例化)。b)final 类:终止类。该类不能有“子”类。(2)类成员:a)abstract:用于抽象方法(只有方法头没有方法体的方法)b)static:被修饰的成员变量或方法为类所有(若没有 final 关键字且没有被赋值,则成员变量自动被赋予初值,可以在不生成实例的情况下用类名直接引用)c)native:用于修饰类的方法,本地方法是外部
23、模块,用其他编程语言编写方法体 d)synchronized(同步):用于修饰类的方法。适用于“多线程”编程 e)final:用于成员变量则被修饰的类为常量(必须在定义时赋值),或用于修饰方法则此方法为终止方法(即子类不能重写此方法)。java 访问权限修饰符 public protected friendly private用法总结 首先声明:java 中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是 friendly。为了条理清晰,分三种不同情况来总结。一 访问权限修饰符修饰成员变量和方法 public:表明该成员变量和方法是共有的,能在任何情
24、况下被访问。protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)eg:class A protected int weight;protected int f(int a,int b)/方法体 假设 B 与 A 在同一个包中,则 class B void g()A a=new A();A.weight=100;/合法 A.f(3,4);/合法 特别说明:什么是在同一个包中?答:用 package打包在一起的 class,叫在同一个包中。(不明白,举个例子)eg:在 JDK 的的中,你会看到许多 java 类,第一句源代码都是 package java.io;没有使用
25、 package打包的,在同一目录下的类也会被视做同一个包。friendly:在这种情况下中,同 protected。区别在第二和第三种情况中。eg:class A int weight;int f(int a,int b)/方法体 假设 B 与 A 在同一个包中,则 class B void g()A a=new A();A.weight=100;/合法 A.f(3,4);/合法 private:只能在本类中访问。eg:class Test private int money;Test()money=2000;private int getMoney()return money;public
26、 static void main(String args)Test te=new Test();te.money=3000;/合法 int m=te.getMoney();/合法 PS:实际上,把重要的数据修饰为 private,然后写一个 public 的函数访问它,正好体现了OOP的封装特性,是 OOP安全性的体现。二 访问权限修饰符修饰类 1,不能用 protected 和 private 修饰类。2,用 friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。三 访问权限修饰符与继承 这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况:1,
27、子类与父类在同一包中 此时只有声明为 private 的变量与方法不能被继承(访问)。eg:class Father private int money;int weight=100;class Son extends Father viod f()money=10000;/非法 weight=100;/合法 2,子类与父类不在同一包中 此时 private 与 friendly均不能被继承(访问),protected 与 public 可以。eg:Father.java package com.aaa public class Father int height;protected int
28、money=120;public int weight;protected int getMoney()return money;void setMoney(int newMoney)money=newMoney;Son.java package com.bbb import com.aaa.Father;public class Son extends Father void f()money=10000;/合法/height=170;/非法,height 为 friendly修饰的变量 System.out.println(money);/输出结果是 10000/setMoney(300)
29、;/非法 int number=getMoney();/合法 System.out.println(number);/输出结果是 10000 public static void main(String args)Son sss=new Son();sss.f();所以,访问权限修饰符权限从高到低排列是 public,protected,friendly,private。/*以下为编程样题,仅做参考*/P62 11 题 import java.util.Scanner;class U20_3 public static void main(String args)Scanner reader=
30、new Scanner(System.in);输入 5 则显示书上的结果 int n=reader.nextInt();int a=new intnn;int i,j,c=0,p;for(i=0;in;i+)p=i+1;for(j=0;j=i;j+)p-;apj=+c;for(i=0;in;i+)for(j=0;jn;j+)System.out.println();/*/字符串处理,引入 Scanner 类完成字符串的交互输入 import java.util.Scanner;class U20_4 public static void main(String args)Scanner rea
31、der=new Scanner(System.in);String s=reader.nextLine();int n=s.length();char a=new charn;int c1=0,c2=0,c3=0,i;for(i=0;in;i+)ai=s.charAt(i);for(i=0;i=A&ai=a&ai=0&ai=9)c2+;else c3+;英文字母的个数英文字母的个数 数字的个数数字的个数 其它字符的个数其它字符的个数 /*/将用户从键盘上输入的每行数据都显示出来,直到输入字符串将用户从键盘上输入的每行数据都显示出来,直到输入字符串程序运行结束。import java.util.
32、Scanner;class U20_5 public static void main(String args)Scanner reader=new Scanner(System.in);String s=reader.nextLine();s=reader.nextLine();/*/选择排序法(升序)class Sort1 public static void main(String args)int a=253,2,1,6,8,9,10;int n=a.length;int i,j,t;/*选择排序法(降序)for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)
33、t=ai;ai=aj;aj=t;/*输出排序结果*for(i=0;i=0;i-)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;/*输出排序结果*for(i=0;i=0;i-)for(j=0;jxj+1)t=xj;xj=xj+1;xj+1=t;/-用类方法,将一维数组作为形参进行排序 class Test2 public static void main(String args)int a=253,2,1,6,8,9,10;S1.sort1(a);for(int p:a)System.out.println(p);class S1 static void sort1(int x)int i,j,t,n=x.length;for(i=n-2;i=0;i-)for(j=0;jxj+1)t=xj;xj=xj+1;xj+1=t;/*位操作*、&、*例:byte a=-12,b=8;byte c=ab;请手工推算一下 c=?(写出推算步骤和最终计算结果)(1)先将 a和 b 转化成二进制原码 a=100001100 b=000001000 由于 a是负数必须先求补码 a补码=111110100 a补码b=111111100 (2)由于高位为 1 需再求一次补码方为结果,c=100000100(3)转化为十进制,结果 c=-4