您的位置:首页 > 编程语言 > Java开发

Java基础语法试卷5(2017/10/16 第一阶段考试)

2017-10-16 22:37 711 查看
一、选择题(以下选项中,ABCD四项中至少有一项或多项是正确的(多选、少选、错选均没分),共30题,每题2分,共60分)

1、Java源文件和编译后的文件扩展名分别为( B )

A、.class和.java

B、.java和.class

C、.class和.class

D、.java和.java

2、下列表达式1+2+”aa”+3的值是( C )

A、12aa3

B、12aa

C、3aa3

D、aa3

3、以下的变量定义语句中,合法的是( C )

A、float _*5=123.456F

B、byte $_b1=12345

C、double d = 9.88

D、int long = 123456L

4、在JAVA中,以下代码运行的结果是( C )

public class BWF {

public static long add(double a,double b){

return (long)(a+b);

}

public static void main(String[] args){

Double sum=add(12.3, 4.6);

System.out.println(sum);

}

}

A、16.9

B、17

C、16.0

D、16

5、在Java下列变量名不符合命名规则的是( AC )(多选)

A、int ^abc

B、String _abc

C、double 32b

D、char $abc

6、开发Java程序有三个步骤:A.编译B.编写源程序C.运行,开发Java程序的正确顺序是( D )

A、ABC

B、ACB

C、BCA

D、BAC

7、给定Java代码,如下:编译运行,结果是( A )

public static void main(String[] args)

{

String s;

System.out.println(“s=”+s);

}

A、编译错误

B、编译通过,但出现运行时错误

C、正常运行,输出s=null

D、正常运行,输出s=

8、给定某Java程序片段,该程序运行后,i的输出结果为( B )

public static void main(String[] args)

{

int i=1;

int j=i++;//j=1

if((i>++j)&&(i++==j))

i+=j;

System.out.println(i);

}

A、1

B、2

C、3

D、4

注:前运算符:先自运算,当次取运算后的值;
后运算符:当次取运算前的值,然后运算,下次碰到该变量取运算后的值。


9、关于Java编程规范,说法错误的是( D )

A、变量的命名一般要求“见名知义”,提高代码的可读性

B、每行推荐只写一条语句

C、”{“一般放在结构开始行的最末,”}”与该结构的第一个字母对齐,并单独占一行

D、类的命名推荐使用小写。例如动物类:animal

10、在Java中,以下程序的编译运行结果是( C )

public class BWF {

static int x;

static boolean z;

public static void main(String args[])

{

System.out.println(x);

System.out.println(z);

}

}

A、运行时错误

B、输出:0

true

C、输出:0

false

D、输出:0

0

注:成员变量不赋初始值,值类型默认值为0,boolean类型默认值为false。


11、下列哪些是Java的关键字( C )

A、class main string

B、If double class main string

C、static void public int

D、以上都对

注:main是主函数名,不是java占用的关键字。


12、下列说法中对while和do-while描述错误的是( D )

A、While循环和do-while循环语法不同

B、While循环先判断再执行

C、Do-while循环至少执行1次在判断条件

D、Do-while循环是先判断在循环

注:do-while循环是先执行一次循环体,再判断。


13、分析如下所示的Java代码,编译运行后的输出结果是( C )

public class BWF {

public static void main(String args[]){

boolean a=true;

boolean b=false;

if(!a && b){

System.out.print(“!a&&b”);

}else if(!a || b){

System.out.print(“!a||b”);

}else{

System.out.print(“ab”);

}

}

}

A、!a&&b

B、!a||b

C、ab

D、!a||ab

14、在JAVA中,以下功能是查找Java的数组num。中的最大值,横线处的代码是( C )

public class BWF {

public static void main(String args[])

{

int[] num = {14,27,9,56,03};

int max=___;

for(int i=1;i<____;i++)

{

if(max

注:第一次i输出为2。


17、下列语句序列执行后,k的值是( D )

int x=6,y=10,k=5;

switch(x % y)

{

case 0: k=x*y;

case 6: k=x/y;

case 12: k=x-y;

default : k=x*y-x;

}

A、60

B、5

C、0

D、54

注:没有break,所以会一直执行到最后一行default语句。


18、在JAVA中,以下选项会导致死循环的是( C )

A、for(int i = 0;i<0;i++){}

B、for(int i = 10;i>0;i–){}

C、for(int i = 0;i<10;i–){}

D、for(int i = 0;i>0;i++){}

19、在Java中如下选项中的代码能够正确执行的有( AB ) (多选)

A、short[] b = new short[10]

B、short b[] = new short[10]

C、short b = new short [10]

D、short b = new short[]

20、在Java的for语句中,对break,continue, return的使用,下列说法不正确的选项为( C )

A、break和return都能结束for循环

B、continue只是跳过本次循环,不再执行continue关键字后面的代码,不影响后面的 循环次数

C、break、return结束for循环的区别在于,break是结束方法的执行,return是结束for 循环

D、break、return不仅可以在for循环中使用,也可以在switch控制语句中使用

21、在Java中,以下代码的输出结果是( C )

public class BWF {

public static void main(String args[]){

int i=0;

while(i<5){

if(i>3)

break;

i++;

if(i<3){

System.out.println(“i小于3”);

continue;

}

System.out.println(“Final”);

}

}

}

A、i小于3

i小于3

Final,Final

B、i小于3

i小于3

C、i小于3

i小于3

Final

Final

D、编译错误

22、在JAVA中,以下代码的运行结果是( D )

public class BWF {

public static void main(String args[]){

int[] num=new int[10];

for(int i=0;i

注:注意没有break,所以会一直执行到最后一行。


26、下面Java代码的横线处不可以填写的代码是( B )

public static void main(String args[])

{

int a=_(int)__10/3.1

__;

}

A、10%3

B、10/3.1

C、10*-3

D、3-10

27、在Java中,变量命名规范说法正确的是( B )

A、变量由字母、下划线、数字、$符号随意组成

B、变量不能以数字作为开头

C、A和a在Java中是同一个变量

D、不同类型的变量,可以起相同的名字

28、在Java中,下面不属于Java的基本数据类型的是( D )

A、float

B、int

C、boolean

D、String

[b]29、在Java中,以下赋值语句正确的是( BC )(多选)


A、int num1=(int)”12”;

B、int num2=(int)12.0;

C、double num3=2d;

D、double num4=5;

注:float类型中的f/F必须加,double类型中的d可加可不加。


30、在Java中,命名类时要遵守一些规则,以下说法错误的是( C )

A、不能使用Java中的关键字

B、不能包含任何嵌入的空格或点号

C、不能包含下划线和“$”符

D、不能以数字开头

二、编程题(编程实现下列问题,共4题,每题10分,共40分)

1、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月 又生一对兔子,假如兔子都不死。问第20个月后兔子总数为多少?(提示://兔子的规律为数列1,1,2,3,5,8,13,21.…)

循环:

public static void main(String[] args){
//定义本月、上月、上上月的兔子对数
int thisMonth = 0;
int lastMonth1 = 0;
int lastMonth2 = 0;
//观察规律得出除了第一、二个月都是1对外,
//本月兔子对数为上月+上上月,做循环
for (int i = 1; i <= 20; i++) {
if (i == 1 || i == 2) {
thisMonth = 1;
lastMonth1 = 1;
} else {
thisMonth = lastMonth1 + lastMonth2;
}
//每轮循环把上月的赋给上上月,本月的赋给上月
lastMonth2 = lastMonth1;
lastMonth1 = thisMonth;
}
System.out.println(thisMonth * 2);
}


递归函数:

public static long sum(int month) {
// 定义兔子总数sum,第一、二个月sum为1*2,
// 第三个月开始本月的兔子数为上月+上上月,使用递归函数
long sum = 0;
if (month == 1 || month == 2) {
return sum = 1 * 2;
} else {
return sum = (sum(month - 1) + sum(month - 2)) * 2;
}
}


2、一球从100米高度自由落下,每次落地后反跳回原高度的一半(即一回合);再落下,求它在第10次落下时弹到最高处,共经过多少米?第10次反弹多高?

循环:

public static void main(String[] args) {
// 定义总距离s,弹起距离t,落下距离luoxia
double s = 100;
double t = 100;
double luoxia = 0;
for (int i = 1; i <= 10; i++) {
t = t / 2;
// 从第二次开始,需要加落下的距离
if (i > 1) {
luoxia = t * 2;
}
s = s + t + luoxia;
}
System.out.println(s);
System.out.println(t);
}


递归函数:

public static void main(String[] args) {
System.out.println(distanceS(10));
System.out.println(distance(10) / 3);
}

// 第十次的距离
public static double distance(int cishu) {
double d1 = 150;
if (cishu == 1) {
return d1 = 150;
} else {
return d1 = distance(cishu - 1) / 2;
}
}

// 总距离
public static double distanceS(int cishu) {
double dS = 0;
if (cishu == 1) {
return dS = distance(1);
} else {
return dS = distance(cishu) + distanceS(cishu - 1);
}
}


3、给出年月日,计算改日是该年的第几天。

public static void main(String[] args) {
System.out.println(days(2017, 3, 1));
}

public static int days(int year, int month, int day) {
int days = 0;
for (int i = 1; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days += 31;
break;
case 4:
case 6:
case 9:
case 11:
days += 30;
break;
case 2: {
if (year % 4 == 0 && year % 100 == 0 || year % 400 == 0) {
days += 29;
break;
} else {
days += 28;
break;
}
}
}
}
return days = days + day;
}


4、在控制台输入3个整数a,b,c,按大小顺序输出。

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] a = new int[3];
// 循环三次把控制台输入的数赋给数组a
for (int i = 0; i < 3; i++) {
a[i] = scan.nextInt();
}
// 使用冒泡排序对数组a排序
for (int i = 1; i < a.length; i++) {
for (int j = 0; j < a.length - i; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(a));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java语法试题