文档库 最新最全的文档下载
当前位置:文档库 › 第5章数组测试题

第5章数组测试题

第5章数组测试题
第5章数组测试题

第5章数组测试题

一、选择题

1.如下数组声明语句,( )正确。

A .Dim a[3,4] As Integer

B .Dim a(3,4) As Integet

C .Dim a(n,n) As Integer

D .Dim a(3 4) As Integer

2.要分配存放如下矩阵的数据,( )数组声明语句能实现(不能浪费空间)。

????

??????9.98.87.76.65.54.43.32.21.1 A .Dim a(9) As Integer B .Dim a(3,3) As Single

C .Dim a(-1 to 1,-5 to -3) As Single

D .Dim a(-3 to -1,5 to 7) As Integer

3.如下数组声明语句,则数组a 包含元素的个数有( )。

Dim a(3,-2 to 2,5)

A .120

B .75

C .60

D .13

4.以下程序的输出结果是( )。

Dim a

a=Array(1,2,3,4,5,6,7)

For i=Lbound(a) to Ubound(a)

a(i)=a(i)*a(i)

Next i

Print a(i)

A .49

B .0

C .不确定

D .程序出错

5.下列语句中(假定变量n 有值),能正确声明可调数组的是( )。

A .Dim a( ) As Integer

B .Dim a( ) As Integer ReDim a(n) ReDim a(n) As Integer

C .Dim a( ) As Interger

D .Dim a(10) As Integer ReDim a(3,4) ReDim a(n+10)

ReDim Preserve a(4,4)

6.在窗体的通用声明段自定义了数据类型Students ,下列( )定义方式是正确的。

A .Private Type Students

B .Type Students

Name As String*10 Name As String*10 Studno As Integer Studno As Integer End Type End Students

C .Type Students

D .Type Students

Name String*10 Name As String*10 Studno Integer Studno As Integer End Type End Type

7.以下程序的输出结果是( )。

Option Base 1

Private Sub Command1_Click()

Dim a, b(3, 3)

a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

For i = 1 To 3

For j = 1 To 3

b(i, j) = a(i * j)

If (j >= i) Then Print Tab(j * 3); Format(b(i, j), "###");

Next j

Print

Next i

End Sub

A .1 2 3

B .1

C .1 4 7

D .1 2 3 4 5 6 4 5 2 4 6 4 6 7 8 9 7 8 9 3 6 9 9

二、填空题

1.数组声明时下标下界默认为0,利用 (1) 语句可以使下标为1。

2.由Array 函数建立的数组,其变量必须是 (2) 类型。

3.要获得数组的上界通过 (3) 函数,要获得列表框List 数组的元素总个数通过 (4) 属性。

4.若定义一维数组为:Dim a(N to M),则该数组的元素个数为 (5) 个。

5.随机产生6位学生的分数(分数范围1-100),存放在数组a 中,以每2分一个“*”显示,如图1所示。

Private Sub Command1_Click()

For i = 1 To 6

a(i) = (6)

Print (7)

Next i

End Sub

6.在一维数组中利用移位的方法显示如图2

所示结果。

Private Sub Form_Click()

Dim a(1 To 7) For i = 1 To 7

a(i) = i: Print a(i);

Next i

Print

For i = 1 To 7

t = (8) '最右1位暂存

For j = 6 To 1 Step -1

(9) '其余6个向右移一位

Next j 图1 随机分数运行界面

图2 第6题运行界面

(10) '暂存的放入最左

For j = 1 To 7

Print a(j);

Next j

Print

Next i

End Sub

7.下面程序对已知数组a,删除数组元素中某个元素。

Private Sub Command1_Click()

Dim a(), key%, i%, j%

a = Array(1, 6, 8, 3, 5, 9, 10, 2, 7, 4)

key = Val(InputBox("输入要删除的值"))

For i = 0 To UBound(a)

If (11) Then

For j = i + 1 To UBound(a)

(12)

Next j

ReDim (13)

MsgBox ("删除完成")

Exit Sub

End If

Next i

MsgBox ("找不到要删除的元素")

End Sub

8.下列程序表示将输入的一个数插入到按递减的有序数列中,插入后使该序列仍然有序。

Private Sub Form_Click()

Dim a, i%, n%, m%

a = Array(19, 17, 15, 13, 11, 9, 7, 5, 3, 1)

n = UBound(a)

ReDim (14)

m = Val(InputBox("输入欲插入的数"))

For i = UBound(a) - 1 To 0 Step -1

If (m >= a(i)) Then

(15)

If i = 0 Then a(i) = m

Else

(16)

Exit For

End If

Next i

For i = 0 To UBound(a)

Print a(i);

Next i

End Sub

9.下列程序在1000-9999之间查找满足如下条件的整数:该整数,逆向得到的另一个4位数是它自身的倍数(2倍以上)。查找结果和逆向排列分别显示在对应的列表框,如图3所示。

Private Sub Command1_Click()

Dim a As Integer

Dim m As Integer

Dim i As Integer

For i = 1000 To 9999

m = 0

(17)

Do While n > 0

m = (18) + n Mod 10

n = n \ 10

Loop

If (19) And m \ i > 1 Then List1.AddItem i

List2.AddItem (20)

End If

Next i

End Sub

10.下列程序完成如下功能:随机产生n(10-30)个大写字母,并显示。将这n 个字母按产生的顺序逆时针排列成一个圆环,按逆时针方向统计相邻两个字母满足升序的次数(如图4所示)。并输出符合条件的每对字符和统计结果。

Private Sub Form_Click()

Dim a() As String, count As Integer, i As Integer, n As Integer

Randomize

Form1.Cls

n = Int(Rnd * 20) + 10

(21)

图3 第9题运行界面 图4 第10题的示意图和运行界面

Cls

Print "产生的字符:"

For i = 1 To n

s = (22) '产生大写字母

a(i) = s

Print s; " ";

Next i

Print

Print "统计结果:"

count = 0

For i = 2 To n

If (23) Then

count = count + 1

Print Space(3); a(i - 1); " "; a(i)

End If

Next i

If (24) Then

count = count + 1

Print Space(3); a(n); " "; a(1)

End If

Print

Print "符合条件的字符有:" ; (25)

End Sub

11.本程序随机产生n(15)个A~J的大写字母,按字母降序排序后,将连续出现

的字母用压缩形式显示。例如,连续5个H字母显示为5*H,如图5所示。数组a( )用于存放随机产生的字母。

Private Sub Form_Click()

Const N = 15 Array Dim a(1 To N) As String * 1, c

Dim count%, i%, j%, k%

Randomize

For i = 1 To N

a(i) = Chr(Int( (26) ))

Print a(i);

Next i

Print

图5 第11题的运行界面For i = 1 To N - 1 '选择法排序

k = i

For j = (27)

If a(j) > a(k) Then (28)

Next j

c = a(i): a(i) = a(k): a(k) = c

Next i

For i = 1 To N '输出排序结果

Print a(i); " ";

Next i

Print

i = 1

Do While i <= N

count = 1

If i < N Then j = i + 1

Do While a(i) = a(j)

count = (29)

If j < N Then j = j + 1 Else Exit Do

Loop

If count = 1 Then Print a(i); " "; Else Print count; "*"; a(i); " ";

i = (30)

Loop

End Sub

数组测试题

2012年上期期中考试试题 时量:90分钟班级:计41 姓名: 一、选择题(每题5分,共50分) 1.以下为一维整型数组a的正确说明是_________. 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]; 2.以下对二维数组a的正确说明是________. a)int a[3][]; b)float a(3,4); c)double a[1][4] d)float a(3)(4); 3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______. (假设a[0][0]位于数组的第一个位置上。) a)i*m+j b)j*m+I c)i*m+j-1 d)i*m+j+1 4.若二维数组a有m列,则在a[i][j]前的元素个数为________. a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1 5.若有以下程序段: 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];j--;} a[j+1]=t;} ... ... 则该程序段的功能是_________. a)对数组a进行插入排序(升序) b)对数组a进行插入排序(降序) c)对数组a进行选择排序(升序) d)对数组a进行选择排序(降序) 6.有两个字符数组a、b,则以下正确的输入语句是_______. a)gets(a,b); b)scanf("%s%s",a,b); c)scanf("%s%s",&a,&b); d)gets("a"),gets("b"); 7.下面程序段的运行结果是_________. char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]); a)空格b)\0 c)e d)f 8.判断字符串s1是否大于字符串s2,应当使用_______.

一维数组练习题

一维数组练习题 1、以下对一维数组a进行正确初始化的是__________。 A) int a[10]=(0,0,0,0,0); B) int a[10]={ }; C) int a[ ]={0}; D) int a[10]={ 10*2}; 2、以下一维数组a的正确定义是________ 。 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、执行下面的程序段后,变量k中的值为__________。 int k=3,s[2]; s[0]=k; k=s[1]*10; A) 不定值B) 33 C) 30 D) 10 4、下列程序执行后的输出结果是__________。 main() {int a,b[5]; a=0; b[0]=3; printf("%d,%d\n",b[0],b[1]); } A) 3,0 B) 3 0 C) 0,3 D) 3,不定值 5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值 分别是________。 a[0] a[1] a[2] a[3] a[4] ┌──┬──┬──┬──┬──┐ │ 10 │ 20 │ 30 │ 40 │ 50 │ └──┴──┴──┴──┴──┘ A) 20和30 B) 20和31 C) 21和30 D) 21和31 6、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。main( ) { int i,p=0,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) if(a[i]

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 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】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

数组练习题

1.下面数组声明语句,_________正确。 A)Dim a[2,4] As Integer B)Dim a(2,4)As Integer C)Dim a(n,n)As Integer D)Dim a(2 4)As Integer 2.假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是________。 A)数组中每个命令按钮的名称(名称属性)均为Command1 B)数组中每个命令按钮的标题(Caption属性)都一样 C)数组中所有命令按钮可以使用同一个事件过程 D)用名称Command1(下标)可以访问数组中的每个命令按钮 3.数组声明语句Dim a(-2 to2,5)中,数组包含元素个数为________。 A)120 B)30 C )60 D)20 4.下面程序的输出结果是________。 Dim a a = Array(1,2,3,4,5,6,7) For i = Lbound(a)to Ubound(a) a(i)= a(i)* a(i) Next i Print a(i) A)36 B)程序出错C)49 D)不确定 5.下面程序的输出结果是________。 Option Base 1 Private Sub Command1_Click() Dim a%(3, 3) For i = 1 To 3 For j = 1To 3 If j > 1 And i > 1 Then a(i, j)= a(a(i - 1, j - 1), a(i, j - 1))+ 1 Else a(i, j)= i * j End If Print a(i, j); ""; Next j Print Next i End Sub A)1 2 3 B)1 2 3 C )1 2 3 D)1 2 3 2 3 1 1 2 3 2 4 6 2 2 2 3 2 3 1 2 3 3 6 9 3 3 3 6.在设定Option Base 0后,经Dim arr(3,4)As Integer 定义的数组arr含有的元素个数为________。 A)12 B)20 C )16 D)9 7.用Dim A (-3 To 5)As Integer语句定义的数组的元素个数是________。 A)6 B)7 C )8 D)9 8.有如下程序代码,输出结果是________。 Dim a()

c语言数组练习题大全

231页; 本节设计程序完成一个简单的学籍; 3管理系统的案例,学生的基本信息:学号,姓名,年龄,c 语言成绩。假设班级有10名学生,能实现以下功能: (1)输入10名学生的基本信息。 (2)输出10名学生的基本信息。 (3)输入学号、姓名,输出该学生的基本信息。 (4)按学号年龄对学生进行排序(升序),按c 语言成绩降序排序。 (5)统计优 良 不及格。 1.数据结构分析 此案例是一位数组,二维数组的综合运用。10名学生的学号,年龄,c 语言成绩可分别用长度为10的一位数组sno (long ),sage (int 型),cs (float 型)存储;10名学生的姓名可用元素长度为20个字符的一位数组,既字符型二维数组sname 存储。 2算法分析 使用模块化设计思想,进入系统主界面时有六个主要模块,输入学生的基本信息,输出学生的信息,查找学生 的基本信息,排序,统计,退出。学籍管理系统的机构功能框架,如图 5-28 所示。 图 5-28 学生管理系统的结构功能框架 5.5.2 奇数阶魔方矩阵 本节将实现技术矩魔方矩阵。 项目任务:用数组实现N 阶魔方矩阵(N 为奇数)。所谓的N 阶魔方矩阵是指把1~N*N 自然数按一定的方法排列成N*N 的矩阵,使得:任意行、任意列以及两个对角线上的数之和都为65。 5阶魔方如下: 17 24 1 8 15 输 入 学 生 的 基 本 信 息 输 出 学 生 的 信 息 查 找 学 生 的 基 本 信 息 排 序 统 计 退 出 学籍管理系统

23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 本章习题: 1.设数组int a【N】的元素全部不相等,求a中最大元素和次大元素。 2.求有10个整数的数组a中奇数的个数和平均值,以及偶数个数和平均值。 3.统计输入的一串字符(“假设以‘\n’结束”)中,大写字母A,B...Z各出现的次数。 4.数组a:“1,7,9,11,13,15,17,19”;数组b:“2,4,6,8,10”两个数组合并为数组c;按升序排列。 5.输入10个数,将10个整数按升序排列输出,并且奇数在前,偶数在后。如果输入的10个数是:10 9 8 7 6 5 4 3 2 1,则输出:1 3 5 7 8 2 4 6 8 10 (编程提示、;可利用两个数组变量,一个用来存放输入的整数,输入后,对该数组进行排序,然后将数据复制到另一个数组中,先复制奇数再复制偶数)。 6.定义一个有10个元素的一位数组count ,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排列后的数组输出。 7.求数组int a【M】【N】每行元素的平均值和平均最大的行号。 8.求A【M】【N】与B【M】【N】两矩阵的和矩阵C【M】【N】和差矩阵D【M】【N】(矩阵的值由键盘输入)。 9.有n个学生,每人考m门课。 (1)找出成绩最高的学生的学号和课程号 (2)找出有不及格课程的学生的学号及其各门课的全部成绩。 (3)求全部学生全部课程的平均分。

数组练习题及答案

第五章数组练习题及答案 一、选择题 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')

一维数组练习题

维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________ A) int a[10]=(0,0,0,0,0); C) int a[ ]={0}; B) int a[10]={ }; D) int a[10]={ 10*2}; 2 、以下一维数组 a 的正确定义是_________ 。 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 、执行下面的程序段后 , 变量 k 中的值为 __________ 。 int k=3,s[2]; s[0]=k; k=s[1]*10; A) 不定值B) 33 C) 30 D) 10 4 、下列程序执行后的输出结果是 main() {int a,b[5]; a=0; b[0]=3; printf("%d,%d\n",b[0],b[1] ); A) 3,0 C) 0,3 } B) 3 0 D) 3, 不定值 5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。 a[0] a[1] a[2] a[3] a[4] 10 | 20 | 30 | 40 | 50 | A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 31 6、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( ) { int i,p=0,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;i<10;i++) if(a[i]

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

数组练习题

第五章数组 一、教学的目的与要求 掌握一维数组、二维数组、字符数组以及二维的字符数组的定义和使用,数组中元素的引用,数组的初始化,字符串的输入与输出,字符串运算函数的使用。 二、重点与难点 数组的应用 三、教学内容 第一节一维数组 数组是指一组同类型数据组成的序列,用一个统一的数组名标识这一组数据,用下标来指示数组中元素的序号,同一数组中的所有元素必须属于同一数据类型。 1、一维数组的定义 一维数据的定义方式为:类型说明符数组名[常量表达式];例如:int a[10];说明: ①数组名定名规则和变量名相同,遵循标识符定名规则。 ②数组名后是用方括号括起来的常量表达式,不能用圆括号。 ③常量表达式表示元素的个数,即数组长度。 ④常量表达式中可以包括常量或符号常量,不能包含变量。 例1:以下对一维数组a的正确说明是()。 A)int a(10); B)int n=10,a[n]; C)int n;scanf(“%d”,&n); D)#define SIZE 10 int a[n]; int a[SIZE]; 答案:D 2、一维数组的初始化 ①可对全部元素赋初值:例如:int a[5]={1,3,5,7,9}; ②可给部分赋值:例:int a[5]={1,3,5}; ③如果想使全部元素为1: 例 int a[5]={1,1,1,1,1};(注:不能省略) ④在对全部元素赋值时,可不指定数组长度。 例 int a[ ]={1,2,3,4,5,6}; ⑤如对一个静态或外部的数组不进行初始化,隐含的初值为0。如不对动态数组初始化,则其初始值为一些不可预料的数。 例2:以下能对一维数组a进行正确初始化的语句是()。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 答案:C 例3:以下不正确的定义语句是()。 A)double x[5]={1.0,2.0,3.0,4,0,5.0}; B)int y[5]={1,2,3,4,5,6}; C)char c1[]={‘1’,’2’,’3’,’4’,’5’}; D)char c2[]={‘\x10’,’\xa’}; 3、一维数组元素的引用 数组元素的表示形式为:数组名[下标] 例4:数组元素引用实例 main( )

数组练习题

一维数组 1.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(0. 2. 4. 6. 8. 10……18)的元素值赋值给数组n,最后输出数组n的内容。 2.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(1. 3. 5. 7. 9……19)的元素值赋值给数组n,最后输出数组n的内容。 3.已知一个数列从第1项开始的前三项分别为0. 0. 1,以后的各项都是其相邻的前三项的和。求该数列的前n项的平方根之和 4.产生25个[50,90]上的随机整数放入数组中,求出其中能被5整除的所有数的和。 5.输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。 6.从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。 7.将一个数组中的元素按逆序存放。 8.在一个一维整型数组中找出其中最大的数及其下标。 9.有一数组内存放10个整数,要求找出最大数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。 10.为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。 11.产生15个[20,80]上的随机整数,用顺序法(比较法)按从小到大排序后输出。 12.产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。 13.在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 二维数组: 1.编程产生并输出如下形式的方阵。 1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1

C语言数组试题

第4章 数组 4.1内容概述 本章主要介绍了数值数组和字符数组的定义、初始化、元素引用和数组数据的输入与输出,字符数组实现字符串、字符串函数的实现与调用。指针数组与数组指针定义、元素引用。利用一维数组实现如挑数、排序、求和等实际应用问题。利用二维数组实现矩阵的应用问题。利用字符数组实现字符串的各种操作。本章知识结构如图4.1所示。 图4.1 第4章知识结构图 考核要求:掌握一维数组、二维数组、字符数组和指针数组的定义和初始化;掌握数组元素存储地址计算;掌握数组元素的下标法、指针法引用;掌握字符数组与字符串的区别与联系;掌握有关字符串处理函数的使用方法;能利用一维数组、二维数组解决向量、矩阵等实际应用问题。 重点难点:本章的重点是一维数组、二维数组和字符数组的定义、初始化、元素引用,字符串处理函数的使用。本章的难点是字符串与字符数组的区别,指针数组和数组元素的指针法引用。 核心考点:数组的定义、初始化和数组元素的引用方法,一维数组、二维数组和字符数组的实际应用,字符串的处理方法。 4.2 典型题解析 【例4.1】以下对一维数组a 的定义中正确的是( )。 A. char a(10); B. int a[0..100]; C. int a[5]; D. int k=10;int a[k]; 解析:一维数组定义的一般形式为: 类型标识符 数组名[常量表达式] 其中,常量表达式可以是任意类型,一般为算术表达式,其值表示数组元素的个数,即数组长度。 答案:C 【例4.2】以下对一维数组的定义中不正确的是( )。 A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9}; C. char ch1[ ]={'1', '2', '3', '4', '5'}; D. char ch2[ ]={'\x10', '\xa', '\x8'}; 解析:可以对一维数组的全部元素或部分元素赋初值。在对全部数组元素初始化时,数组长度可以省略。若数组长度没有省略,则初始化列表中值的个数不能超过数组的长度。 答案:B 【例4.3】以下对二维数组的定义中正确的是( )。 A .int a[4][]={1,2,3,4,5,6}; B. int a[][3]; C .int a[][3]= {1,2,3,4,5,6}; D. int a[][]={{1,2,3},{4,5,6}}; 解析:定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统可根据初始化列表中值的个数及第二维的长度计算出省略的第一维长度,但无论如何,第二维的长度不能省略。没有初始化时,每一维的长度都不能省略。 数组 数值数组 定义 初始化 元素引用 数组元素输入和输出 指针数组 定义 初始化 应用 字符数组 定义 初始化 元素引用 数组元素输入和输出

C语言 数组和指针练习题

若当堂没做完,下周四之前上交也可。 至ftp://211.64.82.253/ 用户名和密码:stu C语言程序设计练习题——数组 一、选择题 77、以下对一维数组a的正确说明是_d ___ A、char a(10); B、int a[ ]; C、int k=5,a[k]; D、char a[ ]={'a' , 'b' , 'c'}; 78、若有说明语句:int a[2][4];,则对a数组元素的正确引用是_a___ A、a[0][3] B、a[0][4] C、a[2][2] D、a[2][2+1] 79、以下能对二维数组y进行初始化的语句是_b__ A、static int y[2][ ]={{1,0,1}, {5,2,3}}; B、static int y[ ][3]={{1,2,3}, {4,5,6}}; C、static int y[2][4]={{1,2,3}, {4,5} , {6}}; D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}}; 80、若有说明语句:int y[ ][4]={0,0};则下面叙述不正确的是_d___ A、数组y的每个元素都可得初值0 B、二维数组y的行数为1 C、该说明等价于int y[ ][4]={0}; D、只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0 81、以下各组选项中,均能正确定义二维实型数组s的选项是_c___ A、float s[3][4]; B、float s(3,4); float s[ ][4]; float s[ ][ ]={{0};{0}}; float s[3][ ]={{1},{0}}; float s[3][4]; C、 float s[3][4]; D、float s[3][4]; static float s[ ][4]={{0},{0}}; float s[3][ ]; auto float s[ ][4]={{0},{0},{0}}; float s[ ][4]; 82、若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8}; ,则a数组的行数为__a__ A、3 B、2 C、无确定值 D、1 83、若二维数组y有m列,则在y[i][j]前的元素个数为_B___ A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+1 84、下面程序中有错误的行是__D__ 1、 main( ) 2、 { 3、 int x[3]={1}; 4、 int k; 5、 scanf("%d", &x); 6、 for (k=1; k<3; k++) 7、 x[0]=x[0]+x[i]; 8、 printf("x[0]=%d\n", x[0]); 9、 } A、3 B、6 C、7 D、5 85、若有以下语句,则正确的描述是__b__ char x[ ]="12345"; char y[ ]={'1', '2', '3', '4', '5'}; A、x数组与y数组的长度相同 B、x数组长度大于y数组长度 C、x数组长度小于y数组长度

数组练习题

单选: 1.下列数组说明中,正确的是(). A.int array[][4]; B.int array[][]; C.int array[][][5]; D.int array[3][]; 2.下列定义数组的语句中正确的是(). A.#define size 10 char str1[size],str2[size+2]; B.char str[]; C.int num['10']; D.int n=5; int a[n][n+2]; 3.下列定义数组的语句中不正确的是(). A.int a[2][3]={1,2,3,4,5,6}; B.int a[2][3]={{1},{4,5}}; C.int a[][3]={{1},{4}}; D.int a[][]={{1,2,3},{4,5,6}}; 4.若输入ab,程序运行结果为(). main() { char a[2]; scanf("%s",a); printf("%c,%c",a[1],a[2]); } A.a,b B.a, C.b, D.程序出错 5.下列数组说明中,正确的是(). A.char str[]="China"; B.char str[]; str="China"; C.char str1[5],str2[]={"China"}; str1=str2; D.char str1[],str2[];str2={"China"}; strcpy(str1,str2); 6.下列语句中,不正确的是(). A.static char a[2]={1,2}; B.static int a[2]={'1','2'}; C.static char a[2]={'1','2','3'}; D.static char a[2]={'1'}; 7.int a[10];合法的数组元素的最小下标值为(). A.10 B.9 C. 1 D.0 8.char a[10];不能将字符串"abc"存储在数组中的是 (). A.strcpy(a,"abc"); B.a[0]=0;strcat(a,"abc"); C.a="abc"; D.int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 9.int i,j,a[2][3];按照数组a的元素在内存的排列次序, 不能将数1,2,3,4,5,6存入a数组的是(). A.for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1; B.for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; C.for(i=0;i<6;i++)a[i/3][i%3]=i+1; D.for(i=1;i<=6;i++)a[i][i]=i; 10.char str[10]="China";数组元素个数为(). A. 5 B. 6 C.9 D.10 11.若char a[10];已正确定义,以下语句中不能从键盘 上给a数组的所有元素输入值的语句是(). A.gets(a); B.scanf("%s",a); C.for(i=0;i<10;i++)a[i]=getchar(); D.a=getchar(); 12.char a[]="This is a program.";输出前5个字符的语 句是(). A.printf("%.5s",a); B.puts(a); C.printf("%s",a); D.a[5*2]=0;puts(a); 13.int a[10]; 给数组a的所有元素分别赋值为1、2、 3、……的语句是(). A.for(i=1;i<11;i++)a[i]=i; B.for(i=1;i<11;i++)a[i-1]=i; C.for(i=1;i<11;i++)a[i+1]=i; D.for(i=1;i<11;i++)a[0]=1; 14.以下程序段的输出结果为(). char c[]="abc"; int i=0; do ; while(c[i++]!='\0'); printf("%d",i-1); A.abc B.ab C. 2 D. 3

数组练习题及答案

精品文档数组练习题及答案第五章 一、选择题)b1、判断字符串a和是否相等,应当使用( if(strcmp(a,b)) 、C 、if(strcpy(a,b)) D A、if(a==b) B、if(a=b) )2、以下正确的定义语句是( }; 、 B A、int a[1][4]={1,2,3,4,5}; double y[][3]={0}; D、C、2,3}}; )a的选项是(3、以下各组选项中,均能正确定义二维实型数组}; float a[ ][4]; A、float a[3][4]; }; float a[3][4]; B、float a(3,4); }; }; C、 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') if(x[i]==y[i]) printf(%c,《1》); else i++; A、x[i++] B、y[++i] C、x[i] D、y[i] 6、有下面的程序段,则() char a[3],b[]=china;

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

第5章数组测试题

第5章数组测试题 一、选择题 1.如下数组声明语句,( )正确。 A .Dim a[3,4] As Integer B .Dim a(3,4) As Integet C .Dim a(n,n) As Integer D .Dim a(3 4) As Integer 2.要分配存放如下矩阵的数据,( )数组声明语句能实现(不能浪费空间)。 ???? ??????9.98.87.76.65.54.43.32.21.1 A .Dim a(9) As Integer B .Dim a(3,3) As Single C .Dim a(-1 to 1,-5 to -3) As Single D .Dim a(-3 to -1,5 to 7) As Integer 3.如下数组声明语句,则数组a 包含元素的个数有( )。 Dim a(3,-2 to 2,5) A .120 B .75 C .60 D .13 4.以下程序的输出结果是( )。 Dim a a=Array(1,2,3,4,5,6,7) For i=Lbound(a) to Ubound(a) a(i)=a(i)*a(i) Next i Print a(i) A .49 B .0 C .不确定 D .程序出错 5.下列语句中(假定变量n 有值),能正确声明可调数组的是( )。 A .Dim a( ) As Integer B .Dim a( ) As Integer ReDim a(n) ReDim a(n) As Integer C .Dim a( ) As Interger D .Dim a(10) As Integer ReDim a(3,4) ReDim a(n+10) ReDim Preserve a(4,4) 6.在窗体的通用声明段自定义了数据类型Students ,下列( )定义方式是正确的。 A .Private Type Students B .Type Students Name As String*10 Name As String*10 Studno As Integer Studno As Integer End Type End Students C .Type Students D .Type Students Name String*10 Name As String*10 Studno Integer Studno As Integer End Type End Type 7.以下程序的输出结果是( )。 Option Base 1 Private Sub Command1_Click() Dim a, b(3, 3)

JS数组的前端面试题

关于数组的前端面试题 1、如何判断一个变量是否为数组? (1)为什么不用typeof? var list = [1,2,3]; typeof list //"object" Array继承与Object,所以typeof 会直接返回object,所以不可以用typeof方法来检测(2)为什么不用instanceof? var list = [1,2,3]; list instanceof Array //true instanceof 表面上看确实是返回了true,但其实并不可靠。原因是Array实质是一个引用,用instanceof方法(包括下面的constructor方法)都是利用和引用地址进行比较的方法来确定的,但是在frame嵌套的情况下,每一个Array的引用地址都是不同的,比较起来结果也是不确定的,所以这种方法有其局限性。 (3)为什么不用constructor方法? var list = [1,2,3]; list.constructor === Array; //true 原因已经解释过了,不再赘述。 可靠的检测数组方式 (1)利用Object的toString方法 var list = [1,2,3]; ; //[object Array] (2)利用ES6的Array.isArray()方法 var list = [1,2,3]; Array.isArray(list); //true 2、数组的原生方法有哪些?

一是考察面试者平时使用的是否足够平凡;二是观察面试者是否对于日常的知识有所归纳。 可以用MDN中给出的方式来回答: (1)会改变自身的方法 在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值。 将数组中指定区间的所有元素的值,都替换成某个固定的值。 ,并返回这个元素。 ,并返回数组的新长度。 ,即原先的第一个变为最后一个,原先的最后一个变为第一个。 ,并返回这个元素。 ,并返回当前数组。 ,并返回数组的新长度。 (2)不会改变自身的方法 判断当前数组是否包含某指定的值,如果是返回true,否则返回false。 返回一个表示当前数组字面量的字符串。遮蔽了原型链上的方法。 方法。 方法。 ,如果找不到这样的元素,则返回-1。 ,如果找不到这样的元素,则返回-1。 遍历方法 返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。 ,则返回true,否则返回false。 ,则返回true,否则返回false。 true 的数组元素放进一个新数组中并返回。 找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回undefined。

相关文档