323608329浙江大學(xué)遠(yuǎn)程教育夏程序設(shè)計(jì)基礎(chǔ)(C)離線作業(yè)答案(全)_第1頁(yè)
323608329浙江大學(xué)遠(yuǎn)程教育夏程序設(shè)計(jì)基礎(chǔ)(C)離線作業(yè)答案(全)_第2頁(yè)
323608329浙江大學(xué)遠(yuǎn)程教育夏程序設(shè)計(jì)基礎(chǔ)(C)離線作業(yè)答案(全)_第3頁(yè)
323608329浙江大學(xué)遠(yuǎn)程教育夏程序設(shè)計(jì)基礎(chǔ)(C)離線作業(yè)答案(全)_第4頁(yè)
323608329浙江大學(xué)遠(yuǎn)程教育夏程序設(shè)計(jì)基礎(chǔ)(C)離線作業(yè)答案(全)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、浙江大學(xué)遠(yuǎn)程教育學(xué)院程序設(shè)計(jì)基礎(chǔ)(c)課程作業(yè)姓名:王春強(qiáng)學(xué) 號(hào):年級(jí):2016春學(xué)習(xí)中心:桐廬學(xué)習(xí)中心第章 語(yǔ)言的基本構(gòu)成程序調(diào)試題1 編輯、調(diào)試以下程序步驟1:在visual c+環(huán)境下新建文件可用開(kāi)始程序microsoft visual c+6.0 microsoft visual c+6.0 文件 新建文件 c+ sourse file,輸入文件名ex1-1.c,程序代碼如下:include /*文件預(yù)處理,包含標(biāo)準(zhǔn)輸入輸出庫(kù),程序可調(diào)用輸入、輸出函數(shù)*/int add(int x,int y) int z; z=x+y; return z; int main( ) int add(i

2、nt,int); /* 函數(shù)的說(shuō)明,告訴系統(tǒng)在主函數(shù)中要調(diào)用add函數(shù) */int a,b,c; /* 變量的定義*/scanf(%d %dn,&a,&b);c=add(a,b); /* 函數(shù)調(diào)用 */ printf(%d+%d=%dn,a,b,c); /* 調(diào)用系統(tǒng)輸出函數(shù)printf,%d為格式控制符,依次用后面的變量值填充,以整數(shù)形式輸出 */請(qǐng)思考文件ex1-1.c由幾個(gè)函數(shù)構(gòu)成?調(diào)用了那幾個(gè)系統(tǒng)函數(shù)?此程序中用到了哪幾個(gè)保留字?哪幾個(gè)用戶自定義標(biāo)識(shí)符?答:1. 有2個(gè)函數(shù)構(gòu)成,主函數(shù)main()及自定義函數(shù)add()2 調(diào)用的系統(tǒng)函數(shù)有輸入函數(shù)scanf()及輸出函數(shù)printf()

3、3 保留字有:int, return4 自定義標(biāo)識(shí)符有:a,b,c,z,x,y步驟3:編譯并運(yùn)行程序,程序運(yùn)行時(shí)輸入兩個(gè)整數(shù),20 40 ,觀察程序運(yùn)行的結(jié)果。答: 結(jié)果是 20+40=60截圖如下:2.編輯、調(diào)試以下程序步驟1:在visual c+環(huán)境下新建文件可用開(kāi)始程序microsoft visual c+6.0 microsoft visual c+6.0 文件 新建文件 c+ sourse file,輸入文件名ex1-2.c步驟2:在文本編輯器中輸入以下c程序#include /*文件預(yù)處理,包含標(biāo)準(zhǔn)輸入輸出庫(kù),程序可調(diào)用輸入、輸出函數(shù)*/#includeint main( ) in

4、t and(int,int); /* 函數(shù)的說(shuō)明,告訴系統(tǒng)在主函數(shù)中要調(diào)用and函數(shù) */ int or(int,int); /* 函數(shù)的說(shuō)明,告訴系統(tǒng)在主函數(shù)中要調(diào)用and函數(shù) */int a,b,c; /* 變量的定義*/scanf(%d %d,&a,&b);c=and(a,b); /* 函數(shù)調(diào)用 */ printf(%d & %d=%dn,a,b,c); /*調(diào)用系統(tǒng)輸出函數(shù)printf,%d為格式控制符,依次用后面的變量值填充,以整數(shù)形式輸出 */c=or(a,b); /* 函數(shù)調(diào)用 */ printf(%d | %d=%dn,a,b,c); 步驟3:文件 新建文件 c+ sourse

5、 file,輸入文件名ex1-2-2.c,源程序代碼為:int and(int a,int b) int c; c=a&b; return c;步驟4:文件 新建文件 c+ sourse file,輸入文件名ex1-2-3.c,源程序代碼為:int or(int a,int b) int c; c=a|b; return c;步驟5:點(diǎn)擊編譯圖標(biāo),編譯程序1-2.c 步驟4:點(diǎn)擊執(zhí)行圖標(biāo) ,執(zhí)行程序1-2.c ,當(dāng)程序運(yùn)行時(shí),鍵盤(pán)輸入20 40,按回車。20 4020 & 40=120 | 40=1您可以輸入其它的整數(shù),觀察程序的執(zhí)行結(jié)果。答:(增加語(yǔ)句:#include)輸入20 40; 2

6、0 20;30 60 如下:第章輸入輸出程序設(shè)計(jì)1 用printf輸出一個(gè)中空的五角星。答:#includevoid main()printf(n);截圖如下:2 仿照例子2.2,定義一個(gè)字符數(shù)組,從鍵盤(pán)輸入一字符串,然后輸出的程序。答:#includevoid main()char str80;printf(請(qǐng)輸入您的名字n);scanf(%s,str);printf(學(xué)生:%s,正在就讀計(jì)算機(jī)專業(yè)n,str);截圖:3 從鍵盤(pán)輸入十六進(jìn)制整數(shù),轉(zhuǎn)化為八進(jìn)制數(shù)輸出。答:#includevoid main()int a;printf(請(qǐng)輸入十六進(jìn)制整數(shù)n);scanf(%x,&a);print

7、f(轉(zhuǎn)換成的八進(jìn)制數(shù)為:%on,a);截圖如下:4 只定義兩個(gè)整型數(shù)據(jù)并賦值,實(shí)現(xiàn)兩個(gè)整型數(shù)的互換。答:#include void main( ) int a=13,b=25; printf(原定義的數(shù)是:a=%d,b=%dn,a,b); a = ab; b = ba; a = ab; printf(互換后的數(shù)是:a=%d,b=%dn,a,b);截圖:5 從鍵盤(pán)上輸入一個(gè)整數(shù),分別輸出8、16進(jìn)制數(shù)的程序。答:#include void main( ) int a; printf(請(qǐng)輸入一個(gè)整數(shù)n); scanf(%d,&a); printf(轉(zhuǎn)換成的十六進(jìn)制數(shù)是%x,轉(zhuǎn)換成的八進(jìn)制數(shù)是%on

8、,a,a);截圖如下:6 從鍵盤(pán)上輸入一個(gè)整數(shù),分別輸出它的個(gè)位數(shù),十位數(shù),百位數(shù)。答:#include void main( ) int a,b,c,d; scanf(%d,&a); b=a%10; c=(a/10)%10; d=(a/100)%10); printf(個(gè)位數(shù)是:%d,十位數(shù)是:%d,百位數(shù)是:%dn,b,c,d);截圖如下:7 以下程序輸出結(jié)果是(9,10 )。#includevoid main() int i=010,j=10; printf(%d,%dn,+i,j- ); 8 運(yùn)行程序,屏幕提示“您是一個(gè)學(xué)生嗎”,您輸入y或n進(jìn)行回答,屏幕輸出您的選項(xiàng)。答:#inclu

9、devoid main() char a; printf(您是一個(gè)學(xué)生嗎?請(qǐng)輸入y或n進(jìn)行回答n); scanf(%c,&a); if(a=y) printf(您是學(xué)生n); else if(a=n) printf(您不是學(xué)生n); else printf(請(qǐng)重新輸入n); 截圖:9 從鍵盤(pán)輸入一個(gè)角度x,求10*sin(x)的值。答:#include#includevoid main() double x; scanf(%lf,&x); printf(10*sin(x)的值為:%lfn,10*sin(x);截圖:第章循環(huán)程序設(shè)計(jì)1以下for語(yǔ)句的循環(huán)次數(shù)是多少?int i,j=3;for(;

10、i=j;i-,j-) printf(%d,i);答:循環(huán)次數(shù)3次2下面的語(yǔ)句顯示輸出6行6列的整數(shù)數(shù)組h的主對(duì)角線上的所有元素,請(qǐng)補(bǔ)充完整:for(int i=0;i 6 ; i+ )printf(%d, hii )3寫(xiě)出以下程序運(yùn)行的結(jié)果,此程序?qū)崿F(xiàn)了什么功能?#includevoid main() int a10=2,4,0,-5,10,6,-8,9,6,7; int i, count=0; for(i=0;i10;i+) if(ai=0) count+; else continue;printf(%dn , count);結(jié)果是1,功能是輸出數(shù)字“0”的數(shù)量4寫(xiě)出以下程序的功能。#inc

11、ludevoid main()int a10=2,4,0,-5,10,6,-8,9,6,7,tmp,k;for (k=0;k10/2;k+) tmp=ak; ak=a10-k-1;a10-k-1=tmp;答:功能是倒置數(shù)組5寫(xiě)出以下程序運(yùn)行后的輸出結(jié)果。#includevoid main() int i,j; for(i=0;i6;i+) for(j=0;ji;j+)printf( );for(j=0;j2*(5-i)-1;j+)printf(*);printf(n); 答:輸出倒三角形五星陣* * * * *6請(qǐng)改正下列程序的錯(cuò)誤,改正后的程序?qū)懺谟疫叺目瞻滋帲⑸蠙C(jī)調(diào)試檢驗(yàn)。(1)#inc

12、ludevoid main( ) int i,s;i=1; s=0;while(i=100); s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正后為:#includevoid main( ) int i,s;i=1; s=0;while(i=100) s=s+i; i+; printf(1+2+3+.+99+100=%dn,s);截圖如下:(2)#includevoid main( ) int i,s;i=1;s=0;while(i=100) s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正如下:#incl

13、udevoid main( ) int i,s;i=1;s=0;while(i=100) s=s+i; i+; printf(1+2+3+.+99+100=%dn,s);截圖如下:(3)#includevoid main( ) int i=1,s;while(i=100) ; s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正如下:#includevoid main( ) int i=1,s=0;while(i=100) s=s+i; i+; printf(1+2+3+.+99+100=%dn,s);截圖如下:7輸入一個(gè)基數(shù),例如輸入9,輸出為:求1*

14、3*9的值。輸出為:1*3*5*7*9=945答:#include void main( ) long int s=1,i=1,a; printf(請(qǐng)輸入一個(gè)整數(shù):n); scanf(%d,&a); while(i=a) s=s*i; i=i+2; printf(1*3*.*%d=%dn,a,s);截圖如下:8輸入一個(gè)510之間的整數(shù)n,求1!+2!+3!+n!。例如輸入5,輸出為:1!+2!+3!+5!=153答:#include void main( ) long int s=0,i=1,t=1,a; printf(請(qǐng)輸入一個(gè)5-10的整數(shù):n); scanf(%d,&a); while(

15、i=a) t=t*i; s=s+t; i+; printf(1!+2!+3!+%d=%dn,a,s);截圖:9在屏幕上輸出以下內(nèi)容1 12 123 1234 12345 123456 1234567 12345678 123456789 答:#includevoid main( ) int i=1,s; while(i=9) for(s=1;s=i;s+) printf(%d,s); printf(n); i+; 截圖:10求2+4+6+98+100的和,用多種for表達(dá)式來(lái)完成。答:方法1#includevoid main( ) int i,s=0; for(i=2;i=100;i+=2)

16、s=s+i; printf(2+4+.+100=%dn,s); 方法2#include void main( ) int i=0,s=0; for(;i=100;) s+=i; i+=2; printf(2+4+.+100=%dn,s);方法3#include void main( ) int i,s; for(i=2,s=0;i=100;s+=i,i+=2); printf(2+4+.+100=%dn,s);截圖10 輸入一行字符,統(tǒng)計(jì)它有多少個(gè)字母?答:#includevoid main( ) char string100,c; int total = 99,count=0,scount=

17、0; while(count=a & c=a & c=z) scount+; count+; printf(%s, count=%dn,string,scount);第章分支程序設(shè)計(jì)1輸入若干整數(shù)給x,使用if語(yǔ)句輸出x的絕對(duì)值,當(dāng)輸入0時(shí)結(jié)束。答:#include#includevoid main( ) double x; printf(輸入若干整數(shù)(0表示結(jié)束):n); scanf(%lf,&x); while(1) if(x!=0) printf(%lf的絕對(duì)值為%lfn,x,fabs(x); scanf(%lf,&x); else break; 截圖:2輸入一批數(shù),輸出比相鄰數(shù)大的數(shù),

18、當(dāng)輸入0時(shí)結(jié)束。答:#include#includevoid main()int a,b,c;printf(請(qǐng)輸入整數(shù):n);scanf(%d,&a);while(a)scanf(%d,&b);if(b=0)break;if(ab)a=b;printf(最大整數(shù)為:%dn,a);截圖:3將輸入字符的大寫(xiě)字符轉(zhuǎn)換成小寫(xiě)字符輸出,小寫(xiě)字符原樣輸出。答:#include void main( ) char a; scanf(%c,&a);if(a=a & a=z)printf(轉(zhuǎn)換后的字母為:%cn,a+32);elseprintf(轉(zhuǎn)換后的字母為:%cn,a); 截圖:4輸入一批字符,按回車時(shí)結(jié)束

19、,統(tǒng)計(jì)小寫(xiě)字符、大寫(xiě)字符、數(shù)字字符、或其它字符的個(gè)數(shù)。答:#includevoid main( ) char c;int a=0,b=0,m=0,n=0;while(1)scanf(%c,&c); if(c=n) break; if(c=a & c=a & c=0 & c=9) m+; else n+; printf(小寫(xiě)字符有%d個(gè),大寫(xiě)字符有%d個(gè),數(shù)字字符有%d個(gè),其它字符有%d個(gè)n,a,b,m,n);截圖:5編寫(xiě)程序,計(jì)算分段函數(shù):答:#includevoid main( ) double x,y; scanf(%lf,&x); if(x10) y=3/(x-10); else y=2

20、*x; printf(y=%lfn,y);截圖:6根據(jù)輸入的百分制按五分制的成績(jī)輸出。百分制與五分制之間的關(guān)系見(jiàn)下表。百分制五分制90 100580 89470 79360 692601答:#includevoid main( ) int x,y; printf(請(qǐng)輸入分?jǐn)?shù):); scanf(%d,&x); if(x100 & x0)printf(成績(jī)輸入錯(cuò)誤=%d); else if(x=90) y=5; else if(x=80) y=4; else if(x=70) y=3; else if(x=60) y=2; else if(x=0) y=1; printf(五分制成績(jī)=%dn,y)

21、;截圖:7、用switch完成:讀入一個(gè)實(shí)數(shù)x,再輸入一整數(shù),若輸入是1,則計(jì)算sin(x),若輸入2,則計(jì)算cos(x),若輸入3,則計(jì)算tan(x),若輸入其他值,則顯示錯(cuò)誤信息。答:#include#includevoid main( ) double x; int s; printf(請(qǐng)輸入一個(gè)實(shí)數(shù),一個(gè)整數(shù)n); scanf(%lf,&x);scanf(%d,&s); switch(s) case 1: printf(sin(x)=%lfn,sin(x); break; case 2: printf(cos(x)=%lfn,cos(x); break; case 3: printf(

22、tan(x)=%lfn,tan(x); break; default: printf(輸入錯(cuò)誤); break; 截圖:8、用switch完成:輸入星期1 到星期5,輸出它們對(duì)應(yīng)的顏色星期1:blue星期2:red星期3:white星期4:yellow星期5:green答:#include void main( ) int s; printf(輸入星期1 到星期5n); scanf(%d,&s); switch(s) case 1: printf(今天的顏色是:bluen); break; case 2: printf(今天的顏色是:redn); break; case 3: printf(今

23、天的顏色是:whiten); break; case 4: printf(今天的顏色是:yellown); break; case 5: printf(今天的顏色是:greenn); break; default: printf(輸入錯(cuò)誤); break; 截圖:9、用switch完成:從鍵盤(pán)輸入a、b、c、d四個(gè)等級(jí)中的一個(gè),轉(zhuǎn)化輸出等級(jí)輸出a優(yōu)秀b良好c中等d及格e不及格答:#include void main( ) printf(從鍵盤(pán)輸入a、b、c、d四個(gè)等級(jí)中的一個(gè)!n); switch(getchar() case a: printf(優(yōu)秀n); break; case b: pr

24、intf(良好n); break; case c: printf(中等n); break; case d: printf(及格n); break; case e: printf(不及格n); break; default: printf(輸入錯(cuò)誤); break; 截圖第章數(shù)組及其應(yīng)用.從鍵盤(pán)輸入12個(gè)數(shù),分別為:900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小數(shù)。答:#includevoid main() int a12; int max,min; int i,m; printf(請(qǐng)輸入12個(gè)整數(shù)n); for(i=0;i12;i+) scanf(%d,&

25、ai); max=a0,min=a0; for(i=1;i12;i+) if(maxai) min = ai; printf(最大數(shù)為:%d,最小數(shù)為:%dn,max,min);截圖:.采用遍歷查找,在數(shù)組asize=2, 3,20,58, 72, 76,78,87,90,900中,找出偶數(shù)。答:#include #define size 10void main( ) int asize=2, 3,20,58, 72, 76,78,87,90,900; int i; printf(asize=2, 3,20,58, 72, 76,78,87,90,900中偶數(shù)為:n); for(i=1;i10

26、;i+) if(ai%2=0) printf(%-4d ,ai); 截圖.采用折半查找,在數(shù)組asize=2, 3,20,58, 72, 76,78,87,90,900中,找到87,然后進(jìn)行刪除。答:#include #define size 10void main( ) int asize=2, 3,20,58, 72, 76,78,78,90,900; int i,j=0,k,newsize; newsize=size; k=newsize; printf(原來(lái)的數(shù)組:); for(i=0;inewsize;i+) if(i=newsize-1) printf(%dn,ai); else

27、printf(%d,ai); i=(j+k)/2; while(j78) k=i-1; else if(ai78) j=i+1; else for(j=i;jnewsize-1;j+) aj=aj+1; newsize-; k=newsize; j=0; i=(j+k)/2; printf(新的數(shù)組:); for(i=0;inewsize;i+) if(i=newsize-1) printf(%dn,ai); else printf(%d,ai); 截圖第章函數(shù)及其應(yīng)用練習(xí)與實(shí)踐一、閱讀程序,寫(xiě)出程序運(yùn)行的結(jié)果。1寫(xiě)出以下程序的執(zhí)行結(jié)果。#includefloat aver(int a) in

28、t k,sum=0;float ave;for(k=0;k10;k+) sum+=*(a+k); ave=(float)sum/10;return (ave);int main( ) float ave;static b=78,89,98,76,78,45,88,81,92,85;ave=aver(b);printf(ave=%fn,ave);提示:數(shù)組b的首地址傳遞給形參a,*(a+k)就是數(shù)組元素bk.答:這是求平均數(shù),結(jié)果為:81.000002閱讀程序,寫(xiě)出程序的執(zhí)行結(jié)果。#include void abc( char str )int a, b ;for(a = b = 0 ; str

29、a!=0; a+ )if(stra!= c)strb+ = stra;strb=0;int main( )char str =abcdef ;abc(str);printf(str =%s , str );return 0;提示:數(shù)組str的首地址傳遞給形參str,stra就是實(shí)參中的數(shù)組元素stra,當(dāng)數(shù)組元素不為c時(shí)進(jìn)行復(fù)制。答:結(jié)果為:str=abdef3寫(xiě)出以下程序的執(zhí)行結(jié)果。#includeint sort(int b,int n,int x)int k;for(k=n-1;k=0;k-)if(bkx)bk+1=bk;elsebreak;bk+1=x;return 0; int ma

30、in( )int i,j;static int a5=8,5,4,1,6;int b8;b0=a0;for(i=1;i5;i+)sort(b,i,ai);for(j=0;j=i;j+) printf(%d ,bi);printf(n);return 0; 提示:循環(huán)體中if(bkx)bk+1=bk;elsebreak;如果bkx成立,執(zhí)行語(yǔ)句bk+1=bk;表示數(shù)組元素b向后移,不滿足時(shí)插入x,即從大到小排序。答:結(jié)果是:5 5 4 4 4 1 1 1 11 1 1 1 1 4寫(xiě)出以下程序的執(zhí)行結(jié)果。#includeint fun(int x) int p; if(x=0|x=1) retur

31、n 3; else p=x-fun(x-2); return p;int main( )printf(n%d,fun(9);return 0; 提示:fun(9)=9-fun(7),.,fun(1)=3答:結(jié)果是:75寫(xiě)出以下程序的執(zhí)行結(jié)果,并說(shuō)明其作用是什么?#includeint f(int n)if(n=10)f(n/10);printf(%d,n%8);return 0;int main( )f(1234);printf(n);return 0; 提示:在函數(shù)f中,程序運(yùn)行借助了堆棧,依次入棧的數(shù)據(jù)分別為1234、123、12,最后n=1,n對(duì)8取余輸出,然后數(shù)據(jù)依次出棧對(duì)8取余輸出。

32、答:結(jié)果是:1432二、程序設(shè)計(jì)1編寫(xiě)一個(gè)函數(shù),計(jì)算x的n次的平方。 提示:for(y=1,i=0;in;i+) y=y*x;答:#includedouble ss(double x,int n)double y=1;int i;for(i=1;i=n;i+)y=y*x;return(y);int main( )double a;int b;printf(請(qǐng)輸入x和次數(shù)n:);scanf(%lf %d,&a,&b);printf(%lf的%d次方為:%lfn,a,b,ss(a,b);return 0; 截圖:2編寫(xiě)一個(gè)函數(shù),計(jì)算對(duì)角線上元素之和。提示:for(s=0,i=0;in;i+) fo

33、r(j=0;jn;j+) if(i=j) s=s+aij; 答:#include int main( )int s,i,j,n=3;int a33 = 1,2,3,4,5,6,7,8,9; for(s=0,i=0;in;i+) for(j=0;jn;j+) if(i=j) s=s+aij; printf(對(duì)角線元素之和為s=%dn,s); 截圖:3編寫(xiě)一個(gè)函數(shù)int invert(char str ),將一個(gè)字符串的內(nèi)容顛倒過(guò)來(lái)。提示:先求字符串str的長(zhǎng)度n,for(i=0;in/2;i+)ai與an-1-i交換答:#include int invert(char str)int n =st

34、rlen(str); int i; char temp; for(i=0;in/2;i+) temp = stri; stri=strn-i-1; strn-i-1=temp; void main() char a12=abcdefg123; printf(顛倒前:%sn,a); invert(a); printf(顛倒后:%sn,a);截圖4編寫(xiě)函數(shù),刪除字符串中,從指定位置m開(kāi)始的n個(gè)字符。刪除成功,函數(shù)返回被刪除字符串;否則返回空的值。提示:for(k=m , i=0 ; stri ; i+) strm+i=strm+n+i; strm+i=0;答:#includeint cutstri

35、ng(int m,int n,char str) int l =strlen(str); if(m+n-1=l) return 0; int k,i; char nstrn; for(k=m , i=0 ; stri ; i+) strm+i=strm+n+i; strm+i=0; return 0; void main()int m,n;char str11 = ddksosekci; printf(%sn,str); printf(please input m and n:n); scanf(%d %d,&m,&n); cutstring(m,n,str); printf(%sn,str)

36、; 5編寫(xiě)一個(gè)程序,從鍵盤(pán)輸入的字符串,刪去非數(shù)字字符,轉(zhuǎn)換成整型數(shù)輸出。 提示:for(s=0 , i=0 , j=0 ; stri;i+) if(stri=0&stri=9) s=s*10+stri-0; 答:#include void main() char str11; int s,i,j; for(i=0;i=0&stri=9) s=s*10+stri-0; printf(%dn,s);截圖:6用遞歸的方法編寫(xiě)一個(gè)函數(shù)sum(int n),求1至n的累加和。 提示:f(n)=n+f(n-1) 答:#include int sum(int n)int s=0,i;for(i=1;i=n

37、;i+)s=s+i;return(s);void main()int a;printf(請(qǐng)輸入整數(shù)n:);scanf(%d,&a);printf(1+2+.+%d=%dn,a,sum(a);截圖:第章變量存儲(chǔ)類型與多文件系統(tǒng)1寫(xiě)出以下程序的執(zhí)行結(jié)果。#includeint x;void fun( )printf(%d ,x+);void main( )int x=1;extern int x;printf(%d,+x);fun( );提示:在函數(shù)fun中及語(yǔ)句塊extern int x;printf(%d,+x);中使用的x是外部變量,在語(yǔ)句塊:if(x=1)int x=2;printf(%d

38、,x+);中使用的是剛剛定義x=2的變量。答:結(jié)果是 1,12寫(xiě)出以下程序的執(zhí)行結(jié)果。#include int kk( ) int x = 4 ; static int y ; y = 5 ; x*= 2 ; y*= 2; return(x+y);void main() int j , s = 0 ; for ( j = 0 ; j 2 ; j+ ) s = kk ( ); printf( s = % d n ,s );提示:雖然兩次調(diào)用函數(shù)kk(),但變量定義語(yǔ)句static int y ;只執(zhí)行一次,而變量賦值語(yǔ)句每次都要執(zhí)行。 答:結(jié)果是s = 283寫(xiě)出以下程序的執(zhí)行結(jié)果。#inclu

39、de int t( ) int x = 0 ; static int y = 4 ; y += +x ; return x+y;void main( ) printf(%d n,( t( ), t( ) );提示:語(yǔ)句printf(%d n,(t( ), t( );中(t( ),t( )屬于“,”號(hào)表達(dá)式,即兩次調(diào)用函數(shù)t( ),在函數(shù)t( )中,y為靜態(tài)內(nèi)部變量,因而語(yǔ)句static int y = 4 ;只執(zhí)行一次。答:結(jié)果是 7第章文件1下述程序從終端讀入文本(用$作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為out.dat的新文件中,請(qǐng)補(bǔ)全程序。#include int main()file *fp

40、;char cx;if(fp=fopen( (1) )=null)return 0;while(cx=getchar( )!=$)fputc(cx,fp); (2) ;return 1;提示:第1個(gè)空格是打開(kāi)文件讀,第2個(gè)空格是關(guān)閉文件。答:1.”out.txt”,”r+” 2.fclose(fp)2下面的程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù),請(qǐng)補(bǔ)全程序。#includeint main( ) file *fp; long num=0; if(fp=fopen(fname.dat,r)=null) printf(cant open file!n);exit(0); while( (1) ) fgetc(fp); num+; print

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論