輸出的結果是多少?為什麼,下面程式碼輸出的結果是什麼?為什麼?麻煩詳細解釋。

2022-10-02 03:25:11 字數 3454 閱讀 1947

1樓:匿名使用者

i=1;[i=1],i<=5成立,開始迴圈b=i%2;[b=1%2=1]

b>=0成立,b--;[b=0],開始迴圈:k++;[k=1]b>=0成立,b--;[b=-1],繼續迴圈:k++;[k=2]b>=0不成立,結束迴圈

i++;[i=2],i<=5成立,繼續迴圈b=i%2;[b=2%2=0]

b>=0成立,b--;[b=-1],開始迴圈:k++;[k=3]b>=0不成立,結束迴圈

i++;[i=3],i<=5成立,繼續迴圈b=i%2;[b=3%2=1]

b>=0成立,b--;[b=0],開始迴圈:k++;[k=4]b>=0成立,b--;[b=-1],繼續迴圈:k++;[k=5]b>=0不成立,結束迴圈

i++;[i=4],i<=5成立,繼續迴圈b=i%2;[b=2%2=0]

b>=0成立,b--;[b=-1],開始迴圈:k++;[k=6]b>=0不成立,結束迴圈

i++;[i=5],i<=5成立,繼續迴圈b=i%2;[b=5%2=1]

b>=0成立,b--;[b=0],開始迴圈:k++;[k=7]b>=0成立,b--;[b=-1],繼續迴圈:k++;[k=8]b>=0不成立,結束迴圈

i++;[i=6],i<=5不成立,結束迴圈printf輸出: 8,-1

2樓:金色潛鳥

8 -2

i = 1,2,3,4,5 進入 b=i%2=1,0,1,0,1。

while(b-- >= 0 ) 迴圈 特殊。b迴圈到-1,退出迴圈後 b=b-1, 輸出 -2。

下面**輸出的結果是什麼?為什麼?麻煩詳細解釋。 5

3樓:meng劇場

b.getm()。。。。返回值是120.。。。。這個就不多說了

關鍵是a a=b;。。。此時a其實的型別也是b。。。就相對於一個指標直到b。。就相對於a和b同時指向一個物件

所以後面兩個列印出來的也應該都是b類的方法。。。所以都是120

4樓:

全部是120,首先分析下,system.out.println(b.

getm());當執行到此處的時候,上面的b b=new b();b.m=20;兩行**已經為b的物件b中的屬性欄位m賦值為20,此時再呼叫b.getm()就是執行下面的程式int getm()返回的結果自然是120,之後在a a=b;這段**中,是將子類的物件b賦給了父類的物件a其實就是,父類的物件a也指向了子類b的物件。

這個時候 a.m=-100;只是給a中的屬性欄位m設了初值為-100,到這一行的時候,system.out.

println(a.getm());a其實指向的是子類物件b,所以a.getm()就等同於b.

getm(),而b中的m=20,繼續返回120.最後一個一樣!!!有點抽象。。。

希望你能理解!debug的時候eclipse必須把物件儲存起來,然後等待你的操作,在儲存物件的時候會為每個物件分配id進行分辨,你可以進入debug模式跟蹤下程式,可以看出系統給a,b分配的id是一樣的額!

c語言,輸出結果是什麼,為什麼?怎麼輸出的?

5樓:匿名使用者

for迴圈三次

第一次,i==0; 走default 1

第二次,i==1; 走case 1和case 2第三次,i==2; 走case 2

所以結果是,0112

6樓:匿名使用者

上面的程式比較簡單,就是一段 迴圈+分支 ,從0到2進行迴圈,並根據 i 的值,分別輸出結果,輸出結果是:0112。

當 i = 0時,分支 default: 輸出 0當 i = 1時,分支 1: 輸出 1,由於沒有break;繼續下一語句:

case 2: printf("%d",i); 輸出1

當 i = 2時,分支 case 2: printf("%d",i); 輸出 2

c語言 輸出結果是什麼?為什麼?

7樓:

t=s 指標變數t指向s("ahspks.ahedu.gov.cn")

while(*t)//若t指向的單元值不為'\0',則繼續迴圈,否則已經在字串的結束位置,退出迴圈

}迴圈分析:

(1)*t為'a'不為'\0',進入迴圈,判斷*t的值為'a',執行case 'a'部分,並將t的值加1,讓t指向字串的下一個字元'h',由於case 'a'後面的語句為空,沒有break語句,因此繼續執行case 'b',同樣道理繼續執行default部分:a++,a等於1,繼續執行case '.'部分:

b++,b等於1

(2)*t為'h'不為'\0',進入迴圈,判斷*t的值為'h',執行case 'h'部分,並將t的值加1,讓t指向字串的下一個字元's',由於case 'h'後面的語句為空,沒有break語句,因此繼續執行default部分:a++,a等於2,繼續執行case '.'部分:

b++,b等於2

(3)*t為's'不為'\0',進入迴圈,判斷*t的值為's',執行default部分,並將t的值加1,讓t指向字串的下一個字元'p',default部分:a++,a等於3,繼續執行case '.'部分:

b++,b等於3

依次類推,可知該程式段的功能為若字元不為「.」則a和b的值各加1,若為「.」則a的值不加,而b的值加1,所以迴圈結束後,a=16,b=19(字串裡有3個".",所以b的值比a多3)

8樓:匿名使用者

16,19

(printf("%d %d",a,b);語句中的b應該是小寫)

c語言中 printf("\n")輸出是什麼結果?printf("%d")什麼意思?為什麼?

9樓:郎秀英費緞

printf("\n");是個換行,\n是轉義字元,表示換行printf("%d",a);完整應該這麼用,a是你要輸出的變數名。%d是個佔位符,它為一個int型資料站位,一個printf中可以有多個佔位符。如:

printf("%d%d%f",x,y,z);

%f也是佔位符,它為float型資料站位,佔位符的對應關係是順序對應的,即第幾個佔位符給第幾個變數站位,與資料型別無關。

其它的一些轉義字元和佔位符規則,煩請自行查詢printf函式的使用說明,不贅敘。

10樓:謇士恩淦丁

printf("\n")輸出是一個回車符

printf("%d")應該是printf("%d",i)之類的,是把i這個變數按%d的格式輸出,也就是整數形式輸出

11樓:勇素芹代雨

\n是一個轉義字元,意思是換行,如果你只輸出\n的話會看到游標到了另一行。

printf("a\nb")則可以看到明顯效果:a在上b在下。

printf("%d",

x)是以整數的形式輸出一個數,後面必須加一個引數,表示被輸出的數。

下面程式的執行結果是,下面程式的輸出結果是什麼?

首先這裡的for迴圈沒有打 號括起 來,所以他只是迴圈緊跟著下面的一句 也就是這句,s 10 s ch i 0 這裡的整形運算加字元還是整形 i 0,s 0,for第一次迴圈 ch 0 1 滿足for迴圈條件,s 10 s ch i 0 所以s 10 0 1 0,s的結果為1,再運算 i 2 所以i...

下面程式的執行結果是多少,求詳細解釋

一步步來呀 從b 到f 你試一下 k 經歷過 1 0 1 2 0 1 10 11 3 4最後是4哦 將每一步執行的值輸出 則 為 include int main k printf d n k while c g printf k d n k return 0 結果也為如圖 下面程式的執行結果為 c...

145X 154 4 1 1 80結果是多少?詳細的解答計算過程

解 諧音讀出一詞。145x 一世無成 154 一無是處 4 1 1 80 死王 一十一 八蛋 1 1 2 4 2 80 640 145 154 22330 22330 640 34.89 一事無成一無是處死王八蛋 145x154 4 1 1 80 一事無成 一無是處 死王八蛋 一無是處 一事無成 死...