1樓:寒寒家
首先明確
1. 對於%d的輸入,會忽略之前的空格
2. 對於%c的輸入則不會忽略。
3. 對於%d的輸入,會被字元截斷,這也就是 輸入"10a20b"的時候,也不會錯的原因了。
正確答案是a
x1接收了10, y1接收了字元a,之後是一個空格,而輸入的是%d,所以會忽略空格,所以x2接收了20,y2接收了字元b
分下下其它的選項
b, x1 接收了10, y1接收了空格,錯誤c 錯誤同b
d x1接收了10, y1接收了a,x2接收了20,y1接收了空格。
2樓:
scanf從緩衝區讀取的時候不是依據空格的,讀整數就取一個整數,讀字元就取一個字元
所以是a,比如c,讀取整數10之後讀到空格,會將空格當做字元放到y1中
最好的辦法就是寫程式跑一下,下面是程式和結果#include
#include
#include
#include
#include
using namespace std;
int main()
c語言問題scanf函式是幹啥的
1全部函式名 scanf 功 能 執行格式化輸入 用 法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。其呼叫格式為 scanf 格式化字串 ...
關於c語言的scanf函式的逗號問題
對於scanf 函式,如果格式控制串裡有逗號 或其他非格式符號 鍵盤輸入時,必須嚴格按照控制串的內容鍵入,不能隨意輸入。如scanf a d,b d a,b 響應輸入是a xx,b xx xx是整形數 scanf 函式還有一個特點較為常用,該函式會將白字元 空格 作為資料間的分隔符,比如scanf ...
c語言函式呼叫問題,C語言函式呼叫問題
優化了你的程式,問題好多,你自己研究一下吧 include int ds int x 真心看不懂你的ds 函式思想!有那麼複雜嗎?return x0 int yz int sum1 int main 如果不為顯示中間結果,這些都可以省。x0 ds x sum x x0 n printf 第 d次計算...