一、选择题
1 . 定义一个数组String [ ] cities={“北京”,”上海”,”天津”,”重庆”,”武汉”,”广州”,”香港”},数组中的cities[6]指的是(C)。
A.北京 B.广州
C.香港 D.数组越界
2. 下列数组的初始化正确的是(BD)。(选择两项)
A.int score={90,12,34,77,56};//数据类型 数组名=new数据类型[数组长度 ];
B.int[ ] score=new int[5];//int数组未赋值,默认5个0,String数组默认null
C.int[ ] score=new int[5]{90,12,34,77,56};//二者选其一
D.int score[ ]=new int[ ]{90,12,34,77,56};
3. 以下代码的输出结果是(A)。
public class Test{
public static void main(String[] args){
double[] price=new double[5];
price[0]=98.10;
price[1]=32.18;
price[2]=77.74;
for (int i=0;i<5;i++){
System.out.print((int)price[i]+” ”)
}//double进行强制转换为int,丢失精度
}//price[3]、price[4]未赋值,默认为0
}
A . 98 32 77 0 0
B . 98 32 78 0 0
C . 98 32 78
D .编译出错
4. 阅读下面代码,它完成的功能是(B)。
String[ ]a ={“我们”,”你好”,”小河边”,”我们”,”读书”};
for (int i=0; i
If(a[i].equals("我们")){ //查找
a[i]=”他们”;//替换
}
}
查找 B.查找并替代 C.增加 D.删除
5. 下面代码的运行结果是(C)。
Public class Test {
Public static void main(String[] args){
int[ ] a=new int[3];
int[ ] b=new int[ ]{1,2,3,4,5};
a=b;//把b数组的地址赋给a数组的地址 a整个存储结构就发生改变,与b数组一致
for ( int i=0; i
System.out.print(a[i]+” ”)
}
}
}
A . 程序报错 B. 1 2 3
C. 1 2 3 4 5 D. 0 0 0
二、简答题
1. 阅读以下代码,找出其中的错误。
String[ ] scores= new String[5]{“mike”,”Lily”,”Sunny”,”Jenny”,”Anna”};
for (int i=0; i<=scores.length;i++){ //报数组越界异常
System.out.println(scores[i]);
}
2. 依次输入5句话,然后将它逆序输出。
(提示):创建一个字符串数组,每句话作为字符串数组的一个元素,然后从该数组的末尾开始循环输出。
public class Test{ public static void main(String[] args){ //定义一个字符串数组 String[] str=new String[5]; //扫描仪 Scanner sc=new Scanner(System.in); for(int i=0;i System.out.println("请输入第"+(i+1)+"句话:"); str[i]=sc.next(); } System.out.println("反向输出:"); for(int j=str.length-1;j>=0;j--){ System.out.println(str[j]); } } } |
3. 某百货商场当日消费积分最高的8名顾客,他们的积分分别是18、25、7、36、13、2、89、63。编写程序找出最低的积分及其他在数组中的原始位置(下标)。
(提示):创建数组points[],存储8名顾客的积分。
定义变量min存储最低积分,定义变量index存储最低积分的下标。
假设第一个元素为最低积分,下标为0.
遍历数组,将数组元素和min的值进行比较。
public static void main(String[] args) { //TODO Auto-generated method stub int[] points=new int[]{18,25,7,36,13,2,89,63}; int min=points[0];//最小值 int index=0;//下标 for(int i=1;i //第1个数只作为参考数 if(min>points[i]){ min=points[i]; index=i; } } System.out.println("最小数:"+min); System.out.println("对应的下标:"+index); } |
4. 从键盘上输入10个整数,合法值为1,2或3,不是这3个数则为非法数字。试编程统记每个整数和非法数字的个数。
(提示):创建数组nums【】,长度是10,存储用户输入的数字。
创建数组count,长度为4,存储3个合法数字和非合法数字的个数。
循环输入数字,利用switch判断数字的值,根据不同的值对数组count【】中的不同元素进行累加。
分析: 1:定义一个存储10个整数数组 2:统计1? 统计2?统计3? 统计其它? 定义一个存4个整数数组 3:一边输入,一边统计?switch结合for public static void main(String[] args) { //TODO Auto-generated method stub Scanner sc=new Scanner(System.in);//扫描仪 int[] number=new int[10];//定义一个存储10个整数数组 //统计数组中合法与非法数字 int[] count=new int[4]; //依次输入进去 for(int i=0;i System.out.println("请输入第"+(i+1)+"个整数:"); number[i]=sc.nextInt(); switch(number[i]){ //String(jdk1.7以上)int char case 1: //统计数字1 count[0]++;//自增 加1个 1++; 2 break; case 2: //统计数字2 count[1]++; break; case 3: //统计数字3 count[2]++; break; default: //统计非法的 count[3]++; break; } } System.out.println("数字1的个数:"+count[0]); System.out.println("数字2的个数:"+count[1]); System.out.println("数字3的个数:"+count[2]); System.out.println("非法的数字:"+count[3]);
}
|
5. 假设有一个长度为5的数组,如下所示。
Int[] array = new int [] {1、3、-1、5、-2};
现创建一个新数组newArray【】,要求新数组中的元素的存放顺序与原数组中的元素逆序,并且如果原数组中的原数值小于0,在新数组中按0存储。试编程输出新数组中的元素,程序运行结果如图8.17所示。
(提示):利用循环从原数组最后一个元素(下标为array.lenght-1)开始处理,如果该元素的值小于0,利用continue推出本次循环(整型数组中的元素默认值为0)。
如果该元素值大于0,则该元素复制到新数组合适的位置。对于原数组下标为i的元素,在新数组中的下标为array。Length-i-1。
处理完成,利用循环输出新数组中的元素。
public static void main(String[] args) { //TODO Auto-generated method stub //原始数组 int[] array=new int[]{1,3,-1,5,-2}; System.out.println("原数组的数据:"); for (int m : array) { System.out.print(m+"\t"); } System.out.println(); //新数组 int[] newarray=new int[array.length]; for(int i=0;i if(array[array.length-i-1]<0){ //比较的是最后一个数 continue; } newarray[i]=array[array.length-i-1]; } System.out.println("经过处理后的新数组:"); for (int n : newarray) { System.out.print(n+"\t"); } } |
6. 有一组英文歌曲,按照歌曲名称的字母顺序从“A”到“Z”顺序排列,保存在一个数组中。网上搜下英文歌
现在增加一首新歌,将他插入数组,并保持噶去名称升序排列。程序运行结果如图8.18所示。
比较数字的大小可以用“>”“<”等运算符,但如何比较字符串的大小呢?可以使用字符串的compareTolgnoreCase()方法。语法格式如下:
If( musics[i].compareToIgnoreCase(music)>0){
Index=I;
Break;
}
|-写活!音乐 输入4首 随便输入四首歌曲 插入之前,必须是按照a-z 的顺序排列?
public static void main(String[] args) { //TODO Auto-generated method stub //定义一个旧的音乐架 String[] oldmusic=new String[4]; Scanner sc=new Scanner(System.in); //定义一个新的音乐架 String[] newmusic=new String[oldmusic.length+1]; //定义一个音乐 String music=""; //下标 int index=oldmusic.length; //1:依次输入音乐 for(int i=0;i System.out.println("请输入第"+(i+1)+"首音乐:"); oldmusic[i]=sc.next(); } //排序 ascii码进行排序 Arrays.sort(oldmusic); //2:显示所有音乐 for (String aa : oldmusic) { System.out.print(aa+"\t"); } System.out.println(); //3:复制 for(int j=0;j newmusic[j]=oldmusic[j]; } //4:输入新歌 System.out.println("请输入新歌:"); music=sc.next(); //5:找位置 for(int k=0;k if(oldmusic[k].compareToIgnoreCase(music)>0){ index=k;//记下坐标 break; } } //6:移位 for(int n=newmusic.length-1;n>index;n--){ newmusic[n]=newmusic[n-1]; } //7:插入 newmusic[index]=music; System.out.println("新添加的歌曲:"); for (String cc : newmusic) { System.out.print(cc+"\t"); } } |