《java程序设计》期末复习题.docx
《《java程序设计》期末复习题.docx》由会员分享,可在线阅读,更多相关《《java程序设计》期末复习题.docx(80页珍藏版)》请在冰点文库上搜索。
《java程序设计》期末复习题
《java程序设计》复习题
可能题型:
选择、填空、简答、判断(黄色部分不用看)
练习一(两类java程序)
1.Java是低级语言还是高级语言(高级)
2.Java是面向对象的程序设计语言吗(是)
3.Java是编译型的计算机语言还是解释型的计算机语言(解释型)
4.Java语言的程序设计包含哪3个步骤(编写源程序,编译源程序,解释运行编译后形成的字节码文件)
5.Java源程序文件的后缀是什么(.java)
6.Java源程序经编译后生成什么文件其后缀是什么(字节码文件,.class)
7.Java程序有哪两类(java应用程序,java小程序)
8.类的定义由哪两部分组成(类头和类体)
9.方法的定义由哪两部分组成(方法头和方法体)
10.一个Java源程序中可以有多个公共类(主类)吗(不能)
11.一个Java源程序中可以有多个类吗若有多个类时,程序文件名是什么(能,与公共类名一致)
12.Java应用程序(Application)的主类的类头应如何写(publicclass类名),它的主方法的方法头应如何写(publicstaticvoidmain(Stringargs[])),Application的入口在哪(main())
13.Java应用程序(Application)的主类中一定要有主方法(main)吗?
是
14.Java中的的字符使用什么编码(unicode)
15.在Java语言中,将源代码翻译成____________时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误.(字节码)
16.为了使包sos中的所有类在当前程序中可见,可以使用的语句是(A).
A)importsos.*;B)packagesos.*;
C)sosimport;D)sospackage;
17.下面关于封装性的描述中,错误的是(d)。
A.封装体包含属性和行为B.被封装的某些信息在外不可见
C.封装提高了可重用性D.封装体中的属性和行为的访问权限相同
练习二(数据类型)
1.以下的选项中能正确表示Java语言中的一个整型常量的是(B).
A)12.B)-20C)1,000D)456
2.下列的变量定义中,错误的是(A).
A)int6_a;B)floata;
C)inti=Integer.MAX_VALUE;D)staticinti=100;
3.下列的变量定义中,错误的是(A).
A)inta;b;B)floata,b1=1.23f;
C)charch1='d',ch2='\'';D)publicinti=100,j=2,k;
4.下列的变量定义中,错误的是(D).
A)int_a=123;B)longj=12345678900L;
C)intm,n;D)statici=100;
5.下列的变量定义中,正确的是(D).
A)booleanb1="true";B)floatx=6.6;
C)bytei=200;D)doubley;
6.以下字符常量中不合法的是(C).
A)'@'B)'&'C)"k"D)'整'
7.以下的选项中能正确表示Java语言中的一个整型常量的是(A).
A)Integer.MAX_VALUEB)8.8FC)2.0E16D)true
8.下列最终属性(常量)i的定义中,正确的是(C).
A)staticfinaldoublei;B)abstractfinalinti=8;C)finaldoublei=3.14159;D)floati=1.2f;
9.以下的选项中能正确表示Java语言中的一个double型常量的是(C).
A)Float.MIN_VALUEB)1.8e-6FC)2.0D)'abcf'
10.以下的变量定义语句中,合法的是(C).
A)float$_*5=3.4F;B)byteb1=15678;
C)doublea=Double.MAX_VALUE;D)int_abc_=3721L;
11.以下字符常量中不合法的是(C).
A)'|'B)'\''C)"\n"D)'我’
12.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为哪两种具体类型,各占二进制的多少位(float32位,double64位)
13.Java的复合数据类型有那几种(类,数组和接口)
14.在Java语言中,逻辑常量只有哪两个值(true,false)
15.字符串"\'a\'"的长度是几(即有几个字符)(3个字符)
16.Java语言中的逻辑变量可以和整型变量相互强制转换吗(不能)
17.在程序中可对用final修饰的变量的值进行更改吗(不能)
18.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A、8B、16C、32D、64
练习三(运算符与表达式)
1.已定义a为int类型的变量.以下选项中,合法的赋值语句是(B).
A)a+1==2;B)a+=a*6;C)a=8.8f;D)inta=8;
2.以下选项中的变量都已正确定义,不合法的表达式是(C).
A)a>=4==b3;B)t=!
false;C)t=(true|false);D)t=(2==3)true:
false;
3.以下变量均已正确定义并赋值,下面符合Java语言语法的赋值语句是(A).
A)m=n>=5;B)m=k%c=h+y;
C)j=t+%100;D)j=y>2=x+3;
4.设i,j,k,m为已赋值的int型变量,下列表达式的结果属于逻辑值的是(A).
A)i==k&j+k>=mB)i+kC)m++D)m=i+j
5.变量a定义为int类型.以下选项中,合法的赋值语句是(B).
A)a+1==2;B)a+=1;C)a=8.8f;D)a=newint(8);
6.若有定义intx=13;则执行完语句x%=8;后,x的值是(C).
A)0B)1C)5D)8
7.以下选项中,合法的赋值语句是(B).
A)a==1;B)++i;C)a=a+1=5;D)!
(++a!
=b--);
8.若所用变量都已正确定义,以下选项中,非法的表达式是(C).
A)a!
=4||b==1B)'a'%3C)'a'=1/2D)'A'+32
9.若有定义inta=2;则执行完语句a-=a*a;后,a的值是(C).
A)0B)4C)-2D)–4
10.现有一变量声明为booleanaa;下面赋值语句中正确的是(A).
A)aa=false;B)aa=False;C)aa="true";D)aa=0;
11.下列程序段执行后b3的结果是(D).
booleanb1=true,b2=true,b3;
b3=!
b1b1:
!
b2;
A)0B)1C)trueD)false
12.设有定义inti=123;longj=456;下面赋值不正确的语句是(D).
A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;
13.若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是(A).
A)b=a!
=7;B)a=7+b+c=9;C)i=12.3*%4;D)a=a+7=c+b;
14.下列程序段执行后t5的结果是(B).
intt1=9,t2=11,t3=8;
intt4,t5;
t4=t1>t2t1:
t2+t1;
t5=t4>t3t4:
t3;
A)8B)20C)11D)9
15.执行下面程序段后,b,x,y的值分别是(D).
intx=6,y=8;
booleanb;
b=x>y&&++x==--y;
A)true,6,8B)false,7,7C)true,7,7D)false,6,8
16.执行下列程序段后,m,x,y的值分别是(B).
intx=2,y=4;
booleanm;
m=++x>y--;
A)true,2,4B)false,3,3C)true,3,3D)false,2,4
17.下面语句序列执行后,a的值是(D).
inta=13;a%=a/5;
A)3B)13C)169D)1
18.设x,y,max,min均为int型变量,x,y已赋值.用三目条件运算符求x,y的最大值和最小值,并分别赋给变量max和min,这两个赋值语句分别是______和______.(max=x>yx:
y;min=xx:
y;)
练习四(条件,分支语句)
1.下列语句序列执行后,m的值是(C).
inta=10,b=3,m=5;
if(a==b)m+=a;elsem=++a*m;
A)15B)50C)55D)5
2.下列语句序列执行后,x的值是(d).
inta=2,b=4,x=5;
if(a<--b)x*=a;
A)5B)20C)15D)10
3.下列语句序列执行后,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
4.若a和b均是整型变量并已正确赋值,正确的switch语句是(D).
A)switch(a+b);{......}B)switch(a+b*3.0){......}
C)switcha{......}D)switch(a%b){......}
5.下列语句序列执行后,r的值是(C).
charch='8';intr=10;
switch(ch+1)
{
case'7':
r=r+3;
case'8':
r=r+5;
case'9':
r=r+6;break;
default:
r=r+8;
}
A)13B)15C)16D)18
6.设int型变量a,b,float型变量x,y,char型变量ch均已正确定义并赋值,正确的switch语句是(B).
A)switch(x+y){......}B)switch(ch+1){......}
C)switchch{......}D)switch(a+b);{......}
7.下列语句序列执行后,k的值是(D).
intx=6,y=10,k=5;
switch(x%y)
{
case0:
k=x*y;
case6:
k=x/y;
case12:
k=x-y;
default:
k=x*y-x;
}
A)60B)5C)0D)54
8.下列语句序列执行后,r的值是(B).
charch='A';intr=6;
switch(ch+5)
{
case'A':
r=r+3;
case'B':
r=r+5;
case'C':
r-=6;break;
default:
r/=2;
}
A)11B)3C)2D)9
9.如果变量x已正确定义,写出实现以下功能的语句:
如果变量x是偶数,则将其增加2.
______________________;.(if(x%2==0)x+=2;)
10.设ch1,ch2是char型变量:
if(ch1=='a')
{if(ch2=='b')
System.out.print("ch1=\'a\',ch2=\'b\'");
}
else
System.out.print("ch1!
=\'a\'");
System.out.println("end");
问题:
1)若执行前ch1的值为'a',ch2的值为'c'该程序段输出是什么(end)
2)若执行前ch1的值为'w',ch2的值为'b'该程序段输出是什么(ch1!
='a'end)
3)若执行前ch1的值为'a',ch2的值为'b'该程序段输出是什么(ch1='a',ch2='b'end)
练习五(条件,分支语句)
1.下列语句序列执行后,j的值是(A).
intj=1;
for(inti=5;i>0;i-=2)j*=i;
A)15B)1C)60D)0
2.以下由for语句构成的循环执行的次数是(B).
for(inti=0;true;i++);
A)有语法错,不能执行B)无限次
C)执行1次D)一次也不执行
3.下面语句执行后,i的值是(B).
for(inti=0,j=1;j<5;j+=3)i=i+j;
A)4B)5C)6D)7
4.下列语句序列执行后,k的值是(D).
intj=8,k=15;
for(inti=2;i!
=j;i++){j-=2;k++;}
A)18B)15C)16D)17
5.下列语句序列执行后,k的值是(B).
intm=3,n=6,k=0;
while((m++)<(--n))++k;
A)0B)1C)2D)3
6.下列语句序列执行后,i的值是(D).
ints=1,i=1;
while(i<=4){s*=i;i++;}
A)6B)4C)24D)5
7.下列语句序列执行后,j的值是(C).
intj=8,i=6;
while(i>4)i-=2;
--j;
A)5B)6C)7D)8
8.下列语句序列执行后,j的值是(B).
intj=9,i=6;
while(i-->3)--j;
A)5B)6C)7D)8
9.下列语句序列执行后,j的值是(D).
intj=3,i=2;
while(--i!
=i/j)j=j+2;
A)2B)4C)6D)5
10.若有循环:
intx=5,y=20;
do{y-=x;x+=2;}while(x则循环体将被执行(A).
A)2次B)1次C)0次D)3次
11.下列语句序列执行后,i的值是(D).
inti=10;
do{i/=2;}while(i-->1);
A)1B)5C)2D)-1
12.下列语句序列执行后,i的值是(C).
inti=10;
do{i-=2;}while(i>6);
A)10B)8C)6D)4
13.下列语句序列执行后,i的值是(D).
inti=16;
do{i/=2;}while(i>3);
A)16B)8C)4D)2
14.以下由do-while语句构成的循环执行的次数是(B).
intk=0;
do{++k;}while(k<1);
A)一次也不执行B)执行1次C)无限次D)有语法错,不能执行
15.若有循环:
intx=5,y=20;
do{y-=x;x++;}while(++x<--y);
则循环体将被执行(C).
A)0次B)1次C)2次D)3次
16.下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空.
(class(c++)+"\t"或(c++)+'\t')
public_____Class1
{
publicstaticvoidmain(Stringargs[])
{
charc='a';
for(inti=1;i<=26;i++)
{System.out.print(______);}
}
}
17.下面是一个java应用程序(Application),它的功能是计算s=1+2+3+...+10,请完成程序填空.(classi)
public_____Class1
{
publicstaticvoidmain(Stringargs[])
{
ints=0;
for(inti=1;i<=10;i++)
{
s+=______;
}
System.out.println("s="+s);
}
}
18.下面是一个javaApplication的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空.(i<=9j*i)
importjava.io.*;
publicclassMyClass
{
publicstaticvoidmain(String[]args)
{
intj=1;
for(inti=1;_______;i++)
{
System.out.println(i+"*"+j+"="+_______);
}
}}
练习六(控制结构与循环体内的跳转)
1.结构化程序设计的三种基本流程控制结构是:
_______,_______,________.(略)
2.以下语句中能构成分支的语句是(B).
A)for语句B)if语句
C)continue语句D)方法调用语句
3.以下语句中能构成多分支的语句是(C).
A)for语句B)while语句
C)switch语句D)do-while语句
4.以下语句中能构成多分支的语句是(C).
A)for语句B)while语句
C)if__else语句的嵌套D)do__while语句
5.以下语句中是循环语句的是(D).
A)break语句B)switch语句C)if语句D)do-while语句
6.以下语句中不能构成循环的语句是(C).
A)for语句B)while语句C)switch语句D)do__while语句
7.能从循环语句的循环体中跳出的语句是(B).
A)for语句B)break语句C)continue语句D)return语句
8.阅读程序后回答问题.
publicclassContinueTest
{publicstaticvoidmain(Stringargs[])
{charc='i';
for(intn=6;n<11;n++)
{if(n==8)continue;
System.out.print("\t"+(c++));
}}}
问题:
1)程序的输出结果是什么(ijkl)
2)若将if中的continue语句替换为break语句,输出结果是什么
(ij)
练习七(方法)
1.以下方法m的功能是求两参数之积的整数部分.(return(int)(x*y))
intm(floatx,floaty){__________________;}
2.方法可以没有返回值吗可以有多个返回值吗(可以;不能)
3.一个方法如果没有返回值,方法头定义中的返回值类型为何(void)
4.一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用这种变量称为什么变量(不能;局部变量)
5.采用_______的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高.(模块化)
6.下面方法的功能是判断一个整数是否为偶数,将程序补充完整.(booleantrue)
public________isEven(inta)
{if(a%2==0)
return_____;
else
returnfalse;
}
练习八(方法重载)
1.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载.(参数列表)
2.在某个类中存在一个方法:
voidgetSort(intx),以下能作为这个方法的重载的声明的是(C).
A)publicgetSort(floatx)B)intgetSort(inty)
C)doublegetSort(intx,inty)D)voidget(intx,inty)
3.在某个类中存在一个方法:
voidsort(intx),以下不能作为这个方法的重载的声明的是(B).
A)publicfloatsort(floatx)B)intsort(inty)
C)doublesort(intx,inty)D)voidsort(doubley)
4.为了区分类中重载的同名的不同方法,要求(A).
A)采用不同的形式参数列表B)返回值类型不同
C)调用时用类名或对象名做前缀D)参数名不同
5.重载的方法可以通过它们的返回值类型的不同来区分吗(不能)
6.编译程序如何区分重载方法的调用(根据参数列表不同来区分)
练习九(数组)
1.在一个应用程序中定义了数组a:
int[]a={1,2,3,4,5,6,7,8,9,10};,为了打印输出数组a的最后一个数组元素,下面正确的代码是(B).
A)System.out.println(a[10]);B)System.out.println(a[9]);
C)System.out.println(a[a.length]);D)System.out.println(a(8));
2.下面关于数组定义语句不正确的是(D).
A)int[]a1,a2;B)inta0[]={11,2,30,84,5};
C)double[]d=newdouble[8];D)floatf[]=new{2.0f,3.5f,5.6f,7.8f};
3.设有定义语句inta[]={3,9,-9,-2,8};则以下对此语句的叙述错误的是(C).
A)a数组有5个元素B)数组中的每个元素是整型
C)a的值为3D)对数组元素的引用a[a.