《2022年判断题-数组 .pdf》由会员分享,可在线阅读,更多相关《2022年判断题-数组 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章判断题1. 下标用于指出数组中某个元素位置的数字。()2. 把数组中元素按某种顺序排列的过程叫做查找。()3. 确定数组中是否含有某个关键字的过程叫做排序。()4. 一个数组可以存放许多不同类型的数值。()5. 数组的下标通常是float型。()6. 数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕时,这个元素中含有修改过的数值。()7. 数组可以声明为任何数据类型。()8. 数组由具有一名字和相同类型的一组连续内存单元构成。()9. 在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能有用户来决定。( )10. 将一个数组传递给一个方法,必须加
2、在数组名后加方括号。()第五章选择题1. 线性表和表可以存储在中。A数组B堆栈C文件D字符串2. 数组元素之所以相关,是因为它们具有相同的。A名字B类型C下标D地址3. 二维数组使用几个下标。A1 B2 C3 D4 4. 请看下面的程序段:public class Person static int arr = new int10; public static void main(String a) System .out .println(arr1); 下面说法正确的是:A当编译时会发生错误B编译不会发生错误但执行是会发生错误C输出结果为0 D不会输出结果5. 请看下面的程序段:public
3、 class Person 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - int arr = new int10; public static void main(String a) System .out .println(arr1); 下面说法正确的是:A当编译时会发生错误B编译不会发生错误但执行是会发生错误C输出结果为0 D不会输出结果6. 下面哪个选项正确的声明一个字符型数组:Achar str Bchar str
4、CString str DString str10 7. 下面那一个选项正确创建一个空的含有6 个元素的字符数组:AString s6; BString 6s; CString s =“” , ” , ” , ” , ” , ” ;DString s =new String6; For(int m=0;m6;m+) sm=” ;E. String s =new String6; For(int m=0;m6;m+) sm=null; 8. 请看下面的程序段:public class MyClass public static void main(String arg ) int arr = n
5、ew int3; System .out .println(“ it is “ + arr1); 当编译和执行这段代码时会出现:A有一个编译错误为“ possible reference before assignment”B有一个编译错误为“ illegal array declaration syntax”C有异常出现为 “ NullPointerException”D正确执行并且输出0 9. 请看下面的程序段public class Person String name; int age; public Person(String n,int a) name=n; age=a; publ
6、ic static void main(String arg ) /point x 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 下面选项可以添加到/point x处:APerson p =new Person3; P1=new Person(“ user1 ” ;24);BPerson p ; P=new Person3; P=new Person(“ user2 ” ;56);CPerson p = new Person
7、(“ user1 ,34),(“ user2 ” ,34)DPerson p =new Person(“ user1 ,34),(“ user2 ” ,34)10. 请看下面的程序段public class Test String s; int m; public Test(String t ,int n) s=t;m=n; public static void main(String arg ) Test t = new Test(“ abc ” ,3);new Test(“ ddf ” ,23) ;/point x 下面选项可以添加到/point x处:ASystem .out .prin
8、tln(“ the value is” +t3.s);BSystem .out .println(“ the value is” +t2.m);CSystem .out .println(“ the value is” +t1.s);DSystem .out .println(“ the value is” +t1.m);第五章程序设计题1. 编写程序,接受用户输入的若干字符串,并按字典排序输出。要求使用两种以上的排序算法。2. 上题用桶排序的方法实现。3. 编写一个程序,用户每输入一个字符串,都把它保存在按字典排序的合适位置上,请利用对分法找到合适的插入位置。4. 编程求一个整数数组的最大值
9、、最小值、平均值和所有数组元素的和。第五章判断题答案1. 难度:容易答案:错误知识点:下标用于指出数组中某个元素的数字。2. 难度:容易答案:正确知识点:把数组中元素按某种顺序排列的过程叫做排序。3. 难度:容易答案:错误名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 知识点:确定数组中是否含有某个关键字的过程叫做查找。4. 难度:容易答案:错误知识点:一个数组只能存放同一类型的数值。5. 难度:容易答案:错误知识点:一个数组
10、下标应为整数或整数表达式。6. 难度:容易答案:错误知识点:因为数组的单个基本数据类型元素以值调用方式传递。如果将整个数组传递给方法,数组元素的任何变化都将反映在原来数组上。另外,如数组单个元素是类的对象,传递单个元素也以引用调用形式传递给方法,对象的改变将反映在原数组元素上。7. 难度:容易答案:正确知识点:数组的使用。8. 难度:容易答案:正确知识点:数组的概念。9. 难度:适中答案:错误知识点:在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小由初始值表中的数据个数决定。10. 难度:容易答案:错误知识点:将一个数组传递给一个方法,应使用不加方括号的数组名。第五章选
11、择题答案1. 难度:容易答案: B 知识点:线性表和表可以存储在数组中。2. 难度:容易答案: AB 知识点:数组元素之所以相关,是因为它们具有相同的名字和类型。3. 难度:容易答案: B 知识点:二维数组使用双下标。4. 难度:容易答案: C 知识点:静态数组arr 已经被初始化为0 。5. 难度:容易答案: A 知识点:数组arr 不是静态数组 ,在方法 main()中没有被直接访问。6. 难度:容易答案: C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页
12、 - - - - - - - - - 知识点:不允许在数组名后面的括号内指定数组元素的个数。7. 难度:适中答案: CD 知识点: “”表示数组元素为空。8. 难度:适中答案: D 知识点:一旦数组被创建则它的元素就被初始化为0 9. 难度:适中答案: ABC 知识点:可以用初始值来创建数组p ,选项 D 书写不合法。10. 难度:适中答案: CD 知识点:数组t 的长度位,它的下标是0 和 1 ,则使用 t2 和 t3 是不对的。第五章程序设计题答案1. 难度:难答案:源程序: Paixu.java import java.applet.*; import java.awt.*; impor
13、t java.awt.event.*; public class Paixu extends Applet implements ActionListener final String SORT_METHOD_NAME = 冒泡排序 , 选择排序 ; Label prompt = new Label(请输入欲排序的字符串(最多10 个): ); TextField input = new TextField(5); Button sortBubbleBtn = new Button(SORT_METHOD_NAME0); Button sortSelectBtn = new Button(SO
14、RT_METHOD_NAME1); String OrigArray = new String10; /保存排序前顺序的数组String DataArray = new String10; /保存待排序数据的数组int DataInputed = 0; /已输入数据的统计String SortPro = new String1110; /保存排序过程的二维数组public void init() /初始化 for(int i=0; i10; i+) DataArrayi = ; OrigArrayi = ; SortPro10i = ; for(int j=0; j10; j+) SortPr
15、oij = ; add(prompt); add(input); add(sortBubbleBtn); /将提示,输入区域,按钮加入Applet 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - add(sortSelectBtn); input.setText(); input.addActionListener(this); sortBubbleBtn.addActionListener(this); sortSelect
16、Btn.addActionListener(this); public void paint(Graphics g)/打印排序全过程 for(int i=0;i for(int j=0;j / 二维数组第i 行中的数据个数 /try / g.drawString(SortProij,10+80*j,40+20*i); / /catch(NullPointerException npe) / / System.out.println(i+ , +j); / public void actionPerformed(ActionEvent e) if(e.getSource() = input)/用
17、户在 input中输入并回车时 /记录数据DataArrayDataInputed = input.getText(); OrigArrayDataInputed = DataArrayDataInputed; DataInputed+; if(DataInputed 10) prompt.setText(已输入 + DataInputed + 个字符串,请继续); input.setText(); /准备输入下一个数据 else /已输入 10 个数据 prompt.setText(已输入 10 个字符串,不能再输入了); input.setVisible(false); /隐藏其输入区域
18、if(e.getSource() = sortBubbleBtn) / 用户单击按钮,启动排序过程 for(int i=0;i 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - SortPro0i = DataArrayi; BubbleSortProcedure(); /调用冒泡排序方法repaint(); for(int i=0;iDATAARRAY.LENGTH;I+) DataArrayi = OrigArrayi; /
19、恢复排序前的乱序 if(e.getSource() = sortSelectBtn) for(int i=0;i SortPro0i = DataArrayi; SelectSortProcedure(); /调用选择排序方法repaint(); for(int i=0;i 0) /一次两两比较交换过程 temp = DataArrayi; DataArrayi = DataArrayi+1; DataArrayi+1 = temp; exchangeCnt+; for(i=0;iDATAARRAY.LENGTH;I+) SortPropass+1i = DataArrayi; / 记录本轮扫
20、描后数据排列情况if(exchangeCnt = 0) / 若一次也未交换,则说明已完全排好序,不必再循环return; void SelectSortProcedure() /选择排序方法 int pass,i,k; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - String temp = ; for(pass=0;pass / 选择多次,有序子列在增长 for(i=pass,k=i;i / 一次选择过程,无序子列在减少i
21、f(DataApareToIgnoreCase(DataArrayk) 0) /选择剩余未排序数据中的最小者k = i; temp = DataArraypass; /排在剩余数据的最前面DataArraypass = DataArrayk; DataArrayk = temp; for(i=0;iDATAARRAY.LENGTH;I+) SortPropass+1i = DataArrayi; / 记录本轮选择后数据排列情况 知识点:冒泡排序和选择排序方法的使用。2. 难度:难答案:源程序: Paixu.java import java.applet.*; import java.awt.*
22、; import java.awt.event.*; public class Paixu extends Applet implements ActionListener final String SORT_METHOD_NAME = 冒泡排序 , 桶排序 ; Label prompt = new Label(请输入欲排序的字符串(最多10 个): ); TextField input = new TextField(5); Button sortBubbleBtn = new Button(SORT_METHOD_NAME0); Button sortSelectBtn = new But
23、ton(SORT_METHOD_NAME1); String OrigArray = new String10; /保存排序前顺序的数组String DataArray = new String10; /保存待排序数据的数组int DataInputed = 0; /已输入数据的统计String SortPro = new String1110; /保存排序过程的二维数组public void init() /初始化 for(int i=0; i10; i+) DataArrayi = ; OrigArrayi = ; SortPro10i = ; for(int j=0; j10; j+)
24、SortProij = ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - add(prompt); add(input); add(sortBubbleBtn); /将提示、输入区域、按钮加入Applet add(sortSelectBtn); input.setText(); input.addActionListener(this); sortBubbleBtn.addActionListener(this); sort
25、SelectBtn.addActionListener(this); public void paint(Graphics g)/打印排序全过程 for(int i=0;i for(int j=0;j / 二维数组第i 行中的数据个数 try g.drawString(SortProij,10+80*j,40+20*i); catch(NullPointerException npe) System.out.println(i + , + j); public void actionPerformed(ActionEvent e) if(e.getSource() = input)/用户在 i
26、nput中输入并回车 /记录数据DataArrayDataInputed = input.getText(); OrigArrayDataInputed = DataArrayDataInputed; DataInputed+; if(DataInputed 10) prompt.setText(已输入 + DataInputed + 个字符串,请继续); input.setText(); /准备输入下一个数据 else /已输入 10 个数据 prompt.setText(已输入 10 个字符串,不能再输入了); input.setVisible(false); /隐藏其输入区域 if(e.
27、getSource() = sortBubbleBtn) / 用户单击按钮,启动排序过程 for(int i=0;i 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - SortPro0i = DataArrayi; BubbleSortProcedure(); /调用冒泡排序方法repaint(); for(int i=0;iDATAARRAY.LENGTH;I+) DataArrayi = OrigArrayi; /恢复排序前
28、的乱序 if(e.getSource() = sortSelectBtn) for(int i=0;i SortPro0i = DataArrayi; BucketSortProcedure(); /调用桶排序方法repaint(); for(int i=0;i 0) /一次两两比较交换过程 temp = DataArrayi; DataArrayi = DataArrayi+1; DataArrayi+1 = temp; exchangeCnt+; for(i=0;iDATAARRAY.LENGTH;I+) SortPropass+1i = DataArrayi; / 记录本轮扫描后数据排列
29、情况if(exchangeCnt = 0) / 若一次也未交换,则说明已完全排好序,不必再循环return; void BucketSortProcedure() /桶排序方法 /暂时将字符范围限定在128 个 ASCII码内,最后一列保存这一行的数据个数String bucket = new String128DataInputed+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - int pass =0;/扫描轮数计
30、数for(int i=0; i128; i+) for(int j=0; j bucketij = ; int strLength=0, doo=0; StringBuffer sb; / 补足参差的字符串,使大家长度相同for(int i=0; i strLength = Math.max(strLength,DataArrayi.length(); for(int i=0; i if(DataArrayi.length()STRLENGTH) sb = new StringBuffer(DataArrayi); for(int j=0; j sb.append(char)doo); Dat
31、aArrayi = sb.toString(); do for(int i=0;i= pass) ch= DataArrayi.charAt(DataArrayi.length()-1-pass); else ch = 0; if(ch=128 | ch=A & ch=Z) System.out.println(ch + , + (char)ch); ch += a - A; System.out.println(ch + , + (char)ch); int count = Integer.parseInt(bucketchDataInputed); bucketchcount+ = Dat
32、aArrayi; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - bucketchDataInputed = Integer.toString(count); int k=0; for(int i=0;i128;i+)/集中扫描for(intj=0;jINTEGER.PARSEINT(BUCKETIDATAINPUTED);J+) DataArrayk+ = bucketij; for(int i=0;i / 记录本轮选择后
33、数据排列情况SortPropassi = DataArrayi; pass+; while(Integer.parseInt(bucket0DataInputed)!=DataInputed; / 一轮扫描 知识点:桶排序的使用。3. 难度:难答案:源程序: Chazhao.java import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Chazhao extends Applet implements ActionListener Label pro
34、mpt = new Label(请输入欲插入的字符串:); TextField input = new TextField(5); Vector dataVector = new Vector(); public void init() add(prompt); add(input); dataVector.removeAllElements(); input.setText(); input.addActionListener(this); public void paint(Graphics g) /打印 int i=0; for(Enumeration e = dataVector.el
35、ements(); e.hasMoreElements(); i+) try g.drawString(String)(e.nextElement(), 10+80*i, 40); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - - - - - catch(NullPointerException npe) System.out.println(i); public void actionPerformed(ActionEvent e) i
36、f(e.getSource() = input) /用户在 input中输入并回车时 /记录数据String s = input.getText(); int low=0, high=dataVector.size()-1, mid; while(low 0) high = mid-1; else low = mid+1; if(lowhigh) dataVector.insertElementAt(new String(s),low); System.out.println(s + , + low); input.setText( ); repaint(); 知识点:查找算法的使用。4. 难
37、度:适中答案:源程序: He.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class He extends Applet implements ActionListener 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - final int ARRAY_LENGTH = 10; final String label
38、Prompt = 最大值: , 最小值: , 总和: , 平均值: ; int myArray = new intARRAY_LENGTH; int count=0, max=0, min=0, sum=0; double avg=0.0; TextField inputTfd = new TextField(10); Label inputLbl = new Label(请输入数据并回车:); Label maxLabel = new Label(labelPrompt0 + ); Label minLabel = new Label(labelPrompt1 + ); Label sumL
39、abel = new Label(labelPrompt2 + ); Label avgLabel = new Label(labelPrompt3 + ); public void init() for(int i=0; i myArrayi = 0; add(inputLbl); add(inputTfd); add(maxLabel); add(minLabel); add(sumLabel); add(avgLabel); inputTfd.addActionListener(this); public void actionPerformed(ActionEvent ae) Text
40、Field temp = (TextField)(ae.getSource(); if(temp = inputTfd) try int value = Integer.parseInt(temp.getText(); if(count = 0) max = value; min = value; sum = value; avg = value; else max = Math.max(value,max); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页
41、- - - - - - - - - min = Math.min(value,min); sum = (count avg = (double)(sum) / (count myArraycount % ARRAY_LENGTH = value; count+; maxLabel.setText(labelPrompt0 + max); minLabel.setText(labelPrompt1 + min); sumLabel.setText(labelPrompt2 + sum); avgLabel.setText(labelPrompt3 + avg); inputTfd.setText(); catch(NumberFormatException nfe) inputTfd.setText(格式错误 ); else showStatus(事件 + ae.toString() + 未定义处理操作); 知识点:对数组的基本操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -
限制150内