以下程式執行後第一行輸出第二行輸出

2021-12-23 05:04:19 字數 1722 閱讀 9979

1樓:

後面少了個”)“。

*p1[3]是3元素int型指標陣列,經for(i=0;i<3;i++) p1[i]=&p[6-3*i];後存放的內容是:p1[0]=&p[6](即7的地址),p1[1]=&p[3](即4的地址),p1[2]=&p[0](即1的地址);p2是二級指標,它經p2=p1+2;指向了p1[2]的地址&p1[2]。現在看輸出。

輸出共有i=1和i=2兩行。

第一行,i=1時:

*(++p1[i]+2)+1→++p1[i]+2=++p1[1]+2=p1[1]+3=&p[3]+3=&p[6]→*(&p[6])=p[6]=7→7+1=8;

*((*p2--+1)+2)=*(*p2+3)→*p2--=*(p1+2)=*(&p1[2])=p1[2]=&p[0]→&p[0]+3=&p[3]→*(&p[3])=p[3]=4;然後,p2=p2-1;。

所以第一行輸出8,4。

第二行,i=2時:你照貓畫虎自己分析一下吧,太麻煩了……

2樓:匿名使用者

第一排輸出:

*(++p1[i]+2)+1

= (++p1[i])[2]+1

=p1[i][2+1]+1

=p1[i][3]+1

輸出,p1[1][3]+1 = p[3+3]+1=7+1=8

p1[2][3]+1 = p[0+3]+1=4+1=5

說明:for(i=0;i<3;i++) p1[i]=&p[6-3*i];將:p1[0]=&p[6];p1[1]=&p[3];p1[2]=&p[0];

第二排輸出:

第一次執行

*((*p2--+1)+2) // 最裡面() 和 -- 去掉

= *(*p2+1+2) // 最外面的* ,指標運算轉換成

= (*p2)[3]

= (*(p1+2)[3]

= p1[2][3]

= p[0+3] = 4

第二次執行 :p2=p1+2-1;

*((*p2--+1)+2)

= (*p2)[3]

= (*(p1+1))[3]

= p1[1][3] // 又因為:前面*(++p1[1]+2)+1 中++p1[1] 的運算 改變了原p1[1]的指向地址 。

=(++p1[1])[3]

=p1[1][3+1]

=p1[1][4]

=p[3+4] = 8

程式執行列印輸出

8,45,8

3樓:匿名使用者

printf語句少加了一個括號

4樓:

輸出結果為:

8,45,8

.以下程式執行時,輸出結果的第一行是 ,第二行是 。

5樓:白狐

首先,要知道change(x,y)函式是把十進位制數x轉換成y進位制的數並輸出。然後就可以看main()函式了。第一行是把十進位制數10轉換成2進位制數:

10=1010然後printf("\n")是換行,change(10,8)是吧十進位制數10轉換成8進位制數:10=12所以輸出結果是:

1010 //第一行輸出

12 //第二行輸出

6樓:匿名使用者

第一行:1010

第二行:12

我在第一行按空格,第二行跟著第二行一起動,這是為什麼?怎麼改

有時拖動標尺不一定起作用,使靠前,選擇有問題的這段,右擊 段落 選擇首行縮排 遇到這種復情況我一般認為是軟體的制原因,建議你將 段落全選上,拖動標尺上的縮排 塊試試。如果內容不多的話,你還可以先複製到記事本上,再複製到乙個空白文件裡編輯格式。不行的話發我郵箱,我給你調調。lp1605 126.com...

計算行列式第一行2 4 5 3第二行3 1 6 5第三行7 1 9 13第四行

2 4 5 3 3 1 6 5 7 1 9 13 5 0 3 8 第du2行,第3行,第4行,加上 zhi第1行 dao回 3 2,7 2,5 2 2 4 5 3 0 5 32 12 0 15 172 520 10 192 12第3行,第4行,加上第2行 3,2 2 4 5 3 0 5 32 12 ...

第一行1第二行23第三行456第四行

答案是 49.規律 copy可以發現裡面數字是雙的為正,是單的為負。第一行是乙個數字,第二行是2個數字。所以第九行有9個數字。可以算一下到第九行第九個數字總共有 1 9 9 2 45個數字,也就是第九行最後乙個數為45.第十行為46,再加三個,為49,單數,所以為 49 49通過觀察,奇數為負,偶數...