1、 return 0;4.5 请写出下面程序的输出结果: int a=5,b=7; float x=67.8564,y=-789.124; char c=A long n=1234567; unsigned u=65535;%d%dn,a,b);%3d%3dn%f,%fn,x,y);%-10f,%-10fn%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn,x,y,x,y,x,y);%e,%10.2en%c,%d,%o,%xn,c,c,c,c);%ld,%lo,%xn,n,n,n);%u,%o,%x,%dn,u,u,u,u);%s,%5.3sn,COMPUTER);57 5 767.8
2、56400,-789.12402367.856400 ,-789.124023 67.86, -789.12,67.8564,-789.1240,67.856400,-789.1240236.785640e+001,-7.89e+002A,65,101,411234567,4553207,12d68765535,177777,ffff,65535COMPUTER, COM4.6 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,7=71.82,c1=A,c2=a,问在键盘上如何输入? int a,b; float x,y; char c1,c2; scanf(%d %d %f %f
3、 %c %c,&a,&b,&x,&y,&c1,&c2);%d %dn%f %fn%c %cn,c1,c2);4.7 用下面的scanf函数输入数据,使a=10,b=20,c1=A,c2=a,x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据? float x,y,z;%d %d %c %c %f %f %fc2,&z);%f %f %fn4.8 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,然后输出计算结果。输出时要求有文字说明并取小数点后两位数字,请编程序。#define Pi 3.1415926 double r,
4、h;%lf %lfr,&h);圆的周长=%.2fn,2*Pi*r);圆的面积=%.2fn,Pi*r*r);圆球表面积=%.2fn,Pi*r*r/6);圆球体积=%.2fn,4*Pi*r*r*r/3);圆柱体积=%.2fn,Pi*r*r*h);4.9 输入一个华氏温度的取值F,要求输出摄氏温度的取值C。公式为C=5(F-32)/9输出要有文字说明,取两位小数。#includedouble CentigradeTemperture(double Fahrenheit); double F;请输入华氏温度:%lfF);摄氏温度为%.2fn, CentigradeTemperature(F);doub
5、le CentigradeTemperature(double Fahrenheit) return 5*(Fahrenheit-32)/9;4.10 编程序:用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符,并思考以下问题:(1)变量c1,c2应定义为字符型还是整型,或二者皆可?(2) 要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?(3) 整型变量与字符变量是否在任何情况下都可以互相代替?如:char c1,c2;与 int c1,c2;是否无条件等价? c1=getchar(); c2=get
6、char(); putchar(c1); putchar(c2);n%c %cn(1) 二者皆可。(2) 用printf函数将printf(,c1,c2)改成printf(n%d %dn,c1,c2)即可。(3) 不是,整型可以代替字符型,但字符无法完全替代整型。第5章5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?算术运算:+ - * / % + -关系运算: = = c & b=c(2) a|b+c & b-c(3) !(ab) & !1(4) !(x=a) & (y=b) & 0(5) !(a+b)+c-1 & b+c/2(1) 0 (2) 1 (3) 0 (4) 0 (5) 1
7、5.4 有三个整数a,b,c,由键盘输入,输出其中最大的数。int Max3(int a,int b,int c); int a,b,c;%d%d%dc);最大的数是%dn,Max3(a,b,c);int Max3(int a,int b,int c) int temp; temp=ab?a:b; return tempc?temp:c;5.5 有一函数:编写一程序,输入x,输出y值。double funcy(double x); double x,y;x); y=funcy(x);最大的数是%lfn,y);double funcy(double x) if(x1) return x; els
8、e if(x100 | score=80) printf(Bn else if(score=70) printf(Cn else if(score=60) printf(Dn else printf(En5.7 给一个不多于5位的正整数,要求:(1) 求出它是几位数;(2) 分别打印出每一位数字;(3) 按逆序打印出各位数字,例如原数为321,应输出123。 int i,k; int a5; unsigned int x;%u if(x99999 | x a0=x/10000; a1=(x-a0*10000)/1000; a2=(x-a0*10000-a1*1000)/100; a3=(x-a
9、0*10000-a1*1000-a2*100)/10; a4=x-a0*10000-a1*1000-a2*100-a3*10; /* 求出它的几位数 */(1): if(a0) printf(5位数n if(a1) printf(4位数n if(a2) printf(3位数n if(a1) printf(2位数n1位数n /* 计算无效0的个数 */ k=0; while(k5 & ak=0) k+; /* 打印每一位数字 */(2): for(i=k;i=k;i-) printf(5.8 企业发放的奖金根据利润提成。利润(I)低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万
10、元(100000I200000)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;当200000I400000时,高于20万元的部分按5%提成;当400000I600000时,高于40万元的部分按3%提成;当600000I1000000时,高于60万的部分按1.5%提成;当I1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。 double I,bouns;请输入本月利润(万元):I); if(I=10) bouns=I*0.1; if(I=20) bouns=10*0.1+(I-10)*0.75; if(I=40) bouns=10*
11、0.1+10*0.75+(I-20)*0.05; if(I=60) bouns=10*0.1+10*0.75+20*0.05+(I-40)*0.03; else if(I=100) bouns=10*0.1+10*0.75+20*0.05+ 20*0.03+(I-60)*0.15; else 20*0.03+40*0.15+(I-100)*0.01;本月总奖金数为%lf万元n,bouns);5.9 输入四个整数,要求按大小顺序输出#define N 4int bubble(int a,int k); int i; int aN; for(i=0;N;i+) scanf(%dai); if(bu
12、bble(a,N) for(i=0;4; printf( int bubble(int a,int k) int i,j; int t,temp; if(k1) return 0; for(i=1;=k-1;i+) t=k-i; for(j=0;jaj+1) temp=aj; aj=aj+1; aj+1=temp; return 1;5.10 有四个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。这四个塔的高度都为10米,塔以外无建筑物。今输入任一点的坐标,求该点相应的高度(塔外的高度为0)。double TowerHeight(double x,doubl
13、e y,double z); double x,y,z;%lf %lf %lf该点的高度为%lfn,TowerHeight(x,y,z);double TowerHeight(double x,double y,double z) if( (x-2)*(x-2)+(y-2)*(y-2)=1 | (x+2)*(x+2)+(y-2)*(y-2) (x-2)*(x-2)+(y+2)*(y+2) (x+2)*(x+2)+(y+2)*(y+2)=1 ) return z; return 0;第6章6.1 输入两个正整数m和n,求其最大公约数和最小公倍数。int GreatestCommonDivisor
14、(int m,int n) /*返回最大公约数*/ int u,v,r; if(m=0 | n=0) return 0; u=m; v=n; while(r=u%v) u=v; v=r; return v;int LeastCommonMultiple(int m,int n) /* 返回最小公倍数 */ int u; u=GreatestCommonDivisor(m,n); if(!u) return 0; return u*(m/u)*(n/u);6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#define N 100 char sN; char *p; in
15、t i=0,j=0,k=0,m=0; gets(s); p=s; while(*p!=0) if(*p64) i+; if(*p=32) j+; if(*p58 &47) k+; else m+; p+;英文字符个数为:%dn,i);空格数为:,j);数字个数为:,k);其它字符个数为:,m);6.3 求Sn=a + aa + aaa + + aaa (n个a)之值,其中a是一个数字。long int SumOfaa(int a,int k) if(a1 | k if(k=1) return a; return 10*(SumOfaa(a,k-1)-SumOfaa(a,k-2)+a+SumOf
16、aa(a,k-1);6.4 求(即求1!+2!+3!+20!)。long int SumOfRfact(int k) if(k2) return 1; return k*(SumOfRfact(k-1)-SumOfRfact(k-2)+SumOfRfact(k-1);6.5 求long int SumOfk(int k) int i,sum=0;i+) sum+=i; return sum;long int SumOfk2(int k)i+) sum+=i*i;double SumOfk1(int k) double sum=0.0;i+) sum+=1.0/i;6.6 打印出所有“水仙花数”
17、。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153=13+53+33。 int i=0; int x,y,z; for(x=1;x10;x+) for(y=0;yy+) for(z=0;zz+) if(x*x*x+y*y*y+z*z*z=x*100+y*10+z) printf(,x*100+y*10+z); i+; 共有%d个水仙花数n6.7 一个数如果恰好等于它的因子之和,这个数就称之为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数。并按下面的格式输出其因子。#define N 1000int AllFact
18、ors(int a,int k);int OverNum(int k); int i,k=0;=N; if(OverNum(i) printf(%d is OverNumn k+; There are %d OverNumsn/* 求k的所有因子,因子保存在数组a中,返回因子的个数 */int AllFactors(int a,int k) int m=1;/* 用以记录因子的个数 */ a0=1; for(i=2;k; if(k%i=0) /* i是因子 */ am+=i; /* 因子送数组保存 */ return m;int OverNum(int k) int a100; int j,m; int sum=0; m=AllFactors(a,k);/* 记录因子个数 */m;j+) sum=sum+aj; /* 求出各因子的累加和 */ if(k=sum) /* 是完数 */ return 1;6.8 有一分数序列:,求出这个序列的前20项之和。#define N 20double SumFractions(int k); pr
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1