C语言程序设计谭浩强第三版++课后习题答案

合集下载

C语言程序设计-谭浩强-第三版-课后习题标准答案

C语言程序设计-谭浩强-第三版-课后习题标准答案

1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c%c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"Chi na"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:#include <stdio.h>main(){ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}运行结果:密码是Glmre3.9求下面算术表达式的值。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版
main()
{
int a,b;float x,y;char c1c2;
scanf("a=%d_b=%d," &a,&b);
scanf("_x=%f_y=%e",&x,&y);
scanf("_c1 =%c_c2=%c," &c1,&c2);
}
a=3_b=7
_x=8.5_y=71.82
_c1=A_c2=a
1
main()
scanf("%d,%d,%d",&a,&b,&c);
{int a,b,c;
temp=(a>b)?a:b;/*
将a和b中
printf("请输入3个整数:");
的大者存人temp中*/
scanf("%d,%d,%d",&a,&b,&c);
max=(temp>c)?temp:c;/*的大者与c比较,取最大者*/
(4)!(x=a)&&(y=b)&&0
(5)!(a+b)+c-1&&b+c/2
解:
(1) 0
(2)1
(3)1
(4)0
(5)1
解:设有一个逻辑表达式, 若其结果为“真”,
5.4有3个整数a b、c,由键盘输入,
方法一
{int a,b,c,temp,max;
#include <stdio.h>
printf("请输入3个整数:");
3.12写出下面表达式运算后a的值,设原

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);} 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c 3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

谭浩强C语言程序设计教程(第三版)课后习题答案

谭浩强C语言程序设计教程(第三版)课后习题答案
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*i; /* 实现阶乘*/
sum=sum+1/t;
}
printf("e=%lf",sum);
}
源程序二:(2)用while循环实现
#include<math.h>
}
——————————————————————————————————————
5.19 编写程序,输出从公元1000年至2000年所有闰年的年号 每输出3个年号换一行。
判断公元年是否闰年的条件是:
(1)公元年数如能被4整除,而不能被100整除,则是闰年。
(2)公元年数能被400整除也是闰年。
if(d1<d0)m1=m1-1;
if(m1<m0)y1=y1-1;
age=y1-y0;
printf("\nAge=%d",age);
}
——————————————————————————————————————
4.23 编写程序,输入一个整数,打印出它是奇数还是偶数。
3.33 编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,
把b中原来的值给c,把c中的值给a。
※程序如下※
main( )
{
int a,b,c,t=0;
printf("input a b c:\n");
scanf("%d%d%d",&a,&b,&c);
else if(x==0)

C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案

C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案

【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。

并不限定在程序的开头。

1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确1.11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

1.12 所有的数学公式可以直接出现在源程序中。

错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音。

提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。

提示:模仿例1.31.16 输入三个整数,输出其中最小者。

提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7 C语言中,int型数据在内存中的存储形式是(D)。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语⾔程序设计第三版谭浩强课后习题答案完整版C语⾔程序设计第三版谭浩强课后习题答案完整版第⼀章1.5请参照本章例题,编写⼀个C程序,输出以下信息:**************************值,输出其中最⼤值。

解:mian(){int a,b,c,max;printf(“请输⼊三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(maxmax=b;if(maxmax=c;\1aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"China"译成密码,译码规律是:⽤原来字母后⾯的第4个字母代替原来的字母.例如,字母"A"后⾯第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编⼀程序,⽤赋初值的⽅法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输{是%c%c%c%c%c\n",c1,c2,c3,c4,c5); }运⾏结果:密码是Glmre3.9求下⾯算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.5设量。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a(5) a%=(n%=2),n的值等于5(6)a+=a-=a*=a解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a ’,c2=c1=c2=printf("a=%2d b=%2dc=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)"); }ˊA ˊ,;); 4.8设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。

谭浩强_C语言程序设计(第三版)课后习题答案

谭浩强_C语言程序设计(第三版)课后习题答案

程序是在VC6.0下编译的,所以头文件和TC的不太一样!4-8#include <iostream>#define pi 3.1415void main(){float r,h,rl,ra,ss,sv,cv;printf("输入圆的半径和圆柱的高\n\n");scanf("%f%f",&r,&h);rl=2*pi*r;ra=pi*r*r;ss=4*pi*r*r;sv=4*pi*r*r*r/3;cv=ra*h;printf("圆周长为:%f\n\n圆面积为:%f\n\n圆球表面积为:%f\n\n圆球体积为:%f\n\n 圆柱体积为:%f\n\n",rl,ra,ss,sv,cv);}4-9#include <iostream>void main(){float F,c;printf("输入一个华氏温度\n\n");scanf("%f",&F);c=5*(F-32)/9;printf("摄氏温度为:%.2f\n\n",c);}第五章5-4#include <iostream>void main(){int a,b,c,max;printf("输入三个整数a,b,c\n\n"); scanf("%d%d%d",&a,&b,&c);if(a>b) max=a;else max=b;if(max<c) max=c;printf("最大的数为:%d\n\n",max); }5-5#include <iostream>void main(){float x,y;printf("输入x\n\n");scanf("%f",&x);if(x<1) y=x;else if(x<10) y=2*x-1;else y=3*x-11;printf("y=%f\n\n",y);}5-6#include <iostream>void main(){float m;int n;printf("输入成绩\n\n");scanf("%f",&m);n=m/10;switch(n){case 0:case 1:case 2:case 3:case 4:case 5:printf("E\n\n");break;case 6:printf("D\n\n");break;case 7:printf("C\n\n");break;case 8:printf("B\n\n");break;case 9:case 10:printf("A\n\n");break;}}5-7#include <iostream>#include <math.h>void main(){int a,b,c,i,j,n;printf("输入五位正整数\n\n");scanf("%d",&a);printf("\n\n");c=a;for(i=1;;i++){b=c%10;c=c/10;printf("%d",b);if(c==0){printf("\n\n");printf("正整数为%d位数\n\n",i);break; }}c=a;for(j=i-1;j>=0;j--){n=pow(10,j);b=c/n;c=c%n;printf("%d\n",b);}}5-8if语句:#include <iostream>void main(){int I;float bonus;printf("输入当月利润I\n\n");scanf("%d",&I);if(I<=100000) bonus=I/10;else if(I<=200000) bonus=10000+(I-100000)*7.5/100;else if(I<=400000) bonus=10000+7500+(I-200000)*5/100;else if(I<=600000) bonus=10000+7500+10000+(I-400000)*3/100;else if(I<=1000000) bonus=10000+7500+10000+6000+(I-600000)*1.5/100; else bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;printf("应发奖金数为:%f\n\n",bonus);}switch语句:#include <iostream>void main(){int I,n;float bonus;printf("输入当月利润I\n\n");scanf("%d",&I);if(I>1000000) n=10;else n=I/100000;switch(n){case 0:bonus=I/10;break;case 1:bonus=10000+(I-100000)*7.5/100;break;case 2:case 3:bonus=10000+7500+(I-200000)*5/100;break;case 4:case 5:bonus=10000+7500+10000+(I-400000)*3/100;break;case 6:case 7:case 8:case 9:bonus=10000+7500+10000+6000+(I-600000)*1.5/100;break;case 10:bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;break; }printf("应发奖金数为:%f\n\n",bonus);}5-9#include <iostream>void main(){int a,b,c,d,temp,min;printf("输入四个数a,b,c,d\n\n");scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){temp=a;a=b;b=temp;}if(a>c){temp=a;a=c;c=temp;}if(a>d){temp=a;a=d;d=temp;}printf("由小到大排列为:\n\n"); printf("%d ",a);if(b>c){temp=b;b=c;c=temp;}if(b>d){temp=b;b=d;d=temp;}printf("%d ",b);if(c>d){temp=c;c=d;d=temp;}printf("%d ",c);printf("%d",d);}5-10#include <iostream>#include <math.h>void main(){float x,y,a,b,c,d;printf("输入点的坐标\n\n");scanf("%f%f",&x,&y);a=sqrt((2-x)*(2-x)+(2-y)*(2-y));b=sqrt((2-x)*(2-x)+(-2-y)*(-2-y));c=sqrt((-2-x)*(-2-x)+(-2-y)*(-2-y));d=sqrt((-2-x)*(-2-x)+(2-y)*(2-y));if(a<=1||b<=1||c<=1||d<=1) printf("该点建筑高度为:10m"); else printf("该点建筑高度为:0m");}第六章:6-1#include <iostream>#include <math.h>void main(){int m,n,max,min,i,k;printf("输入两个正整数\n\n");scanf("%d%d",&m,&n);if(m>n) k=n;else k=m;for(i=1;i<=k;i++){if((m%i==0)&&(n%i==0)) max=i;}printf("最大公约数为:%d\n\n",max);if(m>n) k=m;else k=n;for(i=k;;i++){if((i%m==0)&&(i%n==0)){min=i;break;}}printf("最小公倍数为:%d\n\n",min);}6-2#include <iostream>void main(){char c;int l=0,b=0,n=0,e=0;printf("输入一行字符\n\n");while((c=getchar())!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) l+=1;else if(c==' ') b+=1;else if(c>=48&&c<=57) n+=1;else e+=1;}printf("英文字母个数为:%d\n\n空格个数为:%d\n\n数字个数为:%d\n\n其他字符个数为:%d\n\n",l,b,n,e);}6-3#include <iostream>#include <math.h>void main(){int n,k,i;float a,s=0;printf("输入n和a\n\n");scanf("%d%f",&n,&a);for(i=0;i<n;i++){k=pow(10,i);s=s+(n-i)*a*k;}printf("和s=%f\n\n",s); }6-4#include <iostream>void main(){int n,s,S=0,i,j;printf("输入n\n\n");scanf("%d",&n);for(i=1;j<=n;i++){s=1;for(j=1;j<=i;j++){s=s*j;}S+=s;}printf("和S=%d\n\n",S); }6-5#include <iostream>void main(){int i,m,n,t;int s1=0,s2=0;float s3=0,s,l;printf("输入m,n,t的值\n\n");scanf("%d%d%d",&m,&n,&t);for(i=1;i<=m;i++){s1+=i;}for(i=1;i<=n;i++){s2+=i*i;}for(i=1;i<=t;i++){l=1.0/i;s3+=l;}s=s1+s2+s3;printf("和s=%f",s);}6-6#include <iostream>void main(){int m,n,k,i,j;printf("水仙花数为:\n");for(i=100;i<=999;i++){j=i;m=j%10;j=j/10;n=j%10;k=j/10;if(i==m*m*m+n*n*n+k*k*k) printf("%d ",i);}}6-7#include <iostream>#include <math.h>void main(){int i,j,k,s;for(i=1;i<=1000;i++){s=0;for(j=1;j<i;j++){if(i%j==0) s+=j;}if(s==i){printf("\n\n");printf("%d its factors are ",i); for(j=1;j<i;j++){if(i%j==0) printf("%d ",j);}}}}6-8#include <iostream>void main(){int n,i;float f1,f2,s,temp;printf("输入n\n\n");scanf("%d",&n);f1=2.0;f2=3.0;s=f1;for(i=1;i<=n-1;i++){s+=f2/f1;temp=f2;f2=f1+f2;f1=temp;}printf("前%d项和为%f",n,s);}6-9#include <iostream>#include <math.h>void main(){int i,n,l=100;float m,s=0;printf("输入n\n\n");scanf("%d",&n);m=l;for(i=1;i<=n;i++){s+=2*m;m=m*0.5;}printf("第%d次落地时经过%f米\n\n",n,s-l); printf("第%d次落地后反弹%f米\n\n",n,m); }6-10void main(){int m=1,n,i;printf("输入n\n\n");scanf("%d",&n);for(i=1;i<n;i++){m=(m+1)*2;}printf("一共摘了%d个桃子\n\n",m);}6-11#include <iostream>#include <math.h>void main(){float a,x1,x2;printf("输入a\n\n");scanf("%f",&a);x1=a/2;loop:x2=(x1+a/x1)/2;if(fabs(x1-x2)>1e-5){x1=x2;goto loop;}else printf("\n\na的平方根为%f\n\n",x2); }6-12#include <math.h>void main(){float f(float);float xpoint(float,float);float root(float,float);float x,x1,x2,f1,f2;do{printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);f1=f(x1);f2=f(x2);}while(f1*f2>0);x=root(x1,x2);printf("方程在1.5附近的根为:%f\n\n",x); }float f(float x){float y;y=2*x*x*x-4*x*x+3*x-6;return(y);}float xpoint(float x1,float x2){float y;y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));return(y);}float root(float x1,float x2){float x,y,y1;y1=f(x1);do{x=xpoint(x1,x2);y=f(x);if(y*y1>0){y1=y;x1=x;}elsex2=x;}while(fabs(y)>1e-4);return(x);}6-13#include <iostream>#include <math.h>void main(){float f(float);float root(float,float);float x,x1,x2,f1,f2;do{printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);f1=f(x1);f2=f(x2);}while(f1*f2>0);x=root(x1,x2);printf("方程的根为:%f\n\n",x); }float f(float x){float y;y=2*x*x*x-4*x*x+3*x-6;return(y);}float root(float x1,float x2){float x,y;do{y=f((x1+x2)/2);if(y<-1e-4){x1=(x1+x2)/2;}else if(y>1e-4){x2=(x1+x2)/2;}else x=(x1+x2)/2;}while(fabs(y)>1e-4);return(x);}6-14#include <iostream>void 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");}}6-15#include <iostream>void main(){char i,j,k;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("\nA--%c\nB--%c\nC--%c\n",i,j,k); }}}第七章7-1#include <iostream>#include <math.h>void main(){int i,j;int a[101];printf("素数为:\n\n");for(i=1;i<=100;i++){a[i]=i;}for(i=3;i<=100;i++){for(j=2;j<=sqrt(a[i]);j++){if(a[i]%j==0){a[i]=0;break;}}}for(i=2;i<=100;i++){if(a[i]!=0) printf("%d ",a[i]); }}7-2#include <iostream>void main(){int a[10],i,j,temp;printf("输入10个整数\n\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}for(i=0;i<10;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}printf("排序后的输出为:\n\n"); for(i=0;i<10;i++){printf("%d ",a[i]);}printf("\n\n");}7-3#include <iostream>void main(){int a[9],i,s=0;printf("输入一个3*3整型矩阵\n\n"); for(i=0;i<9;i++){scanf("%d",&a[i]);}for(i=0;i<9;i+=4){s+=a[i];}printf("对角线元素之和为:%d\n\n",s); }7-4#include <iostream>void main(){int a[11]={1,2,3,4,5,6,7,8,9,10};int i,j,n,temp1,temp2;printf("输入一个数n\n\n");scanf("%d",&n);if((a[0]-a[9])>0){if(n<=a[9]){a[10]=n;}else{for(i=0;i<10;i++)if(a[i]<n){temp1=a[i];a[i]=n;for(j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}}if((a[9]-a[0])>0){if(n>=a[9]){a[10]=n;}else{for(i=0;i<10;i++){if(a[i]>n){temp1=a[i];a[i]=n;for(j=i+1;j<11;j++) {temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++){printf("%d ",a[i]);}}7-5将一个数组中的值按逆序重新排列#include <iostream>#define N 5void main(){int a[N];int i,temp;printf("输入5个个数\n\n");for(i=0;i<N;i++){scanf("%d",&a[i]);}for(i=0;i<=N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++){printf("%d ",a[i]);}printf("\n\n");}7-6输出杨辉三角形(要求输出10行)#include <iostream>#include <stdio.h>void main(){int a[10][10]={1};int i,j;for(i=1;i<10;i++){for(j=0;j<=i;j++){a[i][0]=a[i-1][0];a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<10;i++){for(j=0;j<=i;j++){printf("%4d",a[i][j]);}printf("\n\n");}}7-7输出“魔方阵”。

C程序设计(谭浩强第三版)课后答案完整版

C程序设计(谭浩强第三版)课后答案完整版
{ )(niam )IICSA(89_ro_ˊbˊ=2c )IICSA(79_ro_ˊaˊ=1c 04.2-=x+z_ _02.1-=z+y_ _006.3_=y+x 000006.3-=z,000004.2=y,000002.1=x 5_=c_ _4_=b_ _3_=a 。 �出输计设和型类量变义定括包�序程出写请�果结和式格出输下以到得想 。 ’b’=2c� ’a’=1c�567821=n�47215=u�6.3-=z�4.2=y�2.1=x�5=c�4=b�3=a 若 4�4 章四第 0 )6( 0 )5( 0 )4( 06 )3( 01 )2( 42 )1( �解 a=*a=-a=+a�6� 5 于等值的 n�)2=%n(=%a �5� a+a=/a�4� 3+2=*a �3� 2=-a �2� a=+a�1� 。量变型整为义定已都 n 和 a 设。21=a 来原设�值的 a 后算运式达表面下出写 21.3 01�9�11�9 �解 } ;)n,m,j,i,”d%,d%,d%,d%“(ftnirp ;++j=n ;i++=m ;01=j ;8=i ;n,m,j,i tni{ )(niam 。果结的行运序程出写 01.3 5.3�2� 5.2�1� 5.2=y,5.3=x,3=b,2=a 设 y)tni(%x)tni(+2/)b+a()taolf(�2� 7.4=y,7=a,5.2=x 设 4/2%)y+x()tni(*3%a+x�1� 。值的式达表术算面下求 9.3 ermlG 是码密 �果结行运 } ;)5c,4c,3c,2c,1c,"n\c%c%c%c%c%是码密"(ftnirp ;4=+5c ;4=+4c ;4=+3c ;4=+2c ;4=+1c ;’a’=5c,’n’=4c,’i’=3c,’h’=2c,’C’=1c rahc {

C语言程序设计谭浩强第三版课后习题答案

C语言程序设计谭浩强第三版课后习题答案

第六章循环语句6.1 输入两个正数,求最大公约数和最小公倍数.int main(){int a,b,num1,num2,temp; printf(" 请输入两个正整数:\n");scanf("%d,%d",&num1,&num2); if(num1<num2){temp=num1; num1=num2;num2=temp;} a=num1,b=num2; while(b!=0){ temp=a%b; a=b; b=temp;}printf(" 它们的最大公约数为:%d\n",a);printf(" 它们的最小公倍数为:%d\n",num1*num2/a); return 0;} 我觉得这样不是更简单吗:首先用scanf 输入两个整数a,b if(a <b) c=a;else c=b;for(;c>0;c--)if((a%c)&&(b%c)==0)break;printf("最大公约数为%d",c);printf(" 最大公倍数为%d",a*b/c);6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数解:#include <stdio.h>int main(){char c;int letters=0,space=0,degit=0,other=0;printf(" 请输入一行字符:\n");while((c=getchar())!='\n'){ if(c>='a'&&c<='z' || c>'A'&&c<='Z') letters++; else if(c==' ') space++; elseif(c>='0'&&c<='9') digit++; else other++;}printf(" 其中: 字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\n",letters,space, digit,other);return 0;}6.3求s(n)=a+aa+aaa+…+aa••之值,其中a是一个数字,n表示a的位数。

谭浩强C程序设计第三版课后答案(整本书).doc

谭浩强C程序设计第三版课后答案(整本书).doc
scanf(“a=%d b=%d”,&a , &b);
scanf(“%f %e”,&x , &y);
scanf(“%c %c”,&c1 , &c2);
}
解:
a=3□b=7
□8.5□71.82
□A□a
4.7
scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);
(7)(-28654)10=(110022)8=(9012)16
(8)(21003)10=(51013)8=(520B)16
3
变量的类型
25
-2
32769
int型
long型
sort型
signed char(8位)
unsigned int型
unsigned long型
unsigned short型
unsigned char型
unsigned u=65535;
printf(“%d%d\n”,a,b);
printf(“%3d%3d\n”,a,b);
printf(“%f,%f\n”,x,y);
printf(“%-10f,%-10f\n”,x,y);
printf(“%8.2f, %8.2f,%4f, %4f, %3f, %3f\n”,x,y,x,y,x,y);
voidmain ( )
{ char c1=’a’, c2=’b’, c3=’c’, c4=’\101’, c5=’\116’;
printf (“a%c b%c\t c%c\t abc\n”, c1, c2, c3);
printf (“\t\b%c %c”, c4, c5);

C语言程序设计第三版谭浩强课后习题答案解析[完整版]

C语言程序设计第三版谭浩强课后习题答案解析[完整版]

1.5#include <stdio.h>void main(){printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" Very good! \n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");}1.6#include <stdio.h>void main(){float max(float x,float y,float z);float a,b,c;printf("请分别输入a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);printf("max=%f",max(a,b,c));}float max(float x,float y,float z){float m,n;m=x>y? x: y;n=m>z? m: z;return(n);}3.6#include <stdio.h>void main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c\n”,c4,c5);}3.9.1#include <stdio.h>void main(){double x=2.5,y=4.7,z;int a=7;z=x+a%3*(int)(x+y)%2/4;printf("该表达式的值为:%f",z);}3.9.2#include <stdio.h>void main(){int a=2,b=3;float x=3.5,y=2.5,z;z=(float)(a+b)/2+(int)x%(int)y;printf("该表达式的值为:%f",z);}4.5#include <stdio.h>void main(){int a=5,b=7;double x=67.8564,y=-789.124;char c='A';long n=1234567;unsigned u=65535;printf("%d%d\n",a,b);printf("%3d%3d\n",a,b);printf("%f,%f\n",x,y);printf("%-10f,%-10f\n",x,y);printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%10.2e\n",x,y);printf("%c,%d,%o,%x\n",n,n,n);printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u);printf("%s,%5.3s\n","COMPUTER","COMPUTER"); }4.6#include <stdio.h>void 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);}4.7#include<stdio.h>void main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d",&a,&b);scanf("%f%f%*f%f",&x,&y,&z);scanf("%c%c",&c1,&c2);}4.8#include <stdio.h>#define pi 3.14void main(){float r,h,l,s1,s2,v1,v2;printf("请输入r,h的值:\n");scanf("%f,%f",&r,&h);l=2*pi*r;s1=pi*r*r;s2=4*s1;v1=4/3*pi*r*r*r;v2=s1*h;printf("圆周长为:%.2f\n",l);printf("圆面积为:%.2f\n",s1);printf("圆球表面积为:%.2f\n",s2); printf("圆球体积为:%.2f\n",v1); printf("圆柱体积为:%.2f\n",v2);}5.5 #include <stdio.h>void main(){float x,y;printf("请输入x的值:\n");scanf("%f",&x);if(x<1)y=x;elseif(x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("x与y的值分别为:\n%f,%f",x,y); printf("\n");}5.6 #include <stdio.h>void main(){float b;int a;printf("请输入该同学的成绩:\n");scanf("%f",&b);while (b<0||b>100){printf("输入有误,请重新输入:\n");scanf("%f",&b);}a= int(b/10);if(a<6) a=5;switch(a){case 10:case 9: printf("该同学为等级:A");break;case 8: printf("该同学为等级:B");break;case 7: printf("该同学为等级:C");break;case 6: printf("该同学为等级:D");break;case 5: printf("该同学为等级:E");break;}}#include <stdio.h>#include <math.h>void main(){int x,y,m,n,i=1,j=0;printf("请给出一个不多于5位的正整数:\n");scanf("%d",&x);while(x<=0||x>=100000){ printf("输入有误\n请给出一个不多于5位的正整数:\n");scanf("%d",&x);}for(n=0;n<5;n++){y=int(x/pow(10,n));if(y>0&&y<10)m=n+1;}printf("它是%d位数\n",m);printf("从高到低位依次为\n");do{printf(" %d",int(x/pow(10,m-i))%10);i++;}while(m-i>=0);printf("\n逆序输出为\n");do{printf(" %d",int(x/pow(10,j))%10);j++;}while(j-m<0);printf("\n");}6.1输入两个正整数m和n,求其最大公约数和最小公倍数。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;\1aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输{是%c%c%c%c%c\n",c1,c2,c3,c4,c5); }运行结果:密码是Glmre3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5(1)2.5(2)3.5设量。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a(5) a%=(n%=2),n的值等于5(6)a+=a-=a*=a解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a ’,c2=c1=c2=printf("a=%2d b=%2dc=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)"); }ˊA ˊ, ; ); 4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

(完整word版)C语言程序设计(第3版)谭浩强课后习题答案(可编辑修改word版)

(完整word版)C语言程序设计(第3版)谭浩强课后习题答案(可编辑修改word版)

1.1请参照本章例题,编写一个c程序,输出以下信息:廿**廿***甘**廿**脊*并********甘**甘**Very good!甘**甘**************************解:程序如下所示。

番include <stdio.h> int main ()( printf ("**************************\n\n"); printf (" Very Good!\n\n");printf ("**************************\n n); return 0;运行结果如下:****************************** Very good!#******#**#******#**#***#**#**1.2编写一个C程序,输入a、b、c3个值,输出其中最大者。

解:程序如下所示。

番include <stdio.h>int main(){int a,b, c,max;printf ("please input a,b,c: \n");scanf %d",&a,Sb/ &c);max=a;if (max<b)max=b;if (max<c)max=c;printf ("The largest number is % d\n*\max);return 0;运行结果如下:please input a,b,c:38,93,-84The largest number is 931.3上机运行本章3个例题,熟悉所用系统的上机方法与步骤。

解:略。

1.4上机运行你为本章习题1.1和4题1.2所编写的程序。

解:略。

2. 1假如我国国民生产总值的年增长率为10%,汁界10年后我国国民生产总值与现在相比增长多少。

汁箅公式为:P=(l + r)n「为年增长率,〃为年数,P为与现在相比的百分比。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************解:”););}1.6输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c); max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);\101abc AㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:#include <stdio.h>{是}密码是Glmre3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5(2)3.53.10写出程序运行的结果。

main(){int i,j,m,n;i=8;(4)解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);} 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。

main(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c 3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。

因此,"China"应译为"Glmre"。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

C语言设计谭浩强第三版的课后习题答案

C语言设计谭浩强第三版的课后习题答案

C语言设计谭浩强第三版的课后习题答案1.5请参照本章例题,编写一个C程序,输出以下信息:main(){printf(" ************ \n");printf("\n");printf(" Very Good! \n");printf("\n");printf(" ************\n");}编写一个程序,输入a b c三个值,输出其中最大者。

解:main(){int a,b,c,max;printf("请输入三个数a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(maxmax=b;if(maxmax=c;printf("最大数为:%d",max);}第三章请将下面各数用八进制数和十六进制数表示:(1)10 (2)32 (3)75 (4)-617解:十八十六(10)=(12)=(a)(32)=(40)=20(75)=(113)=4b(-617)=(176627)=fd97-111=177621=ff912483=4663=963-28654=110022=901221003=51013=520b字符常量与字符串常量有什么区别?解:字符常量是一个字符,用单引号括起来。

字符串常量是由0个或假设干个字符而成,用双引号把它们括起来,存储时自动在字符串最后加一个终止符号'\0'.写出以下程序的运行结果:#includevoid main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);解:程序的运行结果为:aabb cc abcA N将"China"译成密码.密码规律:用原先的字母后面第4个字母代替原先的字母,请编一程序,用赋初值的议程使c1,c2,c3,c4,c5别离变成'G','1','m','r','e',并输出.main(){char c1="C",c2="h",c3="i",c4='n',c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);}例可否改成如下:#includevoid main(){int c1,c2;(原为char c1,c2)c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}解:能够.因为在可输出的字符范围内,用整型和字符型作用相同.求下面算术表达式的值.(2)(float)(a+b)/2+(int)x%(int)y=(设a=2,b=3,x=,y=写出下面程序的运行结果:#includevoid main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}解:结果: 9,11,9,10第4章'a',c2='b'.想得到以下的输出格式和结果,请写出程序要求输出的结果如下: a= 3 b= 4 c= 5x=,y=,z=x+y= y+z= z+x=u= 51274 n= 128765c1='a' or 97(ASCII)c2='B' or 98(ASCII)解:{int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=;y=;z=;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%,y=%,z=%\n",x,y,z);printf("x+y=% y=z=% z+x=%\n",x+y,y+z,z+x); printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c' or %d(ASCII)\n",c1,c2);printf("c2='%c' or %d(ASCII)\n",c2,c2);}请写出下面程序的输出结果.结果:575 7,,+001,+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM用下面的scanf函数输入数据,使a=3,b=7,x=,y=,c1='A',c2='a',问在键盘上如何输入?main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d,&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2);}解:可按如下方式在键盘上输入:a=3 b=7x= y=c1=A c2=a说明:在边疆利用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二个scanf函数吸收,因此在第二\三个scanf函数的双引号后设一个空格以抵消上行入的"回车".假设是没有那个空格,按上面输入数据会犯错,读者目前对此只留有一用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=,y=-,z=,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z);解:main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运行时输入:10 +,注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章循环语句6.1输入两个正数,求最大公约数和最小公倍数.int main(){int a,b,num1,num2,temp;printf("请输入两个正整数:\n");scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("它们的最大公约数为:%d\n",a);printf("它们的最小公倍数为:%d\n",num1*num2/a);return 0;}我觉得这样不是更简单吗:首先用scanf输入两个整数a,bif(a <b) c=a;else c=b;for(;c>0;c--)if((a%c)&&(b%c)==0)break;printf("最大公约数为%d",c);printf("最大公倍数为%d",a*b/c);6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数. 解:#include <stdio.h>int main(){char c;int letters=0,space=0,degit=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z' || c>'A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}printf("其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\n",letters,space, digit,other);return 0;}6.3求s(n)=a+aa+aaa+…+aa…a之值,其中a是一个数字,n表示a的位数。

解:int main(){int a,n,count=1,sn=0,tn=0;printf("请输入a和n的值:\n");scanf("%d,%d",&a,&n);printf("a=%d n=%d \n",a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+aaa+…=%d\n",sn);return 0;}循环体改成:count=1,sn=0;{sn+=a;a+=10a;count++;}6.4 求∑=201!n n (即1+2!+3!+4!+…+20!)int main(){float n,s=0,t=1;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+…+20!=%e \n",s);return 0;}阶乘利用递归,再求和:#include<iostream>using namespace std;long Func(int n){if(1==n)return n;if(n>1)return n*Func(n-1);}main(){long s=0;int i=1;while (i<=6){s=s+Func(i);i++;}cout<<s<<endl;}6.5 求∑∑∑===++101100150121k k k kk k 。

int main(){int k,N1=100,N2=50,N3=10;float s1=0.0,s2=0.0,s3=0.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.0/k;}printf("总和=%8.2f\n",s1+s2+s3);return 0;}已通过int main(){int k=1,i=11,j=51;float s=0.0;while(k<=10){s=s+k+k*k+1.0/k;while(k==10 && i<=50){s=s+i+i*i;while(i=50 && j<=100){s=s+j;j++;}i++;}k++;}}6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。

int main(){int i,j,k,n;printf(" '水仙花'数是:");for(n=100;n<1000;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);}}printf(‘\n’);return 0;}6.7一个数如果恰好等于它的因子之和,这个数就称为“完数”。

编程序找出1000之内的所有完数,并按下面格式输出其因子。

#include <stdio.h>#define M 1000 /*定义寻找范围*/int main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j<=M;j++){n=0; s=j;for(i=1;i<j;i++){if((j%i)= =0){n++;s=s-i;switch(n)/*将每个因子赋给k0,k1…k9*/{case 1: k0=i; break;case 2: k1=i; break;case 3: k2=i; break;case 4: k3=i; break;case 5: k4=i; break;case 6: k5=i; break;case 7: k6=i; break;case 8: k7=i; break;case 9: k8=i; break;case 10: k9=i; break;}}}if(s= =0){printf("%d是一个‘完数’,它的因子是",j);if(n>1)printf("%d,%d",k0,k1);if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d",k9);printf("\n");}}return 0;}方法二:此题用数组方法更为简单.int main(){int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;/*将每个因子赋给k0,k1...k9*/}}if(s= =0){printf("%d是一个完数,它的因子是:",j);for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}return 0;}6.8 有一个分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和. 解:#include <stdio.h>int main(){int n,t,number=20;float a=2,b=1,s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("总和=%9.6f\n",s);return 0;}6.9球反弹问题#include <stdio.h>int main(){float sn=100.0,hn=sn/2;int n;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);return 0;}6.10猴子吃桃问题#include <stdio.h>int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("桃子总数=%d\n",x1);return 0;}上面的程序是从最后一天计算,一直到第一天。

当while 第一次循环,既day=9的时候,X1此时计算的是第9天的桃子数。

而X2既是X1前一天的桃子数。

计算出第9天的桃子数后,把X1的值赋值给X2,那么X2此时X2就表示第9天的桃子数,再通过while 的循环,可以逐步求出第7天,第6天...一直到第一天的桃子数. 这里X2=X1,就是一个赋值的过程,为的是求前一天的桃子数.6.11用迭代法求a x =。

求平方根的迭代公式为:)(211nn n x a x x +=+,要求前后两次求出的差的绝对值小于0.00001。

相关文档
最新文档