二维数组、字符数组习题

合集下载

二维数组习题总结

二维数组习题总结

1.在M行N列的二维数组a中,找出每一行的最大值#include <stdio.h>#define M 3#define N 4int main(){int i,j,max,a[M][N];for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0;i<M;i++){max=a[i][0];for(j=1;j<N;j++){if(max<a[i][j])max=a[i][j];}printf("The max of %d line is %d\n",i+1,max);}return 0;}2.输入一个2行3列数组,转置后得到新的数组并输出#include <stdio.h>int main(){int i,j,a[2][3],b[3][2];printf("Input 6 numbers to fill a[2][3]:\n");for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<2;i++)for(j=0;j<3;j++)b[j][i]=a[i][j];for(j=0;j<3;j++){for(i=0;i<2;i++)printf("%d ",b[j][i]);putchar('\n');}return 0;}3.输出数组2 0 0 0 04 6 0 0 08 10 12 0 014 16 18 20 022 24 26 28 30#include <stdio.h>int main(){int i,j,k=0,a[5][5];for(i=0;i<5;i++)for(j=0;j<5;j++)if(i>=j) a[i][j]=k+=2;else a[i][j]=0;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%2d ",a[i][j]);putchar('\n');}return 0;}4.先从键盘上输入一个3行3列整型数组的各个元素的值,然后输出主对角线和次对角线元素之和。

c语言二维数组题目

c语言二维数组题目

c语言二维数组题目When it comes to C language two-dimensional arrays, it is important to understand the concept of arrays and how they are used in programming. Arrays are a fundamental data structure in C that allow for the storage of multiple values in a single variable. In the case of two-dimensional arrays, these structures are used to store data in rows and columns, similar to a table or grid. This allows forthe efficient organization and manipulation of data in a structured manner.在谈到C语言的二维数组时,了解数组的概念以及它们在编程中的使用是很重要的。

数组是C语言中的基本数据结构,允许在单个变量中存储多个值。

在二维数组的情况下,这些结构用于以行和列的方式存储数据,类似于表格或网格。

这使得数据可以以结构化的方式进行高效的组织和操作。

One practical example of using a two-dimensional array in C programming is to create a matrix for storing and manipulating data. This can be useful in a variety of applications, such as image processing, mathematical calculations, or game development. By using a two-dimensional array, you can easily access and modifyindividual elements within the matrix, allowing for complex operations to be performed efficiently.在C编程中使用二维数组的一个实际例子是创建一个矩阵来存储和操作数据。

二维数组、字符数组习题

二维数组、字符数组习题

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

数据结构第五章数组习题

数据结构第五章数组习题

第五章数组习题1、假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。

A、808B、818C、1010D、10202、数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。

A、1175B、1180C、1205D、12103、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定a ij(i<j)的位置k的关系为( )。

A、i*(i-1)/2+jB、j*(j-1)/2+iC、i*(i+1)/2+jD、j*(j+1)/2+i4、对稀疏矩阵进行压缩存储目的是()。

A、便于进行矩阵运算B、便于输入和输出C、节省存储空间D、降低运算的时间复杂度5、已知广义表L=((x,y,z), a, (u,t,w)),从L表中取出原子项t的运算是()。

A、head(tail(tail(L)))B、tail(head(head(tail(L))))C、head(tail(head(tail(L))))D、head(tail(head(tail(tail(L)))))6、已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。

A、head(tail(LS))B、tail(head(LS))C、head(tail(head(tail(LS)))D、head(tail(tail(head(LS))))7、多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为()。

A、数组的元素处在行和列两个关系中B、数组的元素必须从左到右顺序排列C、数组的元素之间存在次序关系D、数组是多维结构,内存是一维结构8、二维数组M[0..7,0..9]的元素是由4个字符组成的串(每个字符占用1个存储单元),存放M需要存储单元数为()。

C语言(数组)习题与答案

C语言(数组)习题与答案

一、单选题1、下列描述中不正确的是()A.字符串的结束符是'\0'。

B.可以对字符型数组进行整体输入、输出。

C.字符型数组中能存放字符串。

D.字符串函数声明在ctype.h中。

正确答案:D2、下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组只能存放字符串D.字符数组中的内容不一定是字符串正确答案:C3、下面是对数组s的初始化操作,其中不正确的是()A.char s[5]= " ";B.char s[5]={'a'};C.char s[5]={"a"};D.char s[5]= "abcdef";正确答案:D4、下面叙述正确的是()A.字符串"123 "与"123"相等。

B.字符串"123"小于字符串"2"。

C.两个字符串所包含的字符个数不相同时,才能进行大小比较。

D.字符个数多的字符串比字符个数少的字符串大。

正确答案:B5、下面程序段的输出结果是()char a[7]=“123456”;char b[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A.\0B.C.5D.6正确答案:D6、以下对二维数组a的正确说明是__。

A.double a[1][4];B.float a(3)(4);C. floatf a(3,4);D. int a[3][];正确答案:A7、以下能对二维数组a进行正确初始化的语句是__。

A. int a[][3]={{1,2,3},{4,5,6}};B.int a[2][]={{1,0,1},{5,2,3}};C.int a [2][4]={{1,2,3},{4,5},{6}};D. int a[][3={{1,0,1},{},{1,1}};正确答案:A8、若有说明: int a[3][4]={0};则下面正确的叙述是__。

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 程序执行的入口点。

二维数组 编程题

二维数组 编程题

二维数组编程题题目:找出二维数组中的最大数编程要求:给定一个二维数组,编写一个函数来计算数组中的最大数并返回。

函数原型:int findMax(int arr[row][col], int row, int col)函数参数:- arr: 表示输入的二维数组- row: 表示二维数组的行数- col: 表示二维数组的列数函数返回:- 返回二维数组中的最大值示例:输入:int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};输出:12解题思路:首先将数组中第一个元素设为最大值,然后遍历数组中的每个元素,每次比较当前元素和最大值的大小,如果当前元素更大,就更新最大值。

最终返回最大值即可。

编程实现:```cpp#include <iostream>using namespace std;int findMax(int arr[row][col], int row, int col) {int maximum = arr[0][0];for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (arr[i][j] > maximum) {maximum = arr[i][j];}}}return maximum;}int main() {int arr[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};int row = sizeof(arr) / sizeof(arr[0]);int col = sizeof(arr[0]) / sizeof(int);int maxNum = findMax(arr, row, col);cout << "最大数为:" << maxNum << endl;return 0;}```以上代码通过遍历二维数组找出最大元素,并输出结果。

二级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整型二维数组中最大元素的值。

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

21.下列程序的功能是输出一 下列程序的功能是输出一5X5矩阵,使得上三 矩阵, 下列程序的功能是输出一 矩阵 角元素为1,其余元素为0 角元素为 ,其余元素为 main() i>j { int a[5][5],i,j; a[i][j]=1 for(i=0;i<5;i++) for(j=0;j<5;j++) if( ) a[i][j]=0; else ; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%2d",a[i][j]); printf("\n"); } }
3.设有数组定义 char array [ ]="China"; 则数组 设有数组定义: 设有数组定义 array所占的空间为 。 C 所占的空间为 A)4个字节 B)5个字节 C)6个字节 ) 个字节 ) 个字节 ) 个字节 D)7个字节 ) 个字节 4.给出以下定义: .给出以下定义: C char x[]=“abcdefg”; ; char y[]={'a','b','c','d','e','f','g'}; , , , , , , ; 则正确的叙述为 。 A)数组 和数组 等价 和数组Y等价 )数组X和数组 B)数组 和数组 的长度相同 和数组Y的长度相同 )数组x和数组 C)数组 的长度大于数组 的长度 的长度大于数组Y的长度 )数组X的长度大于数组 D)数组 的长度小于数组 的长度 的长度小于数组Y的长度 )数组X的长度小于数组
15.下面程序的运行结果为 下面程序的运行结果为 #include <stdio.h> (1,1)=-5 main() { int i,j,row=0,col=0,m; static int a[3][3]={1,-2,0,4,-5,6,2,4}; m=a[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(a[i][j]<m) {m=a[i][j]; row=i; col=j; } printf("(%d,%d)=%d\n",row,col,m); }
13.下面程序的运行结果为 下面程序的运行结果为 S=15 = #include <stdio.h> main() { int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=0; for(i=0;i<=2;i++) s=s+a[i][i]; printf("s=%d\n",s); }
则下面语句的输出结果是 。 for(i=0;i<3;i++) printf(“%d”,x[i][2-i]); A)1 5 9 B)1 4 7 C)3 5 7 ) ) ) D)3 6 9 )
6 。 11.下面程序的运行结果为 . #include <stdio.h> main() { char ch[7]={"65ab21"}; int i,s =0; for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); }
1. 下述对 语言字符数组的描述中错误的是 。C 下述对C语言字符数组的描述中错误的是
A)字符数组可以存放字符串; )字符数组可以存放字符串; B)字符数组中的字符串可以整体输入、输出; )字符数组中的字符串可以整体输入、输出; C)可以在赋值语句中通过赋值运算符“=”对字符数组整 )可以在赋值语句中通过赋值运算符“ 对字符数组整 体赋值; 体赋值; D)不可以用关系运算符对字符数组中的字符串进行比较。 )不可以用关系运算符对字符数组中的字符串进行比较。
12.下面程序的运行结果为 .
#include "stdio.h" SWITCH*#WaMP* main ( ) {char str[]="SSSWILTECH1\1\11W\1WALLMP1"; int k;char c; for(k=2;(c=str[k])!='\0';k++) {switch( c ) { case 'A': putchar('a');continue; case '1': break; case 1 : while((c=str[++k])!='\1'&&c!='\0'); case 9 : putchar('#'); case 'E': case 'L': continue; default : putchar(c );continue; } putchar('*'); }}
8.语句”printf(“%d\n”,strlen(“ats\no12\1\\”));” .语句” 的输出结果是 C 。 A)11 ) B)10 ) C)9 ) D)8 )
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
17.下面程序的运行结果为 下面程序的运行结果为 main() { int a[5][5],i,j; for(i=0;i<5;i++) {a[i][i]=i+1; for(j=0;j<5;j++) if(j!=i) a[i][j]=0; } for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%2d",a[i][j]); printf("\n");} }
20.把两个字符串连接起来。 把两个字符串连接起来。
#define LENGTH 40 main() { char str1[LENGTH+1],str2[LENGTH+1]; ; int len1,len2; scanf("%s",str1);scanf("%s",str2); ; while ( ) { result[len1]=str1[len1]; len1++; } len2=0; char result[2*LENGTH+1] while (str2[len2]!='\0') { result[len1]=str2[len2]; len1=0 len1++;len2++; } str1[len1]!='\0' ; result[len1]='\0' printf("%s\n",result); }
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)、 main( ) { ="Our teacher teachs C language"; int j,k; char s[] for( ;s[j]!='\0';j++) j=k=0 if(s[j]!=' ') s[k++]=s[j] ; s[k]='\0'; printf("%s",s); }
2.不能把字符串:Hello!赋给数组 的语句 .不能把字符串: !赋给数组b的语句 是 B 。 A)char b[10]={'H','e','l','l','o','!'}; ) , , , , ,! ; B)char b[10];b=“Hello!”; ) ; ; C)char b[10];strcpy(b,“Hello!”); ) ; ; D)char b[10]=“Hello!”; ) ;
10000 02000 00300 00040 00005
18、程序的功能是,将字符数组a中下标值为偶数 、程序的功能是,将字符数组 中下标值为偶数 的元素从小到大排列,其它元素不变。 的元素从小到大排列 其它元素不变。 其它元素不变 #include <stdio.h> #include <string.h> strlen(a) main() { char a[]="clanguage",t; j+=2 a[i]>a[j] int i, j, k; k= ; for(i=0; i<=k-2; i+=2) for(j=i+2; j<k; ) if( ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf("\n"); }
相关文档
最新文档