描述

前几天在知乎里看到一份这样的题,当时只是随便做了一下,对了一下答案。昨天又有了一份进阶的题,里面有些还是需要记录一下,于是就从这个入门的题开始。

题目和答案来自阿里云大学 - 知乎专栏

题目

  1. 现在假设有如下程序
    class Happy {
    public static void main(String args[]) {
    int i = 1 ;
    int j = i++ ;
    if((i==(++j))&&((i++)==j)) {
    i += j ;
    }
    System.out.println("i = "+i);
    }
    }

运行完上面代码之后输出i的值是多少?

A. 4

B. 5

C. 3

D. 6
  1. 下面的数据声明及赋值哪一个是没有错误的?

    A. float f = 1.3;

    B. char c = "a"

    C. byte b = 257

    D. int i = 10

  2. 编译Java源程序文件产生的字节码文件的扩展名为?

    A. java

    B. class

    C. html

    D. exe

  3. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
    System.out.println(flag ? "aliyunedu" : "yootk") ;
    }
    }

    以上程序的最终执行结果是什么?

    A. aliyunedu

    B. yootk

    C. true

    D. 程序出错

  4. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    int x = 10 ;
    double y = 20.2 ;
    long z = 10L;
    String str = "" + x + y * z ;
    System.out.println(str) ;
    }
    }

    以上程序的最终执行结果是什么?

    A. 10202.0

    B. 0212.0

    C. 302.0

    D. 1020.210

  5. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    String str = "" ;
    for (int x = 0 ; x < 5 ; x ++) {
    str += x ;
    }
    System.out.println(str) ;
    }
    }

    以上程序最终的执行结果是什么?

    A. 01234

    B. 10

    C. 14

    D. 25

  6. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    System.out.println(inc(10) + inc(8) + inc(-10)) ;
    }
    public static int inc(int temp) {
    if (temp > 0) {
    return temp * 2 ;
    }
    return -1 ;
    }
    }

    以上程序的最终执行结果是什么?

    A. 35

    B. 8

    C. 28

    D. 12

  7. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    char c = 'A' ;
    int num = 10 ;
    switch(c) {
    case 'B' :
    num ++ ;
    case 'A' :
    num ++ ;
    case 'Y' :
    num ++ ;
    break ;
    default :
    num -- ;
    }
    System.out.println(num) ;
    }
    }

    以上程序的最终执行结果是什么?

    A. 11

    B. 13

    C. 12

    D. 10

  8. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    int sum = 0 ;
    for (int x = 1 ; x < 10 ; x ++) {
    sum += x ;
    if (x % 3 == 0) {
    continue ;
    }
    }
    System.out.println(sum) ;
    }
    }

    以上程序的最终执行结果是什么?

    A. 6

    B. 0

    C. 程序错误,死循环

    D. 45

  9. 现在假设有如下程序:

    public class Demo {
    public static void main(String args[]) {
    int sum = 0 ;
    for (int x = 0 ; x < 10 ; x ++) {
    sum += x ;
    if (x % 3 == 0) {
    break ;
    }
    }
    System.out.println(sum) ;
    }
    }

    以上程序的最终执行结果是什么?

    A. 6

    B. 0

    C. 程序错误,死循环

    D. 45

答案

BDBBA AACDB

个人解析

  1. 主要考验i++++i的区别,只要记住“先++,先自增;后++,后自增”,这道题就只剩下考验细心了。

    class Happy {
    public static void main(String[] args) {
    int i = 1;
    int j = i++; // i = 2, j = 1 if ((i == (++j)) && ((i++) == j)) {
    // 第一个判断:j先自增1变为2后与i比较
    // 第二个判断:i先与j比较后再自增1,
    // if内为true,i = 3, j = 2
    i += j; // i = 5, j = 2
    } System.out.println("i = " + i);
    }
    }
  2. 如果选项A最后没有那个;,那么这道题就没有争议了

    • A. float f = 1.3;

      1.3默认是double类型,java中基本数据类型由高级向低级转换需要强转。

      • float f = 1.3f;
      • double f = 1.3;
      • float f =(float) 1.3;
      • double f = 1.3f;
    • B. char c = "a"

      java中的字符常量应该用单引号括起来,双引号括起来的为字符串。(末尾少了个分号)

      • char c = 'a';
      • String c = "a";
    • C. byte b = 257

      byte的范围是 -128~127。(末尾少了个分号)

      • int b = 257;
      • byte b = 57;
    • D. int i = 10

      (末尾少了个分号)

  3. public class Demo {
    public static void main(String args[]) {
    boolean flag = 10 % 2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
    // 10对2取余为0,故flag为false
    System.out.println(flag ? "aliyunedu" : "yootk") ;
    }
    }

    &&(短路与)一旦前面的条件为false,就会跳过后面的条件。

    X = 条件 ? A : B为三元表达式,与

    if (条件) {
    X = A;
    } else {
    X = B;
    }

    意思相同

  4. public class Demo {
    public static void main(String args[]) {
    int x = 10 ;
    double y = 20.2 ;
    long z = 10L;
    String str = "" + x + y * z ;
    System.out.println(str) ;
    }
    }

    *的优先度高于+,故优先计算乘法,随后从左往右依次进行+。当有字符串参与+运算时,加法变为字符串拼接,结果为字符串。故最后为字符串"10"202.0的拼接。

  5. 见上

  6. public class Demo {
    public static void main(String args[]) {
    System.out.println(inc(10) + inc(8) + inc(-10)) ; // 20 + 16 - 1
    }
    public static int inc(int temp) {
    if (temp > 0) {
    return temp * 2 ;
    }
    return -1 ;
    }
    }

    如果为正数,返回参数的2倍值;如果不是正数,返回-1。结果为20 + 16 + (-1)

  7. public class Demo {
    public static void main(String args[]) {
    char c = 'A' ;
    int num = 10 ;
    switch(c) {
    case 'B' :
    num ++ ;
    case 'A' :
    // 匹配成功,开始执行
    num ++ ; // num = 11
    case 'Y' :
    num ++ ; // num = 12
    break ;
    // 因break跳出switch
    default :
    num -- ;
    }
    System.out.println(num) ;
    }
    }

    switch-case语句块中break的重要性

  8. public class Demo {
    public static void main(String args[]) {
    int sum = 0 ;
    for (int x = 1 ; x < 10 ; x ++) {
    sum += x ;
    if (x % 3 == 0) {
    continue ;
    }
    }
    System.out.println(sum) ;
    }
    }

    感觉这道题sum += x的位置可能写错了,应该在if的后面,要么就只是单纯的和下一道题作对比。现在这段代码里if的用处几乎没有,结果和没有if时是一样的,都是1+2+…+9=45。

  9. public class Demo {
    public static void main(String args[]) {
    int sum = 0 ;
    for (int x = 0 ; x < 10 ; x ++) {
    sum += x ;
    if (x % 3 == 0) {
    break ;
    }
    }
    System.out.println(sum) ;
    }
    }

    和上一题类似,不过i的初始值变成了0,if里面的continue变成了break。由于0对3取余为0,所以直接跳出循环,输出sum的值0。

【17-06-16】Java入门测试题,测测你基础知识掌握程度(附答案及个人解析)的更多相关文章

  1. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

    Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  ...

  2. Java做acm所需要的基础知识之排序问题

    Java做acm所需要的基础知识. 以前做acm的题都是用C/C++来写代码的,在学习完Java之后突然感觉Java中的方法比C/C++丰富很多,所以就整理一下平时做题需要用到的Java基础知识. 1 ...

  3. 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)

    目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...

  4. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  5. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  6. 学 Java 网络爬虫,需要哪些基础知识?

    说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬 ...

  7. Python入门方法推荐,哪些基础知识必学?

    很多想入门的小伙伴还不知道Python应该怎么学,哪些知识必学,今天我们就来盘点一下. 01.入门方法推荐 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所 ...

  8. java第九节 网络编程的基础知识

    /** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...

  9. 想入门Web安全,这些基础知识都学会了吗?

    毕业季已经正式告一段落,这届毕业生都找到心仪的工作了吗? 正在实习期或者试用期的职场新人,是否在岗位上做的风生水起? 工作了一两年,从未升职加薪的菜鸟,还愿意继续原地踏步吗? 在校学生.IT从业者.毕 ...

随机推荐

  1. 网页单位和rem小分享

    有哪些网页尺寸单位? CSS 中的单位有很多种: 百分比(%) 英寸(in) 厘米(cm) 毫米(mm) 磅数(pt) 12 点活字(pc) 字母高度一半(ex) 父级字体(em) 像素(px) 根元 ...

  2. HDU 6092 Rikka with Subset

    Rikka with Subset Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  3. Catch him

    Problem Description 在美式足球中,四分卫负责指挥整只球队的进攻战术和跑位,以及给接球员传球的任务.四分卫是一只球队进攻组最重要的球员,而且一般身体都相对比较弱小,所以通常球队会安排 ...

  4. Hibernate的基础入门(一)

    一Java三层结构 1 web层:struts框架 2 service层:Spring框架 3  dao层 :hibernate框架 相当于MVC的思想 1 M:模型èhibernate框架 2 V: ...

  5. http 状态

    用户如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页或在 Googlebot 抓取该网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求.此状态 ...

  6. jQuery选择器(属性过滤选择器)第六节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. 双11Java程序员书单推荐

    Java <Java核心技术卷I> <Java核心技术卷II> <Java编程思想> <Java并发编程实战> <Effective Java&g ...

  8. Oracle-1 - :超级适合初学者的入门级笔记,CRUD,事务,约束 ......

    Oracle 更改时间: 2017-10-25  -  21:33:49 2017-10-26  -  11:43:19 2017-10-27  -  19:06:57 2017-10-28  -  ...

  9. 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法

    当在后台实现POST请求的时候,出现如下错误: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse. 或者是如下错误: 上述是因为由于我们使用的是代 ...

  10. 坦言spring中事务、重试、异步执行注解

    一.@Transaction 我们再编码过程中,大量使用到这个注解.一般情况下,@Transaction使用默认注解可以完成90%的功能,下面会针对一些特殊场景下,@Tansaction的使用注意 1 ...