欢迎您访问52IJ教育培训网,今天小编为你分享的师说方面的学习知识是通过网络精心收集整理的:“定义数组_2以下定义数组的语句中错误的是A.int num[]={1,2,3,4...”,注意:所整理内容不代表本站观点,如你有补充或疑问请在正文下方的评论处发表。下面是详细内容。
这个……出这个题的人那绝对是故意刁难人,可能也有故意引导程序员不按照规范定义数组。
首先得指出这个数组的定义是在哪个编译器中编译的,因为不同的编译器对数组定义的认可是不一定相同的,就Java而言,上述四个对Int数组的定义只有A是正确的,因为Java编译器中不认可将数字写在赋值的左边,只能像 Int [][] aa = new Int[5][6]这样定义。
如果这个数组的定义是在C或C++语言中,那么有问题的一定是C,其它的定义都能编译通过,但我不得不说一句,如果是自己编写程序千万不要像BCD这种写法。我猜这道题的编译环境应该就是C语言了,因为只找到了一个答案C。下面具体说说C为什么错,BD为什么可以编译通过。
B、num[][3],知道这个数组的列一定是3,行是一个不确定的值,就右边给出的信息{{1,2},3,4,5};可知道num的第一行是{1,2},前面已经说了num[][3]的列数一定是3,但这里{1,2}只有两列,为什么也是对的呢?原因很简单,是因为编译器给{1,2}用零扩展了第三列成为{1,2,0}。你可以定义一个数组int [5] aa ={1},然后对 aa 遍历输出会发现只有aa[0]=1,a[1]—a[4]的值都是零。然而可以从num右侧的赋值{{1,2},3,4,5,6}中可以知道num不能小于三行,那我们是怎么知道一定不小于三行呢?可以看{1,2}后还有{3,4,5,6},而又早知道这个数组有3列,那么最多只能耗去{3,4,5,6}中的三个数,还剩下一个数,只能放到下一行中了。
C、不难看出,{{1,2},{3,4},{5,6}};只至少应该有三行两列,所以左侧的 num[m][n]中,M的值至少m>3,n的值至少n>2。
D、int num[m][4],4列,{1,2,3,4,5,6};中抽去4个数还余两个数,所以如果m有值的话m>2。
最后不得不说一个在C语言中非常重要且易错的点:
(一)
int aa[3] = {1};
int i;
for(i=0;i<3;i++){
printf("%d\n",aa[i]);
}
那么aa的各元素的值是多少?
答:aa[0]=5;aa[1]=0;aa[2]=0;
(二)
int aa[3]
int i;
for(i=0;i<3;i++){
printf("%d\n",aa[i]);
}
那么aa的各元素的值是多少?
答:aa[i]所指向的内存地址。
(三)
int aa[3][3] = {5};
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d\t",aa[i][j]);
}
printf("\n");
}
那么aa的各元素的值是多少?
答:5 0
0 0
希望你能明白。
- 英国船级社_英国船级社的历史由来是什么?[历史]
- citrus aurantium_...Stapf.(Ephedraceae) and Ci
- 犹太复国主义_什么是犹太复国主义,和希特的种族
- 从后面上我_...Movie (洋葱电影)说是'从
- 黑眼豆豆哪些歌好听_...挺好听的一个英文歌 是个
- i max_...a[ARRAY_SIZE];x05int i;x05int max;x05
- kissbaidu_《因为是女子》中kiss原唱英文独白版,
- 瘟疫与你_...你命短一年1、吸烟是继战争、饥饿和
- dnf染色剂怎么得_...纱线上靛蓝的染色深度或上染
- another的结局_...thing that lasts还是2tomorrow
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
