若有说明:int a[3][4];则数组a中各元素( ).

若有说明:int a[3][4];则数组a中各元素( )。 A. 可在程序的运行阶段得到初值0B. 可在程序的编译阶段得到初值0C. 不能得到确定的初值D. 可在程序的编译或运行阶段得到初值0
c答案不正确啊,我就选的C结果是错误的

我蒙的B,刚才对了,不知道为什么,

不能得到确定的初值。int a[3][4]定义了数组但未赋初值,系统为所定义的数组在内存中开辟了zhidao已连续的存储单元,但这些存储单元中没有确定的值。

若数组中的数据都是后来获取并且数据过多时,其中的元素个数可表示为count = sizeof(a)/sizeof(a[0]),在执行循环语句中条件判断语句时,这样更方便。

扩展资料:

关于数组的各种表示的含义:

1、一维数组:

&a[0]:数组首元素地址;

&a:数组首元素地址;

&a:整个数组的地容址;

2、二维数组:

&a[0][0]:首行首元素的地址;

a[0]:首行首元素;

&a[0]:首行地址;

a:首行地址;

&a:整体数组的地址;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-23

对于 a[3][4]说明有12元素,行从0到2,列从0到3。a[0][4]的列超界。

数组说明的一般形式为:类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。

数组就是一次性定义相同数据类型的一组变量数组定义。

举例

int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。

float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。

char ch[20]; 说明字符数组ch,有20个元素。

扩展资料:

四种常见的数组排序方法

一、冒泡排序法:将数组中的相邻两个元素进行比较,将比较大(较小)的数通过两两比较移动到数组末尾(开始),执行一遍内层循环,确定一个最大(最小)的数,外层循环从数组末尾(开始)遍历到开始(末尾)。

二、选择排序法:将要排序的数组分成两部分,一部分是从大到小已经排好序的,一部分是无序的,从无序的部分取出最小的放到已经排序的最后面。

三、插入排序法:将要排序的数组分成两部分,每次从后面的部分取出索引最小的元素插入到前一部分的适当位置

四、快速排序法:快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为2。

参考资料来源:百度百科-数组

第2个回答  推荐于2017-11-25
程序1.
//定义为局部性质的数组

#include <stdio.h>
void main()
{
int a[5]; //定义局部性质的数组
int i;
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf("\n");
}

程序2.
//定义为全局性质的数组

#include <stdio.h>
int a[5]; //定义为全局性质的数组
void main()
{
int i;
for(i=0;i<5;i++)
{
printf("%2d",a[i]);
}
printf("\n");
}

上面的两个程序都没给出显示的初始化,来判断编译器是否对它进行初始化,对比下...
运行后你会发现,定义为全局性质的数组的都会被编译器自动初始化为0
而非全局的,即局部性质的都不会被自动初始化显示的是乱码,不知道你定义的是那部分的,给你参考吧本回答被提问者采纳
第3个回答  2020-12-17
第4个回答  2012-12-13
a是一个栈上的变量,不会被初始化
所以应该是C