大一C語言題目若有定義語句 int a

2021-03-25 01:20:04 字數 4099 閱讀 8898

1樓:匿名使用者

核心在於p的型別。

定義等效於

int *p[3];

這裡p是一個陣列,包含三個元素,每個元素型別為int *所以a p為陣列名, 不可以賦值。

b p[0]為int*, 而a為二維陣列名,等效於int **, 型別不匹配。

c a[1][2]為a的一個元素,型別是int,所以&a[1][2]是int*, 和p[0]型別相同, 所以這個賦值是合法的。

d 這個沒什麼說的了,錯的比b還離譜, int ***, 賦值給int*, 型別不匹配。

2樓:匿名使用者

定義中p[3]表示一個陣列,*p[3]表示一個整形指標陣列,p[0]是陣列成員,是一個整形指標,p=a錯因為不能向一個陣列賦值

int a[2][3], a是一個二維陣列,因此在等式右邊a表示一個整形指標的指標,不能賦值給整形指標值p[0],a的子陣列a[0],a[1],a[2]才是整形指標

c 中 a[1][2]是一個整形值,取地址&a[1][2]就是整形指標,可以賦值給p[0]

d a和 &a意思一樣,表示二維陣列a的地址。

若有定義語句:int a[2][3],*p[3]; ,則以下語句中正確的是

3樓:匿名使用者

應該選c。

p是一個指標數

組,它有四個元素,每個都是一個指向int型的指標。

a是一個二維陣列,它的每個元素都是int型的。

a的錯誤是因為p是常量(陣列名都是指標常量),不可以被賦值。而且p和a的型別也不一致。

bcd都是對p的元素賦值,這是可以的,等號右邊應當是一個int型資料的指標(即地址)。c選項中a[1][2]是a的一個元素,是一個int型值,&取了它的地址,所以是正確的。

4樓:匿名使用者

int* p[3]是定義了一個大小為3的陣列指標,也就是定義了三個int型的指標。

p代表指標陣列的首地址,相當一個二維指標。

p[0],p[1],p[2]代表一個int型指標c是對的

若有定義語句:int a[2][3],*p[3],則以下語句正確的是(c)

5樓:匿名使用者

int a[2][3],*p[3];

因為的優先順序比*高所以p是一個陣列,這個陣列存放的是指向整數的指標。

即存放的是一個整數變數的地址。

而&a[1][2]正好是一個整數的地址。

所以p[0]=&a[1][2]正確。

補充回答:

因為dint *p[3];

p是一個陣列,這個陣列存放的是整數指標。

p[1]就是一個整數指標。

但是&a並不是整數指標,它是一個陣列的指標。

6樓:

帶星號證明是指標,賦值時只能給一個地址值,我只知道這了,那你就看a是代表首地址還是首個值

若有定義語句:int a[2][3],*p[3];則下列語句正確的是

7樓:匿名使用者

答案是bai c

解決這類題型du

首先要分清型別。zhi

a錯,雖然 p 的型別是

dao (int **) ,a 的型別是 (int**),但是陣列專名代表的屬地址也不能改變。

b錯,因為 p[0]的型別是 (int *),a 的型別是 (int**)。

c對,p[0] 的型別是 (int*),&a[1][2]的型別也是 (int*)。

d錯,p[1]的型別是 (int*), &a 的型別是 (int***)。

8樓:匿名使用者

應該選c。

p是一個指標陣列,它有四個元素,每個都是一個指向int型的指標。

a是一個二維數

回組,它

答的每個元素都是int型的。

a的錯誤是因為p是常量(陣列名都是指標常量),不可以被賦值。而且p和a的型別也不一致。

bcd都是對p的元素賦值,這是可以的,等號右邊應當是一個int型資料的指標(即地址)。c選項中a[1][2]是a的一個元素,是一個int型值,&取了它的地址,所以是正確的。

9樓:匿名使用者

結論:正確的是c

ap=a;//型別不匹配,不正確

bp[0]=a//型別不匹配,不正確

cp[0]=&a[1][2];//型別匹配,正確dp[1]=&a;//型別不匹配,不正確

int a[2][3],*p[3];

10樓:匿名使用者

選a ,因為p是指標,指向陣列首地址。

11樓:**夢幻

c正確。

baia錯誤,因為p是指向du一個指標陣列,作zhi為陣列名,dao不能指

向別的地方。內

b錯誤,因為p[0]是一個容int指標,也就是int*;而a是一個指向指標的指標int**。

c正確,因為p[0]是一個int*,a[1][2]是int,&a[1][2]是int*,型別吻合。

d錯誤,因為a作為陣列名,不能取地址。何況即使能取,p[1]是int*,&a是int***,型別不對。

.若有以下定義和語句則++(*p)的值是___3__。這個答案為什麼不是2

12樓:

p=&a[2], p指向了a的下標為2的元素,c語言的陣列下標是從0開始的,下標為2指的是第三個元素,2,++(*p)將該元素增加1,2+1=3

13樓:藍色回憶殘月

int a[4]=,*p;

p=&a[2]=2;

再執行(*p)=2;

之後++(*p)=3;

14樓:支瑜應文瑞

a因為p+=2

是p=0+2

,指的是陣列中的第二個元素。而*(p++)是p+1

,*(p++)表示第三個元素的值。故選a。

若有說明:int n=2,*p=&n,*q=p;則以下非法的賦值語句是

15樓:匿名使用者

p*n是非法的bai。

指標(pointer)是程式語言中du的一個物件,利zhi用地址,它的值直dao接內指向(points to)存在電腦儲存器中另容一個地方的值。

題目中int n=2,*p=&n,*q=p 定義整型n,p是一個指向n的指標,它的值為n的地址。q是一個指標,q的值和p的值相同,也就是它倆是同樣的地址。

p=q使得p的值等於q的值,它倆都是指標,可以賦值。*p=*q意思是指標q指向的值賦給q地址指向的值。n=*q是將指標q所指向的值賦給n。

p*n,因為兩者不是同一型別資料,所以不能進行運算,所以這個是錯的。

16樓:聽不清啊

d p*n 就是非法的,不能正確執行。

17樓:匿名使用者

p是指標,n是整數 不能使用*號

不能將int *轉化為int型

c語言的陣列問題,若有定義:int a[2][3];以下選項中對a陣列元素正確引用的是 a.a[2][!1] b.a[2][3]

18樓:匿名使用者

選d。一個二維陣列可以被認為是一個帶有 x 行和 y 列的**。下面是一個二維陣列,包含 2 行和 3列:

因此,陣列中的每個元素是使用形式為 a[ i , j ] 的元素名稱來標識的,其中 a 是陣列名稱,i 和 j 是唯一標識 a 中每個元素的下標。i最大值為1,j最大值為2,超出此範圍則表示錯誤。

19樓:孤獨的蠍子

d 因為1>2為假,所以表示式為0 ; 其次!1也就是非真,即為假,所以a[1>2][!1]等價於a[0][0]

20樓:藍人

d,陣列的有效範圍是a[0][0] - a[1][2]

a,b,c都超過範圍了。

21樓:匿名使用者

定義的陣列引用時那個數下標減1

C語言 若有定義 int a 7 float x 2 5,y 4 7則表示式x a 3 int x y

按照加減乘除運演算法則及順序,還有結果轉換型別為float,結果為2.5 x a 3 int x y 2 4 x 1 7 2 4 x 1 4 x 若有定義 int a 7 float x 2.5,y 4.7 則表示式x a 3 int x y 2 4的值是 請詳細解答,非常感謝 答案為2.5.這個關...

在C語言中,若有定義 int y 3,x 71,2,3,4,5,6,7,則表示式y x

定義一個整形陣列,陣列包括7個元素,並初始化各個元素的值分別為1 2 3 4 5 6 7對應元素x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 5 的值為6,y x 5 相當於y y x 5 3 6 9。x 7 表示7個元素的一維陣列x 一個陣列x中有7個元素 在c語言中,若有定義 st...

c語言題若有定義inta9pa則p5表示

答案選 b 剛剛看到a 5 就選了 p a 指向的就是a 0 p 5就相當於向後移動5個,就是a 5 表示地址如果是 p 5 就表示值 你好,選b。int p a表示指標p指向陣列a的首地址。也可以說是a 0 的地址。所以p 5指向a 5 的地址 若有定義int a 10 p a 則p 5表示什麼 ...