面向对象程序设计入门题目
Java概述
- 要求在控制台输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
运行效果如下所示:
public class Count {
public static void main(String[] args) {
int digital = 0;//数字个数
int character = 0;//英文字母个数
int black = 0;//空格个数
int other = 0;//其他字符个数
System.out.println("请输入一串字符:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] ch = str.toCharArray();
for(int i = 0; i < ch.length; i++) {
if(ch[i] >= '0' && ch[i] <= '9') {
digital++;
}else if((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')) {
character++;
}else if(ch[i] == ' ') {
black++;
}else {
other++;
}
}
System.out.println("数字个数:" + digital);
System.out.println("英文字母个数:" + character);
System.out.println("空格个数:" + black);
System.out.println("其他字符个数:" + other);
sc.close();//关闭输入流
}
}
- 某个公司采用加密的方式传递数据,已知该数据是四位的整数,加密的规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位数字交互,第二位和第三位交换。通过程序实现输入一个四位整数求出加密后的数据。
package www.wy.ch01;
import java.util.Scanner;
public class Demo1 {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int sum, num = 0;
while (num < 1000 || num > 9999) {
System.out.println("输入一个4位正整数:");
num = s.nextInt();
}
int[] a = new int[4];
a[0] = num / 1000;
a[1] = (num / 100) % 10;
a[2] = (num / 10) % 10;
a[3] = num % 10;
for (int j = 0; j < 4; j++) {
a[j] += 5;
a[j] %= 10;
}
for (int j = 0; j <= 1; j++) {
sum = a[j];
a[j] = a[3 - j];
a[3 - j] = sum;
}
System.out.println("加密后的数字为:");
for (int j = 0; j < 4; j++)
System.out.print(a[j]);
}
}
- 学号数组:String[] stuNo = { “2019011500”, “2019011501”, “2019011502”, “2019011503”, “2019011504” }
姓名数组:String[] stuName = { “张三”, “李四”, “王五”, “赵六”, “王九” }
英语成绩数组:int[] englishScore = { 55, 79, 96, 68, 87 }
数学成绩数组:int[] mathScore = {90, 65, 78, 82, 50}
学号姓名和两科成绩一一对应,也就是说学生张三的学号为2019011500,他的英语成绩是55,数学成绩是90。
写Java程序,要求实以下现功能(提示:可以使用Arrays类中的方法sort()、copyOf()、toString()):
(1) 计算英语成绩数组中最大值、最小值、所有值之和,并输出到控制台。
(2) 计算数学成绩的平均值,并输出到控制台。
(3) 按照英语成绩从高到低,输出学生的姓名和学号。
(4) 将学号按照从小到大排序,并复制数组内容到一个新的数组中。
package www.wy.ch01;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
String[] stuNo = { "2019011500", "2019011501", "2019011502", "2019011503", "2019011504" };
String[] stuName = { "张三", "李四", "王五", "赵六", "王九" };
int[] englishScore = { 55, 79, 96, 68, 87 };
int[] mathScore = {90, 65, 78, 82, 50};
int[] num1 = {0,1,2,3,4};
int max=0,min=100,etscore=0;
for(int i=0;i<5;i++) {
if(max<englishScore[i]) {
max=englishScore[i];
}
if(min>englishScore[i]) {
min=englishScore[i];
}
etscore+=englishScore[i];
}
System.out.printf("英语成绩的最大值为%d,最小值为%d,和为%d\n",max,min,etscore);
int mtscore=0,mascore;
for(int j=0;j<5;j++) {
mtscore+=mathScore[j];
}
mascore=mtscore/5;
System.out.printf("数学成绩的平均值为%d\n" ,mascore);
}
}
···