c語言習題求解101112,求解析

2021-05-30 00:16:46 字數 3276 閱讀 2572

1樓:散落的瓔珞

a、x與y,兩個都有值存在,所以是對的,結果是1。

b、3<=4,是對的,結果是1。

c、((x或y+1)與y-z),按這個順序來,(3或(4+1))都是存在的,為1,。繼續(1與(5-5))都是存在的,結果是1。

d、((這段不用看了)或1)只要有1存在,或的結果一定是1。但是最前面!表示取反,即原式為1,現在就是0。此選項正確√

a、int定義時不能連等,y無法解釋是新定義變數還是之前就有的。

b、int是定義屬性為整數,不能進行帶變數的運算,一旦x或y不是int型變數此式運算結果將不準確。

c、 x= (+8==7),而+8==7是比較兩個資料是否相等。又因為+8和7不相等,所以x值為1。此選項正確√

d、%=是求模賦值運算子,即x的模為4.5,x不能確認正負,所以無效,然後報錯。

根據運算子的優先順序和結合性,先做後面那一串的乘除a%3*(int)(x+y)%2/4。

其中%為取餘數。而這一串的乘除法是從左到右依次計算的。故而倒數第二和第一的運算是%和/。

y%2表示y除以2剩多少是除不開的(餘數),其結果只能是0或1;而這個0或者1再/4(注意這裡是整數除法,只能得到整數部分,0/4=0,1/4=0.25=0),結果一定就是0了。故這個表示式的最終結果就是原來x的值,就是2.

5,float為單精度變數(跟一串小數)。a選項正確√

已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},c語言問題

2樓:匿名使用者

int (*ptr)[3]=a這句,

bai將a的首地du址賦值給了ptr,ptr表示的是zhi指向一個含有三個int的數dao組的指標,*((ptr+1)[2])等價於*((ptr+1)+2),等回價於*(ptr+3),這表示從答

陣列a的首地址向後移動3個單位,每個單位為一個含有3個int的陣列,所以一共向後移動了9個單位,即得出執行結果10!

要想正確表達a[1][2],應該是(*(ptr+1))[2],陣列的運算子[ ]比間值運算子*的優先順序高,(*(ptr+1))[2]表示a向後移動一個單位即三個int,此時ptr指向4,再往後移動2個int指向6。

其實遇到這類問題畫記憶體結構圖比較容易理解了

3樓:匿名使用者

(*ptr)[3]=a,陣列

指標只有3行,陣列a有四行,所以(*ptr)[0]=,(*ptr)[1]=,(*ptr)[2]=,所以*((ptr+1)[2])表示的是(*ptr)[2]裡面的回

第二個元素就是答10

4樓:匿名使用者

*((ptr+1)[2])這種用法是不對的,陣列的下標相當與解引用,比如a[2]=*(a+2)

因此,上面的替換做法是(*(ptr+1))[2].

5樓:巫馬尓絲

*((ptr+1)[2])和copy*(*((ptr+1)+2))是等價的,而第二個算式可以演化成*(*(ptr+1+2)),也就是*(*(ptr+3))。

你既然會用指標表示陣列,那麼我用一維陣列給你舉個例子:

int arr[3];

這裡如果要表示陣列的第二個元素,有2種方式 arr[1], *(arr+1),

就是說arr[1] == *(arr+1)

那麼你*((ptr+1)[2])我們只看括號內的內容(ptr+1)[2] ,它按照上邊的等式轉化一下就是*((ptr+1)+2),去掉裡面的括號*(ptr+1+2),也就是*(ptr+3);

*((ptr+1)[2]) == *(*(ptr+3)) == a[3][0]

很好的解釋了為什麼你寫的第一個表示式是10了,

你如果要用ptr表示a[1][2]就應該是*(*(ptr+1)+2)或者*(ptr+1)[2]這樣寫才對。

c語言這段程式求解,為什麼輸出結果是0,11,10,12

6樓:阡陌她人只為你

因為b--<=2顯然不成立所以為0,&&運算先看左邊如果左邊為0那麼無論右邊為什麼整個都為0,所以當判斷左邊為0後就不再執行後面的了 。

7樓:匿名使用者

#include

void main()

8樓:匿名使用者

b--<=2是false

不執行c++

9樓:匿名使用者

&&操做的特性,當左邊判斷為false時,將不再操作右邊的部分,||操作亦然。

a++<=10&&b--<=2已經為false了, c++根本沒有操作。so

c語言的題 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};若陣列a首地址為500,則a[1]+3的值為什麼? 20

10樓:江公主玖押

答案a.

陣列復定義是a[0]=1,a[1]=2,a[2]=3, ...,a[9]=10

a. p += 2使p指向

a[2], *(p++)表示先製取*p的值, 然後

p增加1(指向a[3]), 所以取得的值是a[2]=3

b. p += 2使p指向a[2], *++p表示先p增加1(指向a[3]),然後取*p的值,所以是a[3]=4

c. p += 3使p指向a[3], *p++表示先取*p的值, 然後p增加1(指向a[4]), 所以取得的值是a[3]=4

d. p += 2使p指向a[2], ++*p對*p的值增加1, 所以取得的值是a[2]=a[2]+1=4

還有一種寫法是(*p)++, 表示先取*p的值, 這個值再增加1

c語言題目:經過 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}定義之後,元素a[1][0]的值是_____。

11樓:匿名使用者

b int a[0]=

int a[1]=

int a[2]=

所以a[1][0] = 5

12樓:怎能不憂傷

這個是2維陣列,陣列是從0開始的,即

a[0][0] a[0][1]..............

...................................

a[2][0]................a[2][3]所以a[1][0]是第版5個數,即5,選權b

C語言題目求解,c語言題目求解

include int str find right char s char x int main c語言題目求解 就是x首先等於 1,如果a 0那x 1,如果a 0那x 1,否則也就是a 0那x 0,所以選c else跟的是第一個if選c c語言題目求解 效果如下圖 源 如下 網頁端比較好看 in...

C語言題目求解答,C語言程式設計題目。求解答。

執行順序是這樣的,原因 a v1 0 所以 v1 0 if v1 不能執行,執行elsev2 0 所以if v2 不能執行 執行x 1 返回結果 1 先看第一個if語句,因為a 10,b 20,a 接著看b 20確實不等於15,b!15為真,所以也執行該if語句,在接下來看!v1,由於v1 5,v1...

c語言程式設計作業求解答,C語言程式設計作業求解答

9.d 10.c 11.d 12.c 13.b 14.d 15.a.c語言程式設計作業求解答 等 10 16.d 17.b 18.b 19.a 20.b 1.a2.b 3.b4.a d b b a b a a b a a c語言程式設計作業 求解答 20 dbcd 此題有歧意,本意可能讓選c,但在識...