1、《算法与程序设计》模块会考复习题 一.单选题 1. java方法重载时参数不可能出现的情况是____D______。 P67 A.参数的个数不同 B.参数的个数相同而参数的类型不同 C.参数不完全对应相同 D.参数完全对应相同 2. 运行Java程序需要的工具软件所在的目录是___A_______。 P16 A.JDK的bin目录 B.JDK的demo目录 C.JDK的lib目录 D.JDK的jre目录 3. J_HelloWorld.java 的文件内容如下: cla
2、ss J_HelloWorld { public static void Main(String args[]) M不应大写 { System.out.println(" Hello World "); } } 下面说法正确的是____B______。 A.J_HelloWorld.java无法通过编译,因为main方法的声明方式不对 B.J_HelloWorld.java可以通过编译,但程序运行时出现“程序中没main方法”的异常 C.J_HelloWorld.java可以通过编译,但
3、无法运行,因为该文件没有public类 D.J_HelloWorld.java可以通过编译并正常运行,结果输出字符串“Hello World” 4. 逻辑表达式!(3/2==1.5)&& 9<3|| 9>3的运算结果为_____A_______。 P9 A.true B.false C.表达式有错 D.条件不足 5. 下列可以将变量x和y的值互换的语句是___B______。 P35 A.x=y;y=x; B.z=x;x=y;y=z; C.x=z;z=y;y=x; D. x=(x+y)/2;
4、y=(x-y)/2; 6. 执行完下面程序片段之后,下面结论正确的是___B_____。 P43 int a,b,c; a=1;b=2; c=(a+b)>3 ? a++:b++; A.a的值是2,b的值是3 B.a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false。 7. 下面程序片段输出的是___C_______。 应使用关系运算符== int a=3,b=1; if(a=b) System.out.printl
5、n(“a=”+a);
A.a=1 B.b=3 C.编译错误,没有输出 D.正常运行,但没输出。
8. 下面语句片段可以输出数组“int [ ]a”所有元素值的是___B_____。 P61
A.for(int i=0;i 6、 能够被计算机直接识别的语言是 C 。 P22
A.伪代码 B.高级语言 C.机器语言 D.汇编语言
10.下面哪些语句不会出现编译警告或错误的是____C____。
A.float f=1.3; (float f=1.3f) B.char c="a"; (应为单引号)
C.byte b=25; D.boolean d=null; (应为逻辑型,true or false)
11.关于java规则错误的是 7、 A 。 P26-27
A.Java语句不区分大小写 B. 主类名必须与文件名一致
C.main( )是程序执行的起点 D.Java语句以分号结尾
12.要想正确的调试出程序,在保存Java源程序时主类名必须与文件名__ A 。 P26
A.完全一致 B.完全不同 C.可以相同也可以不同 D.大小写可以不一样
13.在程序设计的过程中,错误的声明一个变量会导致程序不能正常编译。因此,需要规范合理的声明一个变量,下列合法的变 8、量名是___B____。 P28
A.if B.zongfen C.8-a D.a#2
14.下列选项中___B_____是一个逻辑变量的值? P29
A.True B.true C.“true” D.都不是
15.下列变量占用内存最少的是____A______。 P27
A.byte a=123; 9、 (1B)B.short b=123; (2B) C.int c=123;(4B) D.long d=1; (8B)
16.执行语句System.out.print( 1%(3 *(3/2))), 输出的值是____B_____。
A.3 B. 1 C.9 D. 6
17.以下表达式的计算结果是“false”的是 _____C____ 。
A.1%8>0 B.3/2<1.5 ( 1<1.5 )
C.(7+8)*6!=( 10、91-1) &&2>3 D.(7+8)*6!=(15*(9-2)-14-1) || 2<3
18.设各个变量的定义如下,选项的值是“false”的是____C______。
int i=1;
float f=1.0f;
double d=1.0;
boolean b=true;
A.i= =f; B.i= =d; C.f!=d; D.2.1>i= =b;
19.在日常生活中,我们常常会碰到许多需要解决的问题,以下 11、描述中最适合用计算机编程来处理的是 C 。
A.确定放学回家的路线 B.处理一张数码照片
C.计算10000以内的奇数平方和 D.在因特网上查找自己喜欢的歌曲
20.下列运算符最后被执行的是 C 。 P29
A. == B. && C. || D. %
21.哪个循环在条件表达式被计算之前至少执行了一次循环体语句? A P53
A.do-while B.for C.while D. 12、都不是
22.什么包会自动导入到Java的类中? A 。 P85
A. java.lang包中的类 B. java.io包中的类
C. 所有的类都能自动导入 D. 没有任何包可以
23. 下面选项中不是面向对象编程主要体现的特性是 D 。 P79
A. 封装性 B. 继承
C. 多态 D. 类
24.Java的关系运算符中,用来表示不等于的符号是 B 。 P9
A. = 13、 B. !=
C. >= D. <>
25. Java的源程序必须被翻译成Java系统能识别的专用文件才能被执行。Java系统中编译程序的名字是 B 。 P15
A. java.exe B. javac.exe
C. java.class D. javac.class
26. Java程序中注释语句的格式是 C 。 14、 P20
A.//* 注释内容 *// B. / 注释内容 /
C. /* 注释内容 */ D. /* 注释内容 //
27. 逻辑型数据所占空间是 C 。 P27
A. 1字节 B. 2字节
C. 1比特 D. 2比特
28.下列选项中哪个不属于程序设计的三种基本结构 B 。 P34
A. 顺序结构 15、 B. 条件结构
C. 选择结构 D. 循环结构
29.Java中用于声明字符串型变量的关键字是 A 。 P28
A.String B. char
C.float D. long
30. 假设 int a=5,int b=3,则执行b+=a语句后b的值是 D 。 P31
A. 3 B. 5
C. 2 16、 D. 8
31. 语句System.out.println( );可实现的功能是 D 。 P38
A.输出一个空格 B. 什么都不做
C.出现错误信息 D. 输出一个空行
32. 用于返回x的绝对值的方法是 A 。 P39
A. Math.abs(x) B. Math.round(x)
C. Math.sqrt(x) D. Math.pow(x,y)
33.假设a= 17、8,b=4,则执行max=(a>b)?a:b;语句后,max的值是 A 。 P43
A.8 B. 4
C.12 D. 2
34. 在“switch(表达式)”语句中,“表达式”的值必须是以下的哪个类型 B 。 P45
A. double B. int
C. String D. float
35. 在循环语句中可以使用特殊流程控制语句来控制循环。如果想终止某个循环,使程序跳到循环体外的第一个可执行语 18、句,应适用的语句是 C 。 P57
A. stop B. continue
C. break D. next
36.若想在方法的内部将方法处理结果返回到调用程序,应使用的语句是 D 。 P65
A.break B. continue
C. void D. return
37. 在方法内部声明的变量是 A 。 19、 P67
A.局部变量 B. 全局变量
C.逻辑变量 D. 常量
38.面向程序设计方法不具有的特征是 C 。 P89
A.封装性 B. 继承性
C.依附性 D.多态性
39.For(int i=1;i<5;i++)
{ }
在程序运行时循环体将被执行____C____次。
A.1 B.3 C.4 20、 D.5
40. 若int a=(int)(Math.random()*90+10),则变量a产生的随机整数的范围是 C P54
A.[10, 90] B. [0, 90] C. [10, 99] D. [0, 99]
二.填空题
1. 在Java系统中将源文件编译后生成的类文件扩展名是__class___。 P15
2. 编写Java程序其实就是编写一个或多个类,这些类中只能有一个主类,用 public 来声明。 21、 P75
3. Java程序有三种基本结构,有一段程序用流程图描述如图(a),这段程序中包含了____ 分支结构______、__循环结构_____基本程序结构。
4. 方法Math.sqrt(36)返回的结果是____6______。 P39
5. 由static修饰的方法叫做____静态______方法。 P77
6. 若需要将字符串类型变量转换为整型,使用的方法是_Integer.parseInt()_。 P36
7. 在fo 22、r循环中执行__continue___语句后结束当前循环进入下一次循环。 P57
8. static double a[ ]; 表示_声明一个静态浮点数组a_。a=new double[10]的作用是_初始化数组,数组长度为10__,当编译执行a[10]= "abc"语句时系统会给出____类型不匹配__错误提示。 P53
9. Java系统安装后,通常需要配置环境变量。一般情况下需要设置__path___、___classpath___。 23、 P16
10.语句System.out.println(“结果是:”+87)的运行结果是__结果是:87 _。
11.表达式7%2+5的计算结果是_______6_________。
12.若用变量x来存放数据true/false,应将x声明为__boolean(或逻辑)_类型。 P27
13.写出随机产生[0,5]范围内整数的表达式 (int)(Math.random()*6) 。
14.Java语言中关键字__int _表示整型数据类型。
15.在描述用计算机程 24、序解决某一问题时,算法中某段流程序图如下所示,它最适合用__分支结构__程序基本结构实现。
16.程序中能使变量m,加1的语句是 m++(或m=m+1) 。
17.调用Math.round(8.5) 方法返回的结果是___9___。
18.在语句int a[ ]中,a表示____整型数组______。
19.表达式(float)(2+3)/7运算结果的数据类型是____float(或浮点型)___。
20.将double数据类型的变量x的数值,强制转换为int类型的数据。然后赋给int数据类型的变量y的表达式为:___int y=(int)x ;_____。 25、 P32
21.包是一系列相关 类 和 接口 的集合。 P84
22.程序设计语言的发展大致经历了 机器语言 、 汇编语言 和 高级语言 三个阶段。
23.Java提供的四种基本数据类型是 整数型 、 浮点型 、 逻辑型 、 字符型 。
24.在Java中,使用 String 来声明字符串。
25.变量名必须以 字母 开头,后面可以跟 字母 和 数字 。
26、
26.(int)(-8.85)= -8 ;(int)(3.4+0.5)= 3 。
27.(int) (Math.random()*338+100)产生的随机整数中,最小数为 100 ,最大数为 437 。
28.判断X被7整除余3的表达式为 x%7==3 。
29.下面程序的功能是:求的和。在空白处填入适当内容使程序完整:
for (x= 11 ;x<= 66 ; x= x+1 )
{
S = S + 1/x (每次累加的项是X对应的分数)
}
System.out.pr 27、int(s);
30.方法的返回类型比变量多一个void类型,表示 不返回 (返回/不返回)任何值。
31.在程序设计的过程中,有时需要将几个不同的字符串连接起来,这时需要用到字符串运算符号"+"。如:"xy"+"abc"的运算结果是"xyabc",那么"12"+"56"的运算结果是__1256__。
32.在调试程序过程中, 逻辑 (语法或逻辑)错误是计算机检查不出来的。
33.代数式 对应的Java表达式为 3/(x+y) 。 P30
34.在a、b2、c#这三个变量名中,不符合变量命名规则的是___c 28、 。 P28
35.程序的基本结构包括顺序结构、选择结构和循环结构。下列程序主要采用__循环__结构,计算1到100之间的整数和。
//JAVA 代码(部分)
int s=0;
for (int i=1;i<=100;i++)
{ s=s+i;
}
36.在Java程序编译过程中系统提示:variable x might not have been initialized,通常表示 变量x未初始化 意思。 P20
37.在Java的应用程序中,程序执行时 m 29、ain() 方法是应用程序的入口。 P27
38.流程图中表示判断的是 菱形框 (矩形框/菱形框/圆角矩形框)。
39.数组a经int a[ ]=new int[5]初始化后,可以应用的数组元素是a[ 0 ]到a[ 4 ](请将下标值由小到大填写)。
40.方法的命名与变量命名的方法 相同 (相同/不同)。
三.写出程序的运行结果
1.public class Test
{
public static void main(String args[])
{
int x=1 30、5;
int y=4;
int z=x*y;
System.out.print(x+"*"+y+"="+z);
}
}
运行结果: 15*4=60
2. public class test
{
public static void main(String args[])
{
int x,y,z;
x=8;y=6;
z=Math.max(x,y);
System.out.println("max="+z);
}
}
运行结果: max=8
3.public class te 31、st
{
public static void main(String args[])
{
for(int i=3;i<=10;i=i+3)
{
System.out.print(i+" ");
}
}
}
运行结果:3 6 9
4.public class test
{
public static void main(String args[])
{
int a=4;
switch(a)
{
case 1:
System.out.println 32、Math.pow(1,2));
break;
case 2:
System.out.println(Math.pow(2,2));
break;
case 3:
System.out.println(Math.pow(3,2));
break;
case 4:
System.out.println(Math.pow(4,2));
break;
case 5:
System.out.println(Ma 33、th.pow(5,2));
break;
}
}
}
运行结果:16
5. public class test
{
public static void main(String args[])
{
int x = Integer.parseInt(args[0]);
double y;
if (x >0 )
{ y=Math.sqrt(x);}
else
{ y=0; }
System.out.println("y="+y);
}
}
运行 34、时输入数据36的结果: y=6
6.public class test
{
public static void main(String args[])
{
int x=1,y=1;
do
{
y*=x;
x++;
} while(x<=4);
System.out.println("y="+y);
}
}
运行结果: y=24
7.public class test
{
public static void main(String args[])
{
int x=7, 35、 y=3, k=0;
switch( x%y )
{
case 0: k=x+y; break;
case 1: k=x-y; break;
case 2: k=x*y; break;
default: k=x/y; break;
}
System.out.println(k);
}
}
运行结果:4
8.public class test
{
public static void main(String args[])
{
System.out.println(findSum(3,5)); 36、
}
static int findSum(int m,int n)
{
int sum=0;
for(int i=m;i<=n;i++)
{
sum+=i;
}
return sum;
}
}
运行结果:12
9.public class test
{
public static void main(String args[])
{
int x=1;
do
{
if (x%2==0 & x%3==0 )
{System.out.println(x);}
x++;
}whil 37、e(x<=10);
}
}
运行结果:6
10.public class Test
{
public static void main(String args[])
{
int i,j;
for (i=1;i<=2;i++)
{
for (j=1;j<3;j++)
{
System.out.println(i+"和"+j);
}
}
}
}
运行结果:1和1
1和2
2和1
2和2
四.根据题目要求填空或将下列程序补充完 38、整。
1.// Java程序填空 //①
public class ab //②
public static void main(String args[ ]) //③
{ int a=Integer.parseInt(args[0]); //④
int b=Integer.parseInt(args[1]); 39、 //⑤
a=a+b; //⑥
b=b-5; //⑦
System.out.println(a+" "+b); //⑧
}
}
⑴ 本程序中,变量a、b 的数据类型都是___int____(填写中、英文均可)。
⑵ 以上代码中,表示输出语句的是第 8 行 40、
⑶ 本程序中,代码a=a+b的含义是 II (选填Ⅰ或Ⅱ)。
选项: Ⅰ.把a的值赋给a+b Ⅱ.把a加b的和赋给a
⑷ 若输入的两个数分别是10和20,则程序执行完毕,变量a的值是 30 ,变量b的值是 15 。
开始
Sum=0
结束
i=1
i<=5?
sum=sum+i
输出sum
i++
2.下列程序代码是求1-5的和,根据程序代码填写右边的流程图(用箭头注明程序执行过程)。
public class test
{
public static void main(String args[] 41、)
{
int sum=0;
for(int i=1;i<=5;i++)
{
sum=sum+i;
}
System.out.println("sum="+sum);
}
}
3.编程计算数列1+1/2+1/3+1/4+……+1/n,加到多少项时其和可超过3。请参考图1的运行结果将代码填写完整。
public class test
{
public static void main(String args[])
{
double s=0;
double i=0;
while 42、 s<=3 )
{
i= i+1 ;
s= s+1/i ;
System.out.println("i="+i+" s="+s);
}
System.out.println("s="+ s );
System.out.println("此时是第"+ i +"项");
}
}
图1
4.编程:从键盘接收10个整数,逆序输出它们。请参考图2的运行结果将代码填写完整。
import java.io.*;
public class lx
{
public st 43、atic void main(String args[]) throws IOException
{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
int a[]= new int[11] ;
for (int i=1;i<=10;i++)
{
System.out.print("请输入数据:");
String s=input.r 44、eadLine();
a[i]= Integer.parseInt(s) ;
}
for (int i= 10 ;i>= 1 ;i--)
{
System.out.println("a["+i+"]="+ a[i] );
}
}
}
图2
五.根据题目要求编写程序
1.中学物理中有这样一类运动学问题:一列火车在某一时刻的速度为v0=40km/h,以加速度a=1.5m/s2匀加速行驶,求2分钟后的速度v和行驶的距离s。
(相关物理知识:v 45、v0+at s=v0t+1/2at2)
public class test
{
public static void main(String args[])
{
double a=1.5;
double t=2*60;
double v0=40*1000/(60*60);
double v = v0 + a*t;
double s = v0*t+a*t*t/2;
System.out.println( "速度为 "+ v +" m/s");
System.out.pri 46、ntln( "距离为 "+ s +" m");
}
}
2.某超市促销苹果,购买2公斤以上可在原价1.5元的基础上打8折。 请设计一个程序,计算购买x公斤苹果的应付款。(请用文本数据流方式输入数据)
import java.io.*;
public class shouhuo
{
public static void main(String args[]) throws IOException
{
InputStreamReader reader=new InputStreamReader(System.in);
Buff 47、eredReader input=new BufferedReader(reader);
System.out.print("请输入买几公斤苹果:");
String s=input.readLine();
double x= Double.parseDouble(s) ;
double q;
if ( x>2 )
{
q= 1.5*x*0.8 ;
}
else
{
q= 1.5*x ;
}
Syst 48、em.out.println("您应付款:"+ q +"元");
}
}
3.四位同学中有一位同学做了好事没有留名,老师问:“是哪位同学做了好事?” A说:“不是我。” B说:“是C。” C说:“是D。” D反驳说:“不是我!”已知四个人当中只有一个人说假话,试判断是哪一位同学做了好事没留名。
public class test
{
public static void main(String[] args)
{
for (int i=1;i<=4;i++)
{
49、 int k = 0;
if (i!=1) k = k + 1;
if (i==3) k = k + 1;
if (i==4) k = k + 1;
if (i!=4) k = k + 1;
if (k==3) System.out.println(i);
}
}
}
4.已知6528x ÿ3=3 ÿ x8256,且ÿ代表同一个数字,编程计算ÿ代表的数字。
public class test
{
public static void main(String args[])
{
for (int a=1;a<=9;a++ )
if (6528*(a*10+3)==(a+30)*8256)
{ System.out.println("这个数是:"+a); }
}
}






