1樓:匿名使用者
a-- 我們都知道它bai相等於 a = a - 1 的這個du寫法
那麼 --a 是什麼呢?zhi --a 實際上跟 a-- 的差別不大。
daoa-- 是之後在執內行 --a是之前就已經容
執行a-- 的例子
a = 5;
printf("%d\n", a--); //那麼這個答案應該是5,因為它是之後再執行
printf("%d\n", a); //那麼現在a 就已經是4 了。
--a 的例子
a = 5
printf("%d\n", --a); // 那麼這個答案應該是4, 因為它是之前就已經執行
printf("%d\n", a); // 那麼現在a 也是4.
你所提供的問題,有一些問題所以我不能回答
問題1 - 沒有值
問題2 - printf("%d\n", a--+b, b--+a);// 你確定沒打錯嗎?如果沒打錯那麼就是我不會了
2樓:匿名使用者
(--a+b,--b+a)這個是乙個表示式——逗號表示式,其值(結果)就是第乙個變數的值,即--a+b的值,前後兩條語句都是這樣乙個逗號表示式的值被輸出
3樓:不_想_知道
a,b的初始值是多少?其實這個就是考你--與++的運算規則,你要理解的是語句這個概念就比較好理解了。
4樓:匿名使用者
因為 --a 或者 --b ,是先執行自減,再參與運算。
5樓:江湖_一頁
運算順序沒有變,當然結果不變了啊!都是從左至右!括號在這裡想當於沒有
c語言printf("a + b = %d\n",a + b);為什麼輸出的是--------a+b=a呢?
6樓:滄海雄風
#include
int main()
else
return 0;
}輸入a:1
輸入運算子c:+
3輸入b:a + b = 4
press any key to continue
7樓:
舉個例項說明一下。
#include
int main()
當我們輸入a、b的值:4 8,然後回車執行,輸出結果為:
a + b = 12
如果把printf("a + b = %d\n",a + b);該寫成:printf("%d + %d = %d\n",a,b,a + b);
則輸出結果為:4 + 8 = 12
由此我們可以得到結論:每乙個%d對應輸出列表的乙個變數,並且是按照順序一 一對應起來的。
8樓:張壯同學
少年,你的程式有點bug,
printf("輸入b:");
scanf("%b",&b);
應該改為
printf("輸入b:");
scanf("%d",&b);
改完再試試
printf("a=%d,b=%d",a,b);和printf("%d,%d\n",a,b);的區別.
9樓:丹眼皮男生
一、格式化輸出的不同:printf("a=%d,b=%d",a,b)列印出e68a8462616964757a686964616f31333366306530來的是a="a的值",b="b的值",如果a和b的值分別為1、2,則列印到螢幕上的結果是a=1,b=2。printf("%d,%d\n",a,b)列印出來的只有a和b的值,如果a和b分別為1、2,則列印到螢幕上的結果是1,2。
這種結果的區別是格式化輸出的作用,在printf中雙引號裡面的內容按原樣輸出,而%後面帶乙個字元是引號後面引數的格式化,代表用什麼樣的格式輸出後面的引數。
二、轉義字元的有無:printf("%d,%d\n",a,b)裡面有乙個轉義字元\n,這個轉義字元的功能是換行,也就是說下乙個輸出會在下一行,而printf("a=%d,b=%d",a,b)沒有這個轉義字元,所以它不會換行,下乙個輸出直接接在上乙個輸出的後面。
三、運算子的有無及作用:printf("a=%d,b=%d",a,b)裡面的=不是賦值,而是直接輸出乙個=,printf("%d,%d\n",a,b)沒有=,所以沒有=的輸出。
10樓:gta小雞
百分號%表示佔位符,代表需要把乙個資料填到對應的地方,百分號後面的字元說明了這種資料的型別。例如%d表示十進位制整型、%f表示浮點數、%s表示字串。
11樓:楓彩世代
printf函式雙引號內
來的內容除了%什麼是原自樣輸出bai的,所以你寫成什du麼都會輸出,你寫成等號是zhi想輸出時比較容易dao理解,知道是哪個變數的值,輸出是a=什麼,沒有的就直接輸出a的值了,你也可以寫成別的比如「a的值是:%d」,它也會輸出,主要你要理解這個函式的意義和用法。。。
12樓:匿名使用者
第乙個輸出是為了讓輸出的格式更好看,更明確,a= 和b= 會照程式原樣輸出。
13樓:匿名使用者
只是顯示出來的zhi結果不太一樣。
dao例如,如果專a=10,b=20
那麼printf("%d %d\n",a,b);顯示的結果如屬下行10 20
printf("%d,%d\n",a,b);顯示的結果如下行10,20
printf("a=%d,b=%d",a,b);顯示的結果如下行a=10,b=20
就是在雙引號裡你寫了什麼,輸出時就顯示什麼,其中%d按先後順序,由a和b的實際值代替。
14樓:匿名使用者
printf會將第乙個字串原樣輸出,只是將%d的地方替換成後面引數的值
\n表示輸出換行
15樓:
假如a=1,b=2
第乙個在螢幕上輸出為:
a=1,b=2
第二個在螢幕上輸出為:
1,2%d是格式輸入輸出,代表輸入乙個整數%c是代表乙個字元
%s是代表字串
還有%x,%u等等
16樓:
int a = 0;
int b = 1;
第乙個的輸出 a=0,b=1;
第二個的輸出 0,1;
17樓:
顯示結copy果是這樣的//、
printf("%d %d\n",a,b);
a bprintf("%d,%d\n",a,b);
a,bprintf("a=%d,b=%d",a,b);
a=?,b=?(?是a b的值)
這是乙個輸出語句。。
重要顯示結果。。。
假如 #include
void main()
其結果為: 3 4
3,4a=3;b=4
以下程式的輸出結果是 main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } 求解,萬分感謝
18樓:匿名使用者
輸出結果:30
原理:1.c語言的執行順序大多都是自右向左(但是少數c語言編譯軟體內的輸出結容果為31,它的執行順序是自左向右,這裡以vc++ 6.0為例說明輸出30的原因)。
2.先執行--b+a,根據運算順序知道相當於(--b)+a,b先自減,即b=10,此表示式--b+a的值為31.
3.然後執行- -a+b,相當於(--a)+b,a先自減,即a=20,此表示式- -a+b的值20+10=30。
4.printf("%d\n",- -a+b,- -b+a); 輸出第乙個表示式的值,(printf函式輸出順序是自左向右)。
19樓:匿名使用者
printf 為什麼引數裡bai只有乙個%d ??後面卻有兩du個變數??
如果zhi
是printf("%d\n%d",- -a+b,- -b+a)的話dao輸出應該是
3031
系統先執行了 --b+a的,版所以--b+a=31;
然後權再執行 --a+b,那時候b已經被減1了,所以--a+b=30。
20樓:
先生bai 為什麼引數列表有兩個du
而你的佔位符
zhi只有乙個dao %d
如果你手誤的話那麼有兩個專占屬位符 答案是 3031
21樓:樂樂等待花開
- -a+b即為(--a)先計算得20,然後接著計算(--a)+b為20+11+31;
--b+a即為(--b)先計算得10,然後接著計算(--b)+a為10+20=30;
22樓:匿名使用者
錯誤,沒有結果,warning: operation on 『a』,'b' may be undefined
c語言 main() { char a='1',b='2'; printf("%c",b++);printf("%d\n",b-a)} 結果是什麼?說明一下。
23樓:右傾的墮落主義
答案是:22
分析:char a='1'b='2'; //賦值,注意a b的型別為char
printf("%c",b++); //以字元型列印列印b後b才自加,所以是現打
//印出「2」後
//b的ascii碼值是50,自加後是51printf("%d\n",b-a) //這句是b的ascii碼值減去a的ascii碼值後
//以整型輸出,即51-49=2,所以輸出「2」
24樓:匿名使用者
輸出結果 22
main()
25樓:匿名使用者
22 第乙個2是字元第二個2是數字
printf("%c",b++);先輸出b,再b++,b變成'3'了
printf("%d\n",b-a);b-a也就是'3'-'1'=2
C語言問題,C語言問題
符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...
C語言求解,C語言求解
我去,你也太大意了吧!1 定義的bml變數是小寫的 float w,h,bmi 在後面各處使用該變數的時候卻是大寫的 bmi fbmi w,h 2 scanf函式名你又打多了乙個字母t scantf f,f w,h 3 定義的函式fbmi,呼叫函式的時候同樣大小寫不匹配 bmi fbmi w,h 4...
C語言問題,c語言問題
這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...