c語言問題求解釋,C語言問題,求解釋

時間 2022-03-08 14:28:55

1樓:超大個蘿唄

在鍵盤輸入的時候 空格訊息表示null代表輸入結束 空格前邊的值就賦給變數

123空格 由於第乙個接收的是字元型別 只能接收'1' 23還在緩衝區裡 這時i變數正需要接收10進製的整形資料...所以23就賦給了i 23後邊是空格 就停止了

之後s又從緩衝區裡接收了 字串456 後邊又是空格 接收停止 所以最後答案是1,23,456

如果第三個scanf改一下 變成scanf("%[^\n]", s); 答案就應該是第三個(456和789中間沒有逗號)

scanf中%[^\n]是接收從^字元到\n字元的所有字元,原本scanf是不接收空格的,遇到空格就當做null來處理停止接受其後邊的字元,但是這樣控制輸入後就會接收空格了,其實也可以用gets函式來接收,gets也接收空格的

2樓:知常軒

d 原因:

123 456 789

char :只要乙個字元鍵入,就結束。『1』,從2開始,識別為整數int: 遇到空格結束,故整數識別為 23string:空格被轉義,結束串。識別為456789被忽略

3樓:

我覺得應該是: (d)1,23,456

第乙個scanf接受是乙個字元,所以為1

第二個scanf接受乙個數字,遇到空格或回車或tab數字就停止接受,所以是23

第三個scanf接受字串,遇到回車或空格或tab字串就停止接受所以為456

4樓:匿名使用者

%c是輸入乙個字元,所以向c中讀取的就是1這個字元,接著將23賦值給int i,空格之後,才輸入的是對s的賦值

c語言的問題,求解釋

5樓:匿名使用者

執行上面的程式段後,*(ptr+5)值為 '\0' 因為str的首位址賦給了ptr *(ptr+5)就等價於str[5]了。 但是由於str陣列只有五個元素(str[5]是str陣列的第六個元素) 但是系統都會在陣列的後面加上'\0'作為結束的標誌。 所以str[5]就是字元'\0'了。

c語言問題,求過程以及解釋謝謝

6樓:五年之虞先生

while語句不用看,不滿足條件

直接看第乙個for迴圈,j==2,i==1,第一次迴圈,a[3]=a[2]==5

第二次迴圈,a[2]=a[1]==4

退出迴圈

a[1]=k==3

得a[5]=

#include

int main()

;while(i<=n&&k>a[i])

i++;

for(j=n-1;j>=i;j--)

a[j+i]=a[j];

a[i]=k;

for(i=0;i<=n;i++)

printf("%3d",a[i]);

return 0;}

c語言問題求解,C語言問題求解。。

a 3,b 4 第一次進入迴圈i 1 5成立,case1,交換ab,a 4,b 3,break 第二次進入迴圈i 2 5成立,case default,賦值b 5,此時a 4,b 5 第三次進入迴圈i 3 5成立,case default,賦值b 5,此時a 4,b 5沒變 第四次進入迴圈i 4 5...

c語言程式設計求解釋,C語言程式設計求解釋

標頭檔案主函式,程式的入口 主函式開始的大括號,裝著函式的內容 定義3格int型的變數,m和is for迴圈1,條件是m初始設為200,當m小於500的時候,每一次執行到這裡都要把m的值 1,直到m 500 把is賦值1 for迴圈2,巢狀在for迴圈1中,條件是i初始設為2,當i小於m的時候,每一...

c語言問題求解謝謝啦,C語言問題求解謝謝啦

for迴圈裡面改一下就可以了,因為要先輸入才判斷是不是輸入的0,才能退出迴圈 include int main x i scanf d j for i 0 i x i for y j y x y for i 0 i c語言問題答案 9 a 1,b 3,c 2 必須按scanf格式輸入 10 a 1 ...

c語言問題!跪求解答,C語言問題!跪求解答!!!

include int main printf 邊 ld,點 ld n a,b return 0 樓主不要被題目給唬住了,其實這是乙個簡單的迴圈問題。關鍵是找到其中的演算法。其實很簡單,要一條邊一條邊來看 以三角形的乙個邊再構造乙個三角形,顯然已經具備了2個點和乙個邊,再增加乙個點和2條邊就是乙個新...

c語言問題,大神求解,乙個c語言問題,大神求解

很久沒寫c了,能幫你解答的就盡力。typedef struct的意思的新建lnode這樣的乙個資料型別。linklist就是指建立lnode這樣的乙個資料型別的指標,這個 linklist指標指向lnode的結構型別。如果輸出 linklist結果會是指標指向的資料。輸出linklist是這個 li...