2以下定義數組的語句中錯誤的是
這個……出這個題的人那絕對是故意刁難人,可能也有故意引導程序員不按照規范定義數組。
首先得指出這個數組的定義是在哪個編譯器中編譯的,因為不同的編譯器對數組定義的認可是不一定相同的,就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;iprintf("%d\n",aa[i]);
}
那么aa的各元素的值是多少?
答:aa[0]=5;aa[1]=0;aa[2]=0;
(二)
int aa[3]
int i;
for(i=0;iprintf("%d\n",aa[i]);
}
那么aa的各元素的值是多少?
答:aa[i]所指向的內存地址。
(三)
int aa[3][3] = {5};
int i,j;
for(i=0;ifor(j=0;jprintf("%d\t",aa[i][j]);
}
printf("\n");
}
那么aa的各元素的值是多少?
答:5 0
0 0
希望你能明白。
以下正確的數組定義語句是()A int y[1][4]={1,2,3,4,5,} B float x[3][]={{1
這個題在于對二維數組的理解。
二維數組即是A[m][n]表示一個m行n列的數組,數組種元素的個數是m*n個,例如int y[1][4]表示一個1行4列的數組,包含1*4=4個元素,而且不能寫成int y [1,4]。從數學的角度理解,二維數組即是矩陣。
二維數組的使用規則如下:
1、行下標(m)、列下標(n)從零開始,知道定義的值減1結束。
2、二維數組初始化的類型:
1)分行給二維數組賦值。例如:
int y[2][3]={{1,2,3},{4,5,6}};表示在這個2行3列的二維數組里,第一行是1,2,3;第二行是4,5,6。
2)所有元素寫在一個花括號中。例如:
int y[2][3]={1,2,3,4,5,6};
3)對部分元素賦值。例如:
int y[2][3]={{1},{4}};表示給第一行第一個數字賦值1,給第二行第一個數字賦值4;其余未賦值的元素均為0.
3、二維數組的行下標不一定要說明,列下標必須說明。例如:
int y[][3]正確,int y[2][]錯誤。
綜上所述,A錯誤,A中元素只有1*4=4個,而后面寫了5個數字;B錯誤,B的列下標沒有說明。
希望幫到你。
以下正確的定義語句是-JAVA以下定義一維數組的語句中,正確的是:
答案為D 定義一維數組可以直接定義數組大小比如: int[] a = new int[5]; 也可以初始化數組,比如: int[] b = {1, 2, 3, 4, 5}; 還可以定義數組大小后直接初始化,比如: int[] c = new int[5]{1, 2, 3, 4, 5}; 但不可以定義完數組大小后再進行直接賦值,比如: int[] d = new int[5]; d = {1, 2, 3, 4, 5}; // 錯誤的例子 A和B的錯誤是語法錯誤 C的第一句沒有問題,第二句前面不應該加定義符int了。