求教幾道C語言選擇題詳細解答

2021-03-07 06:52:33 字數 1655 閱讀 8823

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了 另外邏輯符號是最後...