二维数组、字符数组习题
二维数组习题总结
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语言二维数组题目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语言(数组)习题与答案
一、单选题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二维数组练习题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操作题-二维数组
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整型二维数组中最大元素的值。
第3章 数组(习题答案及解析)
习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。
3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。
因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。
C选项不正确。
C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。
3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。
3.4 D 分析:本题考察的知识点是:字符串常量。
在C语言中,字符串常量是以双引号括起来的字符序列。
因此B选项和C选项不正确。
字符序列中可包含一些转义字符,转义字符都是以"\"开头的。
A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。
D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。
java 数组练习题
java 数组练习题Java 数组练习题Java 是一种广泛应用于软件开发的编程语言,而数组则是 Java 中常用的数据结构之一。
数组可以用来存储一系列相同类型的数据,它提供了便捷的访问和操作方式。
在这篇文章中,我们将通过一些实际的练习题来巩固和提升对 Java 数组的理解和应用。
1. 数组元素求和首先,我们来考虑一个简单的问题:给定一个整数数组,如何计算数组中所有元素的和呢?我们可以使用一个循环遍历数组,并将每个元素累加到一个变量中。
以下是一个示例代码:```javaint[] nums = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}System.out.println("数组元素的和为:" + sum);```2. 数组元素查找接下来,我们考虑一个查找问题:给定一个整数数组和一个目标值,如何确定目标值是否存在于数组中?我们可以使用一个循环遍历数组,并逐个比较元素与目标值是否相等。
以下是一个示例代码:```javaint[] nums = {1, 2, 3, 4, 5};int target = 3;boolean found = false;for (int i = 0; i < nums.length; i++) {if (nums[i] == target) {found = true;break;}}if (found) {System.out.println("目标值存在于数组中");} else {System.out.println("目标值不存在于数组中");}```3. 数组元素排序排序是数组操作中常见的需求之一。
Java 提供了多种排序算法,如冒泡排序、选择排序和插入排序等。
这里我们以冒泡排序为例,来演示如何对数组元素进行排序。
C语言习题(6)
C语言习题(6)第六章数组一.填空题1.C语言数组的下标总是从开始,不可以为负数;构成数组各个元素具有相同的。
2.在C语言中,二维数组的元素在内存中的存放顺序是。
3.若有定义:double x[3][5],则x数组中行下标的下限为,列下标的上限为。
4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为,a[2][1]得到的值为。
5.若有定义int a[][4]={1,2,3,4,5,6,7,8,9},则数组a第一维的大小为。
6.设char str[100]=”Hangzhou”;则数组str所在内存空间应为字节。
7.下列程序的输出结果是。
char str[ ][10]={”abcd”,”1234”,”efgh”,”5678”};int k=1;printf(“%s”,str[k++]);8.欲将字符串S1复制到字符串S2中,其语句是。
9.如果在程序中调用了strcat函数,则需要预处理命令;如果调用了gets函数,则需要预处理命令。
10.字符串是以为结束标志的一维字符数组。
有定义:char a[]=”China”;则a数组的长度是。
11.数组在内存中占用一段连续的存储空间,该存储空间的首地址用表示。
12.调用strlen(“abcd\0ef\0g”)的返回值为。
二.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是。
A)int a(10) ; B)int n=10,a[n];C)int n; D)#define SIZE 10scanf(“%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.若有定义:int a[3][4],则对数组a元素的正确引用是。
C语言习题六(数组部分)习题及答案
C语言习题六(数组部分)习题及答案习题六一.选择题1.在C语言中,引用数组元素时,其数组下标的数据类型允许是c 。
A)整型常量B)整型表达式C)整型常量或整型表达式C)任何类型的表达式2.以下对一维整型数组a的正确说明是DA)int a(10) ; B)int n=10,a[n];C)int n; D)#define SIZE 10scanf(“%d”,&n);int a[SIZE];int a[n];3.若有定义:int a[10],则对数组a元素的正确引用是 D 。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]4.以下不能对一维数组a进行正确初始化的语句是B 。
A)int a[10]={0,0,0,0,0}; B)int a[10]={} ;C)int a[ ] = {0} ; D)int a[10]={10*1} ;5.若有定义:int a[3][4],则对数组a元素的正确引用是。
AA)a[2][3] B)a[1,3] C)a(5) D)a[10-10]6.以下能对二维数组a进行正确初始化的语句是B。
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}} ;7.以下不能对二维数组a进行正确初始化的语句是。
CA)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} ;8.若有说明:int a[3][4]={0};则下面正确的叙述是D。
A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值09.若有说明:int a[][4]={0,0};则下面不正确的叙述是D。
C#二维数组(答案)
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceConsoleApplication2
{
classProgram
{
staticvoidMain(string[] args)
{
int[,] arr =newint[10, 10];
Randomrnd=newRandom();
for(inti = 0; i <= 5; i++)//随机产生并显示数组的所有数据内容
{
for(intj = 0; j <= 7; j++)
{
arr[i,j]=rnd.Next(10,100);
Console.Write(arr[i,j]+" ");
}
Console.Write("\n");
}
Console.ReadKey();
}
}
}
任务109:
编写程序,定义一个4行,4列的二维数组,随机产生16个10到99之间的整数,放入其中,并把这4行4列的数据显示出来;把该数组的对角线元素显示出来,所谓的对角线元素如下图所示:
注意:从左上到右下的称为正对角线元素,从左下到右上的称为斜对角线元素。
{
Console.Write(arr[2, i] +" ");
}
Console.ReadKey();
}
}
}
任务108:
编写程序定义一个二维数组arr,该数组一共有4行3列,如下表所示,请把下表中的所有对应数据利用赋值语句赋值到该二维数组arr中去:
二维数组习题
二维数组习题要求:独立完成。
做完这些题目以后,以word格式文件发到教学网站。
改错题目在原题上直接改,并且用加粗加红字体方式明显标出编程题目直接将代码粘贴在题目后面发送文件名格式学号+姓名有问题请在邮件的正文表明,最好不要写在word文档中在周日之前提交1.用调试程序的方法找出下列程序的错误:输入2个正整数m和n(m>0,n<7),然后输入该m行n列二维数组a中的元素,分别求出各行元素之和并输出。
源程序如下:#include <stdio.h>int main( ){int a[6][6], i, j, m, n, sum;printf("input m, n:");scanf("%d%d",&m,&n);printf("input array:\n");for(i=0;i<m;i++) /* 调试时设置断点*/for(j=0;i<n;j++)scanf("%d",&a[i][j]);sum=0;for(i=0;i<m;i++){for(j=0;j<n;j++)sum=sum+a[i][j];printf("sum of row %d is %d\n",i,sum); /* 调试时设置断点*/}return 0;}2.输入一个正整数n(0<n<7),再读入n阶矩阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。
#include <stdio.h>main(){int x[7][7],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&x[i][j]);for(i=0;i<n+1;i++)x[n][i]=0;for(j=0;j<n+1;j++)x[j][n]=0;for(i=0;i<n;i++)for(j=0;j<n;j++){ x[i][n]+=x[i][j];x[n][j]+=x[i][j];x[n][n]+=x[i][j];}for(i=0;i<n+1;i++){for(j=0;j<n+1;j++)printf("%5d\t",x[i][j]);printf("\n");getch();}}3. 输入一个正整数n(0<n<10),输出九九乘法表的前n*n项(将乘数被乘数和乘积放入一个二维数组中,再输出该数组)。
第6章-数组和字符串-练习题
第6章-数组和字符串-练习题一、选择题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. 24B. 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.给出下列代码,则数组初始化中哪项是不正确的?byte[]array1,array2[];byte array3[][];byte [][]array4;A.array2 = array1 B.array2=array3C.array2=array4 D.array3=array48.下面程序的运行结果是____main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 509.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];10.下列关于Java语言的数组描述中,错误的是()。
字符数组习题(1)
字符数组习题(1)字符数组习题1.s12和s2已正确定义并分别指向两个字符串。
若要求:当s1所指串⼤于s2所指串时,执⾏语句S;则以下选项中正确的是_____A)if(s1>s2)S; B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S;2.以下定义语句中,错误的是________。
A) int a[]={1,2}; B) char a[]={"test"};C) char s[10]={"test"}; D) int n=5,a[n];3、当接受⽤户输⼊的含有空格的字符串时,应使⽤______函数。
A) gets( ) B) getchar( ) C) scanf( ) D) printf( )4、设有数组定义:char array[]="China";则strlen(array)的值为______ 。
A) 4 B) 5 C) 6 D) 75、设有数组定义:char array[]="China";则数组array所占的存储空间为________。
A) 4个字节B) 5个字节C) 6个字节D) 7个字节6、设有数组定义:char array[10]= "China";则数组array所占的存储空间为__ _____。
A) 4个字节B) 5个字节C) 6个字节D) 10个字节7.有如下程序main(){ char ch[80];int j;long s=0;printf("Enter a numeral string\n"); gets(ch);for(j=0;ch[j]>'\0';j++)s=10*s+ch[j]-'0';printf("%ld\n",s);}如果运⾏时,从键盘上输⼊由数字组成的字符串,该程序的功能是______。
第6章 数组和字符串 练习题
一、选择题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. 24B. 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.给出下列代码,则数组初始化中哪项是不正确的?byte[] array1,array2[];byte array3[][];byte [][] array4;A.array2 = array1 B.array2=array3C.array2=array4 D.array3=array48.下面程序的运行结果是____main(){int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 509.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];10.下列关于Java语言的数组描述中,错误的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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"); }