1樓:0揮不去的傷痛
#include
void main()
}printf("\n");
return 0;
}getchar僅僅讀取一個字元,寫在while語句的判斷條件裡,則每執行一遍迴圈就執行一遍getchar,即讀取一個字元。
輸入2,執行第一遍迴圈,c值2,執行switch(c-'2'),括號中的c-'2'返回值是0。執行case 0:case 1:
putchar(c+4); case 2:putchar(c+4); break; 就是輸出c+4所代表的字元,就是6,輸出兩遍6,然後遇到break跳出。
輸入4,執行第二遍迴圈,c值4,執行switch(c-'2'),括號中的c-'2'返回值是2。執行case 2:putchar(c+4); break; 就是輸出c+4所代表的字元,就是8,然後遇到break跳出。
輸入7,執行第三遍迴圈,c值7,執行switch(c-'2'),括號中的c-'2'返回值是5。沒有case對應,執行default: putchar(c+2); break; 就是輸出c+2所代表的字元,就是9,然後遇到break跳出。
輸入3,執行第四遍迴圈,c值3,執行switch(c-'2'),括號中的c-'2'返回值是1。執行case 1:putchar(c+4); case 2:
putchar(c+4); break; 就是輸出c+4所代表的字元,就是7,然後遇到break跳出。
最後輸出結果就是 66897
望採納~~~
2樓:匿名使用者
賦值為'2',getchar()是讀取一個字元
3樓:漆翔飛仙漾
c-'2'是指將字元c的ascii碼與字元'2'的ascii作差。
輸入為2,差的結果為0,執行case
0,沒有break,繼續執行case
1,輸出
c+4,因為c為2,所以輸出6;沒有break,繼續執行case2,輸出
c+4,還是6;遇到break,退出swith語句。
輸入為4,差的結果為2,執行case
2,輸出c+4,為8,遇到break,退出swith語句。
輸入為7,差的結果為5,執行default,輸出為c+2,即9,後面沒有語句了,即使沒有break,也退出switch語句。
輸入為3,
差的結果為1,執行case
1,輸出
c+4,即7,沒有break,繼續執行case2,輸出c+4,即7,遇到break,退出switch,輸入結束,退出while迴圈。
故此輸出為:668977
若執行以下程式時,從鍵盤輸入2473,回車,則程式的執行結果是
4樓:
668977
c=2進 case c-'2' -- case 0:
case 1: 打 c+4 輸出
6 (2+4=6)
進 case 2: 打 c+4 輸出 6 (2+4=6), break 退出
[66]
c=4進 case c-'2' -- case 2:
打 c+4 輸出 8 (4+4=8), break 退出[8]c=7
進 case c-'2' -- case 5: default:
打 c+2 輸出 9,退出
[9]c=3
進 case c-'2' -- case 1: 打 c+4 輸出 7進 case 2: 打 c+4 輸出 7 (3+4=7), break 退出
[77]
5樓:kuk仔
小case 應該是 668977 switch結構 對號入座,直到遇到break跳出;無結果跳到default。
6樓:
額 已經很晚了啊 竟然還有人回答~~
很強大~~
這個程式主要就是考了個switch、break的用法吧樓上結果正確
c語言中如何輸入輸出文字,C語言中如何輸入輸出文字
需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 20 gets a puts a 3 編譯器執行test.cpp檔案,此時可以輸入文字。4 按回車,此時會輸出剛才輸入的文字...
c語言輸出,c語言輸出
首先解釋為什麼是負值 因為溢位了 111111 111111 12345654321超出了int能表示的範圍 可能你要問 不是已經 lld了嗎 沒錯 lld是用於long long型別的,但只代表輸出的時候按照longlong的型別輸出,並不能影響後面引數的實際型別對於整型常數,c語言預設都是int...
c語言輸入多組資料和輸出對應結果
有兩個問題我想說一下 第 一 你用那個while語句雖然實現不斷輸入而不斷輸出結果,但後一結果是在前一結果基礎上 累加 產生,這顯然不合理 第 二 你要實現的 輸入多組資料後對應結果最後顯示 中 多組 具體是多少呢?可以定義三個陣列分別用來儲存n m和sum,注意每次計算sum前先初始化為0.用陣列...