描述

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

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

题目

  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. 测试服务搭建之centos7下安装java

    一 安装Java 1 创建普通用户 useradd wujian passwd wujian 提示输入密码:[输入wujian的密码] user:wujian group:root passwd:12 ...

  2. Spring MVC 快捷定义 ViewController

    WHY  :               为什么我们需要快捷定义 ViewController ? 在项目开发过程中,经常会涉及页面跳转问题,而且这个页面跳转没有任何业务逻辑过程,只是单纯的路由过程 ...

  3. ubuntu 常用软件安装

    安装ubuntu远程图形界面 sudo apt-get install xrdp (sudo apt-get install ..  用于安装软件的命令 ) sudo apt-get install ...

  4. Description has only two Sentences(欧拉定理 +快速幂+分解质因数)

    Description has only two Sentences Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  5. Day1作业要求

    Day1作业 作业需求 博客 模拟登录 三级菜单 博客地址 杨振伟Day1博客地址 模拟登录 1.程序说明 实现功能如下 用户输入密码,密码验证后登录成功 用户登录成功后提示登录信息 用户输入3次错误 ...

  6. Jimmychoo商城系统总结

    一.需求 1.游戏模块 ①在进入H5之前,首先有一个动态的探照灯的动效,然后由"淡出"效果到H5首页. ②在点击"开始游戏"之后会有一段动画演示游戏内容,然后滑 ...

  7. Python做的第一个小项目-模拟登陆

    1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户 主要采用循环语句和条件语句进行程序流程的控制,加入文件的读写操作 while True: choice ...

  8. Android 中图片压缩分析(上)

    作者: shawnzhao,QQ音乐技术团队一员 一.前言 在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩. 前者是在不改变图片尺寸的情 ...

  9. Java钉钉开发_03_通讯录管理之 人员管理 和 部门管理

    一.本节要点 1.通讯录权限 ISV(应用服务商)默认无管理通讯录的权限,企业应用默认有所有通讯录权限. 2.数据传输格式—JSON 请参见: Java_数据交换_fastJSON_01_用法入门 二 ...

  10. mac下安装HTMLTestRunner

    HTMLTestRunner是Python标准库unittest模块的一个扩展.它生成易于使用的HTML测试报告. 1.下载HTMLTestRunner.py模块地址 http://tungwaiyi ...