《C语言程序设计》课后习题答案第四版谭浩强.docx
- 文档编号:25871089
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:60
- 大小:25.73KB
《C语言程序设计》课后习题答案第四版谭浩强.docx
《《C语言程序设计》课后习题答案第四版谭浩强.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课后习题答案第四版谭浩强.docx(60页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》课后习题答案第四版谭浩强
1-5#include
intmain()
{printf("**************************\n\n");
printf("VeryGood!
\n\n");
printf("**************************\n");
return0;
}
1-6#include
intmain()
{inta,b,c,max;
printf("pleaseinputa,b,c:
\n");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(max max=c; printf("Thelargestnumberis%d\n",max); return0; } 4-4-1 #include intmain() { inta,b,c; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); if(a if(b printf("max=%d\n",c); else printf("max=%d\n",b); elseif(a printf("max=%d\n",c); else printf("max=%d\n",a); return0; } 4-6. #include intmain() {intx,y; printf("输入x: "); scanf("%d",&x); if(x<1)/*x<1*/ {y=x; printf("x=%3d,y=x=%d\n",x,y); } elseif(x<10)/*1= {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else/*x>=10*/ {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } return0; } 4-7-1 #include intmain() { intx,y; printf("enterx: "); scanf("%d",&x); y=-1; if(x! =0) if(x>0) y=1; else y=0; printf("x=%d,y=%d\n",x,y); return0; } 4-7-2 #include intmain() { intx,y; printf("pleaseenterx: "); scanf("%d",&x); y=0; if(x>=0) if(x>0)y=1; elsey=-1; printf("x=%d,y=%d\n",x,y); return0; } 4-8 #include intmain() {floatscore; chargrade; printf("请输入学生成绩: "); scanf("%f",&score); while(score>100||score<0) {printf("\n输入有误,请重输"); scanf("%f",&score); } switch((int)(score/10)) {case10: case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='D';break; case5: case4: case3: case2: case1: case0: grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score,grade); return0; } 4-11 #include intmain() {intt,a,b,c,d; printf("请输入四个数: "); scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(a>d) {t=a;a=d;d=t;} if(b>c) {t=b;b=c;c=t;} if(b>d) {t=b;b=d;d=t;} if(c>d) {t=c;c=d;d=t;} printf("排序结果如下: \n"); printf("%d%d%d%d\n",a,b,c,d); return0; } 4-12 #include intmain() { inth=10; floatx1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf("请输入一个点(x,y): "); scanf("%f,%f",&x,&y); d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);/*求该点到各中心点距离*/ d2=(x-x1)*(x-x1)+(y-y1)*(y-y1); d3=(x-x2)*(x-x2)+(y-y2)*(y-y2); d4=(x-x3)*(x-x3)+(y-y3)*(y-y3); if(d1>1&&d2>1&&d3>1&&d4>1)h=0;/*判断该点是否在塔外*/ printf("该点高度为%d\n",h); return0; } 5-3 #include intmain() { intp,r,n,m,temp; printf("请输入两个正整数n,m: "); scanf("%d,%d,",&n,&m); if(n { temp=n; n=m; m=temp; } p=n*m; while(m! =0) { r=n%m; n=m; m=r; } printf("它们的最大公约数为: %d\n",n); printf("它们的最小公约数为: %d\n",p/n); return0; } 5-4 #include intmain() { charc; intletters=0,space=0,digit=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++; else other++; } printf("字母数: %d\n空格数: %d\n数字数: %d\n其它字符数: %d\n",letters,space,digit,other); return0; } 5-5 #include intmain() { inta,n,i=1,sn=0,tn=0; printf("a,n=: "); scanf("%d,%d",&a,&n); while(i<=n) { tn=tn+a;/*赋值后的tn为i个a组成数的值*/ sn=sn+tn;/*赋值后的sn为多项式前i项之和*/ a=a*10; ++i; } printf("a+aa+aaa+...=%d\n",sn); return0; } 5-6 #include intmain() {doubles=0,t=1; intn; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1! +2! +...+20! =%22.15e\n",s); return0; } 5-7 #include intmain() { intn1=100,n2=50,n3=10; doublek,s1=0,s2=0,s3=0; for(k=1;k<=n1;k++)/*计算1到100的和*/ {s1=s1+k;} for(k=1;k<=n2;k++)/*计算1到50各数的平方和*/ {s2=s2+k*k;} for(k=1;k<=n3;k++)/*计算1到10的各倒数和*/ {s3=s3+1/k;} printf("sum=%15.6f\n",s1+s2+s3); return0; } 5-8 #include intmain() { inti,j,k,n; printf("parcissusnumbersare"); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); return0; } 5-10 #include intmain() { inti,n=20; doublea=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=%16.10f\n",s); return0; } 5-11 #include intmain() { doublesn=100,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); return0; } 5-12 #include intmain() { intday,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1; day--; } printf("total=%d\n",x1); return0; } 5-13 #include #include intmain() { floata,x0,x1; printf("enterapositivenumber: "); scanf("%f",&a); x0=a/2; x1=(x0+a/x0)/2; do {x0=x1; x1=(x0+a/x0)/2; }while(fabs(x0-x1)>=1e-5); printf("Thesquarerootof%5.2fis%8.5f\n",a,x1); return0; } 5-15 #include #include intmain() {floatx0,x1,x2,fx0,fx1,fx2; do {printf("enterx1&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); do {x0=(x1+x2)/2; fx0=x0*((2*x0-4)*x0+3)-6; if((fx0*fx1)<0) {x2=x0; fx2=fx0; } else {x1=x0; fx1=fx0; } }while(fabs(fx0)>=1e-5); printf("x=%6.2f\n",x0); return0; } 5-16 #include intmain() {inti,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"); } return0; } 6-1 #include #include intmain() {inti,j,n,a[101]; for(i=1;i<=100;i++) a[i]=i; a[1]=0; for(i=2;i for(j=i+1;j<=100;j++) {if(a[i]! =0&&a[j]! =0) if(a[j]%a[i]==0) a[j]=0; } printf("\n"); for(i=2,n=0;i<=100;i++) {if(a[i]! =0) {printf("%5d",a[i]); n++; } if(n==10) {printf("\n"); n=0; } } printf("\n"); return0; } 6-2 #include intmain() {inti,j,min,temp,a[11]; printf("enterdata: \n"); for(i=1;i<=10;i++) {printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("Theorginalnumbers: \n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for(i=1;i<=9;i++) {min=i; for(j=i+1;j<=10;j++) if(a[min]>a[j])min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThesortednumbers: \n"); for(i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return0; } 6-3 #include intmain() { inta[3][3],sum=0; inti,j; printf("enterdata: \n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%3d",&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum); return0; } 6-4 #include intmain() {inta[11]={1,4,6,9,13,16,19,28,40,100}; inttemp1,temp2,number,end,i,j; printf("arraya: \n"); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); printf("insertdata: "); scanf("%d",&number); end=a[9]; if(number>end) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]>number) {temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } printf("Nowarraya: \n"); for(i=0;i<11;i++) printf("%5d",a[i]); printf("\n"); return0; } 6-5 #include #defineN5 intmain() {inta[N],i,temp; printf("enterarraya: \n"); for(i=0;i scanf("%d",&a[i]); printf("arraya: \n"); for(i=0;i printf("%4d",a[i]); for(i=0;i {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\nNow,arraya: \n"); for(i=0;i printf("%4d",a[i]); printf("\n"); return0; } 6-6 #include #defineN10 intmain() {inti,j,a[N][N]; for(i=0;i {a[i][i]=1; a[i][0]=1; } for(i=2;i for(j=1;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i {for(j=0;j<=i;j++) printf("%6d",a[i][j]); printf("\n"); } printf("\n"); return0; } 6-7 #include intmain() {inta[15][15],i,j,k,p,n; p=1; while(p==1) {printf("entern(n=1--15): "); scanf("%d",&n); if((n! =0)&&(n<=15)&&(n%2! =0)) p=0; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) {i=i-1; j=j+1; if((i<1)&&(j>n)) {i=i+2; j=j-1; } else {if(i<1)i=n; if(j>n)j=1; } if(a[i][j]==0) a[i][j]=k; else {i=i+2; j=j-1; a[i][j]=k; } } for(i=1;i<=n;i++) {for(j=1;j<=n;j++) printf("%5d",a[i][j]); printf("\n"); } return0; } 6-8 #include #defineN4 #defineM5/*数组为4行5列*/ intmain() { inti,j,k,a[N][M],max,maxj,flag; printf("pleaseinputmatrix: \n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i {max=a[i][0];/*开始时假设a[i][0]最大*/ maxj=0;/*将列号0赋给maxj保存*/ for(j=0;j if(a[i][j]>max) {max=a[i][j];/*将本行的最大数存放在max中*/ maxj=j;/*将最大数所在的列号存放在maxj中*/ } flag=1;/*先假设是鞍点,以flag为1代表*/ for(k=0;k if(max>a[k][maxj])/*将最大数和其同列元素相比*/ {flag=0;/*如果max不是同列最小,表示不是鞍点令flag1为0*/ continue;} if(flag)/*如果flag1为1表示是鞍点*/ {printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号*/ break; } } if(! flag)/*如果flag为0表示鞍点不存在*/ printf("Itisnotexist! \n"); return0; } 6-9 #include #defineN15 intmain() {inti,number,top,bott,mid,loca,a[N],flag=1,sign; charc; printf("enterdata: \n"); scanf("%d",&a[0]); i=1; while(i {scanf("%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课后 习题 答案 第四 版谭浩强