JAVA考试试题 1.docx
- 文档编号:8637035
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:50
- 大小:40.11KB
JAVA考试试题 1.docx
《JAVA考试试题 1.docx》由会员分享,可在线阅读,更多相关《JAVA考试试题 1.docx(50页珍藏版)》请在冰豆网上搜索。
JAVA考试试题1
10:
关于以下程序代码的说明正确的是()。
1.classHasStatic{
2.privatestaticintx=100;
3.publicstaticvoidmain(Stringargs[]){
4.HasStatichs1=newHasStatic();
5.hs1.x++;
6.HasStatichs2=newHasStatic();
7.hs2.x++;
8.hs1=newHasStatic();
9.hs1.x++;
10.HasStatic.x--;
11.System.out.println(“x=”+x);
12.}
13.}(2分)
A:
5行不能通过编译,因为引用了私有静态变量
B:
10行不能通过编译,因为x是私有静态变量
C:
程序通过编译,输出结果为:
x=103
D:
程序通过编译,输出结果为:
x=102
答案:
D
15:
编译并运行以下程序(命令:
javaAB1),关于运行结果的描述以下()选项是正确的。
classAB{
publicstaticvoidmain(String[]args){
longi=0;
try{
i=Integer.parseInt(args[0]);
}catch(Exceptione){}
switch(i){
case0:
System.out.println("0");
case1:
System.out.println("1");
default:
System.out.println("default");
}
}
}(2分)
A:
编译出错
B:
打印出“0”
C:
打印出“1”
D:
打印出“default
答案:
A
1.classe
{publicstaticvoidmain(Stringargs[])
{intsum=0;
for(inti=1;i<=10;i++)
{if(i%2==0)
{
continue;
}
sum=sum+i;
}
System.out.println("sum="+sum);
}
}
Sum=25
4.classFather
{publicintn;
publicintf(intn)
{this.n=n;
returnthis.n*this.n;
}
}
classSonextendsFather
{publicintf(intn)
{returnsuper.f(n)*2;
}
}
publicclassTestDemo
{publicstaticvoidmain(Stringargs[])
{Fatherf1=newFather();
System.out.println("调用Father类的方法f后返回值是"+f1.f(10));
f1=newSon();
System.out.println("上转型对象调用方法f后返回值是"+f1.f(10));
}
}
调用Father类的方法f后返回值是100
上转型对象调用方法f后返回值是200
8、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
publicclassThreadTest1{privateintj;
publicstaticvoidmain(Stringargs[]){
ThreadTest1tt=newThreadTest1();
Incinc=tt.newInc();
Decdec=tt.newDec();
for(inti=0;i<2;i++){
Threadt=newThread(inc);
t.start();
t=newThread(dec);
t.start();
}
}
privatesynchronizedvoidinc(){
j++;System.out.println(Thread.currentThread().getName()+"-inc:
"+j);
}
Privatesynchronizedvoiddec(){
j--;System.out.println(Thread.currentThread().getName()+"-dec:
"+j);
}
classIncimplementsRunnable{
publicvoidrun(){
for(inti=0;i<100;i++){
inc();
}
}
}
classDecimplementsRunnable{
publicvoidrun(){
for(inti=0;i<100;i++){
dec();
}
}
}
}
10、编程题:
写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式:
定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
publicclassSingleton{
privateSingleton(){}
privatestaticSingletoninstance=newSingleton();
publicstaticSingletongetInstance(){
returninstance;
}
}
第二种形式:
publicclassSingleton{
privatestaticSingletoninstance=null;
publicstaticsynchronizedSingletongetInstance(){
if(instance==null)
instance=newSingleton();
returninstance;
}
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些
11、编程:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
答:
代码如下:
packagetest;
classSplitString{
StringSplitStr;
intSplitByte;
publicSplitString(Stringstr,intbytes){
SplitStr=str;
SplitByte=bytes;
System.out.println("TheStringis:
′"+SplitStr+"′;SplitBytes="+SplitByte);}
publicvoidSplitIt(){
intloopCount;loopCount=(SplitStr.length()%SplitByte==0)?
(SplitStr.length()/SplitByte):
(SplitStr.length()/SplitByte+1);
System.out.println("WillSplitinto"+loopCount);
for(inti=1;i<=loopCount;i++){
if(i==loopCount){
System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
}else{
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
}
}
}
publicstaticvoidmain(String[]args){
SplitStringss=newSplitString("test中dd文dsaf中男大3443n中国43中国人0ewldfls=103",4);
ss.SplitIt();
}
}
12、写一段Jdbc连Oracle的程序,并实现数据查询.
答:
程序如下:
packagehello.ant;importjava.sql.*;
publicclassjdbc{
StringdbUrl="jdbc:
oracle:
thin:
@127.0.0.1:
1521:
orcl";
StringtheUser="admin";
StringthePw="manager";Connectionc=null;
Statementconn;
ResultSetrs=null;
publicjdbc(){
try{Class.forName
("oracle.jdbc.driver.OracleDriver").newInstance();
c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();
}catch(Exceptione){
e.printStackTrace();
}
}
publicbooleanexecuteUpdate(Stringsql){
try{
conn.executeUpdate(sql);returntrue;
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
}
}
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{rs=conn.executeQuery(sql);
}catch(SQLExceptione){
e.printStackTrace();}returnrs;}
publicvoidclose(){
try{conn.close();
c.close();
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
ResultSetrs;jdbcconn=newjdbc();
rs=conn.executeQuery("select*fromtest");
try{while(rs.next()){
System.out.println(rs.getString("id"));System.out.println(rs.getString("name"));
}
}catch(Exceptione)
{e.printStackTrace();
}
}
}
面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案12008年06月30日星期一19:
28一、单选题:
(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k的值是(B)。
intm=3,n=6,k=0;
while((m++)<(--n))++k;
A)0B)1C)2D)3
2.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B)。
A)i=i+2B)a[0]=7;
C)i++---j;D)a(0)=66;
3.Java语言的类间的继承关系是(B)。
A)多重的B)单重的C)线程的D)不能继承
4.设有定义inti=6;,则执行以下语句后,i的值为(C)。
i+=i-1;
A)10B)121C)11D)100
5.下列选项中,用于在定义子类时声明父类名的关键字是(C)。
A)interfaceB)packageC)extendsD)class
6.若已定义byte[]x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是(C)。
A)x[5-3]B)x[k]C)x[k+5]D)x[0]
7.下列语句序列执行后,ch1的值是(B)。
charch1='A',ch2='W';
if(ch1+2 A)'A'B)'B'C)'C'D)B 8.下列语句序列执行后,i的值是(D)。 inti=8,j=16; if(i-1>j)i--;elsej--; A)15B)16C)7D)8 9.下列语句序列执行后,k的值是(C)。 inti=10,j=18,k=30; switch(j-i) {case8: k++; case9: k+=2; case10: k+=3; default: k/=j; } A)31B)32C)2D)33 10.下面语句执行后,i的值是(B)。 for(inti=0,j=1;j<5;j+=3)i=i+j; A)4B)5C)6D)7 11.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是(B)。 A)x>y||x>zB)x! =y C)z>(y+x)D)x (x 12.下列语句序列执行后,i的值是(D)。 inti=16; do{i/=2;}while(i>3); A)16B)8C)4D)2 13.以下由for语句构成的循环执行的次数是(B)。 for(inti=0;true;i++); A)有语法错,不能执行B)无限次 C)执行1次D)一次也不执行 14.定义类头时能使用的修饰符是(C)。 A)privateB)staticC)abstractD)protected 15.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值, 正确的switch语句是D)。 A)switch(x+y)B)switch(ch+1) {......}{......} C)switchchD)switch(a+b); {......}{......} 16.下列最终属性i的定义中,正确的是()。 A)staticfinalinti=100;B)finalinti=1.2; C)finali='w';D)finalchari; 17.下列类定义中,不正确的是(C)。 A)classx{....} B)classxextendsy{....} C)staticclassximplementsy1,y2{....} D)publicclassxextendsApplet{....} 18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。 A)staticxx1;B)publicxx1=newx(int123); C)yx1;D)xx1=x(); 19.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是(B)。 A)x(intm){...}B)voidx(intm){...} C)x(intm,intn){...}D)x(inth,intm,intn){...} 20.下列方法定义中,正确的是(A)。 A)intx(){charch='a';return(int)ch;} B)voidx(){...returntrue;} C)intx(){...returntrue;} D)intx(inta,b){returna+b;} 21.用于定义类成员的访问控制权的一组关键字是(D)。 A)class,float,double,public B)float,boolean,int,long C)char,extends,float,double D)public,private,protected 22.不能构成循环的语句是(C)。 A)for语句B)while语句C)switch语句D)do__while语句 23.下列程序段执行后b3的结果是(D)。 booleanb1=true,b2,b3; 24=b1? b1: b2; A)0B)1C)trueD)false 25下面数据结构中,属于非线性的是(B)。 A)线性表B)树C)队列D)堆栈 11.设有定义inti=123;longj=456;下面赋值不正确的语句是(D)。 A)j=i;B)j=(long)i;C)i=(int)j;D)i=j; 二、填空题: (每空1分) 1.构造函数_没__有返回值。 2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和___double_______两种具体类型。 3.创建类对象的运算符是__new。 4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是__n%13==0___________。 5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__元素个数。 6.定义类就是定义一种抽象的______父类______,它是所有具有一定共性的对象的抽象描述。 7.在Java语言中,使用__平台无关___、___java虚拟机___等技术,实现软件重用。 8.表达式3/6*5的计算结果是____0____。 9.下面是一个类的定义: publicclass_intMyclass___________ { intx,y; Myclass(inti,___=0____)//构造函数 { x=i; y=j; } } 10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。 importjava.io.*; publicclassMyClass { publicstaticvoidmain(Stringargs[]) { if(args.length! =_0__) for(inti=0;i System.out.println(_"i="+i__________); elseSystem.out.println(没有命令行参数); } } 11下面是一个小程序的主类myprogram的定义,其中A、B是该主类所在源程序中已定义的另两个类的类名: importjavaawt.*; importjavaapplet.*; publicclassmyprogramextendsApplet//定义小程序的主类 { Aa;Bb; public_____myprogram___init() {a=newA();b=___new__B();} } 12.Java的复合数据类型有: 类、数组和___接口____等。 Java的简单数据类型有: 数值类型(整形和浮点类型),自负类型和布尔类型 13.表达式3/6*5的计算结果是_0_______。 14.定义初值为10的10次方的长整型变量lvar的语句是: _______longlvar=1*e10___________________。 15.顺序结构、分支结构(或称选择结构)、__循环结构__________是结构化程序设计的三种基本流程控制结构。 16.以下方法m的功能是求两参数之积的整数部分。 intm(floatx,floaty) {_______k=(int)x*y___________;} 17.Java源程序文件编译后产生的文件称为____字节码____文件,其扩展名为___.class_______。 18.Java和c++都是面向对象的程序设计语言。 三、程序分析: (每题4分) 1.下面是一个排序的程序: importjava.io.*; publicclassTest56_Sort { publicstaticvoidmain(Stringargs[]) { int[]a={42,99,5,63,95,36,2,69,200,96}; System.out.println(排序前的数据序列: ); ShowArray(a); Sort(a); System.out.println(排序后的数据序列: ); ShowArray(a); } publicstaticvoidSort(int[]x) { intw; for(inti=1;i { for(intj=0;j if(x[j]>x[j+1]) {w=x[j];x[j]=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA考试试题 JAVA 考试 试题