第五章数组习题
一、选择题
1. 如下数组声明语句,()正确。
(A)Dim a[3,4] as integer (B)Dim a(3,4) as integer (C)Dim a(n,n) as integer (D)Dim a(3 4) as integer
2. 要分配存放如下方阵
?
?
?
?
?
?
?
9.9
8.8
7.7
6.6
5.5
4.4
3.3
2.2
1.1
,可使用声明语句( )来实现(不能浪费空间)。.
(A)Dim a(9) as single (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. 数组声明语句Dim a(3,-2 to 2,5) as integer中,数组a包含的元素个数为()。
(A)120 (B)75 (C)60 (D)13
4. 用语句Dim a(-3 to 5) as integer所定义的数组的元素个数是()。
(A)6 (B)7 (C)8 (D)9
5. 用语句Dim a(3 to 5,-2 to2)所定义的数组的元素个数是()。
(A)20 (B)12 (C)15 (D)24
6. 下面的B中有()个数组元素。
Dim B : B=Array(1,2,3,4,5,6,7,8,9)
(A)任意多(B)8 (C)9 (D)10
二、填空题
1. 控件数组的名字由()属性指定,而数组中的每个元素由()属性指定。
2. 由Array函数建立的数组的名字必须是()类型。
3. 数组定义Dim D(20) ,数组D有()个数组元素。
三、分析程序的运行结果
1. 在窗体上画一个命令按钮command1,然后编写如下事件过程:
option base 1
private sub command1_click()
dim a
a=array(1,2,3,4)
j=1
for i=4 to 1 step -1
s=s+a(i)*j
j=j*10
next i
print s
end sub
程序运行后,单击command1,输出结果为:
2. 在窗体上画一个命令按钮command1,然后编写如下事件过程:
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);b(I,j);
next j
next i
end sub
程序运行后,单击command1,输出结果为:
4. 在窗体上画一个命令按钮command1,然后编写如下事件过程:option base 1
private sub command1_click()
dim a%(10),p(3) as integer
k=5
for i=1 to 10
a(i)=i
next i
for i=1 to 3
p(i)=a(i*i)
next i
for i=1 to 3
k=k+p(i)*2
next i
print k
end sub
程序运行后,单击command1,输出结果为:
6. 在窗体上画一个命令按钮command1,然后编写如下事件过程:option base 1
private sub command1_click()
dim a%(5,5)
for i=1 to 3
for j=1 to 4
if j>1 and i>1 then
a(i,j)=i*j
end if
next j
next i
for n=1 to 2
for m=1 to 3
print a(m,n);
next m
next n
end sub
程序运行后,单击command1,输出结果为:
:
:
11. 在窗体上画一个命令按钮command1,然后编写如下事件过程:private sub command1_click()
dim arr1%(10),arr2(10)
n=3
for i=1 to 5
arr1(i)=i
arr2(n)=2*n+i
next i
print arr2(n);arr1(n)
end sub
程序运行后,单击command1,输出结果为:
12. 在窗体上画一个命令按钮command1,然后编写如下事件过程:private sub command1_click()
dim m%(10)
for k=1 to 10
m(k)=12-k
next k
x=6
print m(2+m(x))
end sub
程序运行后,单击command1,输出结果为:
15. 在窗体上画一个命令按钮command1,然后编写如下事件过程:
private sub command1_click()
dim a(5 to 16)
dim b
b=array(1,2,3,4,5,6,7,8,9)
for i=1 to 8
a(5+i)=b(i)
next i
print a(7)
end sub
程序运行后,单击command1,输出结果为:
18. 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim array1(10,10) As Integer
Dim i,j As Integer
For i=1 To 3
For j=2 To 4
array1(i,j)=i+j
Next j
Next I
Text1.Text=array1(2,3)+array1(3,4)
End Sub
程序运行后,单击command1,文本框中显示的结果为:
四、简答题
1.要分配存放12个元素的整形数组,下列数组声明(若无下界,按默认规定)哪些符合要求?
(1)n=12 (2)Dim a%()
Dim a(1 to n)as integer n=11
ReDim a(n)
(3)Dim a%[2,3] (4)Dim a(1,1,2) as integer
(5)Dim a%(10)(6)Dim a!()
ReDim a(1 to 12)ReDim a(3,2)as integer
(7)Dim a%(2,3)(8)Dim a(1 to 3 1 to 4)as integer
2.已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上下界、数组的大小,并按行的顺序列出各元
素。Dim a(-1 to 2,3) as single
3.静态数组和动态数组的区别是什么?在声明静态数组、重定义动态数组时的下标都可以用变量来表示吗?
一、选择题
题号 1 2 3 4 5 6
答案 B C A D C C
二、填空题
1. Name,Index
2. 变体类型
3. 21个
三、分析程序的运行结果
1. 1234
2. 1 2 3
4 6
9
3. 1 2 3
2 3 1
3 2 3
4. 33
5. 1 4 7 10
2 5 8 11
3 6 9 12
4 7 10 13
6. 0 0 0
0 4 6
7. 1 2 3 1 4 1
8. 2 5 8
9. 42, 35, 34, 13, 9, 6, 5,
10. 10 20 30 40
11 21 31 41
12 22 32 42
13 23 33 43
11. 11 3
12. 4
13. 9
14. 13
15. 3
16. 1 2 3
4 5 6
7 8 9
17. 1 2 3
4 5 6
7 8 9
18. 12
四、简答题
1. (2)、(4)、(7)符合要求。
2. 数组名为a、数组类型为单精度,二维数组,各维的下界分别为-1和0、上界分别为2和3,数组的大小为4*4共16个元素,各元素排列顺序如下:
a(-1, 0) a(-1, 1) a(-1, 2) a(-1, 3)
a(0, 0) a(0, 1) a(0, 2) a(0, 3)
a(1, 0) a(1, 1) a(1, 2) a(1, 3)
a(2, 0) a(2, 1) a(2, 2) a(2, 3)
3. 静态数组在声明数组时的下标必须是常数,以后不能改变其大小;动态数组在Dim声明时不要声明数组的大小,在以后的程序中可以用ReDim语句重新声明数组的大小,ReDim语句中的下标可以出现有确定值的变量或表达式。
第六章数组习题答案 一、单项选择题 1. C语言中,一维数组下标的最小值是(B )。 A)1 B) 0 C) 视说明语句而定D) 无固定下限 2. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( B )。A)a[0][4] B) a[1][3] C) a[0][3] D) a[1][4] 3. 设有数组定义:char str[ ]=”China0”,则数组str所占的空间为( D )字节。 A)4个B) 5个C) 6个D) 7个 4. 若有定义语句:char str[ ]=”ab\n\012\\\n”; 则执行语句:printf(“%d”,strlen(str));后,输出结果是( A )。 A)3 B) 4 C) 6 D) 12 5. 下列描述中不正确的是( C )。 A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值 6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。 A)scanf( ) B)getchar( ) C) gets( ) D) getc( ) 7. 有以下程序 #include
第五章数组练习题及答案 一、选择题 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;
1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 n k=0; m t=0; //用于记录出列顺序 while(t
25 36 78 13 12 26 88 93 75 18 22 32 56 44 36 58 然后执行以下操作: ①输出矩阵两个对角线上的数; ②分别输出各行和各列的和; ③交换第一行和第三行的位置; ④交换第二列和第四列的位置; ⑤输出处理后的数组。 #include<> #define SIZE 4 void main() { int a[SIZE][SIZE]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}}; int i,j,t,sum; //输出二维数组 printf("二维数组:\n"); for(i=0;i 图 1. 填空题 ⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵ 任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶ 图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度 ⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk 【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。 2. 选择题 ⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的()倍。 A 1/2 B 1 C 2 D 4 【解答】C 【分析】设无向图中含有n个顶点e条边,则。 4 习题 一、单项选择题】a数组元素的非法引用是【 1. 若有说明int a[3][4];则 A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4]D【答案】 的列下标越界。0开始,a[0][4]【解析】数组下标从】2. 在C++语言中,引用数组元素时,其数组下标的数据类型允许是【 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 C【答案】】3. 以下不正确的定义语句是【 A. double x[5]={,,,,}; B. int y[5]={0,1,3,5,7,9}; C. char c1[]={′1′,′2′,′3′,′4′,′5′}; x8′}; D. char c2[]={′\x10′,′\xa′,′\【答案】B 【解析】初始值的个数大于数组的大小,系统会出现编译错误。 4. 对以下说明语句的正确理解是【】int a[10]={6,7,8,9,10}; a[5] a[1]至A. 将5个初值依次赋给 a[4] a[0]至将5个初值依次赋给B. a[10] 至5个初值依次赋给a[6] C. 将 D. 因为数组长度与初值的个数不相同,所以此语句不正确B 【答案】 】5. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是【 0 的每个元素都可得到初值A. 数组a1 B. 二维数组a的第一维大小为 C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小a[0][1]可得到初值,其余元素均得不到确定的初值D. 只有元素a[0][0]和 D【答案】 【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,,和列,所以第一维为个初值说明是21行41。元素a[0][0]a[0][1]赋初值为0 本题中,有0。其余元素初值系统默认为】进行正确的初始化的语句是【以下能对二维数组6. c }; }; }; };B【答案】 答C【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。初值之间不能有空案中初始值行数多于数组大小中的行大小,也是错误的。另外初始化时,位置,故D错误。】7. 以下不能对二维数组a进行正确初始化的语句是【 A. int a[2][3]={0}; }; 6}}; 一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a 第六章模板与数据结构习题 一、.基本概念与基础知识自测题 6.1 填充题 6.1.1 模板是为了实现代码的(1),它把数据类型改为一个(2),称为(3)程 序设计。模板包括(4)和(5)。 答案:(1)重用 (2)设计参数 (3)参数化(parameterize) (4)函数模板(function template) (5)类模板(class template) 6.1.2 调用函数模板时,可以显式指定模板参数类型,也可以隐式进行,称为(1),这是 根据(2)来决定的。 答案:(1)模板实参推演(template argument deduction) (2)一组实际类型或(和)值 6.1.3 顺序查找可以用于(1)线性表,而对半查找可以用于(2)线性表。 答案:(1)无序的(所有) (2)有序的 6.1.4 最常见的排序方式有(1)、(2)和(3)。如果现有一个已排好序的线 性表,在表尾添加了一个元素,采用(4)排序法使它重新成为有序的所需工作量最小。 答案:(1)选择 (2)插入 (3)交换 (4)交换(可利用原来的有序性) 6.1.5 给出以下指针的说明方式:指向一个4元素整型数组的指针为(1);指向一个返 回整型数,参数为两个整型数的函数的指针(2);指向一个数组的指针,而该数组元素都是指向一个返回整型指针的无参函数(3)。 答案:(1)int(*p)[4] (2)int(*p)(int,int) (3)以指向6元素数组为例:int*(*)() (*p)[6] 6.2简答题 6.2.1需要编写一个对多维数组通用的算法(即各维的大小未定),怎样才能把实参多维数 组的信息全部传递到函数中去? 答:最佳方法是用函数模板,多维数组用模板类型参数传递,各维的大小作为参数传递。也可以用一维数组加各维的大小都作为参数传递。 6.2.2什么叫函数模板?什么叫模板函数?什么叫类模板?什么叫模板类? 答:不受数据类型限制的通用型的函数使代码的可重用性大大提高。把数据类型改为 数组练习解答 1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________ 【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。 【答案】方法一:float a[4]={0.0,0.0,0.0,0.0}; 方法二:float a[]={ 0.0,0.0,0.0,0.0}; 方法三:float a[4]= {0.0}; 方法四:static float [4]; 2 下列数组定义语句中,错误的是() ①char x[1]='a';②auto char x[1]={0}; ③static char x[l];④char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。 【答案】① 3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 41 1 14 2 32 4 23 3 【答案】l、2、4、3 4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。 【分析】开始排序前的排列为:413 2 执行第1步后的排列为:143 2 执行第2步后的排列为:123 4 【答案】1、2、3、4 5 下列数组定义语句中,正确的是() ①int a[][]={1,2,3,4,5,6};②char a[2]「3]='a','b'; ③int a[][3]= {1,2,3,4,5,6};④static int a[][]={{1,2,3},{4,5,6}}; 【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。显然备选答案③符合题意。【答案】③ 6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是() ①char s[]={‘1','2','3','\0 '};②char s「」={"123"}; ③char s[]={"123\n"};④char s[4]={'1','2','3'}; 第六章数组 一、选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。(0级) A)整型常量B)整型常量或整型表达式 C)整型表达式D)任何类型的表达式 2.以下对一维整型数组a的正确说明是。(0级) A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D ) #define SIZ E 10 int a[SIZE];以下能对一维数组a进行正确初始化的语句是。(0级) A)int a[10]=(0,0,0,0,0); B)int a[10]={ }; C)int a[ ]={0}; D)int a[10]={10*1}; 4.不是给数组的第一个元素赋值的语句是。(0级) A)int a[2]={1}; B) int a[2]={1*2}; C)int a[2];scanf (“%d”,a);D)a[1]=1; 5.下面程序的运行结果是。(1级) main() {int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 6.下列定义正确的是。(1级) A)static int a[]={1,2,3,4,5} B) int b[]={2,5} C) int a(10) D) int 4e[4] 7.若有说明int a[][4]={0,0};则下列叙述不正确的是。(0级) A) 数组a的每个元素都可以得到初值0 B) 二维数组a的第一维的大小为1 C) 因为对二维数组a的第二维大小的值除以初值个数的商为1,故数组a的行数 为1 D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值 8.设有char str[10],下列语句正确的是。(1级) A) scanf("%s",&str); B) printf("%c",str); C) printf("%s",str[0]); D) printf("%s",str); 9.下列说法正确的是。(0级) A) 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组 B) 在C语言中,数组元素的个数可以不确定,允许随机变动 数组练习解答 1定义一个名为 a 的单精度实型一维数组 ,长度为 4,所有元素的初值均为 0的数定义语句就是 【分析】按照一般数据定义语句的格式 ,可以直接写出方法一(参瞧答案);考虑到所有元素均赋初值时可 以省略数组长度,可以写出方法二(参瞧答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初 值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参瞧答案);考虑到选用静态型,不赋 初值所有元素也自动赋予。空值 (对数值型数组来说,初值为0),可以写出方法四(参瞧答案)。 【答案】方法一 :float a[4] = (0.0,0.0,0.0,0.0}; 方法二:float a[] = ( 0.0,0.0,0.0,0.0}; 规定,定义字符型数组时不允许直接使用 "字符常量"的方式赋初值,所以备选答案②也就是错误的。 备选答案③符合题意。【答案】③ 6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句就是() ① char s[]={ '1','2','3',' \0 '}; ② char s 「」={"123"}; ③ char s[]={"123\n"}; ④ char s[4]={'1','2','3'}; 【分析】备选答案①中省略了数组长度 ,所以每个元素都赋了初值,共计4个元素,初值依次为T '3'、’ \0',最后一个元素的值为字符串结束标记 ,所以数组S 中存放的就是字符串"123",该答案不符合 题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组 s 的长度为4,其中的初值就是字符串 "123",不符合题意(即正确的);备选答案③中也就是给数组 s 赋予字符串的初值,但就是字符串不就是 方法三:float a[4]= {0.0}; 方法四:static float [4]; 2下列数组定义语句中,错误的就是() ① char x[1] = 'a'; ② auto char x[1]={0}; ③ static char x[l]; ④ char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对 以 备选答案①就是符合题意的答案。 【答案】① 3用"冒泡排序法"对n 个数据排序,需要进行n 一 1 较,小者调上;该操作反复执行 n- k 次。现在假设有 则利用"冒泡排序法"执行第2步后的结果就是 【分析】开始排序前的排列执行第 4 1 - 3 : (不能直接赋予字符常量,必须用花括号括住),所 步。其中第k 步的任务就是:自下而上,相邻两数比 4个数据:4、l 、3、2要排序,假定4为上、2为下, O 1步后的排列执行第 2步后的排列 1 2 4 2 【答案】l 、2、4、 3 4用"选择排序法"对n 个数据排序,需要进行n-1 据中寻找最小数,与第k 个数据交换。现在假设有 行第2步后的结果就是 ____________________ 【分析】 开始排序前的排列为: 4 执行第1步后的排列为: 执行第2步后的排列为: 【答案】1、2、3、4 5下列数组定义语句中,正确的就是() ① int a[][]={1,2,3,4,5,6}; ② char a[2] ③ int a[][3]= {1,2,3,4,5,6}; ④ static int a[][] 【分析】C 语言规定,二维数组定义时不允许省略第二维的长度 步。其中第k 步的任务就是:在第k 个数据到第n 个数 4个数据:4、 1、 3、2要排序,则利用"冒泡排序法"执 「3] = 'a','b'; ={{1,2,3},{4,5,6}}; ,所以备选答案①④就是错误 C 语言还 显然 、'2'、 第七章数组 一、单项选择题 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 数据结构-第六章-图-练习题及答案详细解析(精华版)
数组c 习题答案解析
C语言练习题(带答案)
C++程序设计习题答案第六章
C语言数组典型例题分析与解答
第六章 数组
c语言数组习题
数组习题及参考答案