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,但在識...