1樓:岔路程式緣
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成立,case default,賦值b=5,此時a=4,b=5仍沒變
第五次進入迴圈i=5<=5成立,case 0,賦值b=3,此時a=4,b=3;case1,交換ab,a=3,b=4,break
第六次進入迴圈i=6<=5不成立,結束迴圈
最後列印唉b的值,3和4。
2樓:阿明
當i=1,i%5=1,進迴圈直接跳過case=0這條,直接執行第二條語句,a=4,b=3,當i=2,i%5=2,不進迴圈,當i=3,i%5=3,不迴圈,當i=4,i%5=4,不進迴圈,當i=5,i%5=0,進迴圈,b=3,沒跳出迴圈的語句,接著執行第二條語句,a=3,b=4,這裡有跳出迴圈的語句,後面沒了,直接出結果。如果在case=0這條語句後面加個break,那麼最後的結果就是a=4,b=3.
3樓:匿名使用者
開始a=3,b=4
i等於1時,執行case 1:,結果a=4,b=3i等於2,3,4時,執行default:,結果a=4,b=5i等於5時,先執行case 0:
,結果a=4,b=3。因為case 0:無break,繼續執行case 1:
,交換a,b的值,所以結果是a=3,b=4。
c語言問題求解。。
4樓:be_nice_雯
選d選項
#include
#include
#include"ctype.h"
space (char *str)
main( )
;//定義s字串
space(s);//呼叫space()函式puts(s); //輸出字串}
5樓:蔣茗孫慕悅
沒有x,y的值怎麼給你答案,%3x的意思是列印最小長度為3,不夠的話左邊補空格,x表示16進製制樹,這個把x,y的值帶進去算應該很簡單了吧
6樓:匿名使用者
答案是d,space函式的作用就是刪除原字串中的空格和a,然後將其它字元轉換為大寫。
7樓:冀峰馬躍
256二進位制表示100000000
右移兩位後為1000000,即64
8樓:聽不清啊
選擇答案:(不bai過這個程式缺少du標頭檔案zhistring.h)d) bcdefg
#include"ctype.h"
space (char *str)
//把ts複製到str中
main( )
;space(s); //c地字串s進行處理puts(s); } //輸出處理過的字串
c語言問題求解? 30
9樓:自我程式設計
#include
int main()
int x,y,i,n,flag=1,s=0;
printf("請輸入x,y的值:");
scanf("%d%d",&x,&y);
printf("其中質數為:\n");
for(i=x;i<=y;i++,flag=1)//包含x和y,想不包含改成for(i=x+1;i<=y-1;i++,flag=1)
if(i==1)continue;
n=i-1;
while(1)//能被1和自身以外的數整除,就不是質數if(n==1) break;
else if(i%n==0 && !(flag=0))break;
else n--;
if(flag)printf("%d ",i),s+=i;
printf("\n和為:%d",s);
return 0;
c語言問題求解
10樓:風火輪
我的思路是構建兩個陣列,乙個是原陣列a,乙個是冒泡法排序之後的陣列b,所要求的值就是陣列b中間的那個元素,再通過值的一一對比找到它對應在陣列a裡的元素。
下面貼**:
#include
#include
#include
int main()
for (int j = 0; j < n - 1; j++)}}int count = 0, num = 0;
while (1)
else
}printf("數值居中的元素為
system("pause");
return 0;}
11樓:匿名使用者
用sprintf將資料轉化為字元型,
然後用strlen計算字串長度
然後遍歷字串確定中間的字元(最好判斷一下是不是小數點)
c語言問題求解謝謝
12樓:匿名使用者
這個函式的作用是反向輸出2進製數……
具體解釋一下這個bin函式吧:
首先,判斷x/2是否大於0,大於0 的時候呼叫bin(x/2),其實就是把x除以2以後再次呼叫函式,所以這個函式每一次都會把原來的x的數字給除以2,一直到x等於1為止。這個時候函式結束。
然後,這個bin函式輸出此時x對於2的餘數,當x等於偶數時餘數為0,等於奇數時餘數為0.
其實這個就是我們求乙個數的二進位制表達方式時是正好相反的順序,我們來看一看普通情況下求乙個數的二進位制是怎麼求的:
例如原來的數為10,則:
(1)先求這個數對2的餘數,寫在「個位」上。現在10對2的餘數為0.,所以現在數字為「0」
(2)判斷這個數是否大於1,等於1時計算完畢,大於1時除以2求商並回到(1)。10大於1,大於1時將這個數除以2並求整數(商),現在10除以2,等於5.
(3)再次回到(1),現在求5對2的餘數,寫在「十位」上,現在5對2的餘數為1,於是,原來的數字現在為「10」。
(4)再次回到2,5除以2,求整數,等於2.
(5)再次回到(1),現在2對2的餘數,寫在「百位」上,為0,現在的數字為「010」
(6)再次回到(2),2除以2,等於1
(7)再次回到(1),這一次,1對2的餘數,等於1,寫在「千位」上,現在數字為「1010」
(8)現在回到(2) 1等於1,計算完畢,所以10的二進位制數為「1010」。
而現在這個bin函式會正好將這個二進位制數給反過來寫,因為printf函式會乙個乙個的列印當前這個數對2的餘數,而不會將第一次的餘數放在「個位」,第二次放在「十位」,第三次放在「百位」這樣,所以原來我們手工計算的結果(從右像左寫),在bin中完全會被反過來(從左向右寫),不知道我這樣解釋你明白了沒有……
13樓:匿名使用者
首先,此題的作用是十進位制數12,轉換為二進位制數1100。你可以把12換成bin(2),進入此函式首先判斷2/2=1,則迭代呼叫bin(1),進入bin(1)後判斷1/2=0,則輸出1%2=1,既輸出1,返回bin(2),輸出2%2=0。最後結果是10既是十進位制數對應的二進位制數。
14樓:兄弟_來喝一杯
程式入口,main(),呼叫函式,bin(12)x=12
x=12,x/2==6 是 呼叫自身x=6,x/2==3 是 呼叫自身x=3,x/2==1 是 呼叫自身x=1,x/2==0 否 輸出:1%2=1回到上一層,3%2=1
回到上一層,6%2=0
回到上一層,12%2=0
程式執行結果:
15樓:擁抱
程式執行的詳細過程,請見此圖:
所以,完整的輸出結果為0
16樓:匿名使用者
擁抱linux用圖回答很好!
我也來用個圖:
c語言問題求解
17樓:武傲
看不清楚**
把**貼出來吧
18樓:飄零的狐狸
好模糊呀 **太模糊
換張清晰點的
c語言問題求解呀1
19樓:旅初彤
d,b+c是乙個表示式, 不能把乙個值賦值給表示式,如果去掉後面乙個=1這個表示式是正確的
c語言問題求解釋,C語言問題,求解釋
在鍵盤輸入的時候 空格訊息表示null代表輸入結束 空格前邊的值就賦給變數 123空格 由於第乙個接收的是字元型別 只能接收 1 23還在緩衝區裡 這時i變數正需要接收10進製的整形資料.所以23就賦給了i 23後邊是空格 就停止了 之後s又從緩衝區裡接收了 字串456 後邊又是空格 接收停止 所以...
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...
c語言程式問題,求解答,C語言程式出錯求解答?
include include void main int i,j,t for i 0 i 9 i scanf d a i printf n for j 0 j 10 j 冒泡法 for i 0 i 9 i printf d t a i printf n 修改了一下,可以了,您對for的使用還不熟練...