c語言幾道題目最好說明下選擇原因謝謝

2021-03-03 23:26:27 字數 3727 閱讀 3915

1樓:匿名使用者

1 d構造型別來為struct student 不是struct2 bs[0].y= 3 s[1].x= 23 cc[2] 表示存的自是"mary",18," 注意區分bai4 b宣告瞭一 個是dustruct sk結構zhi體變數daodata,一個是結構體指標*p

p=&data說明指標p指向了data變數,此時*p和data用時是同一個記憶體空間,所以(*p).a等同於

data.a,另一種寫法p->a。

5 d->為指向運算子

2樓:

d struct student s要寫完整b 3/2

c 第二個結構體陣列元素的第一個字元(元素)b 等於p->a

a ++的主體是str

求大家幫忙一下 這道c語言題目要選哪個 順便告訴我原因 謝謝!

3樓:倒黴熊

我看著選d啊

printf輸出的時候,是從後面往前計算的。

一開始n=1,然後自加1變成2了

然後 --n是先減1,在使用 所以輸出為1 ,n變成1了n++是先使用,在自增1,所以輸出為1 n變成2了n直接輸出2

所以是 2 1 1

4樓:天之血淚

在c語言中,printf()是的計算從右向左的,顯示是從左向右的,這道題,先算--n, n++, n;

1) n=1;n++;n=2;

2) n=2;--n;n=1; 第三個是1;

3) n=1;n++;第二個顯示1,n=24) n=2,第一個顯示2

選d你自己編譯一下唄

5樓:匿名使用者

最好的辦法是在機器上執行一遍!很奇怪,我在vs2012上執行的結果是212,在vc6裡執行的結果是111,所以同意樓下的觀點,結果在乎於編譯器的實現!出題的人的確只是紙上談兵!

在vs2012下的執行結果!

在vc6下的執行結果!

6樓:目頭小子

2,2,2

註解n++ = 1;

int n=1;

n++; n=1,n++ =2

printf("%d%d%d",

n, n=2

n++, n=2,++n =3

――n n=3,--n=2

分類: c/c++

#include

void main()

我的最初想法,引數從左到右依次計算,也就是等同於:

printf("%d",i++);

printf("%d",i--);

printf("%d",--i);

printf("%d",++i);

printf("%d%",i);

先i++,所以輸出i的值1後再i=i+1,此時輸出為1,i=2

再i--,同樣先輸出i的值2後再i=i-1,此時輸出為1 2,i=1

然後--i,先計算i=i-1=0,再輸出i,此時輸出為1 2 0,i=0

同樣的++i,先計算i=i+1=1,再輸出i,此時輸出為1 2 0 1,i=1

最後輸出i,所以最終輸出是1 2 0 1 1

但是實際的執行結果並不是我想像的這樣,這估計是因為c++的printf函式採用的是cdecl方式傳遞引數的關係,即引數入棧順序是從右向左,自然執行的順序也是自右向左啦,所以正確的順序是:

先算最後的輸出1

其次++i,輸出1 2,i=2

再次--i,輸出1 2 1,i=1

接著i--,輸出1 2 1 1,i=1

最後i++,輸出1 2 1 1 1

這就和我彙編檢視執行的結果一致了:

1入棧2入棧

1入棧1入棧

1入棧從這裡,我們又可以看出這個順序又和printf的輸出順序一致了,我猜測printf函式就直接根據這個順序進行輸出了

另外關於前面標記的「重點」

#include

void main()

{int i=1;

printf("%d%d%d%d%d",i--,i--,--i,++i,i);

cout<

7樓:

這個結果沒有一個是對的,答案應該是111。因為printf函式是對變數列表從右向左計算的,先--n使=1,再n++因是後++值不變還是1;等三個1全輸出了再執行n++使n=2。出題的人只是紙上談兵!

8樓:聖經守恆定律

a, 視乎編譯器的實現, 結果可能會有多種

答案沒有a? 我推測是a 是 因為函式是從在往右計算,併入棧, 函式內部彈出棧時就顯得是從右往左, 實則顯示是從左往右, 但是引數計算順序是完全由編譯器計算方式實現的,所以是不定的,如gcc與vc的實現可能就不同,所以實際開發過程中不要寫這樣的nc式語句,會給移植造成很大的問題

9樓:匿名使用者

選b 首先n=1;經過n++後n=2;所以printf("%d%d%d",n,n++,――n);輸出的第一個數是2;然後n++,是先用後加,即在這裡會先輸出然後n才自增,所以輸出2,;現在n=3;然後――n是先減後用,即在這裡先自減然後才輸出,所以任然是2,;由以上理由的選b(注:狀同n++,n--,這兩種情況在用算時是先用後自增(減),狀同++n,--n是先自增(減)然後再用)

10樓:尋夢知

答案是a沒錯,因為n的初值是1,進行一次n++變為2

一道c語言題目,高手解答!!!!詳細說明答案是什麼,並解釋原因(重點解釋y的值)。謝謝

11樓:匿名使用者

選c)bai0 1 0

後面兩個就不用多說du了,分別是x和zhiy的值1和0;

第一個dao

呢,版首先x<=0顯然為假即0,&&是並的意思權,就是要兩邊全部為真才是真的,現在左邊已經是假的了,所以(x<=0)&&(y- ->=0)這個式子就是假的,即0,所以z=0;

綜上,結果就是0 1 0啦~~

附:&&運算子是先看左邊的,左邊為錯的話,右邊不會計算的。

望採納~~

12樓:就是喜歡林妹妹

選 c先講一下這個 && 運算子

這是一個2元運算子,短路運算(下面解釋什版麼是短路運算)若 a && b

如果 a 是假,編權譯器則不去計算表示式b的真假,整個表示式結果就是假

若 a 為真,編譯器才去計算b的真假

同理:運算子 | | 也是短路運算。

所以,我猜你其他的應該都知道吧。我就不解釋了。

13樓:匿名使用者

判斷(x<=0)=0

判斷y>=0=1

0&&1=0

z=0x=1

y=00,1,0

c y的值一開始賦值為0,後來沒改過

14樓:匿名使用者

這個題目來應該是選d (源x<=0)&&(y- ->=0)這個表示式的bai

是個與運算 先判du斷兩個括號裡面的真zhi假 只要一個dao為假z就是0;然後x是的本身是沒變的 所以x還是1; y 的話 做了一個y--的運算 所以y等於-1

幾道c語言的題目我不太理解希望大佬指教謝謝

1 移位,並沒有再賦給 a 2 沒看到定義輸出語句 3 x 0 的結果是0,邏輯false4 unsigned賦值負數時,按補數。再按int輸出,就是普通的int 我寫了一道c語言程式設計題,但是出現了我不能理解的bug希望有大佬幫我 看看 感激 要求分別統計出其中英文大寫字母,小寫字母,數字,空格...

請高手們幫我看看這幾道C語言題目的答案是什麼

1 xp系統自帶的計算器就有這功能,你開啟開始裡面的計算機,裡面就有進位制轉化。2 單精度型佔4個位元組,有效數字是6 7。雙精度位元組佔8位元組,有效數字是15 16.3 不可以,必須轉化以後才能運算。4 i 不懂,不過i 是先輸入再運算,如果輸出的話是2,輸入後運算是i i 1自加一次,等於3....

大佬能幫我看一下這兩道c語言題目嗎

4 1 q 2 temp p 3 a i 5 include void main for p a 1 p 哪位大佬能幫我看一下這個c語言哪錯了 把fp fopen stuinfo.dat rb 改為fp fopen studinfo.dat rb 或把fp fopen studinfo.dat wb...