二维数组习题20170926

合集下载

java二维数组练习题

java二维数组练习题

java二维数组练习题1) 数组的元素通过来访问,数组Array的长度为。

2) 数组复制时,”=“将一个数组的传递给另一个数组。

3) 没有显式引用变量的数组称为数组。

4) JVM将数组存储在中。

5) 数组的二分查找法运用的前提条件是数组已经。

6) 矩阵或表格一般用维数组表示。

7) 如果把二维数组看成一维数组,那么数组的元素是数组。

8) Java中数组的下标的数据类型是。

9) 不用下标变量就可以访问数组的方法是。

10) 数组最小的下标是。

11) arraycopy的最后一个参数指明。

12) 向方法传递数组参数时,传递的是数组的。

13) 线性查找法的平均查找长度为。

14) 数组初始化包括。

15) 数组下标访问超出索引范围时抛出异常16) 浮点型数组的默认值是。

17) 对象型数组的默认值是。

18) 对象类型的数组虽然被默认初始化,但是并没有构造函数。

19) 二维数组的行的长度不同。

20) 数组创建后其大小改变。

二选择题1. 下面错误的初始化语句是___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]后,下面错误的引用是___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. 引用数组元素时,数组下标可以是____A.整型常量B.整型变量C.整型表达式D.以上均可5. 定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A.4B.25C. 18D. 176. 下列初始化字符数组的语句中,正确的是____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中储存在中A.栈main{ B.队列 C.堆 D.链表. 下面程序的运行结果是____int x=30;int[] numbers=new int[x];x=60;System.out.println;}A.60B.20C.30D.509. 下面不是创建数组的正确语句A.float f[][]=new float[6][6];C.float f[][]=new float[][6];10. 下面不是数组复制方法的是A.用循环语句逐个复制数组C. 用”=“进行复制A.a 11. 数组a的第三个元素表示为B.a[3]C.aD.a[2]12. 当访问无效的数组下标时,会发生A. 中止程序B.抛出异常C. 系统崩溃D.直接跳过13. 使用arraycopy方法将数组a复制到b正确的是A. arraycopyB. arraycopyC.. arraycopyD. arraycopy14. 关于数组默认值,错误的是A. char--’”u0000’B. Boolean--trueC. float--0.0fD. int-- 015. 关于数组作为方法的参数时,向方法传递的是A. 数组的引用B.数组的栈地址C. 数组自身D.数组的元素16. 关于数组复制,下列说法错误的是A.”=“可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy方法没有给目标数组分配内存空间D.数组复制是数组引用的传递17. 下列语句会造成数组new int[10]越界是A.a[0]+=9;B.a[9]=10;A. public static void main;B. public static void mainC. public static int mainD. public void main C.—a[9] D.for a[i]++; 18. main 方法是java Application 程序执行的入口点。

二维数组练习题.doc

二维数组练习题.doc

二维数组练习题定义一个3行3列的二位数组,求二维数组a中的最大值和最小值。

输出数组,并输出最大值和最小值。

程序的输出应为:最大值:最小值:分析:1、定义数组,行下标,列下标,最大值变量,最小值变量2、for循环{ for循环(scanf实现数据输入}、for循环{ for循环(if比较取得最小值if比较取得最大值4、输出二、编程输出如下图像8888分析:1、定义数组,行下标,列下标2、for循环+if判断+赋值+printf输出for循环{ for循环{ } } }给数组元素赋值为8if判断对角线输出三、编程输出如下图像与第2题类似,只是在对角线判断处有区别四、从键盘输入4个学生3门课程的成绩,求每门课程的平均分。

五、定义一个3行4列的二维数组,并初始化值为 {4, 4, 34, 37, 3, 12,2, 6, 5, 17, 9, 11},输出该二维数组、和、最小值及最小值下标。

分析:1、定义数组并初始化,行下标,列下标,和, 最小值变量,最小值行下标,最小值列下标2、for循环{ for循环} }} { } Printf 输出数组 sum-sum+a[i] [j]实现求和 if 判断得出最小值、最小值行下标、最小值列下标3、输出和为:最小值为:最小值行下标:%d,最小值列下标:%d完成下列程序代码1、将二维数组的右上半部分置零。

main { inta[5] [5] = ({1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, (11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21,22, 23, 24, 25}} ; for (for{ if { printf: } else { printf: } }printf:} }行3列)的对角线元素的和main { inta[3] [3] = {{10,12,13}, {14,15,16}, {17, 18, 19}}, sum-0;for {for{ if { sum-sum+a[i][j]; }}} printf: }3、求二维数组中最大元素值及其行列号^includemain { int a[5][5],i,j; for {for { scanf:} } int sum-a[0][0], x, y; for {for( if { sum-a[i][j]; x-i: y=j; }} } printf:}4、从键盘上输入9个整数,保存在二维数组中按数组原来位置输出第一行和第一列的所有元素ttinclude main { int a[3] [3], i, j; for {for ( scanf;} } for (for ( if { printf; }} printf: } }1、求一个4x4数组左下三角元素的和。

c语言 二维数组 思考题

c语言 二维数组 思考题

c语言二维数组思考题以下是一些C语言二维数组的思考题:1.什么是二维数组?二维数组是指具有两个维度的数组。

每个元素都有两个索引,一个表示行号,另一个表示列号。

2.二维数组的声明方式有哪些?二维数组的声明方式如下:int array[m][n];其中,m表示行数,n表示列数。

3.二维数组的初始化方式有哪些?二维数组的初始化方式如下:int array[m][n]={{1,2,3},{4,5,6},{7,8,9}};也可以使用for循环进行初始化:●for(int i=0;i<m;i++){●for(int j=0;j<n;j++){●array[i][j]=i*n+j;}}4.二维数组的访问方式有哪些?二维数组的访问方式如下:int value=array[i][j];其中,i表示行号,j表示列号。

5.二维数组的遍历方式有哪些?二维数组的遍历方式如下:●for(int i=0;i<m;i++){●for(int j=0;j<n;j++){●printf("%d\n",array[i][j]);}}也可以使用指针进行遍历:●int*p=array[0];●for(int i=0;i<m*n;i++){●printf("%d\n",*p++);}6.二维数组的常见操作有哪些?二维数组的常见操作如下:●查找:查找指定元素的值或位置。

●插入:插入新元素。

●删除:删除指定元素。

●排序:对数组进行排序。

●查找最值:查找数组中的最大值或最小值。

7.二维数组的注意事项有哪些?二维数组的注意事项如下:●二维数组的大小必须是行数*列数。

●二维数组的元素可以是任意类型。

●二维数组的遍历需要注意行数和列数。

二维数组 指针 判断题

二维数组 指针 判断题

二维数组指针判断题
以下是几个关于二维数组和指针的判断题:
1.若已知“int a[3][7];”,则用指针表示数组a中的元素时,下列表示中错误的是()。

A)(a+1)[5] B)(a+3) C)((a+1)) D)(&a[0][0]+2)
答案:A)*(a+1)[5]
解析:(a+1)相当于指向a[1]的指针;(a+1)[5]相当于(a+6)相当于指向a[6]的指针;
(a+1)[5]相当于(*(a+1)),也就是a[6]。

但a[6]并不存在,因此选项A是错误的。

2.一维数组通常不被当做指针,下面四种情况中不应当增加偏移量的是()
A)a[2] B)*a C)a D)a + 2
答案:B)*a
解析:对于一维数组,如果使用*a,则相当于直接使用数组的第一个元素,因此不需要增加偏移量。

而A、C、D三种情况都需要增加偏移量才能得到具体的元素值。

3.下列表达式中,表示指针的数组与数组的指针的区别的是()
A)int *p[5] B)int (*p)[5]
答案:A)int *p[5]
解析:int *p[5]本质是数组,这个数组有5个元素,每个都是指针,指向int型的数据。

而int (*p)[5]表示指向一个包含5个整数的数组的指针。

因此,这两者的区别在于A选项中的指针指向的是数组元素,而B选项中的指针指向的是整个数组。

洛谷二维数组入门题

洛谷二维数组入门题

洛谷二维数组入门题全文共四篇示例,供读者参考第一篇示例:洛谷(Luogu)是一个中国的在线算法训练平台,旨在帮助用户提高算法水平和编程能力。

其中二维数组入门题是一类适合初学者练习的题目,通过这些题目的练习,可以帮助学习者熟悉二维数组的基本操作和应用。

二维数组是指在一个一维数组内部套上另一个一维数组,这样就构成了一个二维数组。

在编程中,二维数组常用于表示矩阵、表格等具有行列关系的数据结构。

在洛谷的二维数组入门题中,题目内容比较简单,适合初学者练习,并且循序渐进地引导学习者理解二维数组的基本概念和操作方法。

一般来说,二维数组的声明方式为`int a[N][M];`,其中N表示数组的行数,M表示数组的列数。

在洛谷的二维数组入门题中,常常需要学习者完成一系列的操作,比如初始化数组、遍历数组、求解数组元素的最大值或最小值等等。

举个例子,一道简单的二维数组入门题是要求学习者计算一个N x M的矩阵中所有元素的和。

对于这道题目,学习者需要先声明一个二维数组a,然后使用两层循环遍历数组中的所有元素,并将每个元素的值累加到一个变量sum中,最后输出sum的值即可完成题目。

洛谷的二维数组入门题还涉及到一些更复杂的操作,比如矩阵的转置、矩阵元素的旋转等。

通过这些题目的练习,学习者可以逐步提高自己对二维数组的理解和运用能力,为日后解决更具挑战性的算法问题奠定坚实的基础。

除了基本的操作和运算外,二维数组在实际应用中还有很多种形式和用途。

比如在图像处理中,二维数组可以用来表示图片的像素点;在游戏开发中,二维数组可以用来表示游戏地图等。

掌握好二维数组的基本概念和操作方法对于提高编程能力和解决实际问题都有很大的帮助。

在学习二维数组的过程中,除了通过洛谷的题目练习外,学习者还可以参考一些相关的教程和资料,比如《算法导论》、《数据结构与算法分析》等书籍。

还可以通过参与一些编程竞赛或社区讨论,与其他程序员交流经验和思路,共同进步。

洛谷的二维数组入门题是一个很好的学习资源,适合初学者通过实际操作来巩固所学知识,为进一步学习和应用算法打下基础。

一、单项选择题

一、单项选择题

第五章 习题一、单项选择题1. 二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要(1)个字节;M 的第8列和第5行共占(2)个字节;若M 按行优先方式存储,元素M[8][5]的起始地址与当M 按列优先方式存储时的(3)元素的起始地址一致。

()(1) A.90 B.180 C.240 D.540(2) A.108 B.114 C.54 D.60(3) A.M[8][5] B.M[3][10] C.M[5][8] D.M[0][9]2. 二维数组M 的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到4,列下标j 的范围从0到5,M 按行存储时元素M[3][5]的起始地址与M 按列存储时元素(1)的起始地址相同。

()A.m[2][4]B.M[3][4]C.M[3][5]D.M[4][4]3. 数组A 中,每个元素A 的存储占3个单元,行下标i 从1到8,列下标j 从1到10,从首地址SA 开始连续存放在存储器内,存放该数组至少需要的单元个数是(1),若该数组按行存放时,元素A[8][5]的起始地址是(2),若该数组按列存放时,元素A[8][5]的起始地址是(3)。

(1) A. 80 B.100 C.240 D.270(2) A.SA+141 B.SA+144 C.SA+222 D.SA+225(3) A.SA+141 B.SA+180 C.SA+222 D.SA+2254. 稀疏矩阵一般的压缩存储方法有两种,即()A.二维数组和三维数组B. 三元组和散列C.三元组和十字链表D. 散列和十字链表5.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点()A.正确B.错误6.假设按行优先存储整数数组A[9][3][5][8]时,第一个元素的字节地址时100,每个整数占4个字节。

二维数组练习题

二维数组练习题

二维数组练习题1、以下对二维数组a进行正确初始化的是__________。

A) int a[2][3]={ {1,2},{3,4},{5,6} };B) int a[ ][3]={1,2,3,4,5,6 };C) int a[2][ ]={1,2,3,4,5,6};D) int a[2][ ]={ { 1,2},{3,4}};2、在定义int a[5][4]; 之后,对a的引用正确的是________。

A) a[2][4] B) a[1,3] C) a[4][3] D) a[5][0]3、在执行语句:int a[ ][3]={1,2,3,4,5,6}; 后,a[1][0]的值是________。

A) 4 B) 1 C) 2 D) 54、在定义int a[5][6];后,数组a中的第10个元素是________。

(设a[0][0]为第一个元素)A) a[2][5] B) a[2][4] C) a[1][3] D) a[1][5]5、下列程序执行后的输出结果是__________。

main(){ int i,j,a[3][3];for(i=0;i<3;i++)for(j=0;j<=i;j++) a[i][j]=i*j;printf("%d,%d\n",a[1][2],a[2][1]);}A) 2,2 B) 不定值,2 C) 2 D) 2,06、有如下程序main(){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++) s+=a[i][j];printf("%d\n",s);}该程序的输出结果是________。

A) 18 B) 19 C) 20 D) 217、以下程序的输出结果是________。

main(){ int i,x[3][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i+=1) printf("%5d",x[1][i]);}A) 6 5 4 B) 9 6 3 C) 9 5 1 D) 9 8 78、以下程序的输出结果是_________。

二维数组、集合示例及练习

二维数组、集合示例及练习

⼆维数组、集合⽰例及练习⼆位数组的创建、赋值、提取⽰例:
⼆维数组练习:语⽂数学外语共三门课的成绩,共九个⼈,输⼊到⼀个⼆维数组中
定义集合并添加数据⽰例:
移除数据⽰例:
移除数据索引为某数的⽰例:
计算数据中共有⼏组数据⽰例:
集合的练习:
练习⼀:输⼊⼈数,录⼊分数,存到集合⾥⾯,之后再读取出来,求平均分
练习⼆:输⼊⼈数,输⼊每⼀个⼈的分数,求平均分,并排序,升序
练习三:输⼊⼈数,输⼊每⼀个⼈的分数,求平均分,排列为降序
集合的语句⽰例:
⽰例⼀:清空集合中所有数据
⽰例⼆:查看集合中第⼀个为12的数据的索引
⽰例三:创建新的集合,并将之前的集合中的数据复制到新的集合,并判断新集合中是否有某⼀个数据。

c++练习题二(二维数组类型)

c++练习题二(二维数组类型)

c++练习题⼆(⼆维数组类型)定义⼆维数组的两种⽅法:#include <iostream>using namespace std;//⽅法⼀:typedef定义typedef int arry_p[2][2];int main(){//⽅法⼆:直接定义arry_p b = {{1,2},{3,4}};int a[2][2] ={{5,6},{7,8}};for(int i =0;i<2;i++){for(int j = 0;j<2;j++){cout<<a[i][j]<<"";}cout <<endl;}for(int i =0;i<2;i++){for(int j = 0;j<2;j++){cout<<b[i][j]<<"";}cout <<endl;}}程序的main函数定义了⼀个⽤⼆维数组m表⽰的6×6⽅阵。

程序中:(1)调⽤setMatrix函数,对⽅阵元素赋不⼤于100的随机整数;(2)调⽤diagonal函数,依次把m阵的主对⾓线、次对⾓线放在数组a中。

#include<iostream>#include <cstdlib>#include<ctime>using namespace std;const int N=6;void setMatrix( int matrix[][N],int n );void diagonal( int matrix[][N],int *ary, int n);int main(){int m[N][N],a[2*N],i,j;setMatrix( m, N*N );cout<<N<<"*"<<N<<"⽅阵:\n";for(i=0; i<N; i++ ){for(j=0;j<N; j++)cout<<m[i][j]<< '\t';//\t制表符cout<<endl;}diagonal( m, a, N );cout<<"对⾓线元素:\n";for(i=0; i<2*N; i++ )cout<<a[i]<<"";cout<<endl;}void setMatrix( int matrix[][N],int n)//matrix是⼆维数组参数 n是⼆维数组的数据个数6X6{int i,*p;//p是⼀级指针变量p=*matrix;//⼆维数组作降维处理,p是⼀个指向int类型的指针,*matrix就是返回⼆维数组的⾸地址,这样就可以使⽤*p就指向matrix的第⼀个元素配合for循环中的p++,则每次p增加⼀个int类型的偏移量赋值循环N后,给所有的数据进⾏赋值 srand(unsigned(time(0))); //对于种⼦的初始化for( i=0; i<n; i++,p++ )//此处P++,偏移⼀个int 类型的长度*p= rand()%100;//对数组元素赋随机数}void diagonal( int matrix[][N],int *ary, int n){int i;for (i=0;i<n;i++){ary[i]= matrix[i][i];//主对⾓线ary[i+n]=matrix[i][n-i-1];//次对⾓线}}。

二维数组练习--矩阵的加法和乘法

二维数组练习--矩阵的加法和乘法

⼆维数组练习--矩阵的加法和乘法数组的练习⽰例展⽰:package arrayList;/*** 矩阵的集中运算法则:求和,求积,求逆矩阵,转置矩阵......* @author Drew**/public class Arrays {/*** 两个⼆维数组(矩阵)求和。

* @param a 矩阵(⼆维数组)* @param b 矩阵(⼆维数组)* @return返回⼀个矩阵(⼆维数组)*/public static int[][] add(int [][] a,int [][] b) {int [][] c = new int[a.length][b.length];for(int i = 0; i<c.length; i++) {for(int j = 0; j < c.length; j++) {c[i][j] = a[i][j] + b[i][j];}}return c;}/*** 直接打印出每个矩阵的值* @param arr*/public static void print(int [][] arr) {for(int i = 0; i < arr.length; i++) {for(int j = 0; j < arr.length; j++) {System.out.print(arr[i][j] + " ");//输出每⼀个数组中的值}System.out.println();//将数组按⾏输出。

}}/*** 矩阵的乘法* @param a 矩阵(⼆维数组)* @param b 矩阵(⼆维数组)* @return返回⼀个矩阵(⼆维数组)*/public static int[][] multiplication(int [][] a,int [][] b) {//矩阵的乘法运算法则有问题。

见Matrix.java的具体案例。

int[][] c = new int[a.length][b.length];for(int i = 0; i<c.length; i++) {for(int j = 0; j < c.length; j++) {c[i][j] = a[i][j]*b[i][j];}}return c;}/*** 主函数⽅法,⽤于测试矩阵的运算法则。

二级C操作题-二维数组

二级C操作题-二维数组

main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%d ",t[i][j]);printf("\n");}fun(t,N);printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%d ",t[i][j]);printf("\n");} }解题思路:第一处:在函数体fun中,已经使用了t整型数组,所以应填:t[][N]。

第二处:要求填写for循环语句的初始值和终止值,所以应填:i=0;i<n。

第三处:交换变量的值,根据循环体中的语句可知,s是存放交换的中间变量,所以应填:s。

※※※※※※※※※※※※※※※※※※※※※※※※计算矩阵最大、最小值请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

注意: 部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。

给定源程序:#include <stdio.h>#define M 4fun (int a[][M]){}main( ){ int arr[2][M]={5,8,3,45,76,-4,12,82} ;printf("max =%d\n", fun(arr)) ;NONO( ) ;}解题思路:本题是求出一个2×M整型二维数组中最大元素的值。

二维数组、字符数组习题

二维数组、字符数组习题

5.选择出正确的输入语句(其中:char s[5],c; int b;) A)scanf(“%s%c”,s,c); D B)scanf(“%%d%c”,&b,&c); C)scanf(“%d%%c”,b,&c); D)scanf(“%s%c”,s,&c);

6.设有定义:char s[12]={“string”};,则 A printf(“%d\n”,strlen(s));的输出是 。 A)6 B)7 C) 11 D) 12
16.设输入的字符串为:The Windows‟95 Operating System则输出的第一行和最 后一行分别是: 和 __ The erating main() { char a[4][10],j,k; for(j=0;j<4;j++) scanf("%s",a[j]); for(j=0;j<4;j++) { k=j; printf("%s\n",a[j++]+k); } }
9.函数调用”strcat(strcpy(str1,str2),str3)”的功能是 C 。 A 将字符串str1复制到字符串str2中后再连接到字符串 str3之后 B 将字符串str1连接到字符串str2之后再复制到字符串 str3之后 C 将字符串str2复制到字符串str1中后再将字符串str3连 接到字符串str1之后 D 将字符串str2连接到字符串str1之后再将字符串str1复 制到字符串str3中 10.定义如下变量的数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; C
10000 02000 00300 00040 00005

C++二维数组习题汇总含详细程序解答

C++二维数组习题汇总含详细程序解答

C++二维数组习题汇总含详细程序解答(总3页)-本页仅作为预览文档封面,使用时请删除本页-第1题:编写程序,找出m行n列的二维数组中所有元素的最大值。

输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n个数。

样例输入:3 31 2 34 5 67 8 9样例输出:9#include<>int main(){int a[100][100],m,n,i,j,max; cin>>m>>n;for(i=0;i<m;i++)for(j=0;j<n;j++)cin>>a[i][j];max=a[0][0];for(i=1;i<m;i++)for(j=1;j<n;j++){if(a[i][j]>max) max=a[i][j];}cout<<max;return 0;}第2题:编写程序,计算二维数组中各列之和。

输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n 个数。

样例输入:3 31 2 34 5 67 8 9样例输出:12 15 18#include<>int main(){int a[100][100],m,n,i,j,sum;cin>>m>>n;for(i=0;i<m;i++)for(j=0;j<n;j++)cin>>a[i][j];for(j=0;j<n;j++){sum=0;for(i=0;i<m;i++){sum=a[i][j]+sum;}cout<<sum<<" ";}return 0;}第3题:编写程序,计算两个矩阵(均为2行2列)之积。

输入分2*2行:前两行为第一个矩阵,后两行为第二个矩阵。

样例输入:1 24 53 51 7样例输出:5 1917 55#include<>int main(){int a[2][2],i,j,b[2][2],c[2][2];for(i=0;i<2;i++)for(j=0;j<2;j++)cin>>a[i][j];for(i=0;i<2;i++)for(j=0;j<2;j++)cin>>b[i][j];{for(i=0;i<2;i++){for(j=0;j<2;j++){c[i][j]=a[i][0]*b[0][j]+a[i][1]*b[1][j];} }}for(i=0;i<2;i++){for(j=0;j<2;j++)cout<<c[i][j]<<"\n";}return 0;}第4题:编写程序,输出n层正方形图案。

二维数组与多维数组以及练习题

二维数组与多维数组以及练习题

⼆维数组与多维数组以及练习题⼆维数组int[,]array=new int[3,2]{{1,2},{3,4},{5,6}};3表⽰有三个⼀维数组。

2表⽰每⼀个⼀维数组有两个元素如果把⼀维数组看作是⼀个点,那么⼆维数组就是⼀个⾯多维数组,多维数组就是[,,],的形式。

如果把⼆维数组看作是⼀个⾯,那么多位数组就是⼀个⽴体基本了解就⾏,很少⽤到多维数组下⾯我们来看⼏个⽤⼆维数组做的练习题——————————————————————————————————————————————————————-———————————————例⼀,请输⼊班级⼈数,然后输⼊每个⼈的语⽂数学和英语成绩,并且打印出语⽂的两个最⾼分,数学的两个最低分。

和英语的平均分Console.Write("请输⼊班级⼈数");int a = int.Parse(Console.ReadLine());double[,] s = new double[a, 3];for (int i = 0; i < a; i++){Console.Write("请输⼊第{0}个⼈的语⽂成绩", (i + 1));s[i, 0] = double.Parse(Console.ReadLine());Console.Write("请输⼊第{0}个⼈的数学成绩", (i + 1));s[i, 1] = double.Parse(Console.ReadLine());Console.Write("请输⼊第{0}个⼈的英语成绩", (i + 1));s[i, 2] = double.Parse(Console.ReadLine());}for (int i = 0; i < a; i++){for (int j = 0; j < 3; j++){Console.Write(s[i, j] + "\t");}Console.WriteLine();}for (int i = 0; i < a - 1; i++){for (int j = i+1; j < a; j++){if (s[i, 0] < s[j, 0]){double z = s[i, 0];s[i, 0] = s[j, 0];s[j, 0] = z;double z1=s[i,1];s[i,1]=s[j,1];s[j,1]=z1;double z2=s[i,2];s[i,2]=s[j,2];s[j,2]=z2;}}}Console.Write(s[0, 0]+","+s[1,0]);Console.WriteLine();for (int i = 0; i < a - 1; i++){for (int j = i + 1; j < a; j++){if (s[i, 0] < s[j, 0]){double z = s[i, 0];s[i, 0] = s[j, 0];s[j, 0] = z;double z1 = s[i, 1];s[i, 1] = s[j, 1];s[j, 1] = z1;double z2 = s[i, 2];s[i, 2] = s[j, 2];s[j, 2] = z2;}}Console.WriteLine(s[(a - 1), 1] + "," + s[(a - 2), 1]);double d = 0;for (int i = 0; i < a; i++){d += s[i, 2];}Console.WriteLine(d / a);Console.ReadLine();————————————————————————————————————————————————————————————————————————————————例⼆输⼊图形或者汉字。

c语言二维数组编程题

c语言二维数组编程题

当涉及到C语言的二维数组编程题时,有很多不同的问题和难度级别可以选择。

以下是一个简单的二维数组编程题示例,它涉及到二维数组的创建、填充、访问和打印:**题目:** 创建一个3x3的整数二维数组,填充数据,然后输出这个二维数组的内容。

```c#include <stdio.h>int main() {int matrix[3][3]; // 创建一个3x3的整数二维数组// 填充数据到二维数组for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {printf("输入第%d 行第%d 列的元素:", i+1, j+1);scanf("%d", &matrix[i][j]);}}// 输出二维数组的内容printf("二维数组的内容:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {printf("%d\t", matrix[i][j]);}printf("\n");}return 0;}```在这个程序中,我们首先创建了一个3x3的整数二维数组`matrix`。

然后,使用两个嵌套的`for` 循环来遍历数组的每个元素,提示用户输入数据并将其存储在数组中。

最后,再次使用循环来输出数组的内容。

你可以根据需要修改数组的大小和问题的要求来编写不同的二维数组编程题。

这个示例只是一个简单的起点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档