数组定义初始化相关习题 数组编程练习

【题目名称】

关于一维数组初始化,下面哪个定义是错误的?( c )

【题目内容】

A. int arr[10] = {1,2,3,4,5,6};//不完全初始化

B. int arr[] = {1,2,3,4,5,6};

C. int arr[] = (1,2,3,4,5,6); 逗号表达式
D. int arr[10] = {0};


【题目名称】

定义了一维 int 型数组 a[10] 后,下面错误的引用是:( c )

【题目内容】

A. a[0] = 1;

B. a[0] = 5*2;

C. a[10] = 2; **数组越阶了 题目定义取值范围0到9 这个选项访问第11个元素 **

D. a[1] = a[2] * a[0];


【题目名称】

若定义int a[2][3]={1,2,3,4,5,6};则值为4的数组元素是( )

【题目内容】

A. a[0][0]

B. a[1][0]

C. a[1][1]

D. a[2][1]
在这里插入图片描述


下面代码的结果是:( b)

#include <stdio.h>
int main()
{
    int arr[] = {1,2,(3,4),5};  
    printf("%d\n", sizeof(arr));
    return 0;
}

逗号表达式 从左向右一次计算 他的结果是最后一个表达式的结果,(3,4)出来4 1 2 4 5 四个整形每个整形4个字节
【题目内容】

A. 4

B. 16

C. 20

D. 5


【题目名称】

下面代码的结果是:( a )

#include <stdio.h>
int main()
{
    char str[] = "hello bit";
    printf("%d %d\n", sizeof(str), strlen(str));
	return 0;
}

sizeof 计算数组总大小 单位是字节,数元素个数 空格和\0也算
**strlen求字符串长度 找\0但是他不算一个长度 **
【题目内容】

A. 10 9

B. 9 9

C. 10 10

D. 9 10


【题目名称】

给出以下定义:

char acX[] = “abcdefg”;这里放的其实是abcdefg\0
char acY[] = {‘a’,’b’,’c’,’d’,’e’,’f’,’g’};这里没有
以下说法正确的是( C )

【题目内容】

A. 数组acX和数组acY等价

B. 数组acX和数组acY的长度相同

C. 数组acX的长度大于数组acY的长度

D. 数组acX的长度小于数组acY的长度


【题目名称】

关于一维数组描述不正确的是:(D )

【题目内容】

A. 数组的下标是从0开始的

B. 数组在内存中是连续存放的

C. 数组名表示首元素的地址

D. 随着数组下标的由小到大,地址由高到低由低到高


【题目名称】

以下能对二维数组a进行正确初始化的语句是:( b)

【题目内容】

A. int a[2][]={{0,1,2},{3,4,5}};错误 行可以省略 列不能省略

B. int a[][3]={{0,1,2},{3,4,5}};

C. int a[2][4]={{0,1,2},{3,4},{5}};初始化多了 2行只有 定义三个大括号

D. int a[][3]={{0,2},{},{3,4,5}};


编程

【题目名称】

数组操作

【题目内容】

创建一个整形数组,完成对数组的操作

实现函数init() 初始化数组为全0
实现print() 打印数组的每个元素
实现reverse() 函数完成数组元素的逆置。
要求:自己设计以上函数的参数,返回值。

void init(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i <sz; i++)
	{
		arr[i] = 0;
	}

}


void  print(int arr[],int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n ");
}
reverse(int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;
	while (left < right)
	{

		int tmp = 0;
		tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}



}
int main()

{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(0);
	print(arr, sz);
	reverse(arr, sz);
	print(arr, sz);
	init(arr,sz);
	print(arr, sz);
return 0;
}

【题目名称】

交换数组

【题目内容】

将数组A中的内容和数组B中的内容进行交换。(数组一样大)

int main()
{
	int arr1[] = {1,3,5,7,9};
	int arr2[] = {2,4,6,8,10};

	int sz = sizeof(arr1) / sizeof(arr1[0]);	//两个数组交换  再定义一个arr3
		int i = 0;//定义的两个变量 arr1  arr2
		for (i = 0; i < sz; i++)
		{
			int tmp = 0;
			tmp = arr1[i];
			arr1[i] = arr2[i];
			arr2[i] = tmp;
		}
	
			

	     

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值