南京邮电大学java程序设计作业在线编程第五次作业

王利国的"Java语言程序设计第5次作业(2018)"详细

  1. 主页
  2. 我的作业列表
  3. 作业结果详细

总分:100

选择题得分:50

1. 以下哪一个工具是Java的编译器?( )

A.javac.exe

B.java.exe

C.javap.exe

D.javadoc.exe

正确答案是: A

2. 以下哪一个数据类型不属于Java的基本数据类型?( )

A.boolean

B.char

C.int

D.String

正确答案是: D

3. 假设有如下类的定义: public class test{ public static void main(String[] args){ int a= 3, b = 4; swap(a,b); System.out.println("a="+a + " b=" + b); } public static void swap(int a,int b){ int tmp = a; a = b; b = tmp; } } 程序运行后结果为( )

A.a=4 b=3

B.a=3 b=4

C.a=a b=b

D.无结果输出

正确答案是: B

4. 执行如下代码后,b的值是( ) int a=0, b=0; do{ --b; a = a-1; }while(a>0);

A.0

B.1

C.-1

D.死循环

正确答案是: C

5. 下列关于Java中的数组的说法,错误的是( )。

A.数组中的元素的类型必须相同

B.数组中的元素是有顺序的

C.数组对象,属于引用类型

D.数组的大小可以任意改变

正确答案是: D

6. 在循环体中,如果想结束本次循环,可以使用哪个语句?( )。

A.break

B.continue

C.final

D.finally

正确答案是: B

7. 下列标识符中,哪一个是非法标识符?( )

A.statics

B.static_10

C.10static

D.$statics10

正确答案是: C

8. 设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。

A.a[0]

B.a[a.length-1]

C.int i=0;a[i]

D.a[a.length]-1

正确答案是: D

9. int a=new int[2][3],则该数组包含( )个数组元素。

A.2

B.3

C.6

D.不确定

正确答案是: C

10. 下面的代码段执行之后count的值是什么( ) int count = 1; for (int i = 1; i <= 5; i++) { count += i; } System.out.println(count);

A.5

B.1

C.15

D.16

正确答案是: D

编程题得分:50

数字加密  得分:10 / 10

import java.util.Scanner;
/**
 * @Author liguo
 * @Description 输入一个四位数,将其加密后输出。
 * 方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,
 * 最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。
 * 例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
 * 输入描述
 * 输入在一行中给出一个四位的整数x,即要求被加密的数。
 * 输出描述
 * 在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。
 * 样例输入1:
 * 1257
 * 样例输出1:
 * The encrypted number is 4601
 * @Data 2018-04-27
 */
public class Main {
    public static String jiaMi(int a) {
        int temp = String.valueOf( a ).length();
        int b[] = new int[temp];
        //整数转化为一个从高位到低位的数组

        for (int i = temp - 1; i >= 0; i--) {
            b[i] = a % 10;
            a = a / 10;
        }

//        for ( int number : b)
//            System.out.print( number +"  ");

        //将各个位数加上9并除以10取余
        for (int i =0 ;i <b.length;i++) {
            b[i] = ((b[i] + 9) % 10);
        }
        //交换千分位和十分位   b[0]千分位,b[2]十分位
        b[0] += b[2];
        b[2] = b[0] - b[2];
        b[0] -= b[2];
        //交换百分位和个分位   b[1]百0分位,b[3]个位
        b[1] += b[3];
        b[3] = b[1] - b[3];
        b[1] -= b[3];
//      转化为数组转为string类型的整数
        StringBuffer str = new StringBuffer();
        for(int i=0;i<b.length;i++){
            str.append(b[i]);
        }
        return str.toString();

//            for ( int number : b)
//                 System.out.println( number );
    }

    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        int temp = in.nextInt();
         String result = jiaMi(temp);
         System.out.println("The encrypted number is "+result);

    }
}

数列排序  得分:10 / 10

import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author liguo
 * @Description 2.数列排序
题目描述
将一个具有20个元素的数组中的中间10个元素按从大到小顺序排序,要求使用冒泡法排序。
输入描述
在一行中输入20个小于50的整数,数据之间只能用1个空格间隔。
输出描述
直接输出变化后的数组,每个数输出占4列列宽。
样例输入1:
5 4 3 2 1 8 5 2 9 6 3 1 4 7 4 1 2 3 4 5
样例输出1:
5   4   3   2   1   9   8   7   6   5   4   3   2   1   4   1   2   3   4   5

 * @Data 2018-04-27
 */
public class Main {
    public static void maopaoSort(int n[]){
        for (int i = 1; i <=n.length-1; i++) {
            for (int j = 0; j <= n.length-1-i; j++) {
                //后面大值就进行值交换把他们换到前面
                if (n[j]<=n[j+1]){
                    n[j]+=n[j+1];
                    n[j+1] = n[j] - n[j+1];
                    n[j]-=n[j+1];
                }
            }
        }
    }
    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        int []array1 = new int[20];
        int []array2;
//        for (int value:array1) {
//            value = in.nextInt();
//        }
        for (int i = 0; i <array1.length ; i++) {
            array1[i]=in.nextInt();

        }
       array2= Arrays.copyOfRange(array1,5,15);   //复制的数组从5-14.没有15
//        System.out.println(Arrays.toString( array2 ));

        maopaoSort( array2 );
//       System.out.println(Arrays.toString( array2 ));
//       arraycopy( array2,0,array1,5,10);
        for (int i =0 ,j = 5; i < array2.length; i++,j++) {
            array1[j] = array2[i];
        }
       for (int value:array1)
       System.out.printf("%4d", value);
    }
}

6-4-4 打印杨辉三角形  得分:10 / 10

import java.util.Scanner;

/**
 * @Author liguo
 * @Description 输入一个整数,表示该三角形的行数

输出描述
对应行数的杨辉三角型,三角形中的每个元素请使用“5d”的格式字符串打印输出
样例输入1:
5
样例输出1:
1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
样例输入2:
9
样例输出2:
1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
1    5   10   10    5    1
1    6   15   20   15    6    1
1    7   21   35   35   21    7    1
1    8   28   56   70   56   28    8    1
 * @Data 2018-04-27
 */
public class Main{
    public static void yangHui(int n){
        int a [][] = new int [n ][n];
        a[0][0] = 1;
        for (int i = 1; i < n; i++) {
            a[i][0]= 1;
            a[i][i]=1;
            for (int j = 1; j < i; j++) {
                a[i][j] = a[i-1][j-1]+a[i-1][j];
            }
        }
        //打印二维数组.显示杨辉三角形
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <=i ; j++) {
            System.out.printf("%5d",a[i][j]);
            }
            System.out.println();
        }
        }
    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        int n = in.nextInt();
        yangHui( n );
    }
}

6-4-3 构造指定的数列  得分:10 / 10

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @Author liguo
 * @Description 题目描述
编写函数fun,求出a到b之内能被7或者11整除,但不能同时被7和11整除的所有正数,并将他们放在数组中,函数返回这些数的个数。
编写main函数,输入a,b的值并调用函数进行运算。

输入描述
从键盘输入a,b的值(1<=a<=b<1000),用以下格式字符串输入a,b的值:
在C语言中使用:scanf("%d%d",&a,&b);
在Java语言中使用Scanner对象的nextInt()方法获取a,b的值。

输出描述
用以下格式字符串输出数组中的元素的值:"%d "(注意:%d后面有一个空格)

样例输入1:
1 20 <回车>ii
样例输出1:
7 11 14
样例输入2:
50 100 <回车>
样例输出2:
55 56 63 66 70 84 88 91 98 99
 * @Data 2018-04-28 21:11
 */
public class Main {
    public static void fun(int a,int b){
        boolean flag= true;
        int count = 0;
//        int []arr = new int[b-a];
        ArrayList <Integer> arr = new ArrayList <>( b-a );
        for (int i = a; i <= b; i++) {
            flag = (i%7==0||i%11==0);
            if (i%77==0)
                flag = false;
            if (flag) {
                arr.add( i );
            }
        }
        arr.trimToSize();
        arr.toArray(  );
        for (int value:arr)
            System.out.printf("%d ",value);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        int a = in.nextInt();
        int b = in.nextInt();
        fun( a,b );
    }
}

6-4-1 求平均值  得分:10 / 10

import java.util.Arrays;
import java.util.Scanner;
/**
 * @Author liguo
 * @Description
 * 编程从键盘上输入20个整数,求去掉最大值和最小值以后那些元素的平均值
输入描述
连续输入20个整数,用空格作为分隔
输出描述
C语言和Java语言中,用以下格式字符串输出结果:"count=%d,average=%.2f\n"
Python语言中,用以下格式字符串输出结果:"count={},average={:.2f}"
样例输入1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
样例输出1:
count=18,average=10.50
样例输入2:
90 80 70 100 50 60 70 100 75 85 85 90 80 70 65 50 60 70 80 90
样例输出2:
count=16,average=76.25
 * @Data 2018-04-29 0:12
 */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner( System.in );
        int []arr = new int[20];
        int count=20;
        int sum=0;
        double average = 0;
        //录入数据
        for (int i = 0; i < 20; i++) {
            arr[i]=in.nextInt();
        }
        Arrays.sort( arr );
        //去掉出去除两头的最大最小值
        for (int i = 1; i < 19; i++) {
            if (arr[i] == arr[0] | arr[i] == arr[19]) {
                arr[i] = 0;
                count--;
            }
        }

        //去掉两个首尾的最大值最小值
        arr[0] = 0;
        arr[19]=0;
        count-=2;
        for (int value:arr)
            sum+= value;
        average = (double) sum/count;
        System.out.printf( "count=%d,average=%.2f\n",count,average);
    }
}

原文地址:https://www.cnblogs.com/liguo-wang/p/8970904.html

时间: 2024-07-28 18:52:20

南京邮电大学java程序设计作业在线编程第五次作业的相关文章

南京邮电大学java第四次实验报告

实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 6 月 7 日 指导单位 计算机学院软件教学中心 指导教师 许棣华 学生姓名 王利国 班级学号 B160209 学院(系) 电子与光学工程学院,微电子学院 专    业 微电子科学与工程 实验名称 方法.数组和类 指导教师 许棣华 实验类型 上机 实验学时 2 实验时间 2017.6.7 一.    实验

20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结

20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目(加.减.乘.除) 需要实现计算结果的输出 将正确的计算结果与用户输入的计算结果进行比较得出最终的正确率 之前编写的程序还有很多问题,这周主要对这些问题进行改进和升级,我们成功实现了这些功能. 设计思路 1. 首先我们需要编写随机生成数字和随机生成符号的代码,把他们编写好后保存 2. 我们需要利用之前编写好的随

20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结

20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运算 2 支持多运算符运算 3 支持分数运算,支持真分数运算 3 统计正确率 扩展需求: 设计思路 这是一个需要支持复杂运算的程序,不同于简单的单运算符的四则运算,需要设计多个类来实现运算,比如加减乘除以及平方的运算. nml图(部分) 代码进度 整数计算类 public class IntNumber { p

20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第一周:阶段性总结)

20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第一周:阶段性总结) 结对对象与其博客链接 20175309 刘雨恒: 码云链接 https://gitee.com/dky20175312/dky_20175312_warehouse_1/tree/master/jiedui/src 需求分析 (一)功能需求 1.自动生成题目(本周已完成) 可生成包含不同运算符个数的题目 2.题目运算(判题)(这周先做了真分数,运算和后缀计算打算下周做) 实现中缀表达式转

20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第二周:整体性总结)

20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第二周:整体性总结) (正在做博客,未完成,在填充) 结对对象与其博客链接 20175309 刘雨恒: 需求分析 (一)功能需求 1.自动生成题目(上周已完成) 可生成包含不同运算符个数的题目 2.题目运算(判题)(真分数上周已经完成,运算和后缀计算这周已完成) 实现中缀表达式转为后缀表达式并计算 判断用户答题正误,并输出正确结果 3.支持真分数(上周已完成) 实现分数算式的计算 3.题目去重(扩展需求,已完

西安邮电大学C程序设计大赛初赛

来源:http://acm.xupt.edu.cn/contest.php?cid=1189 问题 A: CONTEST1.十进制转十六进制(BY YAN) 时间限制: 10 Sec  内存限制: 256 MB 提交: 349  解决: 247 [提交][状态][讨论版] 题目描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满16进1,所以十进制数16在

20165234 《Java程序设计》第十周课下作业

教材p448 Example15_4 1. list中增加自己学号后三名同学,学号是最后三名的从1号开始加入 2. 提交运行结果截图 3. 刻下推送代码到码云 在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法: - 有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort(List) - 没有类的源代码,或者多种排序,新建一个类,实现Comparator接口 调用Collection.sort(List, Compatat

20175126Apollo 20175126《Java程序设计》结队编程项目——四则运算 第一周阶段总结

结队编程项目——四则运算 一.项目需求 自动生成小学四则运算题目(加.减.乘.除)统计正确率 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 需求分析: 生成四则运算:需要使用随机数生成,需要创造一个能实现计算功能的类. 支持多运算符:运算符也需要利用随机生成,并且不限个数. 支持真分数:需要用到生成分子.分母的函数,将分数化简等. 统计正确率:需要设置一个计算变量,并需要用一个判断正确的函数. 二.设计思路 首先根据需求分析,进行大体的设计: 生成题目→输入答案→判断正

20165303 2017-2018-2 《Java程序设计》结对编程练习_四则运算

需求分析 能生成简单四则运算题目并判断用户回答对错. 能正确统计回答正确的概率. 能正确处理混合四则运算的优先级的问题. 能正确输出负数等结果. 能处理简单的加,减,乘,除运算. 能正确的处理有括号的情况并输出正确的运算结果,能正确处理输入异常的情况. 运行截图 代码实现 import java.util.; public class sizeyunsuan { public static void main(String[] args) { System.out.println("输入测试题数