您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > c程序设计课后习题答案详解
1、编写一个程序,输入abc三个值,输出其中最大者。解:#includestdio.hvoidmain(){inta,b,c,max;printf(请输入三个数a,b,c:\n);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(最大数为:%d,max);}2、输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明,取两位小数.解:#includestdio.hvoidmain(){floatc,f;printf(请输入一个华氏温度:\n);scanf(%f,&f);c=(5.0/9.0)*(f-32);printf(摄氏温度为:%5.2f\n,c);}3、输入四个整数,按大小顺序输出.#includestdio.hvoidmain(){intt,a,b,c,d;printf(请输入四个数:);scanf(%d,%d,%d,,&a,&b,&c,&d);printf(a=%d,b=%d,c=%d,d=%d\n,a,b,c,d);if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}if(ad){t=a;a=d;d=t;}if(bc){t=b;b=c;c=t;}if(bd){t=b;b=d;d=t;}printf(\n排序结果如下:\n);printf(%d%d%d%d\n,a,b,c,d);}4、有三个整数a,b,c,由键盘输入,输出其中最大的数.#includestdio.hvoidmain(){inta,b,c,termp,max;printf(请输入A,B,C:);scanf(%d,%d,%d,&a,&b,&c);printf(A=%d,B=%d,C=%d\n,a,b,c);temp=(ab)?a:b;max=(tempc)?temp:c;printf(A,B,C中最大数是%d,,max);}5、输入两个数,求最小公倍数.#includestdio.hvoidmain(){intm,n,i;scanf(%d%d,&m,&n);for(i=m*n;i=1;i--){if((i%m==0)&&(i%n==0))break;}printf(%d,i);}6.输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解:#includestdio.hvoidmain(){charc;intletters=0,space=0,degit=0,other=0;printf(请输入一行字符:\n);while((c=getchar())!='\n'){if(c='a'&&c='z'||c'A'&&c='Z')letters++;elseif(c=='')space++;elseif(c='0'&&c='9')digit++;elseother++;}printf(其中:字母数=%d空格数=%d数字数=%d其它字符数=%d\n,letters,space,digit,other);}7、水仙开花#includestdio.hvoidmain(){inti,j,k,n;printf('水仙花'数是:\n);for(n=100;n1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf(%d\n,n);}}8、判断整数是否为素数#includestdio.hvoidmain(){intprime(int);intnumber;printf(请输入一个正整数:\n);scanf(%d,&number);if(prime(number))printf(\n%d是素数.,number);elseprintf(\n%d不是素数,number);}intprime(intnumber){intflag=1,n;for(n=2;nnumber/2&&flag==1;n++)if(number%n==0)flag=0;return(flag);9、}/*起泡法排序*/#defineN10charstr[N];main(){inti,flag;for(flag=1;flag==1;){printf(\n输入字符串,长度为10:\n);scanf(%s,&str);if(strlen(str)N)printf(超过长度,请重输!);elseflag=0;}sort(str);printf(\n排序结果:);for(i=0;iN;i++)printf(%c,str[i]);}sort(str)charstr[N];{inti,j;chart;for(j=1;jN;j++)for(i=0;(iN-j)&&(str[i]!='\0');i++)if(str[i]str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}10、/*判断输入年份是否为闰年*/#defineLEAP_YEAR(y)(y%4==0)&&(y%100!=0)||(y%400==0)main(){intyear;printf(\n请输入某一年:);scanf(%d,&year);if(LEAP_YEAR(year))printf(%d是闰年.\n,year);elseprintf(%d不是闰年.\n,year);}/*用函数方法,从三个数中找出最大值*/main(){inta,b,c;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);printf(三个之中最大值为:%d\n,max(a,b,c));}max(x,y,z)intx,y,z;{intt;t=(xy?x:y);return(tz?t:z);}11、输入四个整数,按大小顺序输出.#includestdio.hVoidmain(){intt,a,b,c,d;printf(请输入四个数:);scanf(%d,%d,%d,%d,&a,&b,&c,&d);printf(\n\na=%d,b=%d,c=%d,d=%d\n,a,b,c,d);if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}if(ad){t=a;a=d;d=t;}if(bc){t=b;b=c;c=t;}if(bd){t=b;b=d;d=t;}if(cd){t=c;c=d;d=t;}printf(\n排序结果如下:\n);printf(%d%d%d%d\n,a,b,c,d);}12、设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程.解:main(){floatpi,h,r,l,s,sq,vq,vz;pi=3.1415926;printf(请输入圆半径r圆柱高h:\n);scanf(%f,%f,&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r*r;vz=pi*r*r*h;printf(圆周长为:=%6.2f\n,l);printf(圆面积为:=%6.2f\n,s);printf(圆球表面积为:=%6.2f\n,sq);printf(圆球体积为:=%6.2f\n,vz);13、用筛选法求100之内的素数./*用筛选法求100之内的素数*/#includemath.h#defineN101main(){inti,j,line,a[N];for(i=2;iN;i++)a[i]=i;for(i=2;isqrl(N);i++)for(j=i+1;jN;j++){if(a[i]!=0&&a[j]!=0)if(a[j]%a[i]==0)a[j]=0;printf(\n);for(i=2,line=0;iN;i++){if(a[i]!=0){printf(%5d,a[i]);line++;if(line==10){printf(\n);line=0;}}}14、球反弹问题main(){floatsn=100.0,hn=sn/2;intn;for(n=2;n=10;n++){sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/}printf(第10次落地时共经过%f米\n,sn);printf(第10次反弹%f米.\n,hn);}15、冒泡#includestdio.hvoidmain(){inta[10];inti,j,t;printf(input10numbers:\n);for(i=0;i=9;i++)scanf(%d,&a[i]);printf(\n);for(j=0;j=9;j++)for(i=0;i9-j;i++)if(a[i]a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(thesortednumbers:\n);for(i=0;i=9;i++)printf(%d,a[i]);printf(\n);}16、对角线#includestdio.hvoidmain(){floata[3][3],sum=0;inti,j;printf(请输入矩阵图\n);for(i=0;i=2;i++)for(j=0;j=2;j++)scanf(%f,&a[i][j]);printf(\n);for(i=0;i=2;i++)for(j=0;j=2;j++)if(i+j==2||i==j)sum=sum+a[i][j];printf(对角线之和=%f,sum);printf(\n);}17、杨辉三角#defineN11#includestdio.hvoidmain(){inti,j,a[N][N];for(i=1;iN;i++){a[i][i]=1;a[i][1]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j]+a[i][j-1];for(i=1;iN;i++){for(j=1;j=i;j++)printf(%6d,a[i][j]);printf(\n);}printf(\n);}18、0到100的最大的能被17整除的数#includestdio.hvoidmain(){intn,i;for(n=1;n=100;n++)if(n%17==0)i=n;printf(%d\n,i);}19、1——100的偶数之和#includestdio.hvoidmain(){inti,j,sum=0;for(i=0;i=100;i++)if(i%2==0){sum=sum+i;}printf(%d\n,sum);}20、1*2*3+3*4*5+5*6*7+...+99*100*101的值。(13002450)?#includestdio.hvoidmain(){inti,longterm,sum=0;for(i=2;i=100;i=i+2){term=(i-1)*i*(i+1);sum+=term;}printf(sum=%d\n,sum);}21、、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。#includestdio.hvoidmain(){doublex,y,r=0.0225;inti,n;scanf(%lf,%d,&x,&n);y=x;for(i=1;i=n;i++){y=y*(1+r);}printf(%lf\n,y);}22、输入一串字符,将其中的小写字母变成对应的大写字母并输出#includestdio.hvoidmain(){chara[10];inti;for(i=0;i
本文标题:c程序设计课后习题答案详解
链接地址:https://www.777doc.com/doc-2907649 .html