1.判断数组的长度是length这个属性还是length()这个方法? String有没有length()这个方法
属性、有
2。创建一个长度为6的int型一维数组,要求取值为1-30,同时要求元素值各不相同(提示可以使用Random来随机给数组赋值)
public static void main(String[] args) {
Random r = new Random();
int [] a =new int[6];
for(int i=0; i<a.length;i++){
a[i]=(int)(Math.random()*30+1);
for (int j=0;j<i;j++){
if (a[i]==a[j]){
i--;
break;
}
}
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
3.下面数组定义正确的有:
A.String strs[] = { ‘a’ ‘b’ ‘c’};
!B.String[] strs = {“a”, “b”, “c”};
C.String[] strs = new String{“a” ”b” ”c”};
!D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};
4.看以下程序:
class Demo{
public static void main(String[] args){
String foo="blue";
boolean[] bar=new boolean[2];
if(bar[0]){
foo="green";
}
System.out.println(foo);
}
}
[输出的值为]:bule 原因:Boolean数组为赋值默认为false,不运行if语句体
5.创建一个char类型的36个元素的数组,前26个元素放置'A'-'Z', 后10个元素放置'0'-'9'。
使用for循环访问所有元素并打印出来。
提示:char类型数据运算 'A'+1 -> 'B','0'+1 -> '1'
public class demo1 {
public static void main(String[] args) {
char [] a=new char[36];
char c ='A';
char b='0';
for (int i =0;i<a.length;i++){
if(i<26){
a[i]=c;
c++;
}else{
a[i]=b;
b++;
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
}
6.输入数组{4,6,7,8,1,2,5},最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
public class demo1 {
public static void main(String[] args) {
int[] a={4,6,7,8,1,2,5};
int max=0,maxIndex=0,minIndex=0,min=0;
for(int i=0;i<a.length;i++){//找出最大的元素
if (a[i]>max){
max=a[i];
maxIndex=i;//保存这个元素的索引
}
}
a[maxIndex]=a[0];//交换最大元素位置
a[0]=max;
for(int i=1;i<a.length;i++) {//找出最小元素
if (a[i] < a[i-1]) {
min=a[i];
minIndex = i;//保存这个元素的索引
}
}
a[minIndex]=a[6];//交换最小元素位置
a[6]=min;
for(int i=0;i<a.length;i++){//遍历
System.out.print(a[i]);
}
// System.out.print(Arrays.toString(a))遍历
}
}
7.将一个给定的整型数组转置输出, 例如: 源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1
public class Demo2 {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5, 6};
int c = 0, b = 0;
for (int i = a.length - 1; i >= 0; i--) {//反向输出
System.out.print(a[i]);
}
}
}
8.现在有如下的一个数组: int[ ] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int[ ] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;
//做法一
public class demo1 {
public static void main(String[] args) {
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int c = 0, b = 0;
for (int i=0;i<oldArr.length;i++) {
if(oldArr[i]!=0){//计算非零元素个数
b++;
}
}//System.out.println(b);
int[] newArr=new int[b];//定义新数组,长度为非零元素个数
for (int i=0;i<oldArr.length;i++) {//遍历旧数组元素
if(oldArr[i]!=0){//判断元素是否为0
newArr[c] =oldArr[i];//不为0就赋值给新数组
c++;
}
}
for(int i=0;i<newArr.length;i++){//遍历输出数组
System.out.print(newArr[i]);
}
//System.out.print(Arrays.toString(newArr));//遍历输出数组
}
}
//做法二
import java.util.ArrayList;
public class Demo2 {
public static void main(String[] args) {
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int c = 0, b = 0;
ArrayList<Integer> newArr=new ArrayList<>();//定义动态数组
for (int i=0;i<oldArr.length;i++) {
if(oldArr[i]!=0){
newArr.add(oldArr[i]);
}
}System.out.println(newArr);
}
}
9.现在给出两个数组: 数组a:"1,7,9,11,13,15,17,19" 数组b:"2,4,6,8,10" 两个数组合并为数组c。
public class demo1 {
public static void main(String[] args) {
int[] a = {1,7,9,11,13,15,17,19};
int [] b={2,4,6,8,10};
int e = 0, d = 0;
for (int i=0;i<a.length;i++) {//计算a数组的元素个数
e++;
}
for (int i=0;i<b.length;i++) {//计算b数组的元素个数
d++;
}int[] c=new int[e+d];//定义c数组,长度为a b 数组元素个数之和
for(int i=0;i<a.length;i++){//遍历数组a,将值赋给数组c
c[i]=a[i];
}
for(int i=0;i<b.length;i++){//遍历数组b,将值赋给数组c
c[e+i]=b[i];
}
for(int i=0;i<c.length;i++){
System.out.print(c[i]+" ");
}
}
}
-
B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分是多少?
评委打分:99,97,96,95,94,92,91,90,88,100
public class demo1 { public static void main(String[] args) { int[] a = {99,97,96,95,94,92,91,90,88,100}; int max=0,min=0,sum=0; double av =0.0; for (int i=0;i<a.length;i++){ if(a[i]>max){ max=a[i]; } sum=sum+a[i]; } for (int i=1;i<a.length;i++) { if (a[i] < a[i - 1]) { min = a[i]; } } av=(sum-max-min)/a.length; System.out.println(av); } }
-
给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
数据如图:{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};--0,1,2,3,4,5,6,7,8,9}
public class demo1 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,8,9,0};
int max=0,b=0,c=0;
for(int i=0;i<a.length;i++) {
if(a[i]>max){
max=a[i];
b=i;
}
}
for(int i=1;i<a.length;i++) {
if(i!=b&&a[i]>a[i-1]){
c=i;
}
}System.out.println(c);
}
}