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

下載本文檔

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

文檔簡介

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

2、in( ) int add(int,int); /* 函數(shù)的說明,告訴系統(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ù)形式輸出 */請思考文件ex1-1.c由幾個函數(shù)構(gòu)成?調(diào)用了那幾個系統(tǒng)函數(shù)?此程序中用到了哪幾個保留字?哪幾個用戶自定義標(biāo)識符?答:1. 有2個函數(shù)構(gòu)成,主函數(shù)main

3、()及自定義函數(shù)add()2 調(diào)用的系統(tǒng)函數(shù)有輸入函數(shù)scanf()及輸出函數(shù)printf()3 保留字有:int, return4 自定義標(biāo)識符有:a,b,c,z,x,y步驟3:編譯并運(yùn)行程序,程序運(yùn)行時輸入兩個整數(shù),20 40 ,觀察程序運(yùn)行的結(jié)果。答: 結(jié)果是 20+40=60截圖如下:2.編輯、調(diào)試以下程序步驟1:在Visual C+環(huán)境下新建文件可用開始程序Microsoft Visual C+6.0 Microsoft Visual C+6.0 文件 新建文件 C+ Sourse File,輸入文件名ex1-2.c步驟2:在文本編輯器中輸入以下C程序#include<stdi

4、o.h> /*文件預(yù)處理,包含標(biāo)準(zhǔn)輸入輸出庫,程序可調(diào)用輸入、輸出函數(shù)*/#include<ex1-2-2.c>int main( ) int and(int,int); /* 函數(shù)的說明,告訴系統(tǒng)在主函數(shù)中要調(diào)用and函數(shù) */ int or(int,int); /* 函數(shù)的說明,告訴系統(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)

5、; /*調(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 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; retu

6、rn c;步驟5:點(diǎn)擊編譯圖標(biāo),編譯程序1-2.c 步驟4:點(diǎn)擊執(zhí)行圖標(biāo) ,執(zhí)行程序1-2.c ,當(dāng)程序運(yùn)行時,鍵盤輸入20 40,按回車。20 4020 && 40=120 | 40=1您可以輸入其它的整數(shù),觀察程序的執(zhí)行結(jié)果。答:(增加語句:#include<ex1-2-3.c>)輸入20 40; 20 20;30 60 如下:第章輸入輸出程序設(shè)計(jì)1 用printf輸出一個中空的五角星。答:#include<stdio.h>void main()printf("n");截圖如下:2 仿照例子2.2,定義一個字符數(shù)組,從鍵盤輸入一字

7、符串,然后輸出的程序。答:#include<stdio.h>void main()char str80;printf("請輸入您的名字n");scanf("%s",str);printf("學(xué)生:%s,正在就讀計(jì)算機(jī)專業(yè)n",str);截圖:3 從鍵盤輸入十六進(jìn)制整數(shù),轉(zhuǎn)化為八進(jìn)制數(shù)輸出。答:#include<stdio.h>void main()int a;printf("請輸入十六進(jìn)制整數(shù)n");scanf("%x",&a);printf("轉(zhuǎn)換成的

8、八進(jìn)制數(shù)為:%on",a);截圖如下:4 只定義兩個整型數(shù)據(jù)并賦值,實(shí)現(xiàn)兩個整型數(shù)的互換。答:#include<stdio.h> 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 從鍵盤上輸入一個整數(shù),分別輸出8、16進(jìn)制數(shù)的程序。答:#include<stdio.h> void main( ) int a; printf(&qu

9、ot;請輸入一個整數(shù)n"); scanf("%d",&a); printf("轉(zhuǎn)換成的十六進(jìn)制數(shù)是%x,轉(zhuǎn)換成的八進(jìn)制數(shù)是%on",a,a);截圖如下:6 從鍵盤上輸入一個整數(shù),分別輸出它的個位數(shù),十位數(shù),百位數(shù)。答:#include<stdio.h> void main( ) int a,b,c,d; scanf("%d",&a); b=a%10; c=(a/10)%10; d=(a/100)%10); printf("個位數(shù)是:%d,十位數(shù)是:%d,百位數(shù)是:%dn",b,

10、c,d);截圖如下:7 以下程序輸出結(jié)果是(9,10 )。#include<stdio.h>void main() int i=010,j=10; printf("%d,%dn",+i,j- ); 8 運(yùn)行程序,屏幕提示“您是一個學(xué)生嗎”,您輸入y或n進(jìn)行回答,屏幕輸出您的選項(xiàng)。答:#include<stdio.h>void main() char a; printf("您是一個學(xué)生嗎?請輸入'y'或'n'進(jìn)行回答n"); scanf("%c",&a); if(a=

11、9;y') printf("您是學(xué)生n"); else if(a='n') printf("您不是學(xué)生n"); else printf("請重新輸入n"); 截圖:9 從鍵盤輸入一個角度x,求10*sin(x)的值。答:#include<stdio.h>#include<math.h>void main() double x; scanf("%lf",&x); printf("10*sin(x)的值為:%lfn",10*sin(x);截圖:

12、第章循環(huán)程序設(shè)計(jì)1以下for語句的循環(huán)次數(shù)是多少?int i,j=3;for(;i=j;i-,j-) printf("%d",i);答:循環(huán)次數(shù)3次2下面的語句顯示輸出6行6列的整數(shù)數(shù)組h的主對角線上的所有元素,請補(bǔ)充完整:for(int i=0;i< 6 ; i+ )printf("%d", hii )3寫出以下程序運(yùn)行的結(jié)果,此程序?qū)崿F(xiàn)了什么功能?#include<stdio.h>void main() int a10=2,4,0,-5,10,6,-8,9,6,7; int i, count=0; for(i=0;i<10;i

13、+) if(ai=0) count+; else continue;printf("%dn ", count);結(jié)果是1,功能是輸出數(shù)字“0”的數(shù)量4寫出以下程序的功能。#include<stdio.h>void main()int a10=2,4,0,-5,10,6,-8,9,6,7,tmp,k;for (k=0;k<10/2;k+) tmp=ak; ak=a10-k-1;a10-k-1=tmp;答:功能是倒置數(shù)組5寫出以下程序運(yùn)行后的輸出結(jié)果。#include<stdio.h>void main() int i,j; for(i=0;i&l

14、t;6;i+) for(j=0;j<i;j+)printf(" ");for(j=0;j<2*(5-i)-1;j+)printf("*");printf("n"); 答:輸出倒三角形五星陣* * * * *6請改正下列程序的錯誤,改正后的程序?qū)懺谟疫叺目瞻滋?,并上機(jī)調(diào)試檢驗(yàn)。(1)#include<stdio.h>void main( ) int i,s;i=1; s=0;while(i<=100); s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正后為:#in

15、clude<stdio.h>void main( ) int i,s;i=1; s=0;while(i<=100) s=s+i; i+; printf("1+2+3+.+99+100=%dn",s);截圖如下:(2)#include<stdio.h>void main( ) int i,s;i=1;s=0;while(i<=100) s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正如下:#include<stdio.h>void main( ) int i,s;i=1;s=0;whi

16、le(i<=100) s=s+i; i+; printf("1+2+3+.+99+100=%dn",s);截圖如下:(3)#include<stdio.h>void main( ) int i=1,s;while(i<=100) ; s=s+i; i+; printf(“1+2+3+.+99+100=%dn”,s);答:改正如下:#include<stdio.h>void main( ) int i=1,s=0;while(i<=100) s=s+i; i+; printf("1+2+3+.+99+100=%dn"

17、;,s);截圖如下:7輸入一個基數(shù),例如輸入9,輸出為:求1*3*9的值。輸出為:1*3*5*7*9=945答:#include<stdio.h> void main( ) long int s=1,i=1,a; printf("請輸入一個整數(shù):n"); scanf("%d",&a); while(i<=a) s=s*i; i=i+2; printf("1*3*.*%d=%dn",a,s);截圖如下:8輸入一個510之間的整數(shù)n,求1!+2!+3!+n!。例如輸入5,輸出為:1!+2!+3!+5!=153答:

18、#include<stdio.h> void main( ) long int s=0,i=1,t=1,a; printf("請輸入一個5-10的整數(shù):n"); scanf("%d",&a); while(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 答:#include<stdio.h>void ma

19、in( ) 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á)式來完成。答:方法1#include<stdio.h>void main( ) int i,s=0; for(i=2;i<=100;i+=2) s=s+i; printf("2+4+.+100=%dn",s); 方法2#include<stdio.h> void main( ) i

20、nt i=0,s=0; for(;i<=100;) s+=i; i+=2; printf("2+4+.+100=%dn",s);方法3#include<stdio.h> 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ì)它有多少個字母?答:#include<stdio.h>void main( ) char string100,c; int total = 99,count=0,sco

21、unt=0; while(count<total) c = getchar(); if(c='n') break; stringcount = c; if(c>='a' && c<='z')|(c>='A' && c<='Z') scount+; count+; printf("%s, count=%dn",string,scount);第章分支程序設(shè)計(jì)1輸入若干整數(shù)給x,使用if語句輸出x的絕對值,當(dāng)輸入0時結(jié)束。答:#includ

22、e<stdio.h>#include<math.h>void main( ) double x; printf("輸入若干整數(shù)(0表示結(jié)束):n"); scanf("%lf",&x); while(1) if(x!=0) printf("%lf的絕對值為%lfn",x,fabs(x); scanf("%lf",&x); else break; 截圖:2輸入一批數(shù),輸出比相鄰數(shù)大的數(shù),當(dāng)輸入0時結(jié)束。答:#include<stdio.h>#include<ma

23、th.h>void main()int a,b,c;printf("請輸入整數(shù):n");scanf("%d",&a);while(a)scanf("%d",&b);if(b=0)break;if(a<b)a=b;printf("最大整數(shù)為:%dn",a);截圖:3將輸入字符的大寫字符轉(zhuǎn)換成小寫字符輸出,小寫字符原樣輸出。答:#include<stdio.h> void main( ) char a; scanf("%c",&a);if(a>=

24、'A' && a<='Z')printf("轉(zhuǎn)換后的字母為:%cn",a+32);elseprintf("轉(zhuǎn)換后的字母為:%cn",a); 截圖:4輸入一批字符,按回車時結(jié)束,統(tǒng)計(jì)小寫字符、大寫字符、數(shù)字字符、或其它字符的個數(shù)。答:#include<stdio.h>void main( ) char c;int a=0,b=0,m=0,n=0;while(1)scanf("%c",&c); if(c='n') break; if(c>=&#

25、39;A' && c<='Z') b+; else if(c>='a' && c<='z') a+; else if(c>='0' && c<='9') m+; else n+; printf("小寫字符有%d個,大寫字符有%d個,數(shù)字字符有%d個,其它字符有%d個n",a,b,m,n);截圖:5編寫程序,計(jì)算分段函數(shù):答:#include<stdio.h>void main( ) double x

26、,y; scanf("%lf",&x); if(x<=1) y=x+5; else if(x>10) y=3/(x-10); else y=2*x; printf("y=%lfn",y);截圖:6根據(jù)輸入的百分制按五分制的成績輸出。百分制與五分制之間的關(guān)系見下表。百分制五分制90 100580 89470 79360 692<601答:#include<stdio.h>void main( ) int x,y; printf("請輸入分?jǐn)?shù):"); scanf("%d",&

27、;x); if(x>100 && x<0)printf("成績輸入錯誤=%d"); else if(x<=100 && x>=90) y=5; else if(x<=89 && x>=80) y=4; else if(x<=79 && x>=70) y=3; else if(x<=69 && x>=60) y=2; else if(x<=59 && x>=0) y=1; printf("五分制成績=

28、%dn",y);截圖:7、用switch完成:讀入一個實(shí)數(shù)x,再輸入一整數(shù),若輸入是1,則計(jì)算sin(x),若輸入2,則計(jì)算cos(x),若輸入3,則計(jì)算tan(x),若輸入其他值,則顯示錯誤信息。答:#include<stdio.h>#include<math.h>void main( ) double x; int s; printf("請輸入一個實(shí)數(shù),一個整數(shù)n"); scanf("%lf",&x);scanf("%d",&s); switch(s) case 1: printf

29、("sin(x)=%lfn",sin(x); break; case 2: printf("cos(x)=%lfn",cos(x); break; case 3: printf("tan(x)=%lfn",tan(x); break; default: printf("輸入錯誤"); break; 截圖:8、用switch完成:輸入星期1 到星期5,輸出它們對應(yīng)的顏色星期1:blue星期2:red星期3:white星期4:yellow星期5:green答:#include<stdio.h> void m

30、ain( ) int s; printf("輸入星期1 到星期5n"); scanf("%d",&s); switch(s) case 1: printf("今天的顏色是:bluen"); break; case 2: printf("今天的顏色是:redn"); break; case 3: printf("今天的顏色是:whiten"); break; case 4: printf("今天的顏色是:yellown"); break; case 5: printf(

31、"今天的顏色是:greenn"); break; default: printf("輸入錯誤"); break; 截圖:9、用switch完成:從鍵盤輸入A、B、C、D四個等級中的一個,轉(zhuǎn)化輸出等級輸出A優(yōu)秀B良好C中等D及格E不及格答:#include<stdio.h> void main( ) printf("從鍵盤輸入A、B、C、D四個等級中的一個!n"); switch(getchar() case 'A': printf("優(yōu)秀n"); break; case 'B&#

32、39;: printf("良好n"); break; case 'C': printf("中等n"); break; case 'D': printf("及格n"); break; case 'E': printf("不及格n"); break; default: printf("輸入錯誤"); break; 截圖第章數(shù)組及其應(yīng)用.從鍵盤輸入12個數(shù),分別為:900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小數(shù)。答

33、:#include<stdio.h>void main() int a12; int max,min; int i,m; printf("請輸入12個整數(shù)n"); for(i=0;i<12;i+) scanf("%d",&ai); max=a0,min=a0; for(i=1;i<12;i+) if(max<ai) max = ai; if(min>ai) min = ai; printf("最大數(shù)為:%d,最小數(shù)為:%dn",max,min);截圖:.采用遍歷查找,在數(shù)組aSIZE=2,

34、3,20,58, 72, 76,78,87,90,900中,找出偶數(shù)。答:#include<stdio.h> #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;i<10;i+) if(ai%2=0) printf("%-4d ",ai); 截圖.采用折半查找,在數(shù)組aSIZE=2, 3,20,58, 72,

35、76,78,87,90,900中,找到87,然后進(jìn)行刪除。答:#include<stdio.h> #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("原來的數(shù)組:"); for(i=0;i<newSize;i+) if(i=newSize-1) printf("%dn",ai); else printf("%d,",ai)

36、; i=(j+k)/2; while(j<=k) if(ai>78) k=i-1; else if(ai<78) j=i+1; else for(j=i;j<newSize-1;j+) aj=aj+1; newSize-; k=newSize; j=0; i=(j+k)/2; printf("新的數(shù)組:"); for(i=0;i<newSize;i+) if(i=newSize-1) printf("%dn",ai); else printf("%d,",ai); 截圖第章函數(shù)及其應(yīng)用練習(xí)與實(shí)踐一、閱讀程

37、序,寫出程序運(yùn)行的結(jié)果。1寫出以下程序的執(zhí)行結(jié)果。#include<stdio.h>float aver(int a) int k,sum=0;float ave;for(k=0;k<10;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é)果

38、為:81.000002閱讀程序,寫出程序的執(zhí)行結(jié)果。#include<stdio.h> void abc( char str )int a, b ;for(a = b = 0 ; stra!='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)

39、數(shù)組元素不為c時進(jìn)行復(fù)制。答:結(jié)果為:str=abdef3寫出以下程序的執(zhí)行結(jié)果。#include<stdio.h>int sort(int b,int n,int x)int k;for(k=n-1;k>=0;k-)if(bk<x)bk+1=bk;elsebreak;bk+1=x;return 0; int main( )int i,j;static int a5=8,5,4,1,6;int b8;b0=a0;for(i=1;i<5;i+)sort(b,i,ai);for(j=0;j<=i;j+) printf("%d ",bi);pr

40、intf("n");return 0; 提示:循環(huán)體中if(bk<x)bk+1=bk;elsebreak;如果bk<x成立,執(zhí)行語句bk+1=bk;表示數(shù)組元素b向后移,不滿足時插入x,即從大到小排序。答:結(jié)果是:5 5 4 4 4 1 1 1 11 1 1 1 1 4寫出以下程序的執(zhí)行結(jié)果。#include<stdio.h>int fun(int x) int p; if(x=0|x=1) return 3; else p=x-fun(x-2); return p;int main( )printf("n%d",fun(9);r

41、eturn 0; 提示:fun(9)=9-fun(7),.,fun(1)=3答:結(jié)果是:75寫出以下程序的執(zhí)行結(jié)果,并說明其作用是什么?#include<stdio.h>int 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對8取余輸出,然后數(shù)據(jù)依次出棧對8取余輸出。答:結(jié)果是:1432二、程序設(shè)計(jì)1編寫一

42、個函數(shù),計(jì)算x的n次的平方。 提示:for(y=1,i=0;i<n;i+) y=y*x;答:#include<stdio.h>double 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("請輸入x和次數(shù)n:");scanf("%lf %d",&a,&b);printf("%lf的%d次方為:%lfn",a,b,ss(a,b);return 0;

43、 截圖:2編寫一個函數(shù),計(jì)算對角線上元素之和。提示:for(s=0,i=0;i<n;i+) for(j=0;j<n;j+) if(i=j) s=s+aij; 答:#include<stdio.h> int main( )int s,i,j,n=3;int a33 = 1,2,3,4,5,6,7,8,9; for(s=0,i=0;i<n;i+) for(j=0;j<n;j+) if(i=j) s=s+aij; printf("對角線元素之和為s=%dn",s); 截圖:3編寫一個函數(shù)int invert(char str ),將一個字符串的

44、內(nèi)容顛倒過來。提示:先求字符串str的長度n,for(i=0;i<n/2;i+)ai與an-1-i交換答:#include<stdio.h> int invert(char str)int n =strlen(str); int i; char temp; for(i=0;i<n/2;i+) temp = stri; stri=strn-i-1; strn-i-1=temp; void main() char a12="abcdefg123" printf("顛倒前:%sn",a); invert(a); printf("

45、;顛倒后:%sn",a);截圖4編寫函數(shù),刪除字符串中,從指定位置m開始的n個字符。刪除成功,函數(shù)返回被刪除字符串;否則返回空的值。提示:for(k=m , i=0 ; stri ; i+) strm+i=strm+n+i; strm+i=0;答:#include<stdio.h>int cutstring(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; s

46、trm+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); 5編寫一個程序,從鍵盤輸入的字符串,刪去非數(shù)字字符,轉(zhuǎn)換成整型數(shù)輸出。 提示:for(s=0 , i=0 ,

47、j=0 ; stri;i+) if(stri>=0&&stri<=9) s=s*10+stri-0; 答:#include<stdio.h> void main() char str11; int s,i,j; for(i=0;i<10;i+) scanf("%c",&stri); for(s=0 , i=0 , j=0 ; stri;i+) if(stri>='0'&&stri<='9') s=s*10+stri-'0' printf(&quo

48、t;%dn",s);截圖:6用遞歸的方法編寫一個函數(shù)sum(int n),求1至n的累加和。 提示:f(n)=n+f(n-1) 答:#include<stdio.h> int sum(int n)int s=0,i;for(i=1;i<=n;i+)s=s+i;return(s);void main()int a;printf("請輸入整數(shù)n:");scanf("%d",&a);printf("1+2+.+%d=%dn",a,sum(a);截圖:第章變量存儲類型與多文件系統(tǒng)1寫出以下程序的執(zhí)行結(jié)果。#

49、include<stdio.h>int x;void fun( )printf("%d ",x+);void main( )int x=1;extern int x;printf("%d,",+x);fun( );提示:在函數(shù)fun中及語句塊extern int x;printf("%d,",+x);中使用的x是外部變量,在語句塊:if(x=1)int x=2;printf("%d,",x+);中使用的是剛剛定義x=2的變量。答:結(jié)果是 1,12寫出以下程序的執(zhí)行結(jié)果。#include<stdio

50、.h> 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(),但變量定義語句static int y ;只執(zhí)行一次,而變量賦值語句每次都要執(zhí)行。 答:結(jié)果是s = 283寫出以下程序的執(zhí)行結(jié)果。#include<stdio.h> int t( )

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

52、dio.h>int main()FILE *fp;char cx;if(fp=fopen( (1) )=NULL)return 0;while(cx=getchar( )!='$')fputc(cx,fp); (2) ;return 1;提示:第1個空格是打開文件讀,第2個空格是關(guān)閉文件。答:1.”out.txt”,”r+” 2.fclose(fp)2下面的程序用來統(tǒng)計(jì)文件中字符的個數(shù),請補(bǔ)全程序。#include<stdio.h>int main( ) FILE *fp; long num=0; if(fp=fopen("fname.dat","r")=NULL) printf("Can't open file!n");exit(0); while( (1) ) fgetc(fp); num+; printf("num=%dn",num); fclose(fp); return 1; 提示:第

溫馨提示

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

評論

0/150

提交評論