尚学堂第七章作业参考答案

博客给出了Java第七章选择题答案,如(1)ACD (2)B等。还包含编码题,有数组查找操作,判断数组是否含输入单词;获取数组最大最小值操作,利用Math类随机数找出最值并统计;数组逆序操作,将数组元素对调并输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选择题

(1)ACD (2)B (3)BC (4)B (5)BD

编码题

1…数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词, 程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。

public class Task extends Test11{
	public static void main(String[] args) {
		String[] str = new String[10];			//定义长度为10字符串数组
		for(int i = 0;i < 10;i++) {				//给数组中放入单词
			str[i] = "a" + i;
		}
		
		System.out.println("请输入字符串");
		Scanner scanner = new Scanner(System.in);
		String str1 = scanner.nextLine();			//所输入的字符串
		
		isExist(str,str1);							//检验输入的字符串是否存在的方法
	}
}
//自定义类
class Test11{
	 public static void isExist(String[] str,String str1) {     //字符串是否存在数组中的方法
		boolean flag = true;
		for(int i = 0;i < str.length;i++) {
			if(str[i].equals(str1)) {
				System.out.println("Yes");
				flag = false;
			}
		}
		if(flag) {
			System.out.println("No");
		}
		
		
	}
}

2. 获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
提示:使用 int num=(int)(n*Math.random());获取随机数。

public class Task{
	public static void main(String[] args) {
```		System.out.println("请输入随机数区间大值n"); 
		 Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int tempNum = 0;						//临时存储超过60的数
		
		int[] numArray = new int[50];		//numArray数组中存储的是随机
		for(int i= 0;i < 50;i++) {			//生成0~n之间随机数50个
			numArray[i] = (int)(n * Math.random());
			if(numArray[i] >= 60) {			//判断超过60的个数
				tempNum ++;
			}
		}
		Test2 t2 = new Test2();			//定义的test2类实例化的对象
		t2.numTest(numArray);			//调用Test2中的静态方法
		System.out.println("超过60的有" + tempNum + "个");		//输出超60个数
	}
}
//自定义的Test2 类,用来对随机生成的数组排序,通过排序后的数组可以方便输出最大最小数
class Test2 extends BubbleSort{
	public static void numTest(int[] array) {
		bubbleSort(array);						//冒泡排序算法处理array数组
		System.out.println("最大数是:" + array[49] + "\n" + "最小数是:" + array[0]);
	}
}
//自定义的冒泡排序算法
class BubbleSort {
	public static void bubbleSort(int[] array) {
		int temp = 0;
		//冒泡排序
		for(int i = array.length - 1;i > 0;i--) {
			boolean flag = true;
			for(int j = 0;j < i;j++) {
				if(array[j] > array[j + 1]) {
					temp = array[j];
					array[j] = array[j + 1];
					array[j + 1] = temp;
					flag = false;
				}
			}
			if(flag) {
				break;
			}
		}
	}
}

3. 数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2的元素交换……
只要交换到arr.length/2的时候即可

public class Task extends Test11{
	public static void main(String[] args) {
    	int[] randomNum = new int[10];					//随机生成一个·包含10个元素的int类数组
		for(int i = 0;i < randomNum.length;i++) {
			randomNum[i] = (int)(30 * Math.random());
		}
		
		//打印随机生成的数组顺序
		System.out.println(Arrays.toString(randomNum));
		
		int temp = 0;
		for(int i = 0;i < randomNum.length / 2;i++) {		//元素交换的方法
			temp = randomNum[i];
			randomNum[i] = randomNum[randomNum.length - 1 - i];
			randomNum[randomNum.length - 1 - i] = temp;
		}
		System.out.println(Arrays.toString(randomNum));		//打印元素交换后的数组
		
		//##################################################################
	}
}
1.下列哪一种图的邻接矩阵是对称矩阵?( ) A.有向图 B.无向图 C.AOV网 D.AOE网 2.在边表示活动的AOE网中,关键活动的最迟开始时间( ) 最早开始时间。 A.> B.= D.= 3.带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中( ) 。 A.第i行非∞的元素之 B.第i列非∞的元素之 C.第i行非∞且非0的元素个数 D.第i列非∞且非0的元素个数 4.在一个无向图中,所有顶点的度数之等于所有边数的( ) 倍。 A.1/2 B. 1 C. 2 D. 4 5.对于一个具有n个顶点的无向图,若采用邻接矩阵存储,则该矩阵的大小是(D) A.n B.(n-1)2 C.n-1 D.n2 6. 如下有关拓扑序列的叙述,( ) 不对。 A. 拓扑序列包含了有向图的全部顶点 B. 有向有环图一定没有拓扑序列 C. 有向无环图不一定有拓扑序列 D. 拓扑序列不一定唯一 7. 对于描述工程的AOE网,( ) 说法正确。 A. 网中唯一的出度为零的顶点,称为源点 B. 网中唯一的入度为零的顶点,称为汇点 C. 关键路径是源点到汇点的最短路径 D. 关键路径可能有多条 8. 最小生成树指的是( ) 。 A. 由连通网所得到的边数最少的生成树 B. 由连通网所得到的顶点数相对较少的生成树 C. 连通网中所有生成树中权值之为最小的成生树 D. 连通网的极小连通子图 9.一个有向图,共有n条弧,则所有顶点的度的总为( ) 。 A.2n B.n C.n-1 D.n/2 二、填空题(每空3分,共9分)。 1.有n个顶点的连通图至少有___条边。有n个顶点的无向图至多有 条边。 2. 图的广度优先遍历算法中用到辅助队列,每个顶点最多进队 次。 3.在一个具有n个顶点的有向完全图中包含有 条边。 三、综合题(共23分)(答案可以在纸上笔画然后拍照贴图到文档的方式)。 1. (共7分)无向网如下: (1) 给出如图所示网的邻接矩阵表示(3分): (2) 画出最小生成树(4分): 2 .(共8分)已知一个连通图如图所示,试给出图的邻接矩阵邻接链表存储示意图。 (1) 邻接矩阵存储示意图为(4分): (2) 邻接链表存储示意图为(4分): 3. (共8分)如图所示的带权无向图,请用克鲁斯卡尔算法给出最小生成树的求解过程。 用克鲁斯卡尔算法求最小生成树的过程为:
### 尚学 Java 课程作业资料及答案 关于尚学Java课程中的具体作业资料以及对应的解答,通常这些资源会紧密围绕着课讲授的核心知识点展开。考虑到学习者可能已经在学校接触过基础概念但理解不深的情况,这类课外辅导机构往往会设计一系列循序渐进的任务来帮助巩固理论并应用于实践。 #### 基础编程练习 针对初学者可能会布置一些简单的程序编写任务,比如实现基本的数据处理逻辑或是小型应用程序的设计。例如,创建一个能够执行四则运算的小工具可以有效复习变量定义、条件判断与循环控制等语法要点[^3]。 #### GUI应用项目 鉴于提到对于GUI界面开发存在一定的陌生感,在此方面或许会有专门指导如何利用Swing组件构建交互式的用户环境作为家庭作业的一部分。通过实际操作加深对布局管理器(Layout Manager),事件监听机制(Event Listener)的理解,并掌握加载外部图像文件的方法用于显示游戏元素如飞机图标等[^1]。 #### 数据库连接实验 另外,由于数据库操作也是现代软件不可或缺的功能之一,因此也可能涉及有关JDBC(Java Database Connectivity)API的学习材料。学员需学会配置驱动程序,建立同关系型数据库(MySQL, Oracle 或 SQL Server)[^2]之间的通信链路,进而完成增删改查(CRUD)动作。 ```java // JDBC Connection Example Code Snippet import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { private static final String URL = "jdbc:mysql://localhost:3306/testdb"; private static final String USER = "root"; private static final String PASSWORD = ""; public static void main(String[] args){ try (Connection conn = DriverManager.getConnection(URL,USER,PASSWORD)){ System.out.println("Database connected successfully."); } catch (SQLException e){ throw new IllegalStateException("Cannot connect the database!",e); } } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值