-
根據你的問題,下乙個程式如下,你知道程式執行的結果是什麼嗎?
main(){
int a=1;
printf("%d,%d,%d",a++,a++,a++)printf("%d",a);
執行後的結果如下,你能理解嗎?
這句話是為了理解 C 語言中兩個困難的東西:printf("%d,%d,%d",a++,a++,a++)
首先,a++和++a是如何工作的:a++是用a參與表示式的計算,然後把a+1的值儲存在a中; 相反,++a 首先加 1 以參與表示式的計算。
其次,當函式中的多個引數是表示式時,C 首先計算以下表示式。
如果你仔細閱讀我的兩段,你應該了解程式的輸出。
-
printf('%d,%d,%d"、a++、a++、a++)編譯錯誤。應更改為 printf("%d,%d,%d",a++,a++,a++)
但是,這是 C 語言標準的未定義行為,結果是不確定的。
一切皆有可能。
-
首先列印 a: 1 的值,然後將 a 加到 1,a 變成 2,然後列印 a 2 的值,然後使 a+1,a 變成 3,所以最終的列印結果是 1、2、3
-
<>由於操作資料的變化和不同的執行順序,結果也不同。 三者聯合執行的效果與單獨執行的效果不同,單獨執行的效果如下:
-
當函式呼叫引數時,執行所有會從右到左改變變數值的公式,當遇到後自動遞增或遞減時,此時直接替換變數,得到自動遞增的值。 所有執行完成後,更改後的變數值從左到右代入除自動遞增後公式以外的所有公式中,這些公式的值是要代入函式的引數。
如果 a 在開始時等於 1,則從右到左執行所有將更改 a 值的方程。 首先執行第三個公式 ++a,然後執行 a=2。 第二個在不更改變數值的情況下跳過。
第乙個公式 a++ 是後驗自動增量,直接帶進電流 a 的值 2 就是這個表示式的值,然後把 a 加 1 等於 3 a=3 的值帶進最後兩個表示式,最終值是 2 3 3
-
您好,很高興您的問題。
在C語言中,自增量和自減法運算是經常要考核的課題,所以要精通相關內容和知識點。 ++在前,即變數先加1,然後把得到的變數值作為最終結果; ++之後表示取出變數的值參與操作,然後變數的值增加1。
因此,在執行 printf 語句時,A++ 表示 A 的值輸出為 1; 然後 a 加 1 變成 2,所以輸出是 2; 然後計算++a,即先將a的值增加1到3,然後輸出a的值,即3。 所以輸出答案是 1,2,3。
-
如果 a 的初始值為 0;
其結果是 :0,1,2
例如:int a=0;
b=a++;
結果:b=0a++ 該操作首先將 a 的值分配給 b,然後 a 加法:b=a; a=a+1;這樣計算。
int a=0;
b=++a;
結果:b=1++a,a=a+1; b=a;
-
如果 a 的初始值為 1;
其結果是 :1,2,3
-
執行 int a=1; printf("%d, %d, %d", a, +a, a++) 為 3,3,1。此語句的輸出不是唯一的,因為計算順序不是固定的,因此可以輸出結果 1,2,2。
當計算順序從右到左時,a++ 先引用 1,然後加 1,輸出 1,然後 ++a 加 1,然後引用,輸出結果 3,最後輸出 a,結果為 3。 其結果是 :3,3,1。
當評估順序從左到右時,先輸出 a,輸出 1,然後 ++a,加 1 再引用,輸出 2,然後 a++ 先引用,再加 1,引用 2,所以輸出 2,結果為:1、2、2。
需要注意的主要事情是 printf() 語句的多個引數的執行順序從右到左,但這可能因編譯器而異。
-
此結果取決於不同的編譯器實現。 因為評估順序是不確定的(C標準這裡沒有指定評估順序,所以每個編譯器都可以自由更改評估順序)。所以很難有乙個一致的結果。
-
%c 表示乙個字元的輸出;
d 表示有符號十進位整數的輸出;
s 表示輸出乙個知道遇到“0”的字串。
所以 printf("%c,%d,%s",c,i,s);表示 C 變數以字元的形式輸出; i 變數輸出為十進位整數; s 變數以字串形式輸出。
printf() 函式是乙個模型輸出函式,一般用於根據指定的規格將訊息輸出到標準輸出裝置。 此函式在編寫步驟時經常使用。 printf() 函式的挪用樣式為:
printf("帶圖案的繩子",參數列);
模型字串由兩部分組成:一部分是普通字元,按原樣輸出; 另一部分是文體規定的字元,以"%"開頭,後跟乙個或多個規定的字元,用於確定輸出的樣式。
參數列是需求輸出的一系列引數,引數的數量必須與模型字串中指定的輸出引數的數量一樣多,引數之間用逗號","分開,順序一一對應,否則會出現意想不到的錯誤。
-
%c,%d,%s 對應以下 C,I,S,%C 表示 C 的輸出,%d 表示整數輸出 i,%s 表示字串輸出 s,最後表示換行符。
-
c 作為單個字元輸出。
i 輸出為整數。
s 以字串形式輸出。
-
輸出 c 為 char,i 為 int,s 為 char,最後換行。
-
讓我們來看看這種問題。
-
總結。 親愛的,很高興為您解答,int a=3,b=2,printf(“%d,%d",-a,b++)輸出結果為 A;int a=3,b=2,printf(“%d,%d",-a,b++) 是減號 a++ 是先運算後加 1,++a 是加 1 再運算。所以第乙個運算是 -3,然後 a+1=4; 如果是 printf("%d",-a);那麼答案是-4,a=4
int a=3,b=2,printf(“%d,%d",-a,b++)
親愛的,很高興為您解答,int a=3,b=2,printf(“%d,%d",-a,b++)輸出結果為 A;int a=3,b=2,printf(“%d,%d",-a,b++) 是減號 a++ 是先運算後加 1,++a 是加 1 再運算。所以第乙個運算是 -3,然後 a+1=4; 如果是 printf("%d",-a);那麼答案是-4,a=4
這是乙個多項選擇題,沒有答案。
問題 4. 親選,選A
我只是錯過了一步。
-
%1d、%2d、%3d、%4d、%5d 中 % 和 d 之間的數字表示輸出資料的寬度,由系統決定,通常根據資料本身的實際寬度進行計數,不帶空格,採用右對齊形式。
在 % 和格式字元之間插入乙個整數常量,以指定輸出的寬度 n。
如果指定的寬度n不夠,則在輸出過程中會自動突破,以保證完整的資料輸出。 如果指定的寬度 n 超過輸出資料的實際寬度,則輸出將右對齊,左側將填充乙個空格以達到指定的寬度。
-
d表示輸出輸入格式為整數,用於int,short int; %f 表示實數的輸出,以小數形式輸出,預設保留 6 位小數。
在 C 語言中,輸入和輸出的格式如下:輸入和輸出符號 ("設定字串格式"格式設定字串由兩部分組成:格式控制項和輸出表列,其中格式控制項包含格式宣告和公用字元。
格式宣告由“%”和格式字元(如 %d、%f 等)組成。 它的作用是將輸出的資料型別轉換為指定的格式,然後輸出。
-
printf("ch=%d,ch=%c",65,65);輸出為 ()。
65,ch=65
ch=ach=a
正確答案:c
<> 要學好C語言,需要掌握以下幾個方面:
1.清楚地掌握 C 語言的基礎知識。 例如變數、資料型別、運算子、控制語句等。 這些是C語言的基礎,如果你掌握了姿勢,就需要更好地理解和編寫程式。 >>>More
首先,不建議現在學習C++,掌握C後學習C++會容易得多。 這次推薦你現在就讀《C Primer Plus》,譚浩強的書比較籠統,這本書也比較詳細! 讀完之後,看看關於資料結構或計算機組合原理的書籍,以及關於演算法的書籍! >>>More
宣告通常告訴編譯器它有這個物件。 但是這個'是的'這個詞有兩個含義,第乙個含義是物件已經在別處定義過了,比如,當它用extern宣告時,它就有了這個含義,因為物件已經存在了,此時不會給它分配記憶體。 第二個含義是這個物件以前沒有被我定義過(現在我有了它,以前沒有了),這個時候宣告可以稱為它們重疊的定義,此時記憶體被分配給這個物件。 >>>More
如下圖所示:
C 是一種通用的計算機程式語言,具有廣泛的應用。 C 旨在提供一種程式語言,該語言可以以簡單的方式進行編譯,處理低階記憶體,生成少量機器程式碼,並且在沒有任何執行時支援的情況下執行。 >>>More