1樓:匿名使用者
選c有圖有真相
陣列s有5個char型別大小的空間,分別存放著a,b,c,d,\0;
字元指標p初始指向s陣列的第乙個字元a;
while迴圈,開始p指向的是a,非零執行迴圈體使得p指向下乙個字元b;
直到p指向最後乙個\0的時候跳出while迴圈\0是轉義字元表示null其整數值就是零;
開始for迴圈,指標p先倒退乙個指向d,puts函式將以d開頭的字串輸出並換行;
指標在倒退乙個指向c,puts函式將以c開頭的字串輸出;
直到p的位址不在大於s的位址為止,即p指向陣列的首位址s 的時候,也是p指向a 的時候;
最後一次將以a開頭的字串輸出;
2樓:匿名使用者
「char s=「abcd」這行實際上在記憶體中」abcd「後面還有乙個結束符『\0』
while(*p)
p++;
這句**將的意思是指標p不斷自加,直至指向'\0'跳出。此時p指向的是字串」abcd「的下乙個位元組。
for(p--;p-s>=0;p--)
puts(p);
這句**首先將p自減,於是p指向了『d』。puts(p)後列印d
下一次p再次自減1,指向『c』。puts(p)列印到『\0』結束,列印cd
後面不斷迴圈,依次列印bcd和abcd
此時p指向『a』,下一次迴圈p自減,位置相對陣列s靠前,p-s<0,跳出迴圈,函式結束。
3樓:7無7言
答案是c.
執行完while迴圈後指標p指向s[3]下一記憶體單元,for迴圈執行p--語句後p指向s[3]
第一次迴圈:p-s=3>0為真,由於此時p指向s[3],所以輸出為d,再執行p--,指標p指向了s[2]
第二次迴圈:p-s=2>0為真,此時p指向s[2],輸出為cd同理第三次迴圈輸出bcd,第四次迴圈輸出abcd
4樓:匿名使用者
選c*p =s ,s陣列的首位址賦給p, while(*p) 取位址的內容並判斷是否為字元結尾,p++ 指標自加,最後指向字元'd'的位址。
s的位址是字元型,p指標的位址也是字元型,可以相減。for(p--;p-s>=0;p--) 迴圈使指標從 字元『d』 的位置開始,變到'c', 再到'b', puts(p),輸出位址後面的字串。共四個迴圈
關於一道c語言題,求詳解,急求,關於一道C語言題,求詳解,急求
在主函式裡 是先執行fx 這個函式的,而執行這個函式得到的值x 15,而後x x a 15 5 20.a 5 所以輸出是 20 和 5 主函式的x帶的是全域性變數的值是fx函式得到的x的值15,而不是定義全域性變數的初始值,也不是fx函式裡x的初值 在這個程式裡用全域性變數無非是想說明全域性變數x在...
c語言一道選擇題求詳解,跪求一道C語言的選擇題求詳解
這個程式就是求50 60之間的素數並輸出。一共找到兩個素數53 59,因此輸出為5359選a 跪求一道c語言的選擇題 求詳解 if 語句1 語句2 語句 true 執行 語句2 a.k 2 當他不等於0 時 為true 為0 時為falseb.k 2 1 賦值語句 為true 好比陳述句,不存在疑問...
c語言一道題,C語言一道題
程式 如下 include int main printf n printf 總和為 d n sum return 0 include void main 教材上面應該有這個啊 include long fun int a,int n int j long s 0,t 0 for j 0 j n j...