java基础考试的几道选择题

1.代码片段:System.out.println(words.length);Stringtext="WelcomtoJavacontest";String[]word... 1.代码片段:
System.out.println(words.length); String text = "Welcom to Java contest";String[] words = text.split("\s");System.out.println(words.length);
请问编译运行的结果是什么?
A 0
B 1
C 4
D 编译出错
E 运行时抛出一个异常
这题选D

2.如下代码:
public class Test {
private int a;
public int b;
protected int c;
int d;
public static void main(String[] args) {
Test test = new Test();
int a = test.a++;
int b = test.b--;
int c = test.c++;
int d = test.d--;
System.out.println(a + " - " + b + " - " + c + " - " + d); }
}
请问哪个说法是正确的?
A 编译错误,因为变量a、b、c和d没有被初始化
B 编译错误,因为变量a无法被访问
C 编译成功并输出0 - 0 - 0 - 0
D 编译成功并输出1 - -1 - 1 - -1
这题选C

3.System.out.format("Pi is approximately %d.", Math.PI);
为什么运行时抛出异常?

4.根据Java命名规范,为什么 drawPicture 不可作为变量名?

谢谢各位了。
展开
 我来答
artintin
推荐于2016-12-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7508
采纳率:80%
帮助的人:2759万
展开全部

System.out.println(words.length);有两个,一个在words定义之前使用,错误。阿ilei

(1)main也是个该类的函数,可以访问同类的任何类型变量。(2)++,--等均放在数值后面,均是先用或++或--(3)整数类型初始缺省值为0

Math.PI是double类型,不能用%d输出(不能像C语言一样自动截断)

drawPicture可以用作变量名,已试过。

追问
第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
追答
二楼已解释,\s是非法的转义字符
百度网友8278bac
2013-12-10 · 超过18用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:44.3万
展开全部
1.在第一句代码里使用了words变量,而它是在第三句才定义的,所以编译报错。
2.int a=test.a++ ,操作是后缀,先执行赋值操作,再执行自增操作。局部变量a值为0,test.a值为1.(int类型
默认值为0),所以结果是0 - 0 - 0 - 0
3.Math.PI 是double类型,应该使用%f格式化输出。(System.out.format不会自动转换类型)
4.drawPicture可以作为变量名。
追问
第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
追答
哦,这样啊
首先split方法需要的参数是正则表达式,\s在正则表达式中表示的是‘空白符号’
然而在java中“\”是转义字符,比如\n \r \\;直接‘\s’在java中是不合法的。
所以应该是‘\\s’ ,这样就转成了需要的‘\s’正则式了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b602ae8cb
2013-12-10 · 超过34用户采纳过TA的回答
知道答主
回答量:81
采纳率:100%
帮助的人:73.1万
展开全部
第二道题 为什么成员变量a是private的 仍然能通过 test.a来访问
是因为这是在类的内部 外部就不行了
另外 构造函数没有初始化 a b c d 就用默认初始化 多说一句final类型的成员变量必须显式初始化
追问
第一题代码应该是这样
String text = "Welcom to Java contest";
String[] words = text.split("\s");
System.out.println(words.length);
追答
二楼应该是正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式