c語言程式題,麻煩看一下它的功能

2022-02-15 13:28:47 字數 2578 閱讀 6717

1樓:匿名使用者

輸出結果為abcefijklqswz

功能是這樣的

while(a[i]!='\0'&&b[j]!='\0')

}這一段話的意思是:將字串a與字串b各個元素進行比較直到a或b其中有個出現'\0'為止,然後將比較出的較小的那個字母(元素)存入到字串c中。

過程舉例:a由:a,c,f,i,j,k組成

b由:b,e,f,i,j,k,l,q,s,w,z組成

首先:i=0,j=0,k=0,且a[i]!='\0'&&b[j]!='\0’

所以執行:if(a[i]b[j] )c[k++]=b[j++];

else }

發現a(a[0])b(b[0])所以要執行c[k++]=b[j++];

即c[1]=b[0]=b;

就像上述這般如此迴圈下去,直到a或b中有一個結束為止。如果說中途遇到a與b中的某個字母相同的時候,比如說a[2]=f,b[2]=f;這時就執行

即將b中的字母存入到c中。

這就是你第一個迴圈的功能,而第二個迴圈

while(a[i]=='\0'&&b[j]!='\0')

c[k++]=b[j++];

while(a[i]!='\0'&&b[j]=='\0')

c[k++]=a[i++];

c[k]='\0';

這個功能是,如果a或b中有一個先結束了,比如a它在上一次迴圈中迴圈到最後一個字母k的時候就迴圈就停止了,這時候b還沒有停止所以滿足(a[i]=='\0'&&b[j]!='\0')

於是執行c[k++]=b[j++];也就是將b中剩餘的字母全部複製到a中。反之,如果a比b長的話就把a中剩餘的字母複製到c中。

在輸出結果中的“lqswz”實際上就是b比a多出的那些字母。

到這裡我想我已經講的很詳細了,這道題目很簡單的,只要樓主細心的去分析它,就明白一切了。

呵呵,希望我的回答能對你有所幫助哦~~~

2樓:匿名使用者

學習c語言我建議你去敗筆網路安全小組

3樓:【阿琪

最終執行結果是: abcefijklqswz

函式執行含義:

#include

#include

void main()

/*該迴圈的作用是將字串b剩下的字母賦值到字串c中*/

/*此時i=6,a[6]='\0',j=11,b[11]='\0',不滿足迴圈條件,迴圈不執行*/

c[k]='\0';

/*由於下面使用puts函式,所以字串c最後一位必須人工賦值'\0'*/

puts(c); /*輸出字串c*/

}完整的迴圈執行過程:

開始→第一個while迴圈開始→

i=0, j=0, a[0]=a, b[0]=b, c[0]=a, k=1, i=1, j=0

i=1, j=0, a[1]=c, b[0]=b, c[1]=b, k=2, i=1, j=1

i=1, j=1, a[1]=c, b[1]=e, c[2]=c, k=3, i=2, j=1

i=2, j=1, a[2]=f, b[1]=e, c[3]=e, k=4, i=2, j=2

i=2, j=2, a[2]=f, b[2]=f, c[4]=f, k=5, i=3, j=3

i=3, j=3, a[3]=i, b[3]=i, c[5]=i, k=6, i=4, j=4

i=4, j=4, a[4]=j, b[4]=j, c[6]=j, k=7, i=5, j=5

i=5, j=5, a[5]=k, b[5]=k, c[7]=k, k=8, i=6, j=6

i=6, j=6, a[6]='\0’, b[6]=l

→第一個while迴圈結束 此時 c=abcefijk

→第二個while迴圈開始

i=6, j=6, a[6]='\0’, b[6]=l, c[8]=l, k=9, i=6,j=7

i=6, j=7, a[6]='\0’, b[7]=q, c[9]=q, k=10, i=6,j=8

i=6, j=8, a[6]='\0’, b[8]=s, c[10]=s, k=11, i=6,j=9

i=6, j=9, a[6]='\0’, b[9]=w, c[11]=w, k=12, i=6,j=10

i=6, j=10, a[6]='\0’, b[10]=z, c[12]=z, k=13, i=6,j=11

i=6, j=11, a[6]='\0’, b[11]='\0’

→第二個while迴圈結束 此時 c=abcefijklqawz

→第三個while迴圈開始

i=6,j=11,a[6]='\0’, b[11]='\0’

→第三個while迴圈結束

c[13]='\0';

→輸出字串c→結束

c語言檔案部分的題,大神看一下,c語言檔案部分的題,大神看一下

我是用來的結構自體寫 bai的,du 你看可以zhi 不。dao include typedef struct stu nono int main while n100 getchar for i 0 i c語言檔案寫入txt中邏輯有問題,求大神幫忙看一下,謝謝 include include vo...

幫我看一下這些題,謝謝,麻煩幫我看一下這個題,謝謝

這個沒問題啊 這樣配成完全平方再開方 因為根號7大於1,所以最後得到根號7 1 根號1等於1,所以最後結果就寫成根號7 1吧,不要寫根號1了。麻煩幫我看一下這個題,謝謝 這個沒問題啊 這樣配成完全平方再開方 因為根號7大於1,所以最後得到根號7 1 根號1等於1,所以最後結果就寫成根號7 1吧,不要...

幫忙看一下兩道c語言題,說一下過程,謝謝

真燒腦子!第一題,輸出 3,1,1,3,1,1 第一題 考題關鍵注意點 continue,執行迴圈增量表示式 i第一次迴圈 i取0 i 2等於0,if j i 2 只要j大於0必定成立 j第一次迴圈 j取4,執行if內容,列印 3,執行continue,執行增量表示式j j等於2 j第二次迴圈 j取...