《C語言程序設計》課后習習題答案()譚浩強_第1頁
《C語言程序設計》課后習習題答案()譚浩強_第2頁
《C語言程序設計》課后習習題答案()譚浩強_第3頁
《C語言程序設計》課后習習題答案()譚浩強_第4頁
《C語言程序設計》課后習習題答案()譚浩強_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第1章程序設計和C語言1什么是計算機程序1什么是計算機語言1語言的發(fā)展及其特點3最簡單的C語言程序5最簡單的C語言程序舉例6語言程序的結構10運行C程序的步驟與方法12程序設計的任務141-5 #include <>int main ( ) printf ("*nn");printf(" Very Good!nn");printf ("*n");return 0;1-6#include <>int main()int a,b,c,max;printf("please input a,b,c:n&quo

2、t;);scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %dn",max);return 0;第2章算法程序的靈魂16什么是算法16簡單的算法舉例17算法的特性21怎樣表示一個算法22用自然語言表示算法22用流程圖表示算法22三種基本結構和改進的流程圖26用NS流程圖表示算法28用偽代碼表示算法31用計算機語言表示算法32結構化程序設計方法34習題36第章最簡單的C程序設計順序程

3、序設計37順序程序設計舉例37數(shù)據(jù)的表現(xiàn)形式及其運算39常量和變量39數(shù)據(jù)類型42整型數(shù)據(jù)44字符型數(shù)據(jù)47浮點型數(shù)據(jù)49怎樣確定常量的類型51運算符和表達式52語句57語句的作用和分類57最基本的語句賦值語句59數(shù)據(jù)的輸入輸出65輸入輸出舉例65有關數(shù)據(jù)輸入輸出的概念67用printf函數(shù)輸出數(shù)據(jù)68用scanf函數(shù)輸入數(shù)據(jù)75字符數(shù)據(jù)的輸入輸出78習題823-1 #include <>#include <>int main()float p,r,n;r=;n=10;p=pow(1+r,n);printf("p=%fn",p);return 0;3

4、-2-1#include <>#include <>int main()float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=;r3=;r2=;r1=;r0=;p1=p*(1+r5)*5); #include <>#include <>int main()float d=300000,p=6000,r=,m;m=log10(p/(p-d*r)/log10(1+r);printf("m=%n",m);return 0;3-4#include <>int main()int c

5、1,c2;c1=197;c2=198;printf("c1=%c,c2=%cn",c1,c2);printf("c1=%d,c2=%dn",c1,c2);return 0;3-5#include <>int main()int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("%f %e",&x,&y);scanf("%c%c",&c1,&c2);printf("

6、a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn",a,b,x,y,c1,c2);return 0;3-6#include <>int main()char c1='C',c2='h',c3='i',c4='n',c5='a'c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%cn",c1,c2,c3,c4,c5);return 0;3-7#include <>i

7、nt main ()float h,r,l,s,sq,vq,vz;float pi=;printf("請輸入圓半徑r,圓柱高h");scanf("%f,%f",&r,&h); #include <>int main() int x,y;printf("輸入x:");scanf("%d",&x);if(x<1) /* x<1 */ y=x;printf("x=%3d, y=x=%dn" ,x,y);else if(x<10) /* 1=<

8、x<10 */ y=2*x-1;printf("x=%d, y=2*x-1=%dn",x,y);else /* x>=10 */ y=3*x-11;printf("x=%d, y=3*x-11=%dn",x,y);return 0;4-7-1#include <>int main()int x,y;printf("enter x:");scanf("%d",&x);y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%dn&q

9、uot;,x,y);return 0;4-7-2#include <>int main()int x,y;printf("please enter x:");scanf("%d",&x);y=0;if(x>=0)if(x>0) y=1;else y=-1;printf("x=%d,y=%dn",x,y);return 0;4-8#include <>int main() float score;char grade;printf("請輸入學生成績:");scanf(&qu

10、ot;%f",&score);while (score>100|score<0)printf("n 輸入有誤,請重輸");scanf("%f",&score);switch(int)(score/10)case 10:case 9: grade='A'break;case 8: grade='B'break;case 7: grade='C'break;case 6: grade='D'break;case 5:case 4:case 3:case 2:

11、case 1:case 0: grade='E'printf("成績是 %,相應的等級是%cn ",score,grade);return 0;4-9#include <>#include <>int main()int num,indiv,ten,hundred,thousand,ten_thousand,place;位,萬位和位數(shù)printf("請輸入一個整數(shù)(0-99999):");scanf("%d",&num);if (num>9999)place=5;else if (

12、num>999)place=4;else if (num>99) .=%dn",sn);return 0;5-6#include <>int main()double s=0,t=1;int n;for (n=1;n<=20;n+)t=t*n;s=s+t;printf("1!+2!+.+20!=%n",s);return 0;5-7#include <>int main()int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for (k=1;k<=n1;k+) /*計算1到1

13、00的和*/s1=s1+k;for (k=1;k<=n2;k+) /*計算1到50各數(shù)的平方和*/s2=s2+k*k;for (k=1;k<=n3;k+) /*計算1到10的各倒數(shù)和*/s3=s3+1/k;printf("sum=%n",s1+s2+s3);return 0;5-8#include <>int main()int i,j,k,n;printf("parcissus numbers are ");for (n=100;n<1000;n+)i=n/100;j=n/10-i*10;k=n%10;if (n=i*i*

14、i + j*j*j + k*k*k)printf("%d ",n);printf("n");return 0;5-9-1#define M 1000 /*定義尋找范圍*/#include <>int main()int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a<=M;a+) /* a是2-1000之間的整數(shù),檢查它是否完數(shù) */n=0; /* n用來累計a的因子的個數(shù) */s=a; /* s用來存放尚未求出的因子之和,開始時等于a */ for (i=1;i<a;i

15、+) /* 檢查i是否a的因子 */if (a%i=0) /* 如果i是a的因子 */n+; /* n加1,表示新找到一個因子 */s=s-i; /* s減去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 將找到的因子賦給k1.k9,或k10 */case 1:k1=i; break; /* 找出的笫1個因子賦給k1 */case 2:k2=i; break; /* 找出的笫2個因子賦給k2 */case 3:k3=i; break; /* 找出的笫3個因子賦給k3 */case 4:k4=i; break; /* 找出的笫4個因子賦給k4 */case 5:k5=

16、i; break; /* 找出的笫5個因子賦給k5 */case 6:k6=i; break; /* 找出的笫6個因子賦給k6 */case 7:k7=i; break; /* 找出的笫7個因子賦給k7 */case 8:k8=i; break; /* 找出的笫8個因子賦給k8 */case 9:k9=i; break; /*找出的笫9個因子賦給k9 */case 10:k10=i; break; /* 找出的笫10個因子賦給k10 */if (s=0)printf("%d ,Its factors are ",a);if (n>1) printf("%d,

17、%d",k1,k2); /* n>1表示a至少有2個因子 */if (n>2) printf(",%d",k3); /* n>2表示至少有3個因子,故應再輸出一個因子 */if (n>3) printf(",%d",k4); /* n>3表示至少有4個因子,故應再輸出一個因子 */if (n>4) printf(",%d",k5); /* 以下類似 */if (n>5) printf(",%d",k6);if (n>6) printf(",%d&q

18、uot;,k7);if (n>7) printf(",%d",k8);if (n>8) printf(",%d",k9);if (n>9) printf(",%d",k10);printf("n");return 0;5-9-2#include <>int main()int m,s,i;for (m=2;m<1000;m+)s=0;for (i=1;i<m;i+)if (m%i)=0) s=s+i;if(s=m)printf("%d,its factors ar

19、e ",m);for (i=1;i<m;i+)if (m%i=0) printf("%d ",i);printf("n");return 0;5-10#include <>int main()int i,n=20;double a=2,b=1,s=0,t;for (i=1;i<=n;i+)s=s+a/b;t=a,a=a+b,b=t;printf("sum=%n",s);return 0;5-11#include <>int main()double sn=100,hn=sn/2;int n

20、;for (n=2;n<=10;n+)sn=sn+2*hn; /*第n次落地時共經(jīng)過的米數(shù)*/hn=hn/2; /*第n次反跳高度*/printf("第10次落地時共經(jīng)過%f米n",sn);printf("第10次反彈%f米n",hn);return 0;5-12#include <>int main()int day,x1,x2;day=9;x2=1;while(day>0)x1=(x2+1)*2; /*第1天的桃子數(shù)是第2天桃子數(shù)加1后的2倍.*/x2=x1;day-;printf("total=%dn",

21、x1);return 0;5-13#include <>#include <>int main()float a,x0,x1;printf("enter a positive number:");scanf("%f",&a);x0=a/2;x1=(x0+a/x0)/2;dox0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)>=1e-5);printf("The square root of % is %n",a,x1);return 0;5-14#include <

22、>#include <>int main()double x1,x0,f,f1;x1=;dox0=x1;f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;while(fabs(x1-x0)>=1e-5);printf("The root of equation is %n",x1);return 0;5-15#include <>#include <>int main()float x0,x1,x2,fx0,fx1,fx2;doprintf("enter x1 &am

23、p; x2:");scanf("%f,%f",&x1,&x2);fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fx1*fx2>0);dox0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if (fx0*fx1)<0)x2=x0;fx2=fx0;elsex1=x0;fx1=fx0;while(fabs (fx0)>=1e-5);printf("x=%n",x0);return 0;5-16#include <>int

24、 main()int i,j,k;for (i=0;i<=3;i+)for (j=0;j<=2-i;j+)printf(" ");for (k=0;k<=2*i;k+)printf("*");printf("n");for (i=0;i<=2;i+)for (j=0;j<=i;j+)printf(" ");for (k=0;k<=4-2*i;k+)printf("*");printf("n");return 0;5-17#include &

25、lt;>int main()char i,j,k; /*是a的對手;j是b的對手;k是c的對手*/for (i='x'i<='z'i+)for (j='x'j<='z'j+)if (i!=j)for (k='x'k<='z'k+)if (i!=k && j!=k)if (i!='x' && k!='x' && k!='z')printf("A-%cnB-%cnC-%cn&

26、quot;,i,j,k);return 0;第6章利用數(shù)組處理批量數(shù)據(jù)142怎樣定義和引用一維數(shù)組142怎樣定義一維數(shù)組143怎樣引用一維數(shù)組元素144一維數(shù)組的初始化145一維數(shù)組程序舉例146怎樣定義和引用二維數(shù)組148怎樣定義二維數(shù)組149怎樣引用二維數(shù)組的元素150二維數(shù)組的初始化151二維數(shù)組程序舉例152字符數(shù)組154怎樣定義字符數(shù)組154字符數(shù)組的初始化155怎樣引用字符數(shù)組中的元素155字符串和字符串結束標志156字符數(shù)組的輸入輸出159使用字符串處理函數(shù)161字符數(shù)組應用舉例165習題1686-1#include <>#include <>int ma

27、in()int i,j,n,a101;for (i=1;i<=100;i+)ai=i;a1=0;for (i=2;i<sqrt(100);i+)for (j=i+1;j<=100;j+)if(ai!=0 && aj!=0)if (aj%ai=0)aj=0;printf("n");for (i=2,n=0;i<=100;i+) if(ai!=0)printf("%5d",ai);n+;if(n=10)printf("n");n=0;printf("n");return 0;6-

28、2#include <>int main()int i,j,min,temp,a11;printf("enter data:n");for (i=1;i<=10;i+)printf("a%d=",i);scanf("%d",&ai);printf("n");printf("The orginal numbers:n");for (i=1;i<=10;i+)printf("%5d",ai);printf("n");for (i

29、=1;i<=9;i+)min=i;for (j=i+1;j<=10;j+)if (amin>aj) min=j;temp=ai;ai=amin;amin=temp;printf("nThe sorted numbers:n");for (i=1;i<=10;i+)printf("%5d",ai);printf("n");return 0;6-3#include <>int main()int a33,sum=0;int i,j;printf("enter data:n");for

30、 (i=0;i<3;i+)for (j=0;j<3;j+)scanf("%3d",&aij);for (i=0;i<3;i+)sum=sum+aii;printf("sum=%6dn",sum);return 0;6-4#include <>int main() int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf("array a:n");for (i=0;i<10;i+)printf("

31、%5d",ai);printf("n");printf("insert data:");scanf("%d",&number);end=a9;if (number>end)a10=number;elsefor (i=0;i<10;i+)if (ai>number)temp1=ai;ai=number;for (j=i+1;j<11;j+)temp2=aj;aj=temp1;temp1=temp2;break;printf("Now array a:n");for (i=0;

32、i<11;i+)printf("%5d",ai);printf("n");return 0;6-5#include <>#define N 5int main() int aN,i,temp;printf("enter array a:n");for (i=0;i<N;i+)scanf("%d",&ai);printf("array a:n");for (i=0;i<N;i+)printf("%4d",ai);for (i=0;i<

33、N/2;i+) n",number);printf("continu or not(Y/N)");scanf(" %c",&c);if (c='N'|c='n')flag=0;return 0;6-10#include <>int main()int i,j,upp,low,dig,spa,oth;char text380;upp=low=dig=spa=oth=0;for (i=0;i<3;i+) printf("please input line %d:n",i+

34、1);gets(texti);for (j=0;j<80 && textij!='0'j+)if (textij>='A'&& textij<='Z')upp+;else if (textij>='a' && textij<='z') low+;else if (textij>='0' && textij<='9') dig+;else if (textij=' '

35、;)spa+;elseoth+;printf("nupper case: %dn",upp);printf("lower case: %dn",low);printf("digit : %dn",dig);printf("space : %dn",spa);printf("other : %dn",oth);return 0;6-11#include <>int main() char a5='*','*','*','*'

36、;,'*'int i,j,k;char space=' 'for (i=0;i<5;i+) printf("n");printf(" ");for (j=1;j<=i;j+)printf("%c",space);for (k=0;k<5;k+)printf("%c",ak);printf("n");return 0;6-12a-c#include <>int main() int j,n;char ch80,tran80;printf

37、("input cipher code:");gets(ch);printf("ncipher code :%s",ch);j=0;while (chj!='0') if (chj>='A') && (chj<='Z')tranj=155-chj;else if (chj>='a') && (chj<='z')tranj=219-chj;elsetranj=chj;j+;n=j;printf("norigina

38、l text:");for (j=0;j<n;j+)putchar(tranj);printf("n");return 0;6-12b#include <>int main()int j,n;char ch80;printf("input cipher code:n");gets(ch);printf("ncipher code:%sn",ch);j=0;while (chj!='0') if (chj>='A') && (chj<='Z&

39、#39;)chj=155-chj;else if (chj>='a') && (chj<='z')chj=219-chj;elsechj=chj;j+;n=j;printf("original text:");for (j=0;j<n;j+)putchar(chj);printf("n");return 0;6-13#include <>int main() char s180,s240;int i=0,j=0;printf("input string1:"

40、);scanf("%s",s1);printf("input string2:");scanf("%s",s2);while (s1i!='0')i+;while(s2j!='0')s1i+=s2j+;s1i='0'printf("nThe new string is:%sn",s1);return 0;6-14#include <>int main() int i,resu;char s1100,s2100;printf("input stri

41、ng1:");gets(s1);printf("ninput string2:");gets(s2);i=0;while (s1i=s2i) && (s1i!='0')i+;if (s1i='0' && s2i='0')resu=0;elseresu=s1i-s2i;printf("nresult:%d.n",resu);return 0;6-15#include <>#include <>int main() char s180,s280;

42、int i;printf("input s2:");scanf("%s",s2);for (i=0;i<=strlen(s2);i+)s1i=s2i;printf("s1:%sn",s1);return 0;第7章用函數(shù)實現(xiàn)模塊化程序設計170為什么要用函數(shù)170怎樣定義函數(shù)172為什么要定義函數(shù)172定義函數(shù)的方法173調(diào)用函數(shù)174函數(shù)調(diào)用的形式174函數(shù)調(diào)用時的數(shù)據(jù)傳遞175函數(shù)調(diào)用的過程177函數(shù)的返回值178對被調(diào)用函數(shù)的聲明和函數(shù)原型179函數(shù)的嵌套調(diào)用182函數(shù)的遞歸調(diào)用184數(shù)組作為函數(shù)參數(shù)192數(shù)組元素作函數(shù)實

43、參193數(shù)組名作函數(shù)參數(shù)194多維數(shù)組名作函數(shù)參數(shù)197局部變量和全局變量199局部變量199全局變量200變量的存儲方式和生存期204動態(tài)存儲方式與靜態(tài)存儲方式204局部變量的存儲類別205全局變量的存儲類別208存儲類別小結212關于變量的聲明和定義214內(nèi)部函數(shù)和外部函數(shù)215內(nèi)部函數(shù)215外部函數(shù)215習題2187-1-1#include <>int main()int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf(

44、"",h);l=lcd(u,v,h);printf("",l);return 0;int hcf(int u,int v)int t,r;if (v>u)t=u;u=v;v=t;while (r=u%v)!=0)u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);7-1-2#include <>int Hcf,Lcd;int main()void hcf(int,int);void lcd(int,int);int u,v;scanf("%d,%d",&

45、amp;u,&v);hcf(u,v);lcd(u,v);printf("",Hcf);printf("",Lcd);return 0;void hcf(int u,int v)int t,r;if (v>u)t=u;u=v;v=t;while (r=u%v)!=0)u=v;v=r;Hcf=v;void lcd(int u,int v)Lcd=u*v/Hcf;7-2#include <>#include <>float x1,x2,disc,p,q;int main()void greater_than_zero(fl

46、oat,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf("input a,b,c:");scanf("%f,%f,%f",&a,&b,&c);printf("equation: %*x*x+%*x+%=0n",a,b,c); disc=b*b-4*a*c;printf("root:n");if (disc>0)greater_than_zero(a

47、,b);printf("x1=%fttx2=%fn",x1,x2);else if (disc=0)equal_to_zero(a,b);printf("x1=%fttx2=%fn",x1,x2);elsesmaller_than_zero(a,b);printf("x1=%f+%fitx2=%f-%fin",p,q,p,q);return 0;void greater_than_zero(float a,float b)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);void equa

48、l_to_zero(float a,float b)x1=x2=(-b)/(2*a);void smaller_than_zero(float a,float b)p=-b/(2*a);q=sqrt(-disc)/(2*a);7-3#include <>int main()int prime(int);int n;printf("input an integer:");scanf("%d",&n);if (prime(n)printf("%d is a prime.n",n);elseprintf("%d

49、 is not a prime.n",n);return 0;int prime(int n)int flag=1,i;for (i=2;i<n/2 && flag=1;i+)if (n%i=0)flag=0;return(flag);7-4#include <>#define N 3int arrayNN;int main() void convert(int array3);int i,j;printf("input array:n");for (i=0;i<N;i+)for (j=0;j<N;j+)scanf("%d",&arrayij);printf("noriginal array :n");for (i=0;i<N;i+)for (j=0;j<N;j+)printf("%5d",arrayij);printf("n");convert(array);printf("convert array:n");for (i=0;i<N;i+)fo

溫馨提示

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

評論

0/150

提交評論