当前位置:文档之家› 数组_参考答案

数组_参考答案

数组_参考答案
数组_参考答案

一、【必做题】

1.编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。

/*例5-1

*数组使用范例

*/

public class ArrayDemo

{

public static void main(String[] args)

{

int[] buffer=new int[5];

buffer[0]=10;

buffer[1]=20;

buffer[2]=30;

buffer[3]=40;

buffer[4]=50;

for(int i=0;i<5;i++)

{

}

}

}

2.输出一个double型二维数组(长度分别为5、4,值自己设定)的值。

/*例5-3

*多维数组范例

*/

public class ArrayTwoDimension

{

public static void main(String[] args)

{

double[][] buffer=new double[5][4];

for(int i=0;i<;i++)

{

for(int j=0;j

{

}

}

}

}

3.将一个字符数组的值(neusofteducation)考贝到另一个字符数组中。

public class ArrayCopyDemo {

public static void main(String[ ] args) {

;

public class Answer {

public static void main(String[] args) {

int i, min, max, n, temp1, temp2;

int a[];

"输入数组的长度:");

Scanner keyboard = new Scanner;

n = ();

a = new int[n];

for (i = 0; i < n; i++) {

"输入第" + (i + 1) + "个数据");

a[i] = ();

}

将一个数组中的重复元素保留一个其他的清零。

public class Answer {

public static void main(String[] args) {

int[] a = { 1, 2, 2, 3, 4, 5, 6, 4, 7 ,2 ,10};

for (int i = 0;i < - 1;i ++){

for (int j = i + 1;j < ;j ++){

if (a[i] == a[j]){

a[j] = 0;

}

}

}

}

}

10、写一个方法,功能:定义一个一维的int 数组,长度为3,把任意三个整数a,b,c赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)

public static void sort(int[] data) {

ength-1;j++){

if(j>=1&&i>1)

m[i][j]=m[i-1][j-1]+m[i-1][j];

}

}

for(int i=0;i<;i++){

for(int j=0;j

'\t');

}

}

}

public static void main(String[] args) {

Scanner scan = new Scanner;

int num = ();

new Answer().fun(num);

}

}

3、二维数组的排序,每一个一维数组单独排序

int[][] a = { { 23, 1, 34 }, { 77, 89, 12, 35 }, { 23, 20 } };

for (int k = 0;k < ;k ++){

for (int i = 0;i < a[k].length - 1;i ++){

for (int j = 0;j < a[k].length - 1 - i;j ++){

if (a[k][j] > a[k][j + 1]){

int temp = a[k][j];

a[k][j] = a[k][j + 1];

a[k][j + 1] = temp;

}

}

}

}

4.求一个3*3矩阵对角线元素之和

public class Answer {

public static void main(String[] args) {

int[][] a = {{1,2,3},{4,5,6},{7,8,9}};

int sum1 = 0;

int sum2 = 0;

for (int i = 0;i < ;i ++){

for (int j = 0;j < a[i].length;j ++){

if (i == j)

sum1 += a[i][j];

if (i + j == 2)

sum2 += a[i][j];

}

}

"对角线1:" + sum1 + ",对角线2:" + sum2);

}

5、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 (不使用数学公式,要求用递归)

double first=2,second=1,temp=0,sum=0;

for(int i=0;i<20;i++)

{

temp = first;

"/"+second+"+");

sum=sum+first/second;

first=first+second;

second = temp;

}

"="+sum);

6.有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。例如1 2 3 4 5 6 7 移动4个就变成4 5 6 7 1 2 3

/**

*@param args

*/

public static final int N =7;

public static void main(String[] args) {

int[] a = new int[N];

Scanner s = new Scanner;

"please input array a, ten numbers:");

for(int i=0; i<; i++) {

a[i] = ();

}

"please input m , one number:");

int m = ();

int[] b = new int[N];

for(int i=N-m,j=0; i

b[j] = a[i];

}

for(int i=0; i<; i++) {

+ " ");

}

for(int i=0,j=m; j

b[j] = a[i];

}

for(int i=0; i<; i++) {

+ " ");

}

}

6.

有2个多维数组分别是 2 3 4 和 1 5 2 8

4 6 8

5 9 10 -3

2 7 -5 -18

按照如下方式进行运算。生成一个2行4列的数组。此数组的第1行1列是2*1+3*5+4*2第1行2列是2*5+3*9+4*7 第2行1列是4*1+6*5+8*2 依次类推。

package class Array2 {

/**

*@param args

*/

public static void main(String[] args) {

int a[][] = { { 2, 3, 4 }, { 4, 6, 8 } };

int b[][] = { { 1, 5, 2, 8 }, { 5, 9, 10, -3 }, { 2, 7, -5, -18 } };

for(int k=0;k<;k++){

for(int i=0;i

int num = 0;

for(int j=0;j<;j++){

num += a[k][j]*b[j][i];

}

" ");

}

"");

}

}

}

Java集合类知识点总结

Java集合类 Java集合类 (1) 1.Map (3) 1.1.HashMap (3) 1.1.1.底层实现 (3) 1.1.2.特点 (3) 1.1.3.源码分析 (4) 1.1.4.多线程可能出现的问题 (5) 1.2.ConcurrentHashMap (6) 1.2.1.底层实现 (6) 1.2.2.源码分析 (7) 1.3.HashTable (9) 1.3.1.HashTable是线程安全的,因为所有方法上都加了synchronized关键 字。9 1.3.2.HashTable的key和value都不可以为null。 (9) 1.3.3.扩容时,capacity=2*capacity+1 (9) 1.3.4.数组默认大小为11 (9) 1.3.5.查找下标时,没有使用hash&length-1,而是直接进行计算的 (9) 1.4.TreeMap (9) 1.4.1.底层实现为红黑树 (9) 1.4. 2.TreeMap是一个有序的key-value集合,基于红黑树实现。该映射根据 其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序 (10) 1.4.3.接口实现 (10) 1.4.4.Entry (11) 1.5.LinkedHashMap (11) 1.5.1.底层是数组+链表+红黑树+双向链表 (11) 1.5.2.维护链表顺序和访问顺序 (11) 1.5.3.LinkedHashMap 可以通过构造参数 accessOrder 来指定双向链表是否在 元素被访问后改变其在双向链表中的位置。 (11) 1.5.4.当accessOrder为true时,get方法和put方法都会调用recordAccess 方法使得最近使用的Entry移到双向链表的末尾;当accessOrder为默认值 false时,recordAccess方法什么也不会做。 (11) 1.5.5.LRU实现 (11) 2.Collection (11) 2.1.List (12) 2.1.1.ArrayList (12) 2.1.2.LinkedList (13) 2.1.3.CopyOnWriteArrayList (13) 2.2.Set (14) 2.2.1.HashSet (14)

C语言练习3(数组)=参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0] B) a[1] C) a[9] D) a[10] 9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )? A) a[8] 的值为0 B) a[1] 的值为1 C) a[3] 的值为4 D) a[9] 的值为0 10. 指出以下错误语句( A ).

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { char str[]="SSSWLIA",c; int k; for(k=2;(c=str[k]!='\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0;

java集合类总结

1.本讲内容:集合collection (数组和集合90%功能相似,但是最大的区别是,数组在初始化的时候必须确定大小,而集合不用,而且集合是一堆的类,使用起来非常方便。) 讲集合collection之前,我们先分清三个概念: 1colection 集合,可用来存储任何对象的一种数据结构(容器)。 2Collection 集合接口,指的是,是Set、List 和Queue 接口的超类接口 3Collections 集合工具类,指的是类。 SCJP考试要求了解的接口有:Collection , Set , SortedSet , List , Map , SortedMap , Queue , NavigableSet , NavigableMap, 还有一个Iterator 接口也是必须了解的。 SCJP考试要求了解的类有:HashMap , Hashtable ,TreeMap , LinkedHashMap , HashSet , LinkedHashSet ,TreeSet , ArrayList , Vector , LinkedList , PriorityQueuee , Collections , Arrays 下面给出一个集合之间的关系图: 上图中加粗线的ArrayList 和HashMap 是我们重点讲解的对象。下面这张图看起来层级结构更清晰些。 我们这里说的集合指的是小写的collection,集合有4种基本形式,其中前三种的父接口是Collection。 4List 关注事物的索引列表 5Set 关注事物的唯一性 6Queue 关注事物被处理时的顺序 7Map 关注事物的映射和键值的唯一性 一、Collection 接口 Collection接口是Set 、List 和Queue 接口的父接口,提供了多数集合常用的方法声明,包括add()、remove()、contains() 、size() 、iterator() 等。 add(E e) 将指定对象添加到集合中 remove(Object o) 将指定的对象从集合中移除,移除成功返回true,不成功返回false contains(Object o) 查看该集合中是否包含指定的对象,包含返回true,不包含返回flase size() 返回集合中存放的对象的个数。返回值为int clear() 移除该集合中的所有对象,清空该集合。 iterator() 返回一个包含所有对象的iterator对象,用来循环遍历 toArray() 返回一个包含所有对象的数组,类型是Object toArray(T[] t) 返回一个包含所有对象的指定类型的数组 我们在这里只举一个把集合转成数组的例子,因为Collection本身是个接口所以,我们用它的实现类ArrayList做这个例子:例子1: package edu.xjfu;

数组习题及参考答案

第七章数组 一、单项选择题 1.若有说明“int a[3][4]={0};”,则下面正确的是_____。 A.只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a各元素都可得到初值,但其值不一定是0 D. 数组a中每个元素均可得到初值0 2.以下不能正确定义二维数组的选项是_____。 A. int a[2][2]={{1},{2}} B. int a[2][2]={{1},2,3} C. int a[2][]={{1,2},{3,4}} D. int a[][2]={1,2,3,4} 3.在下列对字符数组进行初始化中正确的是_____。 A.char s1[]=”abcd” B.char s2[3]=”xyz” C.char s3[][]={…a?,?x?,?y?} D.char s4[2][3]={“xyz”,”mnp”} 二、写出下列程序的运行结果 有以下程序: 1. #include int main () {

int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) { t=a[i];j=i-1; while(j>=0&&t>a[j]) { a[j+1]=a[j]; a[j]=t; j--; } } for(i=0;i<5;i++) { cout<

Java中的集合类

Java中的集合类 (Collection framework)我们在前面学习过java数组,java数组的程度是固定的,在同一个数组中只能存放相同的类型数据。数组可以存放基本类型的数据,也可以存入对象引用的数据。 在创建数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能改变,在许多应用的场合,一组数据的数目不是固定的,比如一个单位的员工数目是变化的,有老的员工跳槽,也有新的员工进来。 为了使程序方便地存储和操纵数目不固定的一组数据,JDK中提供了java集合类,所有java集合类都位于java.util包中,与java数组不同,java集合类不能存放基本数据类型数据,而只能存放对象的引用。 Java集合类分为三种 Set(集合):集合中对象不按特定的方式排序。并且没有重复对象,但它有些实现类中的对象按特定方式排序。--无序,不能重复 List(列表):集合中的对象按照检索位置排序,可以有重复对象,允许按照对象在集中的索引位置检索对象,List和数组有些相似。--有序,可以重复 Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复,它的有些实现类能对集合中的键对象进行排序。 Java的主要集合类的框架图 Collection和Iterator接口 在Collection接口中声明了适用于java集合(只包括Set和List)通用方法。 Collection接口的方法 方法描述

boolean add(Object o) 向集合中加入一个对象的引用 void clear( ) 删除集合中所有对象,即不再对持有对象的引用boolean contains(Object o) 判断在集合中是否含有特定对象的引用 boolean isEmpty() 判断集合是否为空 Iterator iterator( ) 返回一个Iterator对象,可用它来遍历集合中的元素boolean remove(Object o) 从集合中删除一个对象的引用 int size( ) 返回集合中元素的数目 Object [ ] toArray() 返回一个数组,该数组包含集合中的所有元素 Set接口和List即可都继承了Collection接口,而Map接口没有继承Collection接口,因此可以对Set对象和List对象调用以上方法,但是不能对Map对象调用以上方法。Collection接口的iterator()和toArray()方法多用于获得集合中的所有元素,前者返回一个Iterator对象,后者返回一个包含集合中所有元素的数组。 Iterator隐藏底层集合的数据结构,向客户程序提供了遍历各种类型的集合的统一接口。Iterator接口中声明了如下方法: ●hasNext():判断集合中的元素是否遍历完毕,如果没有,就返回true。 ●next():返回下一个元素 ●remove():从集合中删除上一个由next()方法返回的元素。 注意:如果集合中的元素没有排序,Iterator遍历集合中元素的顺序是任意的,并不一定与像集合中加入的元素的顺序一致。 Set(集) Set是最简单的一种集合,集合中的对象不按特定方式排序,并没有重复对象。Set接口主要有两个实现类:HashSet类还有一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据结构,链表数据结构能提高插入核算出元素的性能。TreeSet类实现了SortedSet接口中,具有排序功能。 List(列表) List的主要特征使其元素已先行方式存储,集合中允许存放重复对象。List接口主要的实现类包括: ●ArrayList—ArrayList代表长度可变的数组。允许对元素进行快速的随机访问,但是向 ArrayList中插入与删除元素的速度较慢。 ●LinkedList—在实现中采用链表数据结构。对顺序访问进行了优化,向List中插入和 删除元素的速度较快,随机访问速度则相对较慢,随机访问是指检索位于特定索引位置元素。 Map(映射) Map(映射)是一种吧键对和值对象进行映射的集合。它的每一个元素都包含一对键对象和值对象,而之对象仍可以是Map类型。以此类推,这样就形成了多级映射。向Map集合中加入元素时,必须提供一对键对象和值对象,从Map集合上检索元素只要给出键对象,就会返回值对象。 实例1 CollectionAll.java

数组典型例题及参考答案

第7章数组 7-1输入一个正整数n(1≤n≤10),再输入n个整数 (1)输出最大数和最小数,并输出平均值。 (2)将最小数与第一个数交换,最大数与最后一个数交换,然后输出交换后的结果。 (3)输出所有比平均值大的数。 (4)找到最接近平均值的数。(提示:考虑差的绝对值)

/* 将最小数与第一个数交换,最大数与最后一个数交换*/ t=a[0]; a[0]=a[q]; a[q]=t; t=a[N-1]; a[N-1]=a[p]; a[p]=t; printf("After exchange: "); for(i=0; iave) printf("%d ", a[i]); /* 找到最接近平均值的数*/ printf("\nThe number closest to the average is: "); sub = a[0]>ave? a[0]-ave: ave-a[0]; p=0; for(i=1; iave? a[i]-ave: ave-a[i]) < sub ) { sub = a[i]>ave? a[i]-ave: ave-a[i]; p=i; } } printf("%d.", a[p]); } Output Please input 10 integers: 17 34 -11 2 5 10 7 -9 0 25 /* input */ The maximum is: 34, the minimum is: -11, the average is 8.00 After exchange: -11 25 17 2 5 10 7 -9 0 34 Larger than the average: 25 17 10 34 The number closest to the average is: 7 7-2输入一个日期(按照year-month-day格式),计算该日期为当年的第几天。 (提示:注意闰年)

Java中集合类用法总结

帮助 | 留言交? | 登录 首页我的图书馆主题阅读精彩目录精品文苑Tags 会员浏览好书推荐 以文找文 如何对文章标记,添加批注? Java 中集合?用法总结(转载) wade0564 收录于2010-07-08 阅读数:查看 收藏数:7 公众公开 原文来源 tags : java 集合类 欢迎浏览 wade0564 个人图书馆中收藏的文章,想收藏这篇好文章吗,赶快 吧,1分钟拥有自己的个人图书馆! 我也要收藏 举报 Java 中集合?用法总结 收藏 Collection ├List │├LinkedList │├ArrayList (异步,线程不安全,空间用完时自动增长原容量一半)│└Vector (同 步,线程安全,空间用完时自动增长原容量一倍)│ └Stack └Set ├HashSet └TreeSet Map ├Hashtable ├HashMap ├WeakHashMap └TreeMap Map 接口: | + -- WeakHashMap: 以弱键 实现的基于哈希表的 Map 。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条 | 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为 可终止的,被终 | 止,然后被回收。丢弃某个键时, 其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。此实现 | 不是同步的。 | + -- TreeMap:该映射根据其键的自然顺序进行 排序,或?根据创建映射时提供的 Comparator 进行 排序,具体取决于使用的 | 构造方法。此实现不是同步的。 | + -- HashMap:基于哈希表的 Map 接?的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了 | 非同步和允许 使用 null 之外,HashMap 类与 Hashtable ?致相同。)此类不保证映射的顺序,特别是它不保证该顺 | 序恒久不变。此实现不是同步的。 | +-- SortedMap: 进一步提供关于键的总体排序 的 Map 。该映射是根据其键的自然顺序进 行排序的,或?根据通常在创建有 序映射时提供的 Comparator 进行排序。对有序映射的 collection 视图(由 entrySet 、keySet 和 values 方法返回 )进行迭代时,此顺序就会反映 出来。要采用此排序方式,还需要提供一些其他操作(此接?是 SortedSet 的对应映 射)。 Collection 接口: | 热点推荐 中国经典汤品——广东汤常用多音字汇总 如果你失恋。。。这些话...影响世界的100个管理定律汽车发动机?作过程和原理分析温家宝总理答中外记?问女人味,有多少男人可以读懂?珍稀的白头叶猴(组图)三鹿门事件之——中国,...国家公务员职务与级别当代古筝四美 付娜《渔...生活?秘方 真的很实用...哲理?品:守护梦想聚会时可以玩的?游戏依赖型人格障碍的表现和治疗经典妙语,十分精彩江边施救[贴图]李一男2003年在港湾...电脑速度慢的解决方法 ...重装系统后必须做的10件?事

Java数组练习题(带答案)

一填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈(堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是____ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__B__ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

数组的综合应用例子

数组的综合应用例子 时间:2009-6-19 8:54:45 点击:1409 数组的综合应用 为了加深对数组的理解,下面结合一些常用算法的编程来更加深入地学习和使用数组。由于一维数组和二维数组是程序设计中最常用的数组形式,因此这里的举例均为一维和二维数组。 1.数组元素的输入和输出 [例5-12] 由用户输入5个数组元素的值并把它们输出在窗体上。 Option Explicit Private Sub Command1_Click() Dim a(1 To 5) As Integer, i As Integer For i=1 To 5 a(i)=InputBox("请输入第" & Str(i) & "个元素") Next For i=1 To 5 Print "a (";i; ")="; a(i) Next End Sub 程序运行后,单击命令按钮,执行事件过程Command1_Click。若输入5个值10,20,30,40,50,则窗体上显示的输出结果是: a(1)=10 a(2)=20 a(3)=30 a(4)=40 a(5)=50 程序中声明了一个具有5个元素的一维整型数组,分别用循环语句输入、输出数组元素的值。在循环体内,数组元素用循环控制变量i作下标,i值的不同就表示数组元素的不同。在程序中引用数组元素时,其下标可以使用表达式。只要表达式的结果不超出数组定义的上界和下界范围,下标表达式就是合法的。例如本例中,若i=2,则: a(i+1)的值为30; a(a(i+3)\10)的值为50。 下标表达式的值还可以是实数,此时VB将自动对其进行四舍五入取整。例如: a(1+0.4)的值是10; a(2+0.5)的值30。 2.数组元素插入删除

JAVA中的集合类

为什么要使用集合类 当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。 理解集合类 集合类存放于java.util包中。 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。 集合类型主要有3种:set(集)、list(列表)和map(映射)。 (1)集 集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。 对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。 集也有多种变体,可以实现排序等功能,如TreeSet,它把对象添加到集中的操作将变为按照某种比较规则将其插入到有序的对象序列中。它实现的是SortedSet接口,也就是加入了对象比较的方法。通过对集中的对象迭代,我们可以得到一个升序的对象集合。(2)列表 列表的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。 列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。关于实现列表的集合类,是我们日常工作中经常用到的,将在后边的

笔记详细介绍。 (3)映射 映射与集或列表有明显区别,映射中每个项都是成对的。映射中存储的每个对象都有一个相关的关键字(Key)对象,关键字决定了对象在映射中的存储位置,检索对象时必须提供相应的关键字,就像在字典中查单词一样。关键字应该是唯一的。 关键字本身并不能决定对象的存储位置,它需要对过一种散列(hashing)技术来处理,产生一个被称作散列码(hash code)的整数值,散列码通常用作一个偏置量,该偏置量是相对于分配给映射的内存区域起始位置的,由此确定关键字/对象对的存储位置。理想情况下,散列处理应该产生给定范围内均匀分布的值,而且每个关键字应得到不同的散列码。 集合类简介 java.util中共有13个类可用于管理集合对象,它们支持集、列表或映射等集合,以下是这些类的简单介绍 集: HashSet:使用HashMap的一个集的实现。虽然集定义成无序,但必须存在某种方法能相当高效地找到一个对象。使用一个HashMap对象实现集的存储和检索操作是在固定时间内实现的. TreeSet:在集中以升序对对象排序的集的实现。这意味着从一个TreeSet对象获得第一个迭代器将按升序提供对象。TreeSet类使用了一个TreeMap.

C语言数组练习及答案

第四部分数组 4. 1 选择题 1.以下关于数组的描述正确的是(c ) 。 A.数组的大小是固定的,但可以有不同的类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 2.以下对一维整型数组a的正确说明是(d )。 a(10); B. int n=10,a[n]; n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3.在C语言中,引用数组元素时,其数组下标的数据类型允许是(c)。 A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 4.以下对一维数组m进行正确初始化的是(c )。 A.int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5.若有定义:int bb[ 8] ;。则以下表达式中不能代表数组元bb[1] 的地址的是(c ) 。 A.&bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6.假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4}; ,则数组x 在内存中所占字节数是(d ) 。 A. 3 B. 6 C. 10 D. 20 7.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A.a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8.以下程序段给数组所有的元素输入数据,请选择正确答案填入(a ) #include<> main() { int a[10],i=0; while(i<10) scanf("%d", _______ );

C语言数组练习及答案

第四部分数组 4.1 选择题 1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是(d )。 A.int a(10); B. int n=10,a[n]; C.int n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 页脚内容1

4. 以下对一维数组m进行正确初始化的是(c )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); 页脚内容2

C#基本类型库-集合和数组习题.doc

C#基本类型库?集合和数组 1.以下的C#程序:运行后数组A中的数值为()。 public static void Main() { int[] A=new intf51{ 1,2, 3,4,5 }; Objectf l B = new Object[习{ 6, 7, & 9, 10 }; Array.Copy( A, B、2 ); } a) 1 、2、3、 4、 5 b) 1 、28、 9、 10 c)1 、2、3、 9、 10 d )6 、 7、8、 9、 10 2.以下的C#程序:运行输出为()。 using System; using System.Collections; public class SamplesHashtable { public static void Main() { Hashtable myHT = new Hashtable(); myHT.Add(”A”, ”AA”); myHT.Add(”B”, ”BB“);myHT.Add(”C”,”CC“); Console.WriteLine(myHT.Count); myHT.Remove(” BB“); Console.WriteLine(myHT.Count); 1 } a)3 3 b)3 2 c)2 2 d)运行时错误,提示无效的键值 3.在.Net屮,ArrayList对象位于()命名空间内。 a)System.Array b)System.IO c)System.CoHection d)System.RunTime 4.阅读以下的C#代码: Class Classi Public static void doArr(int[J arr,out int k)

Java数组练习题(带答案)

一填空题 1)数组得元素通过下标来访问,数组Array得长度为 Array、length 。 2)数组复制时,"="将一个数组得引用传递给另一个数组。 3)JVM将数组存储在栈 (堆或栈)中。 4)数组得二分查找法运用得前提条件就是数组已经排序。 5)Java中数组得下标得数据类型就是整型。 6)数组最小得下标就是 0 。 7)arraycopy()得最后一个参数指明复制元素得个数。 8)向方法传递数组参数时,传递得就是数组得引用。 9)数组初始化包括数组得申明,创建与初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组得默认值就是 0、0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误得初始化语句就是_ABD__ A、 char str[]="hello"; B、 char str[100]="hello"; C、 char str[]={'h','e','l','l','o'}; D、 char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误得引用就是_B__ A、 a[0]=1; B、 a[10]=2; C、 a[0]=5*2; D、 a[1]=a[2]*a[0]; 3.下面得二维数组初始化语句中,正确得就是____ A、 float b[2][2]={0、1,0、2,0、3,0、4}; B、 int a[][]={{1,2},{3,4}}; C、 int a[2][]= {{1,2},{3,4}}; D、 float a[2][2]={0}; 4.引用数组元素时,数组下标可以就是_D___ A、整型常量 B、整型变量 C、整型表达式 D、以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前得数组元素个数为____ A、 24 B、 25 C、 18 D、 17 6.下列初始化字符数组得语句中,正确得就是__B__ A、 char str[5]="hello"; B、char str[]={'h','e','l','l','o','\0'}; C、 char str[5]={"hi"}; D、 char str[100]=""; 7.数组在Java中储存在 C 中 A、栈 B、队列 C、堆 D、链表 8.下面程序得运行结果就是____ main() { int a[][]={{1,2,3},{4,5,6}}; System、out、printf("%d", a[1][1]); } A、 3 B、 4 C、 5 D、 6 9.下面程序得运行结果就是_C___

C语言数组实例

一维 数组求平均值 main() {float b,s=0.0,aver,a[6]; int i; for(i=0;i<6;i++) scanf(%f,&a[i]); for(i=0;i<6;i++) s=s+a[i]; aver=s/6.0; printf(%f\n,aver); } 求数组中的最大值 main() {float max,s=0.0,a[6]; int i; for(i=0;i<6;i++) scanf(%f,&a[i]); max=a[0]; for(i=1;i<6;i++) if(maxa[i]) {min=a[i];j=i;} 牰湩晴尨最大最小值分别在:%d,%d\n,k,j); for(i=0;i<5;i++) printf( %f \n,a[i]);

} 查找数组中有无此项 main() {float a[9]={21,12,34,23,54,67,65,13,87}; int s,i; /*for(i=0;i<9;i++) scanf(%f,&a[i]); printf(\ );*/ 牰湩晴尨请输入要查找的数:); scanf(%d,&s); for(i=0;i<9;i++) if(a[i]==s) 灻楲瑮?有此项\n);break;} if(i==9) 牰湩晴尨无此项\n); } 判断是否为回文 main() {char a[100]; int s,d,i; 牰湩晴尨请输入:); gets(a); //输入一个字符串 s=i=0; for(i=0;i<100;i++) if(a[i]=='\0') d=i; d--; for(s=0;s<=d;s++) if(s<=d&&a[s]==a[d]) d--; else break; if(s>d) printf(%s是回文.\n,a); else

数组教学案例

《数组》教学案例 一、教材分析 《数组》是高等教育出版社出版的《vb程序设计教程》中第五章的教学内容。本章系统讲解了数组的基本概念和作用;数组的定义和引用;Option Base 1 ( 或 0) 语句、Array函数的使用;静态数组与动态数组的概念,以及动态数组的使用(包括定义、重定义 ReDim 、Preserve );一维数组与多维数组的概念,以及多维数组的使用;变量数组与控件数组的概念,以及控件数组的使用;应用数组解决实际问题的常用算法(在数组中查询某个元素的位置;数组元素逆序存放;选择法 / 冒泡法的排序操作;求最大值 / 最小值及其位置)。 本章之前学习了vb语言基础、函数过程和子过程、三大基本结构等概念。《数组》该章共分五个小节8课时,该教学案例是第1、2课时的内容。 二、教学目标 知识目标: 了解数组的基本概念和作用;理解在程序中正确使用数组的重要意义。 能力目标: 掌握数组的定义和数组元素的引用;学会在程序中正确使用数组。 情感目标: 在学习中培养学生理论联系实际,通过数组的学习培养学生分析问题解决问题的能力,并学会如何将前后所学知识融会贯通。 三、教学重点、难点 重点:数组的概念、数组的声明、维数、下标 难点:应用数组解决实际问题 四、学生分析 本次案例的对象是103级的学生,他们经过之前计算机公共基础课程的学习,已经初步掌握了利用计算机进行学习的方式,他们适应了传统的学习方式,更希望尝试新的教学方式,可以在学习过程中,利用学习基础好的同学带动其他同学形成共同协作学习、个别自主学习的良好学习氛围。 五、教学安排和准备 计算机、凌波教学软件、示范程序、ppt演示文稿。

C++集合类

集合的概念在数学中,我们把具有某些共同特征的元素构成的一个整体称为集合.一个集合就是由同一种有序类型的一组数据元素所组成的,这一种有序类型称为该集合的基类型. 课堂练习:设计一个集合类numSet,存放有序的整型数序,其中的元素按从小到大的顺序排列并且不包含相同的元素,要求: 1)向数序中添加元素(过滤重复数据)并保持有序 2)从数序中查找数据元素并删除 分析: 数据成员: int count; //数序中元素的个数 int a[MAX]; //存放数序的数组 成员函数: void addnum(int n); //向有序数组中添加元素 v0id delenum(int n); //从有序数组中查找元素并删除 numSet( ) {count=0;} //构造函数 void disp ( ); //输出有序数组 测试数据:numSet set1,set2; set1.addnum(3); set1.addnum(2); set1.addnum(1); set1.disp( ); set1.delenum(2); set1.disp( ); 3)求两个整数数序的合并数序 分析:增加友元函数: friend numSet unionset(numSet &s1, numSet &s2); 返回s1与s2合并的结果 即:S={ s1,s2} s1: i=0 i using namespace std; const int MAX=20; class Numset { friend Numset unionset(Numset &s1,Numset &s2); //合并数序s1和s2 int count; int a[MAX];

相关主题
文本预览
相关文档 最新文档