2021 JAVA期末复习(编程题)1

1.一维数组的定义遍历的操作

知识点:

一维数组:

在java中一维数组是一个保存一类大量数据的一个集合,一般对一维数组的访问都是用下标遍历的方式进行访问的。不能扩大容量

一维数组的创建方式:

通过创建对象的方式来创建数组(需要指定对象长度):

int a[] = new = int[10]; //需要指定长度10
int [] a,b = new int[10];//创建两个名为c、b的数组,长度分别为10

给定数组的值(不需要指定长度)

int a[] = new int[]{1,2,3,4};//不能指定数组长度
也可以不实例化数组
int a[] = {1,2,3,4};

一维数组的遍历方式,两种(for循环,for each循环)

for循环

int a[] = {1,2,3,4,5,6};//定义数组

//循环输出数组
for(int i = 0 ; i < a.length(); i++){
    System.out.printf(a[i] + " ");
}

输出结果:1 2 3 4 5 6

for each循环

int b[] = {1,2,3,4,5,6};

for(int x : b)
   {
        System.out.println(x+" ");
   }

输出结果:1 2 3 4 5 6

for each的x是临时定义遍历,表示每次循环取b数组中的值

输入类Scanner的创建及使用

Scanner包括在包java.util.*中,所以文件开头要加上import java.util.*;

实例化Scanner类

import java.util.*;

Scanner sc = new Scanner(System.in);

System.in代表创建的是系统输入的对象

使用Scanner赋值

int a = sc.nextInt();

double a = sc.nextDouble();

例题:

1.编写两个方法reverse和isPalindrome。

(1)方法reverse用于返回一个整数的反向倒置数。例如,reverse(123)返回321。

(2)方法isPalindrome判断一个整数是否是回文整数。在此方法中调用reverse方法获得该整数的反向数,如果反向数与它的顺向数一致,则这个数就是回文整数。

调用isPalindrome方法,分别判断123、7117是否是回文整数。

代码如下:

public class project1 {
	
	public static int reverse(int a){
		int b=a % 10;//用来存放逆序之后的数
		a/=10;
		while(a!=0)
		{
			
			b*=10;
			b+=a%10;
			a/=10;
		}
		return b;	
	}
	public static boolean isPalindrome(int a){
		if(a==reverse(a)) return true;
		else return false;
	}
	
	public static void main(String[] args) {
		int a[] = {123,7117};
		for(int i = 0; i <a.length;i++){
			
		
			if(isPalindrome(a[i]))	System.out.println(a[i]+"是回文数");
			else System.out.println(a[i]+"不是回文数");
		}

		
	}

}

运行结果:

这里优化一下逆序函数,可以作为模板记一下

代码如下:

bool check(int a) {
    int b = 0;
    if(a % 10 == 0)return false;//排除尾部为0的数
    while (b < a) {
        b = b * 10 + (a % 10);
        a = a / 10;
    }
    return (b == a) || (b / 10 == a);
}

2.编写一个程序,声明一个整型的一维数组arraySearch,存有10个整数:16、44、71、82、3、25、37、98、60、59。程序首先提示用户输入一个要查找的数据,然后在数组arraySearch中查找该数据是否存在,最后输出查找结果,如存在,则输出该数在数组中的位置信息(位置从1开始计数);若不存在,则输出提示信息。

例如,输入数字3,则输出提示信息“该数是数组中的第5个数”;输入数字10,则输出提示信息“未找到该数”。

代码如下:

import java.util.*;
public class work2 {

	public static void main(String[] args) {
		int search=0;
		int mark = 0;
		int k =0;
		
		int arraySearch[]={16,44,71,82,3,25,37,98,60,59};
		System.out.println("请输入想要查找的数据:");
		Scanner sc = new Scanner(System.in);
		search = sc.nextInt();
		for(int i=0;i<arraySearch.length;i++){
			if(search==arraySearch[i]){
				mark = 1;
				k=i+1;
				break;
			}
		}
		if(mark==1) System.out.println("该数据是数组中第"+k+"个数");
		else System.out.println("未找到该数据");
	}

}

运行结果:

3.编写一个方法,求整数矩阵中特定列的所有元素的和,使用下面的方法头:

public static int sumColumn(int[][] m, int col)

编写一个测试程序,读取3×4的矩阵,然后显示每列元素的和。

代码如下:

import java.util.*;
public class work3 {
	public static int sumColumn(int[][] m, int col){
		int sum= 0;
		for(int i =0;i<m.length;i++){
			
			for(int j =0 ;j<m[i].length;j++){
				if(col==j+1) sum+=m[i][j];
			}
		}
		return sum;
	}

	public static void main(String[] args) {
		int count = 0;
		int [][] m = new int [3][4];
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入12个数字");
		for(int i=0 ;i<m.length;i++){
			for(int j =0;j <m[i].length;j++){
				 
				m[i][j] = sc.nextInt();
				
			}

		}
		
		for(int i = 1;i<=m.length+1;i++){
			count = i;
			System.out.println("第"+count+"列的总数和为"+sumColumn(m, count));
		}
		
	}
}

 运行结果:

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java的基础类和对象是编程的核心概念,它们是面向对象编程(OOP)的基础。在期末复习编程题中,可能会涉及到以下几个关键点: 1. **类(Class)**:在Java中,类是一种蓝图,定义了对象的属性(数据成员)和行为(方法)。类包含了变量声明(成员变量)和方法定义。 2. **对象(Object)**:对象是类的实例,代表了类的某个具体实体。每个对象都有自己的状态(存储在成员变量中)和行为(通过方法执行)。 3. **构造函数**:用于初始化新创建的对象,通常在创建对象时自动调用。 4. **成员变量**:包括实例变量(对象特有的)和静态变量(类共享的)。 5. **方法**:类中的可执行代码块,可以有访问修饰符(public, private, protected)。 6. **封装(Encapsulation)**:隐藏对象的实现细节,只通过公共接口(方法)访问其状态。 7. **继承(Inheritance)**:子类继承父类的属性和方法,实现多态性。 8. **多态(Polymorphism)**:同一种操作作用于不同的对象,产生不同的效果。 9. **抽象类与接口**:抽象类提供了一组方法的模板,接口则是方法的集合,用于规定行为。 10. **数组和集合框架**:Java中的数据结构,如数组和各种集合类(ArrayList, LinkedList, HashSet等)。 复习编程题可能包含实际编程任务,比如创建一个简单的类结构、实现特定功能(如排序算法或数据处理)、设计模式理解以及单元测试等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值