第五章 判断题数组.docx

上传人:b****4 文档编号:5071229 上传时间:2022-12-13 格式:DOCX 页数:14 大小:19.65KB
下载 相关 举报
第五章 判断题数组.docx_第1页
第1页 / 共14页
第五章 判断题数组.docx_第2页
第2页 / 共14页
第五章 判断题数组.docx_第3页
第3页 / 共14页
第五章 判断题数组.docx_第4页
第4页 / 共14页
第五章 判断题数组.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第五章 判断题数组.docx

《第五章 判断题数组.docx》由会员分享,可在线阅读,更多相关《第五章 判断题数组.docx(14页珍藏版)》请在冰豆网上搜索。

第五章 判断题数组.docx

第五章判断题数组

第五章判断题

1.下标用于指出数组中某个元素位置的数字。

()

2.把数组中元素按某种顺序排列的过程叫做查找。

()

3.确定数组中是否含有某个关键字的过程叫做排序。

()

4.一个数组可以存放许多不同类型的数值。

()

5.数组的下标通常是float型。

()

6.数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕时,这个元素中含有修改过的数值。

()

7.数组可以声明为任何数据类型。

()

8.数组由具有一名字和相同类型的一组连续内存单元构成。

()

9.在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能有用户来决定。

()

10.将一个数组传递给一个方法,必须加在数组名后加方括号。

()

第五章选择题

1.线性表和表可以存储在▁▁中。

A.数组

B.堆栈

C.文件

D.字符串

2.数组元素之所以相关,是因为它们具有相同的▁▁。

A.名字

B.类型

C.下标

D.地址

3.二维数组使用几个下标。

A.1

B.2

C.3

D.4

4.请看下面的程序段:

publicclassPerson{

staticintarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1]);

}

}

下面说法正确的是:

A.当编译时会发生错误

B.编译不会发生错误但执行是会发生错误

C.输出结果为0

D.不会输出结果

5.请看下面的程序段:

publicclassPerson{

intarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1]);

}

}

下面说法正确的是:

A.当编译时会发生错误

B.编译不会发生错误但执行是会发生错误

C.输出结果为0

D.不会输出结果

6.下面哪个选项正确的声明一个字符型数组:

A.charstr[]

B.charstr[][]

C.Stringstr[]

D.Stringstr[10]

7.下面那一个选项正确创建一个空的含有6个元素的字符数组:

A.Strings[6];

B.String[6]s;

C.Strings[]={“”,””,””,””,””,””};

D.Strings[]=newString[6];

For(intm=0;m<6;m++){s[m]=””;}

E.Strings[]=newString[6];

For(intm=0;m<6;m++){s[m]=null;}

8.请看下面的程序段:

publicclassMyClass{

publicstaticvoidmain(Stringarg[]){

intarr[]=newint[3];

System.out.println(“itis“+arr[1]);

}

}

当编译和执行这段代码时会出现:

A.有一个编译错误为“possiblereferencebeforeassignment”

B.有一个编译错误为“illegalarraydeclarationsyntax”

C.有异常出现为“NullPointerException”

D.正确执行并且输出0

9.请看下面的程序段

publicclassPerson{

Stringname;

intage;

publicPerson(Stringn,inta)

{name=n;

age=a;}

publicstaticvoidmain(Stringarg[]){

//pointx

}

}

下面选项可以添加到//pointx处:

A.Personp[]=newPerson[3];

P[1]=newPerson(“user1”;24);

B.Personp[];

P=newPerson[3];

P=newPerson(“user2”;56);

C.Personp[]={newPerson(“user

1’,34),(“user2”,34)}

D.Personp[]=newPerson{(“user1’,34),(“user2”,34)}

10.请看下面的程序段

publicclassTest{

Strings;

intm;

publicTest(Stringt,intn){

s=t;m=n;

}

publicstaticvoidmain(Stringarg[]){

Testt[]={newTest(“abc”,3);

newTest(“ddf”,23)};

//pointx

}

}

下面选项可以添加到//pointx处:

A.System.out.println(“thevalueis”+t[3].s);

B.System.out.println(“thevalueis”+t[2].m);

C.System.out.println(“thevalueis”+t[1].s);

D.System.out.println(“thevalueis”+t[1].m);

第五章程序设计题

1.编写程序,接受用户输入的若干字符串,并按字典排序输出。

要求使用两种以上的排序算法。

2.上题用桶排序的方法实现。

3.编写一个程序,用户每输入一个字符串,都把它保存在按字典排序的合适位置上,请利用对分法找到合适的插入位置。

4.编程求一个整数数组的最大值、最小值、平均值和所有数组元素的和。

第五章判断题答案

1.难度:

容易

答案:

错误

知识点:

下标用于指出数组中某个元素的数字。

2.难度:

容易

答案:

正确

知识点:

把数组中元素按某种顺序排列的过程叫做排序。

3.难度:

容易

答案:

错误

知识点:

确定数组中是否含有某个关键字的过程叫做查找。

4.难度:

容易

答案:

错误

知识点:

一个数组只能存放同一类型的数值。

5.难度:

容易

答案:

错误

知识点:

一个数组下标应为整数或整数表达式。

6.难度:

容易

答案:

错误

知识点:

因为数组的单个基本数据类型元素以值调用方式传递。

如果将整个数组传递给方法,数组元素的任何变化都将反映在原来数组上。

另外,如数组单个元素是类的对象,传递单个元素也以引用调用形式传递给方法,对象的改变将反映在原数组元素上。

7.难度:

容易

答案:

正确

知识点:

数组的使用。

8.难度:

容易

答案:

正确

知识点:

数组的概念。

9.难度:

适中

答案:

错误

知识点:

在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小由初始值表中的数据个数决定。

10.难度:

容易

答案:

错误

知识点:

将一个数组传递给一个方法,应使用不加方括号的数组名。

第五章选择题答案

1.难度:

容易

答案:

B

知识点:

线性表和表可以存储在数组中。

2.难度:

容易

答案:

AB

知识点:

数组元素之所以相关,是因为它们具有相同的名字和类型。

3.难度:

容易

答案:

B

知识点:

二维数组使用双下标。

4.难度:

容易

答案:

C

知识点:

静态数组arr已经被初始化为0。

5.难度:

容易

答案:

A

知识点:

数组arr不是静态数组,在方法main()中没有被直接访问。

6.难度:

容易

答案:

C

知识点:

不允许在数组名后面的括号内指定数组元素的个数。

7.难度:

适中

答案:

CD

知识点:

“”表示数组元素为空。

8.难度:

适中

答案:

D

知识点:

一旦数组被创建则它的元素就被初始化为0

9.难度:

适中

答案:

ABC

知识点:

可以用初始值来创建数组p,选项D书写不合法。

10.难度:

适中

答案:

CD

知识点:

数组t的长度位,它的下标是0和1,则使用t[2]和t[3]是不对的。

第五章程序设计题答案

1.难度:

答案:

源程序:

Paixu.java

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassPaixuextendsAppletimplementsActionListener

{

finalStringSORT_METHOD_NAME[]={"冒泡排序","选择排序"};

Labelprompt=newLabel("请输入欲排序的字符串(最多10个):

");

TextFieldinput=newTextField(5);

ButtonsortBubbleBtn=newButton(SORT_METHOD_NAME[0]);

ButtonsortSelectBtn=newButton(SORT_METHOD_NAME[1]);

String[]OrigArray=newString[10];//保存排序前顺序的数组

String[]DataArray=newString[10];//保存待排序数据的数组

intDataInputed=0;//已输入数据的统计

String[][]SortPro=newString[11][10];//保存排序过程的二维数组

publicvoidinit()//初始化

{

for(inti=0;i<10;i++)

{

DataArray[i]="";

OrigArray[i]="";

SortPro[10][i]="";

for(intj=0;j<10;j++)

SortPro[i][j]="";

}

add(prompt);

add(input);

add(sortBubbleBtn);//将提示,输入区域,按钮加入Applet

add(sortSelectBtn);

input.setText("");

input.addActionListener(this);

sortBubbleBtn.addActionListener(this);

sortSelectBtn.addActionListener(this);

}

publicvoidpaint(Graphicsg)//打印排序全过程

{

for(inti=0;i

for(intj=0;j

//二维数组第i行中的数据个数

{

//try

//{

g.drawString(SortPro[i][j],10+80*j,40+20*i);

//}

//catch(NullPointerExceptionnpe)

//{

//System.out.println(i+","+j);

//}

}

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==input)//用户在input中输入并回车时

{//记录数据

DataArray[DataInputed]=input.getText();

OrigArray[DataInputed]=DataArray[DataInputed];

DataInputed++;

if(DataInputed<10)

{

prompt.setText("已输入"+DataInputed+"个字符串,请继续");

input.setText("");//准备输入下一个数据

}

else//已输入10个数据

{

prompt.setText("已输入10个字符串,不能再输入了");

input.setVisible(false);//隐藏其输入区域

}

}

if(e.getSource()==sortBubbleBtn)

//用户单击按钮,启动排序过程

{

for(inti=0;i

SortPro[0][i]=DataArray[i];

BubbleSortProcedure();//调用冒泡排序方法

repaint();

for(inti=0;i

DataArray[i]=OrigArray[i];//恢复排序前的乱序

}

if(e.getSource()==sortSelectBtn)

{

for(inti=0;i

SortPro[0][i]=DataArray[i];

SelectSortProcedure();//调用选择排序方法

repaint();

for(inti=0;i

DataArray[i]=OrigArray[i];//恢复排序前的乱序

}

}

voidBubbleSortProcedure()//冒泡排序方法

{

intpass,i,exchangeCnt;

Stringtemp="";

for(pass=0;pass

{

exchangeCnt=0;//记录本轮两两交换的次数

for(i=0;i

{//每次扫描比较范围缩小一个

if(DataArray[i].compareToIgnoreCase(DataArray[i+1])>0)//一次两两比较交换过程

{

temp=DataArray[i];

DataArray[i]=DataArray[i+1];

DataArray[i+1]=temp;

exchangeCnt++;

}

}

for(i=0;i

SortPro[pass+1][i]=DataArray[i];

//记录本轮扫描后数据排列情况

if(exchangeCnt==0)

//若一次也未交换,则说明已完全排好序,不必再循环

return;

}

}

voidSelectSortProcedure()//选择排序方法

{

intpass,i,k;

Stringtemp="";

for(pass=0;pass

//选择多次,有序子列在增长

{

for(i=pass,k=i;i

//一次选择过程,无序子列在减少

if(DataArray[i].compareToIgnoreCase(DataArray[k])<0)//选择剩余未排序数据中的最小者

k=i;

temp=DataArray[pass];//排在剩余数据的最前面

DataArray[pass]=DataArray[k];

DataArray[k]=temp;

for(i=0;i

SortPro[pass+1][i]=DataArray[i];

//记录本轮选择后数据排列情况

}

}

}

知识点:

冒泡排序和选择排序方法的使用。

2.难度:

答案:

源程序:

Paixu.java

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassPaixuextendsAppletimplementsActionListener

{

finalStringSORT_METHOD_NAME[]={"冒泡排序","桶排序"};

Labelprompt=newLabel("请输入欲排序的字符串(最多10个):

");

TextFieldinput=newTextField(5);

ButtonsortBubbleBtn=newButton(SORT_METHOD_NAME[0]);

ButtonsortSelectBtn=newButton(SORT_METHOD_NAME[1]);

String[]OrigArray=newString[10];//保存排序前顺序的数组

String[]DataArray=newString[10];//保存待排序数据的数组

intDataInputed=0;//已输入数据的统计

String[][]SortPro=newString[11][10];//保存排序过程的二维数组

publicvoidinit()//初始化

{

for(inti=0;i<10;i++)

{

DataArray[i]="";

OrigArray[i]="";

SortPro[10][i]="";

for(intj=0;j<10;j++)

SortPro[i][j]="";

}

add(prompt);

add(input);

add(sortBubbleBtn);//将提示、输入区域、按钮加入Applet

add(sortSelectBtn);

input.setText("");

input.addActionListener(this);

sortBubbleBtn.addActionListener(this);

sortSelectBtn.addActionListener(this);

}

publicvoidpaint(Graphicsg)//打印排序全过程

{for(inti=0;i

for(intj=0;j

//二维数组第i行中的数据个数

{

try

{

g.drawString(SortPro[i][j],10+80*j,40+20*i);

}catch(NullPointerExceptionnpe)

{

System.out.println(i+","+j);

}

}

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==input)//用户在input中输入并回车

{//记录数据

DataArray[DataInputed]=input.getText();

OrigArray[DataInputed]=DataArray[DataInputed];

DataInputed++;

if(DataInputed<10)

{

prompt.setText("已输入"+DataInputed+"个字符串,请继续");

input.setText("");//准备输入下一个数据

}

else//已输入10个数据

{prompt.setText("已输入10个字符串,不能再输入了");

input.setVisible(false);//隐藏其输入区域

}

}

if(e.getSource()==sortBubbleBtn)

//用户单击按钮,启动排序过程

{

for(inti=0;i

SortPro[0][i]=DataArray[i];

BubbleSortProcedure();//调用冒泡排序方法

repaint();

for(inti=0;i

DataArray[i]=OrigArray[i];//恢复排序前的乱序

}

if(e.getSource()==sortSelectBtn)

{

for(inti=0;i

SortPro[0][i]=DataArray[i];

BucketSortProcedure();//调用桶排序方法

repaint();

for(inti=0;i

DataArray[i]=OrigArray[i];//恢复排序前的乱序

}

}

voidBubbleSortProcedure()//冒泡排序方法

{

intpass,i,exchangeCnt;

Stringtemp="";

for(pass=0;pass

{

exchangeCnt=0;//记录本轮两两交换的次数

for(i=0;i

{//每次扫描比较范围缩小一个

if(DataArray[i].compareToIgnoreCase(DataArray[i+1])>0)//一次两两比较交换过程

{

temp=DataArray[i];

DataArray[i]=DataArray[i+1];

DataArray[i+1]=temp;

exchangeCnt++;

}

}

for(i=0;i

SortPro[pass+1][i]=DataArray[i];

//记录本轮扫描后数据排列情况

if(exchangeCnt==0)

//若一次也未交换,则说明已完全排好序,不必再循环

return;

}

}

voidBucketSortProcedure()//桶排序方法

{//暂时将字符范围限定在128个ASCII码内,最后一列保存这一行的数据个数

Stringbucket[][]=newString[128][DataInputed+1];

intpass=0;//扫描轮数计数

for(inti=0;i<128;i++)

for(intj=0;j

bucket[i][j]="";

intstrLength=0,doo=0;

StringBuffersb;

//补足参差的字符串,使大家长度相同

for(inti=0;i

strLength=Math.max(strLength,DataArray[i].length());

for(inti=0;i

if(DataArray[i].length()

{

sb=newStringBuffer(DataArray[i]);

for(intj=0;j

sb.append((char)doo);

DataArray[i]=sb.toString();

}

do

{

for(inti=0;i<128;i++)

{

bucket[i][DataInputed]="0";

}

for(inti=0;i

{

intch;

if(DataArray[i].length()-1>=pass)

ch=DataArray[i].charAt(DataArray[i].length()-1-pass);

else

ch=0;

if(ch>=128||ch<0)

{

showStatus("输入的字符超出了处理范围,只能处理ASCII字符串。

");

return;

}

//去除大小写的影响

if(ch>='A'&&ch<='Z')

{

System.out.println(ch+","+(char)ch);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1