1樓:及訊新**
核心解釋是:i++的使用規則是 ,先使用 i的值再對i進行++運算
執行的過程為:
第一次迴圈,i=0,執行do裡面的空語句,c[0]='a',i++,while的判斷成立
第二次迴圈,i=1,執行do裡面的空語句,c[1]='b',i++,while的判斷成立
第三次迴圈,i=2,執行do裡面的空語句,c[2]='c',i++,while的判斷成立
第四次迴圈,i=3,執行do裡面的空語句,c[3]=='\0',i++,while的判斷不成立,跳出迴圈,此時i=4,故輸出i-1的結果是3。
本題程式的關鍵在於i++的使用規則,先使用i的值,進行c[i]的運算,再進行i++的運算。下面是用vc6.0跑一遍該程式的結果,結果證明答案是d且論證過程沒錯。
2樓:
迴圈過程為:
i c[i]
0 a
1 b
2 c
3 \0
此時結束迴圈 ,因為是i++ ,故是先使用 i 再遞加 i ,3再加1為4
輸出i-1為 3,
3樓:我是達浪啊
c語言一道選擇 char c="abc";int i=0;
以下程式段的輸出結果為().charc="abc";inti=0;dowhile
char c[]=「abc」; int i=0; do; while(c[i++]!='\0');
4樓:匿名使用者
do-while就是先執行一遍do之後的指令,然後判斷while的條件,符合則迴圈至do的位置繼續執行。i++就是i=i+1的意思
5樓:嘎嘎的壞壞先生
你do後面跟了:就沒有執行了,不執行任何操作;
下一步是執行在while裡的判斷。
i++表示先執行判斷再執行i=i+1,
c[3]='/0',所以i=3這一次判斷時跳出迴圈,並且再執行一次i=i+1,結果是4
最後輸出i-1,就是3啦
char s[ ]="abc";int i;for(i=0;i<3;i++)printf("%s",&s[i]);執行結果是什麼?為什麼?原理!
6樓:匿名使用者
abcbcc,s陣列實際上是'a','b','c','\0',而列印時%s是列印字串,迴圈過程中&s[i]依次從'a','b','c'為字串開始,以'\0'為結束,所以依次列印出字串"abc","bc","c"
7樓:匿名使用者
編譯出錯,char型陣列,陣列元素必須是字元型,而你模abc是字串,必須寫成「a,b,c」用豆號隔開,如改過來,結果是abc不改變。
8樓:匿名使用者
結果是abc bc c
%s是從起始位置輸出字元直到遇到\0為止
i=0 時 abc
i=1 bc
i=2 c
9樓:匿名使用者
這個陣列好像不對吧,你沒有常量表示式。main()
main() { char p[][4]={"abc","def","ghi"}; int i; for(i=0;i<3;i++) puts(p[i]); }
10樓:匿名使用者
char p[3]=; 這種定義是錯誤的
char p[4]=; 這種定義相當於
char* p[3]=;
那麼: p[1]="abc\0" p[2]="def\0", p[3]="ghi\0"
c語言,int a[]="string"可以是對的,而char a[]={0,1,2}卻是錯的,把
11樓:墨明棋妙
試試這樣不就是可以了,char a=; 0,1,2是數字,不是字元型
一道c語言題,解釋一下,求解一道C語言選擇題解釋一下怎麼做出來的
結果是8 define n 2 define m n 1 define mun m 1 m 2巨集定義的帶入 是直接帶入 也就是如下 mun m 1 m 2 n 1 1 n 1 2 後一個n 1沒有括號,這是規則。2 1 1 2 1 2 8 d 列印結果是8所以 define 巨集定義 define...
一道c語言指標問題,一道C語言的指標問題
int a 10 是指標陣列,每個a i 都是指向 int型的指標 比如 int abc a 0 abc int a 10 是陣列指標,a 是指向一個有10個元素的int型陣列 比如int abc 10 a abc int a 10 a是陣列,a裡存放的是10個int型指標 int a 10 a是指...
誰能幫我解決一道C語言題目C語言一道題目,誰能幫我解得
include include include include define eps 1e 6 用於控制商的精確度 main else printf 回答錯誤 n break case 2 for i 1 i 10 i while c 0 printf d.d d n i,a,b scanf d d...