1樓:匿名使用者
第一題:a。
解析:首先得到一個靜態陣列a,指標p指向a[0], *(p+3)+=4可寫為*(p+3)=*(p+3)+4, p+3的意思是指標移動至a[3]所在單元,*(p+3)是取值,即為9,那麼運算*(p+3)+=4得*(p+3)的最終值為13,p由於指向陣列初位置則*p為1.
第二題:b。
解析:第一全域性變數b=3,先看main函式部分,得到陣列a,從語句 b=fun(&a(1))*b處看fun函式,在這裡fun函式是個地址傳遞,main函式中把a[1]的地址傳遞給fun函式中的指標*k,在fun的語句b=*(k++)*b中,由於是k++,則先做取值運算,再做k自加,所以*(k++),*k,a[1]的值一樣,為12,則b=*(k++)*b運算後得b=24,即fun函式的返回值為24,帶回 b=fun(&a(1))*b運算得b=72(這裡要注意算式中的第二個b要用全域性變數b=3帶)。
第三題:c。
解析:同第二題先看main函式,對於語句 n=fun(x); n=fun(y); 由於是順序結構,則只要看後一句即可;語句n=fun(y)呼叫fun函式,把值y=1給x,a*=x的意思是a=a*x,即a=3,然後返回函式值至main函式,n=3
2樓:匿名使用者
第一題:選a
main()
; int *p=a; // *p=1*(p+3)+=4; // *(p+3)=9,9+4=1**rintf("%d,%d",*p,*(p+3)); //1,13} 第二題:選b
由於是選擇題,所以可以快速選出答案,因為其餘選項顯然太小第三體:選c
只要看n=fun(y); 就行了
求這道c語言選擇題的詳細解答 20
3樓:匿名使用者
char a[5],*p=a;,下面選擇中正確的賦值語句是(a.p=「abcd」;)。
b.a=「abcd」; //無法賦值
c.*p=「abcd」;//*p型別為char型d.*a=「abcd」;//*a型別為char型
有一道c語言的選擇題,希望能幫忙給出詳細解答,謝謝了
4樓:匿名使用者
struct s
;static struct s a[3]=;
static struct s *ptr;
ptr=&a[1];
第5句相當於
static struct s a[3]=,,};
然後看答案
a.ptr->i++
ptr指向a[1]然後指向屬性i 此時i=2執行完這句時候才執行i++
b.ptr++->i
結構體中沒有i這個屬性
c.*ptr->i
->的優先權大於*指標 所以相當於*(ptr->i)而i屬性是int 不能用*指標去修飾
d.++ptr->i
->的優先權大於++所以相當於++(ptr->i)而使用這句之前使用了i+=1
所以此時a[1]的i=3
所以正確答案是d
5樓:匿名使用者
da = 2
b = 2
c 估計語法應該過不到
6樓:匿名使用者
d.++ptr->i
C語言選擇題求解快
你是 的學生 吧?這是學校機房無憂考試系統c語言a卷裡面的題目吧?以下給你詳解 希望課後能仔細推敲認真考證,不枉汽院學子之身份!以下能正確定義字串的語句是 d a char str b char str c char str x43 d char str 0 a 定義的是字元陣列,這個陣列只有一個元...
c語言選擇題兩道,求詳細解釋。謝謝
1 x 12345 y 0 while x true x 10 5 case 5 y 2,x 10 break x 1234,y 2 while x true x 10 4 default y 3 x 10 x 123 y 5 while x true x 10 3 case 3 y x 10 ca...
C語言選擇題第8題和12題,求大神幫忙給個具體解析和思路,謝
在邏輯符號與的兩邊只要有一個為0 假 就返回0,兩邊都為1時返回1,所以a正確,d選項中邏輯與前面的部分 由於x y所以為真,前面又有個非號所以為0,後面的就不用看答案就出來了 邏輯或的兩邊只要有一個是1,結果就為1,z不為0所以邏輯或的兩邊都為1,返回1,然後加個非,又變成0了 另外邏輯符號是最後...