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...