1樓:匿名使用者
解釋:各個函式題主都明白吧。fseek(fp, 0l, 0);是移動指標到檔案頭,rewind(fp);也是,
所以程式一開始往文回件裡答寫了個a[0](fprintf(fp, "%d\n", a[0]);這句),寫了個1,然後做了個迴圈,迴圈5次(i=1,2,3,4,5),每次迴圈先定位到檔案頭,再取出一個數字,(就是取出檔案裡的那唯一一個數字,是這兩句)存到k裡,然後加上a[i],再寫回檔案(移動到檔案頭,再開始寫,fseek(fp, 0l, 0);fprintf(fp, "%d\n", [i]+k);這兩句,相當於從頭寫,覆蓋已有的東西,因為是一直在增大的從一位數到兩位數,每次寫肯定把上次的一個數字覆蓋乾淨了,所以寫完了檔案裡還是一個數字)——相當於檔案裡一開始是a[0],被加了a[1],a[2],a[3],a[4],a[5],檔案裡最後就一個數21.最後四行,把數讀出來,關檔案,列印,所以結果是21.
說的比較簡略,題主不懂的可以再問~
2樓:匿名使用者
以寫的方式開啟檔案,
然後把a[0]的值寫入檔案,即把版1寫入檔案,然後在迴圈把1讀出賦值給k,即k=1,然後,權把a[1]+k=2+1=3寫入,然後把3讀出賦值給k,即k=3,然後,
把a[2]+k=3+3=6寫入,然後。。。。
a[3]+k=4+6=10
a[4]+k=5+10=15
a[5]+k=6+15=21
rewind(fp);返回檔案的開頭
fseek(fp,0l,0);返回檔案的開頭
3樓:
21,b正確,選b——先bai寫du1,然後for迴圈從1~5將a[1]~a[5]依次與
zhik相加再寫入文dao件原來的位置(就是內開頭第一個
容位置,因為fseek(fp,0l,0)總是把操作檔案的指標移到0位即開頭),而k的值總是開頭那個位置的值,結果就是,1+2+3+4+5+6==21。
4樓:匿名使用者
我就不知道 第一次讀到的是多少 因為 用w+開啟 檔案內容會清零 如果這時返回0 就很好解釋 就是1+2+3+4+5+6
a[i]+k然後結果存入檔案 然後又讀取反覆6次
c語言題目,求詳細解答步驟,謝謝。
5樓:匿名使用者
x=5,y=10, 呼叫fun時,開設臨時變數x和臨時變數y,與主程式中並非同一變數,因此內可以寫成:void fun(int xx,int *yy)
fun: xx=5,yy指向y,*yy即取主容程式中y的值,給*yy賦值即給主程式中y賦值, xx+=*yy;[xx=5+10=15], *yy+=xx;[y=y+xx=10+15=25], 返回時xx和yy被捨棄, fun(x,&y);[x=5,y=25]
fun: xx=25,yy指向x,xx+=*yy;[xx=25+5=30], *yy+=xx;[x=x+xx=5+30=35], 返回時xx和yy被捨棄, fun(x,&y);[x=35,y=25]
printf輸出:x=35,y=25
c語言問題,需要詳細解答?
6樓:匿名使用者
#include
#include
void f(int *a, int n, int *max, int *min)
}int main()
c語言題目求詳細解釋,C語言題目,求詳細解釋
在c語言裡,結構體在記憶體中存放時要遵從這樣的規則 1 每個成員的相對於整個結構體起始地址的偏移值必須是該成員長度的整數倍 2 整個結構體的長度必須是最長的元素的整數倍 現在看整體是24,是最長元素8的倍數 符合規則2 於是長度就是24 就是選項d 如果換個次序變成下面這樣,就是32個位元組了 因為...
求c語言答案並解析,C語言,題目在圖片裡,求詳細解析答案以及得到答案的過程。
選a。copy 程式解析 首先定義三個整形變數x1.x2.t並給他們賦值1.2.1。第二部判斷x1是否等於x2.if語句表判斷,若括號內的條件成立則執行下一個分號前的語句,在本程式中即t 10,也就是給t重新賦值為10 經過判斷x1不等於x2。因此跳至下一個分號後的語句執行 即不執行t 10,t的值...
求c語言程式設計解答,求C語言程式設計解答
第一題 include stdio.h int main 第二題 include stdio.h int main fibonaci 0 1 fibonaci 1 1 for int i 2 i 20 i fibonaci i fibonaci i 1 fibonaci i 2 for int i ...