在c語言中,char a Aprintfd oaa1aaA輸出結果是什麼?輸出詳解

時間 2021-09-02 07:17:47

1樓:決勝千

首先,應該說明的是在不同的編譯環境中結果是不一樣的。

在vc++6.0中的規則: printf函式的執行順序是由右到左的舉個例子1:

int a=65,b=20;

printf("%d,%d\n",b=a+1,a=a+1);

輸出結果是:67,66

而不是:66,66

例子2:

int a=65,b=20;

printf ("%d,%d",b=a+1,b+1,a=a+1);

輸出結果是:67,21

第一個%d與b=a+1替換 第二個%d與剩下的替換 順序右到左先算a=a+1=66 替換 第二個 %d再算b+1 =21 替換 第二個 %d再算b=a+1=67 替換 第一個 %d例子3:

int a=65,b=20;

printf ("%d,%d",(b=a+1,b+1),b-5,a=a+1);

輸出結果是:67,61

第一個%d與 括號裡的 替換, 第二個%d與剩下的替換括號優先順序最高,先算括號裡的,括號裡內容相當於逗號表示式,順序從左到右。

餘下的順序從右到左

先算b=a+1=66 替換 第一個 %d

再算b+1 =67 替換 第一個 %d

再算a=a+1=66 替換 第二個 %d

再算b-5 =61 替換 第二個 %d

這題的答案是20,142 過程與 例子3 相似夠詳細了吧!

2樓:匿名使用者

輸出結果是66142,第二個是142

你算的142是對的,答案141錯了。a=a+1,a='b',答案還是按'a'計算了。

3樓:

輸出的結果是66 141

a = a+1//a = 65 +1

a + 'a' - 'a' 可以換成a- 'a 『+ 'a' = 』a'-'a'+'a'

最後輸出的是a的值97換成8進位制是141

4樓:

1 輸出結果是:

66142

2 分析:

a=a+1

=65+1

=66a+'a'-'a'

=66+97-65

=98=(142)8 --->表示142是八進位制

5樓:匿名使用者

這個涉及到函式引數的從右到左還是從左到右的問題,其實計算的過程大家都知道

原因是,如果一個函式有多個引數,比如

int fun (int a, int b, int c);

呼叫時,總是從最後一個引數開始壓棧。 也就是c先進棧,其次是b,最後才是a。

同理, 如果你這樣寫:

int main ()

先計算最後一個引數(即最右一個++i),壓入1,以此類推,再壓入2,3和字串"%d,%d,%d"的首地址。

程式的輸出是 3,2,1

此例同理

6樓:匿名使用者

'a'-'a'=0

0+'a'=97

八進位制是141

在c語言中,設有char a='c' ,b='a' ;執行語句printf("%d,

7樓:聽不清啊

設有char a='c' ,b='a' ;執行語句printf("%d,%d",b,a-b);後,輸出結果是

a、65,2

因為在c中,char 等同於一個8位有符號整數,只是內作「字元」解讀。容所以,char a='c' ,b='a' ;等同於char a=67 ,b=65; 在以%d格式輸出時的值就是 65,2

8樓:匿名使用者

選擇a,這個就是把對應的字母轉換成ascii碼值進行運算

c語言 main() { char a='1',b='2'; printf("%c",b++);printf("%d\n",b-a)} 結果是什麼?說明一下。

9樓:右傾的墮落主義

答案是: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」

10樓:匿名使用者

輸出結果 22

main()

11樓:匿名使用者

22 第一個2是字元第二個2是數字

printf("%c",b++);先輸出b,再b++,b變成'3'了

printf("%d\n",b-a);b-a也就是'3'-'1'=2

在c語言中如何實現函式,在c語言中如何實現函式模板

go陌小潔 各種用 c 語言實現的模板可能在使用形式上有所不同。現以一個求和函式 sum 為例,用 c template 可寫如下 template r sum const t array,int n 如果不是內建型別,該模板隱式地需要 有r r operator t 運算子可用。1.使用函式指標作...

c語言voidmain在很多c語言中main前沒有為什

天河流紋石 c99規範要求main函式返回值必須是 int。但有些編譯器允許非標準的寫法,而且有一大批程式設計師不這樣寫。在應用角度來看,問題不大。但在原始碼規範上看,建議最好寫上。這就好比生活中,人們的口語總是有語病的。比如 你走先。這麼說,別人能聽懂 但要規範的話,還是要遵循語法。說成 你先走。...

在c語言中,在c語言中s 0 0是什麼意思?

天雲小店 首先糾正一下,應該是s 0 0 少了單引號 s 0 0 表示將字元s 0 的ascii碼與字元0的ascii碼相減,如果s 0 是字元0 9,則表示將該字元變為對應的數字 int型 比如 char s 3 123 printf d n s 0 0 輸出1,將字元1變為數字1 int型 在c...