文档库 最新最全的文档下载
当前位置:文档库 › 数组学习

数组学习

数组学习
数组学习

1、什么是数组

数组就是把数据组合起来以方便管理,在程序中运用数组可简化程序、提高效率。

学习数组并不难。我奶奶就是玩数组的高手,她到地里,用根红绳子将采下的辣椒一只一只串起来带回

家挂在门前那墙上,她把这串辣椒称为“红绳子”,墙上还有“大串”、“初一”、“五儿”……,现在我才明白,

那是数组名。中午,奶奶要我把红绳子第5颗辣椒摘下来,我不知道奶奶为什么要摘第5颗,反正我照

办就是,奶奶说,她要我摘“红绳子(5)”是想考考我数数的能力,晕,一二三四五,上山打老虎,我还能

数错吗?那年我已经四岁了。奶奶说话总喜欢用数组,好比“尚云嫂她家那七个孩子啊就是有出息!”,你

知道奶奶用哪个数组说话?如果还不知道,等会再告诉你。

3、像和尚数念珠一样把数组玩转

我们已经初步认识了数组,数组是把一组数保存到一个数组变量中,它有两个重要特征。

⑴它是一个变量,对一组数进行统一管理带来方便。上面建立的姓名数组,我们要把它写入到工作表区域A1向右连续元格中,可用命令:

Range(“a1:h1”)=cname

我们认识的这类数组,称为一维数组,一维数组是一个水平数组,相当于工作表中的行。如果要把姓名按垂直方向填元格,可转置命令。如,把这个数组写入到A1:A8单元格中:

Range(“a1:a8”)= WorksheetFunction.Transpose(cname)

练习:把数组cname分别写入到单元格C4:J4、D8:D15。

答案:数组入门02.xls

Private Sub CommandButton1_Click() '点击按钮C,运行本程序

cname = Array("林思明", "曾玉婷", "曾国文", "林伟权", "林兴发", "刘卓怀", "曾仙婷", "林平")

'把数组元素写入工作表c4单元格向右8个单元格内

Range("c4:j4") = cname

'或者

'Range("c4").Resize(1, 8) = cname

End Sub

Private Sub CommandButton2_Click() '点击按钮B,运行本程序

cname = Array("林思明", "曾玉婷", "曾国文", "林伟权", "林兴发", "刘卓怀", "曾仙婷", "林平")

Range("d8:d15") = WorksheetFunction.Transpose(cname)

'或者

'Range("d8").Resize(8, 1) = WorksheetFunction.Transpose(cname)

End Sub

Array()很好用,但有时Split()更好用,我们取出这瑞士军刀的第二利器。

Split()把一个文本,根据指定的分隔符,建立一个数组。

看一个实例:

单元格A1中有一串姓名:

朱清燕(女),林鑫,林秋静(女),林永鑫,林云艳(女),林嘉惠(女),曾文婷(女),林悦,陈诚,林伟健,赖紫岚(女),曾

雁(女),赖文强,钟娟(女),张琪(女),林文彬,黄晓婷(女),李朕,林依婷(女),林佳利(女),曾德福

要求:用Split(),把这串文本创建为一个数组:

QUOTE:

Sub test()

XM = Split(Range("a1"), ",")

End Sub

同样可以用本地窗口检查转换结果。

注意,Split()函数把文本转换成数组,并不受Option Base的影响,索引号总是从0开始。

很自然想知道,A1单元格中有多少个姓名?创建的数组有多少个元素?瑞士军刀中有把小尺子,可以量

一量:

Ubound()——返回数组的最大下标。

QUOTE:

Sub test()

xm = Split(Range("a1"), ",")

MsgBox "数组最大下标是" &UBound(xm) &Chr(13) _

& "数组共有" &UBound(xm) + 1 & " 个元素"

End Sub

6、由工作表区域创建数组。

与Array()和Split()相比,由工作表区域创建数组更加直观而简易,一个等号便解决问题:

如:用Sheet2工作表A1:E83的数据创建一个数组:

QUOTE:

Private Sub CommandButton1_Click()

arr = Sheet2.Range("a1:e83")

End Sub

如果把该数据复制到Sheet1工作表相同区域,用数组操作,代码如下:

QUOTE:

Private Sub CommandButton1_Click()

arr = Sheet2.Range("a1:e83")

Range("a1:e83") = arr

End Sub

共两句,前一句把数据保存到数组,第二句,把数组内容写入到工作表。

选择第3行代码,按F9设置断点。点击按钮运行代码,到该行,程序自动中断,此时,可从本地窗口中

观察到运行结果,一个83行2列的数组已经创建。

7、随心所欲创建数组

以上几种办法都是根据已有的数据创建数组。实际使用中,更多时候,程序需要先创建数组,然后对数组进行赋值和Private、Public、Dim、Static,这些语句都可声明数组变量,区别在于声明的数组的使用范围,可查看各语句的帮新建一个过程:

QUOTE:

Sub 声明数组()

Dim MyArray(10) '在过程中间声明一个数组,过程结束,本数组将被释放。

MyArray(1) = 100 '给数组赋值

MyArray(5) = 90

End Sub

按F8逐行运行程序,在本地窗口中可以看到数组MyArray()已成功创建。

8、进阶操作声明数组

⑴声明数组还可以根据需要自己指定下标和上标,而且不受Option Base 的影响:

QUOTE:

Sub 声明数组()

Dim cArr(11 To 20) ‘声明一个数组cArr,下标从11到20,共有10个元素。

cArr(11) = "上"

cArr(12) = "中"

cArr(13) = "下"

End Sub

数组的索引值还允许为负整数:

QUOTE:

Sub 声明数组()

Dim nArr(-10 To 10) ‘声明一个数组 nArr,下标从-10到10,共21个元素。

nArr(-10) = 123

nArr(-9) = 456

nArr(-2) = 789

End Sub

可变的下标给你的程序带来灵活性,推荐另一个函数:UBound()函数的姐妹花LBound()。

LBound()可以返回指定数组维可用的最小下标。如:

xb = LBound(nArr)

MsgBoxxb

⑵声明数组时,还允许像声明单值变量一样为数组指定为数据类型。

QUOTE:

Sub 声明数组()

Dim cArr(11 To 20) As String

cArr(11) = "上"

cArr(12) = "中"

cArr(13) = "下"

End Sub

As String 表示数组cArr()是一个字符型变量,在本地窗口中可以看到,没有赋值的元素默认为空文本。

QUOTE:

Sub 声明数组()

Dim nArr(-10 To 10) As Integer

nArr(-10) = 123

nArr(-9) = 456

nArr(-2) = 789

End Sub

As Integer表示数组nArr()是一个整型变量,在本地窗口中可以看到,没有赋值的元素默认为0。

没有指定类型的变量,默认为Variant,没有赋值的元素默认为“空值”。

如果要声明级别更高的变量,可使用Public语句。详见帮助

9、动态数组

以上声明的数组都属于“静态数组”,每个数组有确定的维数,每维有确定的最大下标。与之相对应的是动态数组。程数组的大小有时不是固定的,而是随数据的变化而变化。

声明数组的时候,不指定数组的维数与下标,这样的数组就是动态数组,在程序中可用命令Redim为动态数组变量重存储空间。

例:单元格A1中有一串姓名:

朱清燕(女),林鑫,林秋静(女),林永鑫,林云艳(女),林嘉惠(女),曾文婷(女),林悦,陈诚,林伟健,赖紫岚(女),曾雁(女

强,钟娟(女),张琪(女),林文彬,黄晓婷(女),李朕,林依婷(女),林佳利(女),曾德福

要求:把名单整理成两列,第一列是姓名,第二列是性别,把它输出到B:C两列。

与例4相同,用Split(),把这串文本创建为一个数组,然后根据这个数组的大小,创建另一个数组:

ReDimArr(1 To s, 1 To 2)

其中s是数组xm()的最大下标,xm()有多少行,Arr()就有多少行,列数为2,一列是姓名,另一列是性别。

参考:数组入门09.xls

允许使用ReDim语句反复地改变数组的元素以及维数的数目,请自己练习。

Private Sub CommandButton1_Click()

Dim Xm() As String, Arr() As String '声明两个动态数组,定义为字符型

Xm = Split(Range("a1"), ",") '把文本转换为数组

s = UBound(Xm) '求最大下标

ReDimArr(0 To s, 1 To 2) '改变动态数组的大小,共s行,2列

For i = 0 To s

If Right(Xm(i), 3) = "(女)" Then '如果后面三个字符是“(女)”

Arr(i, 1) = Left(Xm(i), Len(Xm(i)) - 3) '取前面的字符

Arr(i, 2) = "女"

Else

Arr(i, 1) = Xm(i)

Arr(i, 2) = "男"

End If

Next

Range("b6").Resize(s, 2) = Arr '把结果保存到工作表指定的单元格中

End Sub

10、对同一数组的反复定义

对同一数组反复改变大小的时候,也有规则必须遵守。如果数组中存在数据,再次定义的时候默认把原数据清除,重后的数组是一个空的数组。如果你要保留原来的数据,必须加上参数Preserve。使用Preserve参数又有一个限制,只变最后一维的大小,比如二维数组,只能改变第2维(列)的大小而不能改第1维(行)的大小。

还是使用上个示例,要求把A1单元格中的女同学的姓名整理成两列,第一列序号,第二列是姓名。

使用数组Arr()记录整理结果,我们在遍历原始数组xm()的时候,根据性别的判断即时改变Arr()的大小。但不能把数组定义为n行2列,第1列保存序号,第2列保存姓名,因为我们必须使用Preserve参数保留原来的数据,此时数组Ar 的第一维是不允许改变的。为了解决为个矛盾,我们可以把数组定义为2行n列,第一行记录序号,第二行记录姓名在程序过程中反复改变。

n = n + 1

ReDim Preserve Arr(1 To 2, 1 To n) '改变动态数组的大小,共2行,n列

数组第1行记录序号,第2行记录姓名:

Arr(1, n) = n

Arr(2, n) = Left(Xm(i), Len(Xm(i)) - 3)

对数组xm()遍历结束后,把结果写入工作表,因为数组的方向与结果要求的方向不一致,所以要加一个转置函数:Range("b6").Resize(n, 2) = WorksheetFunction.Transpose(Arr)

Private Sub CommandButton1_Click()

Dim Xm() As String, Arr() As String '声明两个动态数组,定义为字符型

Dim s As Integer, n As Integer

Xm = Split(Range("a1"), ",") '把文本转换为数组

s = UBound(Xm)

n = 0

For i = 0 To s

If Right(Xm(i), 3) = "(女)" Then '如果后面三个字符是“(女)”

n = n + 1

ReDim Preserve Arr(1 To 2, 1 To n) '改变动态数组的大小,共2行,n列

Arr(1, n) = n

Arr(2, n) = Left(Xm(i), Len(Xm(i)) - 3) '取前面的字符

End If

Next

Range("b6").Resize(n, 2) = WorksheetFunction.Transpose(Arr) '把结果保存到工作表指定的单元格中End Sub

11、搜索数组

园子里是不是有红苹果?

你手中的牌是不是有红桃K?

我们用眼睛一瞄就知道。数组元素中是不是有“张三”,是不是有“李四”,我们如何知道?不用担心,Filter()函数刚好可以帮你忙。

Filter()函数在一维数组中搜索文本型数据,并把结果保存到指定的数组中。

A1单元格是以逗号分隔的姓名串,部分有重复,要求剔除其中重复的姓名,把不重复的姓名写入单元格A2向右的区域。

第一步,把所有姓名保存到数组xm()中;

第二步,建立一个数组Arr()保存结果,遍历xm()过程中,检查Arr()中是否存在当前的姓名,用命令:Temp = Filter(Arr, xm(i)) '在数组Arr()中搜索当前值xm(i),如果找到,结果保存到Temp()数组中,如果找不到,返回一个空的数组Temp()

根据Temp()数组的大小,可以知道当前值xm(i)是不是一个重复的值。

Private Sub CommandButton1_Click()

Dim xm() As String, Arr() As String, Temp() As String '声明变量

Dim s%, r% '声明单值变量

On Error Resume Next '启动一个错误处理程序

xm = Split(Range("a1"), ",") '用A1单元格的数据创建数组

r = 0 '初值

s = UBound(xm) '最大下标

For i = 0 To s '循环

Temp = Filter(Arr, xm(i)) '搜索数组

If UBound(Temp) = -1 Then '如果未找到

r = r + 1 '序号,自增1

ReDim Preserve Arr(1 To r) '定义动态数组大小

Arr(r) = xm(i) '把姓名复制到数组Arr()中。

End If

Next

'Range("a2").Resize(1, r) = Arr '填充到工作表

Range("a2") = Join(Arr, ",")

End Sub

12、连接数组元素

有一个函数,是Split()的反向操作函数,把数组的元素连接成一个字符串,这个函数就是Join()。

在上例中,把要求改为,剔除重复值后,把结果依原样输出到A2单元格中。

我们只需改变最后一行代码:

把这一行:

'Range("a2").Resize(1, r) = Arr '填充到工作表

换成这一行,用上Join()函数,把Arr()数组中的元素用“,”连接成一个字符串:

Range("a2") = Join(Arr, ",")

13、清除数组

当数组不需要使用时,可用Erase语句清除数组元素,释放变量占用的空间。

语句:

Erase xm,Arr

每条Erase语句,可清除一个数组,也可同时清除多个数组,数组名之间用逗号分隔。

对于数组感兴趣的朋友在您掌握了一些基本的取值、赋值、循环等技巧之后,不妨在了解一些也许你们不太了解的数组用法,这些都会是很有用的数组编程技巧

1,取工作表区域的绝对引用公式到数组:arr=[a1:c5].Formula

2,取工作表区域的相对引用公式到数组:arr=[a1:c5].Formular1c1

3,取工作表区域的转置到数组:arr=Application.Transpose([a1:c5]) 数组间也可以转置:

arr1=Application.Transpose(arr)

4,取数组arr的第n列赋值到某列区域:[e1:e5]=Application.Index(arr, , n) 或者赋值产生一个新数组:

arr1=Application.Index(arr, , n)

5,同理,取数组arr的第n行赋值到某行区域:[a6:c6]=Application.Index(arr,n , ) 或者赋值产生一个新数组:arr1=Application.Index(arr, n, )

字符串可以用字符数组与字符串变量两种方式来存储

字符串可以用字符数组与字符串变量两种方式来存储,效果类似。 一、用字符数组来存储字符串: char st1[100],st2[100] ; //字符数组说明 cin>>st1>>st2; long a,b; 输入:hello, world 则st1={…h?,?e?,?l?,?l?,?o?,?,?,?\0?} st2={…w?,?o?,?r?,?l?,?d?,?\0} 字符?\0?为字符串结束标志 1. 字符数组长度 strlen(st1); //如a=strlen(st1);b=strlen(st2); 则a=6,b=5 2. 字符数组比较 不能直接比较,st1>st2是错误的,要用strcmp()函数 strcmp(st1,st2); //st1=st2相等则输出0,st1st2输出1 strncmp(st1,st2,n); 把st1,st2的前n个进行比较。 3. 连接字符数组 不能直接用st1=st1+st2;用strcat()函数 strcat(st1,st2); //将st1和st2连接后赋给st1,本例连接后st1为”hello,world” strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'\0'。 4. 替换 strcpy(st1,st2); //用st2的值替换st1的值,字符数组不能如此赋值st1=st2或st1[]=st2[]都是错误的 本例中st1值被替代为”world” strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加'\0'。 5. 其他函数 strchr(st1,ch) //ch为要找的字符。如strchr(st1,?e?);会截取出st1中以字母?e?开头的字符串,要用string类型的来存储,如string c1; c1=strchr(st1,?e?); 则c1为”ello” strspn(st1,st2); //返回st1起始部分匹配st2中任意字符的字符数。本例 中”hello,”中的第一个字符?h?不能在”world”中找到匹配字符,因此返回值为0。如st1=”rose”;st2=”worse”;则返回值为4,因为rose在worse中都能找到匹配字符。 strrev(); //颠倒字符串 二、用字符串来存储字符串 string str1,str2; cin>>str1>>str2; //如输入“hello, world”则str1=”hello,” str2=”world” 可直接赋值: str1=str2; 1. 字符串长度 len = str1.length(); 2. 字符串比较 可以直接比较,即str1>str2;str1==str2;等 3. 连接 可以直接连接,即str1 += str2;等

认知语言学主要内容

一、认知语言学的起源 二、主要内容 19 世纪末20 世纪初,当心理学从哲学中分离出来成为一门独立的实验学科之时,语言的认知研究便已开始。1987年是认知语言学正式的诞生年,虽然此前已有一些零星的文章预示着一种新的语言学理论即将诞生。但是一般认为,这一年出版的Lakoff“Women, Fire ,and Dangerous Things”和Langacker“Foundations of Cognitive Grammar”标志着认知语言学作为一种独立语言学理论的诞生。认知语言学研究的主要代表人物是Langacker,Lakoff,Jackendoff, Taylor 和Talmy等人。 认知语言学包括认知音系学、认知语义学、认知语用学等分支,研究内容广,覆盖面大,概括起来主要有以下几点:一、范畴化与典型理论 语言学在方法论和本质上都与范畴化(categorization)紧密相关。范畴化能力是人类最重要的认知能力之一,是“判断一个特定的事物是或不是某一具体范畴的事例”(Jackendoff , 1983∶77) 。 Labov和Rosch对范畴的研究,打破了范畴的“经典理论”或称“亚里士多德理论”一统天下的局面。“经典理论”认为:范畴是由必要和充分特征联合定义的;特征是二分的;范畴有明确的边界;范畴内的所有成员地位相等。这一理论却

受到了认知科学的有力挑战。Rosch 还提出了“典型理论”(prototype theory) ,认为大多数自然范畴不可能制定出必要和充分的标准,可以公认为必要的标准往往不是充分的;一个范畴的成员之间的地位并不相同,典型成员具有特殊的地位,被视为该范畴的正式成员,非典型成员则根据其与典型成员的相似程度被赋予不同程度的非正式成员地位。例如,在“鸟”范畴内“知更,鸟”常被视为典型成员,而“企鹅”、“驼鸟”等则为非典型成员。当然,一个范畴的典型成员会因不同的人、文化、地理位置而有所不同,但一个范畴中总有典型的。 典型理论对认知科学最有价值的贡献在于它把注意力集中在内部结构上,集中在范畴具有“核心”和“边缘”这个事实上。目前,它已用于语音、句法、词义、语用、语言习得、失语症等方面的研究,并取得了可喜的成绩。 二、概念隐喻 隐喻的认知研究可追溯到18 世纪。约在1725 年,意大利哲学家和修辞学家G. Vico就发现了隐喻的认知功能,后在其《新科学》一书中阐述了其认知观点。然而,把隐喻的研究纳入认知语言学领域的重要标志却是Lakoff &Johnson (1980)。认知语言学家认为,比喻性语言与非比喻性语言本质上无甚差别;日常语言中充满了隐喻,完全不带隐喻的句子大概只占极少数。隐喻是“我们对抽象范畴进行概念化的有

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 ).

c语言字符数组与字符串总结

字符数组与字符串 <1>定义 Char数组名[常量表达式] 数组中每一个元素的值为一个字符。 系统在内存为字符数组分配若干连续的存储单元,每个储存单元为一个字节。 <2>初始化 逐个元素初始化,如char c[8]={‘b’,’o’,’y’};(要记得加单引号) 用字符串初始化,如char c[11]={“I am a boy”};初始化后在末尾自动添加’0’ 如果初值个数<数组长度,则只将这些字符赋给数组中前面元素,其余元素自动定为空字符(即’0’) <3>输入输出 ①用格式”%c”逐个输入输出,如scanf(“%c”,&a[0]); ②用格式符”%s”整个字符串输入输出,如scanf(“%s”,a) 用”%s”格式输出字符数组时,遇’\0’结束输出,且输出字符中不含’\0’,用scanf及”%s”输入时,数组名前不能再加”&”符号。 字符串的末尾必须有’\0’字符,且字符串只能存放在字符数组中。 scanf中%s输入时遇空格或回车结束。 ③用函数gets实现输入 gets(字符数组),如gets(a) 调用函数时,回车键作为输入结束标志;然后将接收到的字符依

次赋给数组各个元素,并自动在字符串末尾加字符串结束标记’\0’ ④用字符串输出函数puts实现输出 puts(字符串/字符数组),如puts(a); 输出一个字符串,并在输出后自动换行。 <4>字符串处理函数 ①字符串拷贝函数 格式strcpy(字符数组1,字符串2) 将字符串2拷贝到字符数组1中去,要求字符数组1必须足够大,拷贝时’\0’一同拷贝,不能使用赋值语句为一个字符数组赋值。字符数组1应写成数组名的形式,比如char a[0]; strcpy(a,…) ②字符串连接函数 格式strcat(字符数组1,字符数组2) 将字符数组2连到字符数组1后面,要求字符数组1必须足够大,连接前,两串均以’\0’结束;连接后,串1的’0’取消,新串最后加’\0’。 ③计算字符串长度的函数 strlen(字符数组); 求出字符串或字符数组中实际字符个数,不包括’\0’,并且遇到’\0’结束。 ④字符串比较函数 格式strcmp(字符数组1,字符数组2)

认知语言学

认知语言学

————————————————————————————————作者:————————————————————————————————日期: ?

近年来,认知语言学已经成为国内外学者研究语言学的重点,认知语言学能很好地解释一些其他语言学理论无法解释的语言现象。认知语言学反映了人类认知过程。英语倒装句作为复杂的语言学现象引起很多语言学家的关注。各种不同的语法学派,语言学家和学者在不同的方面做出了很多贡献,但是由于这一复杂的句法特征,很多研究不能系统地解释倒装句。本文以象似性理论为认知原理,对英语倒装句中全部倒装,部分倒装及修辞性倒装进行解释,认为象似性尤其是接近象似性原则和顺序原则是形成倒装的主要原因。 关键字:象似性;倒装句;象似性原则

倒装句作为一种语法形式,是当今语言学研究的一个重要内容。传统理论对倒装的研究忽视了语言外部的因素,未重视认知对语序的制约作用,研究不够全面。 本文以认知理论为基础,对英语倒装句进行分析研究,以象似性原理为理论为依据,对英语中的不同倒装现象进行了分析和解释。在对句首倒装成分做出解释的基础上,本文对倒装句中动词全部活部分出现于主语之前的情况进行了解释,认为邻近象似性是英语倒装句中动词或全部或部分地随着突显成分提到主语之前的原因。 2 文献综述 国内外学者对认知语言学的研究做出了很多贡献,如王寅著的《认知语言学》,赵艳芳的《认知语言学概论》,Lackoff. G& M. Johnson’s MetaphorsWe Liveby等等。所以,以期刊、论文方式讨论倒装句的研究出了许多成果。传统研究主要是从修辞、句法、语用和语篇的角度进行的。徐盛桓,以语料统计为依据,研究英语倒装句,认为倒装是为实现句中各种成分的信息状态合理分布的调节装置,通过调节,使语句的成分有恰当的错位,达到全息的语用目的。余笑,从Verschuern提出的语用综观说出发,探讨英语和汉语中倒装语序的语用功能。发现英汉倒装语序均具有焦点分离突出和情景设定的功能。 而从认知语言学角度研究英语倒装句日益增多。杨壮春,用射体(trajectory)-界标(landmark)理论从认知的角度对倒装句的焦点突显功能作出解释,认为倒装句是该理论在语言学中的现实化,它把“射体-界标”转化为“界标-射体”结构形成句末焦点,以使人们注意的焦点落在新信息上,从而达到英语倒装句的凸显效果。更多的是以图形与背景理论为视角,对英语倒装句的焦点凸显功能进行重新阐释,认为英语倒装句符合图形-背景理论中的凸显原则,如王冰营,吕娜;刘先清;王海欧等。 用传统的修辞、句法、语用和语篇的角度进行的分析有其自身的缺陷,仅仅将倒装句认为是一种表示强调手段的句子。而用图形与背景理论分析可以解决为什么句子应该倒装即英语倒装句起始部分的问题,但是却解决不了为什么动词或者功能词应该放在主语前面这样的问题。象似性作为认知语言学中重要的概念,可以进一步研究英语倒装句中的问题。 3倒装句 英语句子的正常语序是主语位于谓语之前,然后是宾语或表语或其他句子成分。如果将全部谓语或谓语的一部分,或将宾语、表语、宾语补足语提到主语之前,就称为倒装语序(Inverted Order)。

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;

认知语言学不是什么和是什么

认知语言学不是什么和是什么 浏览了“北大中文论坛- 汉语语言学- 认知、心理与逻辑” (https://www.wendangku.net/doc/152196978.html,/bbs/forum.php?fid=83)的一些关于认知语言学的贴子,觉得 “认知语言学”这个名称算得上个难以躲避的陷阱了,太容易引人望文生义了。认知语言学不是什么和是什么,还是个问题。这个问题,我每次教认知语言学,都要碰到。例如这个学期开的课,是“汉语认知语言学”。第一次课的一个重点,就是讲认知语言学不是什么和是什么。第二次课一开始,我就问了一个问题:认知语言学是不是类似于心理语言学的语言学分支学科?每个学生的回答都是:是的,是从认知角度研究语言的学科。这样的回答,让我悲伤地想到:第一次课对此问题的唠叨毫无效果,跟他人的思维定势搏斗,何其吃力。没有办法,只好变本加厉地唠叨。 简而言之,正确答案是:认知语言学不是语言学的分支学科,而是当代语言学的一个学派。它是功能主义语言学这个大学派中的小学派。这个大学派还包括不少小学派,如西海岸学派(学者主要在美国西海岸的加州。代表性学者之一是也做汉语的安珊笛。专做汉语的李讷也属于此学派)、俄勒冈学派、系统功能语法学、词语法学等。这个大学派是当代语言学两大对立学派之一,另一大学派就是形式主义语言学(包括古典形式主义——结构主义语言学和当代形式主义——生成与法学)。这两大学派的最大基本假设对立,是语言系统及其子系统(广义句法系统[包括传统的语法和词汇]、语音系统、广义语义系统[包括狭义语义系统、语用系统、话语系统])是不是自足的。形式主义语言学的假设是自足的,功能主义语言学的假设是不自足的。 认知语言学与功能主义语言学中的其他小学派有不少差异,如着重语言的心理因素,不同于系统能语言学等学派的着种语言的社会因素,并在上世纪80年代后期建立了三个类似的心理[广义]句法模式(Lakkof 的《女人、火和危险的东西》、Langacker的《认知语法学基础》第一卷、Fillmore和Kay的《结构式语法学教科书》);主张意义是百科知识,不同意把语义系统分割为语言知识的狭义语义系统和百科知识的语用系统;主张主观论(如语义塑造等过程中的主观作用),不同意某些功能主义学者(如安珊笛)的客观论。尽管认知语言学着重语言的心理因素,但它并非只考虑心理因素,不能把它缩水为从认知角度研究语言。从认知(或心理)角度研究语言,是当代语言学各学派的普遍倾向,并非认知语言学的专利。R. Hardson 在《英语词语法学》的开头列出了当代语言学的10个倾向,其中之一就是“认知主义”。当代语言学的认知主义倾向,是其教父Chomsky从一开始就提出的。他早已有力地批驳了结构主义语言学的行为主义倾向,把语言假设为认知子系统。 “认知语言学“这个名称,为什么容易引人望文生义呢?大概是因为有“认知”这个时髦译名,而且这玩意儿加在“语言学”前面,让这个名称看起来像心理语言学、社会语言学、计算语言学等现役的或退役的边缘学科或交叉学科(如前二者早已是语言学的核心学科了,但曾经是边缘学科)。“认知”译自英语名词cognition或形容词cognitive。老的译名就是“认识”,没什么神秘色彩了吧:)。传统上把心理活动分为三类:认识、情感和意志。三者之中,只有认识得到了密集研究。汉语的“认识”,原是个多义的常用词,再做术语,有容易引人望文生义的缺点。新造个“认知”译名做术语,有好处。再者,用“认识”来译cognitive 打头的名称,就会有容易误解为动宾结构的“认识心理学”(认知心理学)、“认识科学”(认知科学)、“认识语言学”(认知语言学)、“认识语义学”(认知语义学)、“认识语法学”(认知语法学)、“认识音系学”(认知音系学)、“认识人类学”(认知人类学),也不如新造个“认知”来译。 认知主要指人类的信息加工杨宁兄提出了一个很好的问题。认知语言学确实有被时髦地滥用的倾向。认知语言学确实和心理语言学有很大交叉。但是想一想“认知心理学”这个词,就可以知道两者不同。有“认知心理学”而没有“心理认知学”,可见认知科学可以看作心理学一部分。两者的不同,可以说认知科学主要把认识过程看作一种信息处理加工过程。所以“认知”也不等于一般的“认识”。我们用“认知”的场合不用“认识”,原因也不仅限于杨宁兄所说的。 认知科学的主要奠基人George Miller 的名著:“神奇的数字7+2”,其副标题就是“人类信息加工能力的某些局限”(此文我翻译后发表在《心理学动态》1983(4)期)。这篇文章的英语 原文前几年有被人贴到了网上(https://www.wendangku.net/doc/152196978.html,/user/smalin/miller.html)。可见此文的地位之重要。现在许多人常常提到这个数字七,我不知道有多少人看过了原文或译文。但大家接受它,可见符合我们的心理直觉。Miller 在发表此文的同时,发表了另一篇重要文章:“人类记忆与信息贮存”此文我翻译后发表在,《思维科学》1986(1)期。这个杂志是山西出的,英文题目就叫Cognitive Science 。不知这个杂志现在还在不在? 不过后来认知科学的发展,范围越来越大,认知语言学跟心理语言学也就越来越难分了。我觉得认知语言

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

数组练习题及答案

第五章数组练习题及答案 一、选择题 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; while(x[i]!='\0'&&y[i]!='\0')

C语言中字符变量字符串和字符数组应用

C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错误发生的成分?一?注意区别字符数组中的字符和字符串C语言中无字符串变量,但提供了字符数组character arrary) 用于存储字符串,例如: char str[]="Hello"; 同时,字符数组亦用于存储字符或字符变量,例如: /*存放字符例*/ char Chars[]={`H``e`,`1``1`,`o`}; /*存放字符变量例*/ char ch=getch(); char CharVar[]=ch; str和Chars的内容尽管由相同字母构成,但前者是字符串(str)后者为一列字符(Chars)?两者在内存中的结构不同,即字符串结尾有NULL 0(字符串终止符)?在应用编程实践中,常常需要从键盘获取字符,依次存入字符数组中,再以字符串输出函数输出到屏幕等,譬如,在中文环境?图形模式下中文字符的键盘输入和屏幕显示?如混淆字符数组中字符组与字符串的差别,则可能得到奇怪的结果?如例: CharStr() { int i,CharNum=5; unsigned char str[80]; for(i=0;i

认知语言学对英语词汇教学的几点启示

认知语言学对英语词汇教学的几点启示 谷小娟 (天津外国语学院研究生部,天津 300204) 摘 要:词汇是几乎每个英语学习者都头疼的难关,认知语言学的兴起给词汇教学带来很多有益 的启示。本文从核心词汇、意群教学、分析综合法三个方面阐述认知语言学与英语教学实践结合 的作用。前两方面涉及认知语言学对词汇教学宏观影响,第三方面从具体方法上探讨词汇教学 策略。 关键词:认知语言学;核心词汇;意群;分析与综合 Abstract:V ocabulary has always been a headache for m ost English learners.But C ognitive Linguistics brings new light to v ocabulary teaching in many aspects.This paper discusses the application of C ognitive Linguistics to English teaching from three dimensions:core v ocabulary,language chunk,and analysis and synthesis.The first tw o inv olve the Macro-im pact of C ognitive Linguistics on teaching performance,and the third explores s ome specific methods and strategies in language teaching. K ey w ords:cognitive linguistics;core v ocabulary;language chunk;analysis and synthesis 中图分类号:H319.3 文献标识码:A 文章编号:1008-665x(2002)02-0041-04 I.词汇教学现状 学习任何一门语言,词汇都是重要的基石,也是语言学习最终最难以攻克的堡垒。中国作为英语学习的“超级大国”,历来对词汇教学重视有加。各种目的用途的英语教学都有相应的词汇底线,比如英语专业四级大纲要求6,000词汇量,八级12,000,公外四级要求4,200(新大纲),六级5,500;出国考试G RE要求除基础词汇以外再加6,000应试词汇。我国不少学者致力于英语教学,对于适合中国情况词汇教学做了许多有益探索。但也不可否认,在词汇教学中还存在着诸多问题:1.理论研究囿于西方已有成果。因为西方20世纪90年代以前理论研究多涉及在自然条件下(natural setting)习得语言形式(language form),即语法的习得,所以有关外语学习环境下的词汇教学略显苍白。2.理论研究的“阳春白雪”难以融入大众教学的“下里巴人”。来自教学人员的研究多数是感性、技巧性探索,缺乏足够理论指导。比如图书市场上普遍为中国学生看好的“词汇闯关”类的书,宣讲的绝大多数是向记忆和耐力挑战的策略。据统计各种大学英语四六级词汇书就不下20余种,每种每版印数在1~3万册。《G RE词汇精选》从94年问世以来,每年销售量3~5万。更何况还有其他各种词汇书,可谓铺天盖地。这一方面体现出学生学英语的热忱,另一方面也暴露出常规课堂教学的不足。从大批学生半途而废或是背过大量单词却不能进行简单口语会话,不能写出用词恰切的作文等失败经历中,更让人感到,没有足够科学理论方法指导的词汇学习,造成的人力与物力的浪费太大了! 笔者并不反对背单词,而且很赞成在适当层面上集中突破式记忆单词,然而记忆决不仅是单纯重复达到熟练的过程,更是认知过程,至少包括:输入———理解———与原有知识重组———强化———记忆五个环节。英语教师应注重对学生学习单词的科学指导。既然是科学的指导,则必然要有其理论基础。现从认知语 作者简介:谷小娟(1974-),女,助教,研究方向:英语教育 收稿日期:2002.04.04

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() {

相关文档