[自学考试密押题库与答案解析]Java语言程序设计(一)自考题模拟1_第1页
[自学考试密押题库与答案解析]Java语言程序设计(一)自考题模拟1_第2页
[自学考试密押题库与答案解析]Java语言程序设计(一)自考题模拟1_第3页
[自学考试密押题库与答案解析]Java语言程序设计(一)自考题模拟1_第4页
[自学考试密押题库与答案解析]Java语言程序设计(一)自考题模拟1_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自学考试密押题库与答案解析Java语言程序设计(一)自考题模拟1自学考试密押题库与答案解析Java语言程序设计(一)自考题模拟1Java语言程序设计(一)自考题模拟1一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的。)问题:1. Java的应用程序和小应用程序都是由一个或多个扩展名为 的文件组成的。A.exeBC.classD.java答案:C解析 主要考查的知识点为Java程序命名规则。要点透析 Java源程序命名受严格的限制,Java源文件的扩展名必须是“.java”,而源程序经过编译后得到的应用程序文件名(即字节码文件)的主文件名和源程序中的类名一样,而扩展名是“.cl

2、ass”。问题:2. 下述字符组合不能作为Java语言标识符的是A.gzq33B.33gzqC.$ gzqD.gzq$答案:B解析 主要考查的知识点为Java语言标识符。要点透析 标识符命名规则规定,标识符的第一个字符不能是数字字符。问题:3. 在Java语言中,下面哪个不是浮点类型常量A.019.5B.1e0C.1e1D.1e答案:D解析 主要考查的知识点为Java语言中浮点类型常量的表示方法。要点透析 表示浮点型常量时有两种方法:一种是直接写一个实数,或在实数后加字母D或d。例如123.54、123.54d;另一种是科学计数法,用10的方幂表示,用字符e或E表示幂底10。例如123.54e

3、0、12.354e1,不能在e或E的两边没有数字,1e、e2、e这种形式都是错误的。A选项不能认为是八进制常量,它是一个正确的双精度型常量,因为只有整型常量才分十进制、八进制和十六进制。问题:4. 以下程序代码的输出结果是 System. out. println(23%-4); A.-5B.-1C.5D.3答案:D解析 主要考查的知识点为Java语言中“%”运算符。要点透析 “%”为求余数运算符,求余数运算所得结果的符号与被除数的符号相同。23/-4=-5;23%-4=3。问题:5. 以下程序代码的输出结果是 int x=10; x=+5; System. out. println(x);

4、A.5B.6C.10D.出错答案:D解析 主要考查的知识点为Java语言中自增自减及赋值运算符。要点透析 自增自减运算符的运算对象只能是变量,不能是常量和表达式。4+或(i+j)+都是不合法的。问题:6. 下面代码不合法之处是 class Class6 int x; void f() int class 6=1; x=class 6; void g() int y; y=class6+x; A.语句B.语句C.语句D.语句答案:D解析 主要考查的知识点为局部变量的作用范围。要点透析 D项对应的语句,引用class6非法,因为在f中定义的class6变量在g中已失效,不能再使用。如果在g中再定义

5、一个class6变量,也与f中的class6不是同一个。问题:7. 下面程序运行后,输出结果为 public class Class07 Class07() System. out. println(0param); Class07(int n) System. out. println(n+param); public static void main(String args) Class07 x=new Class07(100); A.出错B.0paramC.100paramD.程序不错,但没有信息输出答案:C解析 主要考查的知识点为Java语言中构造方法的调用。要点透析 生成x对象时自动

6、调用有参构造方法,传参数值后n=100,有输出为:100param。问题:8. 在Java语言中有如下数组定义,则数组a共有多少个元素 int a=new int3; a0=new int4; a1=new int5; a2=new int2; A.11B.12C.15D.不能这样定义答案:A解析 主要考查的知识点为Java语言中的非平衡数组。要点透析 此数组为从最高维开始,分别对每一维分配不等长的空间,属于非平衡数组。问题:9. 以下程序代码的输出结果是 String s=new String(abcdef),t=new String(123); System. out. println(c

7、oncat(s,t). length(); A.9B.10C.6D.出错答案:D解析 主要考查的知识点为Java语言中字符串的基本操作。要点透析 本题考查字符串基本操作concat和length,其中concat没有concat(String,String)这样的使用方式。正确的使用方式如下: String s=new String(abcdef),t=new String(123); System. out. println(s.concat(t).length(); System. out.println(abc. concat(123).length(); 问题:10. 在Java语言中

8、有String s=ABCDEFCHIJABC;,则s.indexof(A,7)的值为A.-1B.11C.10D.0答案:C解析 主要考查的知识点为Java语言中字符串的基本操作方法indexof()。要点透析 本题考查String类中的方法indexof(),当使用indexof(String,int)这种方式时,在指定字符串中从某个位置开始检索参数字符串,返回字符串首次出现的位置。如果没有检索到则返回-1。本题在ABCDEFGHIJABC中从第7个位置开始检索参数字符串A,从左往右,从0开始编号,则在第10个位置找到。二、填空题问题:1. Java语言最初的应用对象是_。答案:消费性电子产

9、品问题:2. 在Java JDK的核心中,解释器所对应的可执行文件是_。答案:java.exe问题:3. 在Java语言中,短整型short在计算机内存中占_个字节。答案:2问题:4. 在Java语言中,逻辑右移位运算的运算符为_。答案:问题:5. 表达式true=false的结果为_。答案:false问题:6. 处理键盘事件的Java程序,要实现的接口是_。答案:KeyListener问题:7. _是将发送给对象的消息与含执行该消息方法的对象连接起来。答案:联编问题:8. 在Java语言中,需要定义含有两个子数组的二维数组x,第一个子数组元素为1,2,3;第二个子数组元素为4,5,6,7,8

10、,9;采用直接赋值创建此二维数组的语句为_。答案:int x=1,2,3,4,5,6,7,8,9;问题:9. 在Java语言中,有String s1=543213322;String s2=s1.replace(3,AA);,则s2为_。答案:54AA21AAAA22问题:10. 在Java语言中,Date对象用于存储时间,时间的字符串表示的默认顺序是_。答案:星期、月、日、小时、分、秒、年三、简答题问题:1. 请写出与数学计算式等价的Java语言表达式。答案:0/2*(a*x+(a+x)/4.0/a)或(a*x+(a+x)/(4.0*a)/2问题:2. 请写出位运算表达式“(k-1)k)答案

11、:取下非0的整型变量k的最右边为1的那一位问题:3. 写出两种不同的交换整型变量x和y的值的方法。答案:方法一:int t=x;x=y;y=t; 方法二:x=x+y;y=x-y;x=x-y; 问题:4. 在类D中有定义static int x,请写出在类D的方法中使用x有哪三种不同形式。答案:x、this.x,D.x问题:5. 简述在Java中使用super的情况。答案:(1)使用super调用超类的构造方法。 (2)使用super调用超类被子类覆盖的方法。 (3)使用super访问超类被子类隐藏的成员变量。 问题:6. 指出下面代码中不合法的地方,并指明原因。 class Class26 f

12、loat u;static float v; static void setuv(boolean f) u=sm(f); v=rm(! f); float rm(boolean f) return f? u:v; static float sm(boolean f) return f? u:v; 答案:class Class26 float u;static float v; static void setuv(boolean f) u=sm(f); v=rm(! f);/非法,类方法(setuv)不能直接调用实例方法(rm)(即类方法不能直接调用非类方法) float rm(boolean

13、f) return f? u:v; static float sm(boolean f) return f? u:v;/非法,类方法不能引用实例变量(u),只能引用类变量(v) 四、程序填空题问题:1. 方法void maxDigit(int n)的功能是找出十进制整数n各位中最大且最高位的那个数字。例如:n=237127,该方法输出7,4,表示最大数字是7,在第4位上;n=2347865,该方法输出8,3,表示最大数字是8,在第3位上。 void maxDigit(int n) int c=0,d,x=0,y=0; while(n0) d=n%10;_; if(_) c=d;x=y; n/=

14、10; System. out. println(c+,+x); 答案:y+ d=c 问题:2. 以下程序输出1100之内的奇数和、偶数和。 public class class28 void sum(int n) int s1,s2,i=0; _ while(in) i+; if(i%2=1) s1+=i; _ s2+=i: System. out. println(奇数和:+s1+n偶数和:+s2); public static void main(String args) (new class28().sum(100); 答案:s1=s2=0 continue: 问题:3. 以下程序输出

15、100以内的所有质数。 public class Class29 public static void main(String args) int i,j,k=0; System. out. println(100以内的质数有:); for(i=3;i=100;i+) for(j=2;j=i/2;j+) if(i%j=0)_; if_ System. out. print(i+ ); k+; if(k%8=0) System. out. println(); System. out. println(共+k+个。); 答案:break (ji/2) 问题:4. 以下程序的输出结果是:中国郑州计

16、算机制造厂计算机的价格:1万元。 /程序文件名Product.java public_Product static final String MAKER=计算机制造厂; static final String ADDRESS=中国郑州; public int getPrice(); /程序文件名Class30.java class Computer_Product public int getPrice() return 1; public class Class30 public static void main(String args) Computer p=new Computer();

17、 System. out. print(p.ADDRESS+p. MAKER); System. out. println(计算机的价格:+p.getPrice()+万元); 答案:interface implements 问题:5. 以下程序的输出结果是:true,234。 public class Class31 public static void main(String args) String s1=new String(abc); String s2=new String(Abc); boolean b; b=s1._;/忽略大小写,比较字符串s1,s2是否相等 s1=new St

18、ring(0123456789); s2=s1._; System. out. println(b+,+s2); 答案:equalsIgnoreCase(s2) substring(2,5) 五、程序分析题问题:1. 阅读以下程序代码,写出程序的输出结果。 public class Class32 public static void main(String args) boolean x=true,y=false,z=false; x=x 答案:输出结果为:false,false,true问题:2. 阅读以下程序代码,写出程序的输出结果。 public class Class33 publi

19、c static void main(String args) int a,b,c; a=b=c=1; boolean w; w=a+1 答案:输出结果为:2,1,1,false问题:3. 阅读以下程序代码,写出程序的功能。 public class Class34 public static void main(String args) int a=1,b; while(a=9) b=1; while(b=a) System. out. print( +a+b+=+a*b); b+; System. out. println(); a+; 答案:本程序输出九九乘法表。问题:4. 阅读以下程序

20、代码,写出程序的输出结果。 public class Class35 public static void main(String args) String s1=new String(0860371),s2=0860371; System. out. println(s1=s2); System. out. println(s1. equals(s2); System. out. println(s1. endsWith(s2)=s1. startsWith(s2); 答案:输出结果为: false true true 问题:5. 阅读以下程序代码,写出程序的输出结果。 import jav

21、a. util.*; public class Class36 public static void main(String args) String s1=public static void,main(String args); StringTokenizer s2=new StringTokenizer(s1,(); int n=s2. countTokens(); System. out. println (n); while(s2. hasMoreTokens() System. out. println(s2. nextToken (); 答案:输出结果为: 6 public st

22、atic void main String args 六、程序设计题问题:1. 使用循环把26个大写英文字母按字典顺序存入一维数组,然后再使其逆序存放(不得使用另外的数组),最后再根据处理后的字符数组创建一个字符串,输出此字符串。编程完成以上要求。答案:程序如下: public class Class37 public static void main(String args) char a=new char26,c; int i; for(i=0;i26;i+) ai=(char)(A+i); for(i=0;i13;i+) c=ai;ai=a25-i;a25-i=c; String s=n

23、ew String(a); System. out. println(s); 问题:2. 编写用数组实现不超过200位的大整数的类BigInteger,要求提供大整数的加运算。答案:程序如下(本题解决思路比较多,这是其中之一,代码也可以不用像本程序考虑这么多): 方法一: class BigInteger final int L=200;/处理不超过200位的大整数运算 char a=new charL,b=new charL,c=new charL;/a,b,c三个字符数组用于存放处理后的加数、被加数及结果 int an,bn; BigInteger()/无参构造函数 BigInteger(

24、char aa,char bb)/传两个字符数组作为加数、被加数 System. out. println(aa); System. out. println(bb); an=aa. length;bn=bb. length; a=aa;b=bb;/把传来的字符数组分别放入a和b中 int i; for(i=0;ia.length/2;i+)/让a数组中的数字逆序,个数在0下标 char c=i;ai=aan-i-1; aan-i-1=c; for(i=0;ib.length/2;i+)/让b数组中的数字逆序,个数在0下标 char c=bi;bi=bbn-i-1; bbn-i-1=c; Bi

25、gInteger(String aa,String bb)/传两个字符串作为加数、被加数 System. out. println(aa+n+bb); an=aa.length(); bn=bb.length(); int i;/以下是取字符串中内容逆序放入a和b中 for(i=an-1;i=0;i-) aan-1-i=aa.charAt(i); for(i=bn-1;i=0;i-) bbn-1-i=bb.charAt(i); void add(String aa,String bb)/设计了带有两个字符串参数的add成员方法 System. out. println(aa+n+ bb); a

26、n=aa.length(); bn=bb.length(); int i; for(i=an-1;i=0;i-) aan-1-i=aa. charAt(i); for(i=bn-1;i=0;i-) bbn-1-i=bb.charAt(i); add(); void add()/无参的add成员方法,完成大整数加运算 int j=bn,i,x,y,z; if(anbn)j=an;/找出两个操作数中短的那个数,加运算时以此为准 for(i=0;iL;i+) ci=0;/使结果数组c中全为字符0 for(i=0;ij;i+)/取出a和b中相对应的数字存入x,y中,z=x+y+进位 x=(ai-48)

27、;/字符转数字 y=(bi-48); z=x+y+ci-48; if(z9)ci+1=1;/如果需要进位,使c的高下标为字符1 ci=(char)(z%10+48);/考虑可能有进位,不能使用ci=z+48 if(anbn)/当b中数据运算完时 while(ian)/把a中剩余的数字全部加到c中 ci=(char)(int)ci+(int)ai-48); if(ci9) ci+1=1;ci-=10; i+; else/当a中数据运算完时 while(ibn)/把b中剩余的数字全部加到c中 ci=(char)(int)ci+ (int)bi-48); if(ci9) ci+1=1;ci-=10;

28、 i+; if(ci-157) ci=49;ci-1-=10;/最高位如有进位,需要进位 if(an bn) j=an;else j=bn;/找出长的那个数,输出时以此为准 while(cj=0)j-;/准备逆序输出,去掉多余的前导0 for(i=j;i=0;i-)System. out. print(ci);/逆序输出运算结果 System. out. println(n); public class Class38 public static void main(String args) char a1=9,9,9,2,3,1; char a2=7,8,1; BigInteger B=new BigInteger(a1,a2);/为构造方法传字符数组 B.add(); String s1=9234,s2=789; (new BigInteger(s1,s2).add();/为构造方法传字符串 BigInteger C=new BigInteger(); C.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论