【题目名称】
关于一维数组初始化,下面哪个定义是错误的?( 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;
}