c++课后习题整理
- 格式:doc
- 大小:35.00 KB
- 文档页数:6
已知圆的半径为3.62,圆柱高6,求圆的周长,圆柱的表面积,圆柱的体积。
用scanf输入,输出有必要的文字说明,小数点后取两位
#include<stdio.h>
#include<math.h>
#define pi 3.1415
float c(float r)
{
return 2*pi*r;
}
float s(float r,float h)
{
return (2*pi*pow(r,2)+c(r)*h);
}
float v(float r,float h)
{
return 2*pi*r*r*h;
}
void main()
{
float r,h;
scanf("%f,%f",&r,&h);
printf("周长:%.2f\n表面积:%.2f\n体积:%.2f\n",c(r),s(r,h),v(r,h));
}
(2)
对于任意3位整数,计算其每位数字的累加和。
#include<stdio.h>
int f(int n)
{
int s=0;
do
{
s+=n%10;
n/=10;
}while(n!=0);
return s;
}
void main()
{
int n;
scanf("%d",&n);
printf("%d\n",f(n));
}
90~100为A,60~89为B,60以下为C
#include<stdio.h>
void main()
{
int score;
scanf("%d",&score);
switch((int)score/10)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("c\n");break;
case 6:
case 7:
case 8:
printf("b\n");break;
case 9:
case 10:
printf("a\n");break;
}
}
(4)
输入一个整数,输出它的位数,并逆序打出各位数字。
#include<stdio.h>
void f(int n)
{
int a,i=0;
do
{
a=n%10;
printf("%d\t",a);
n/=10;
i++;
}while(n!=0);
printf("\n");
printf("%d\n",i);
}
void main()
{
int n,i;
scanf("%d",&n);
f(n);
}
(5)
输出所有的水仙花数。
#include<stdio.h>
#include<math.h>
void f(int n)
{
int s=0,a,t;
t=n;
do
{
a=n%10;
s+=pow(a,3);
n/=10;
}while(n!=0);
if(s==t)
printf("%d\t",t);
}
void main()
{
int i;
for(i=100;i<1000;i++)
f(i);
printf("\n");
}
(6)
输入一批整数,分别求出偶数与奇数和,然后在输出其差值。
#include<stdio.h>
void main()
{
int s1=0,s2=0,d,n;
do
{
scanf("%d",&n);
if(n%2==0)
s1+=n;
else
s2+=n;
}while((n=getchar())!='\n');
d=s1-s2;
printf("%d\n%d\n%d\n",s1,s2,d);
}
(7)
输入1个正数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。
11111
s=-+-+-+
1
59131721
#include<stdio.h>
#include<math.h>
void main()
{
float x,s,eps;
int i=1;
x=1.0;
s=0.0;
scanf("%f",&eps);
while((1/x)>eps){i++;
s+=pow(-1,i)*(1/x);
x+=4;
}
printf("%f\n",s);
}
(8)
编程输出九九表。
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<10;i++){
for(j=1;j<=i;j++)
printf("%d*%d=%d\t",j,i,i*j);
printf("\n");
}
}
(9)
编写一个函数,利用参数传入一个三位数n,找出101~n间所有满足下列两个条件的数:它
是完全平方数,又有两位数相同,如144,676等。
#include<stdio.h>
#include<math.h>
void f(int n)
{
int k,a,b,c;
k=(int)sqrt(n);
a=n/100;
b=n/10%10;
c=n%10;
if(k*k==n&&(a==b||a==c||b==c))
printf("%d\t",n);
}
void main()
{
int i;
for(i=101;i<1000;i++)
f(i);
printf("\n");
}
(10)
调用函数求费波纳奇数列。
#include<stdio.h>
int f(int n)
{
if(n==1)
return 1;
else if(n==2)
return 1;
else
return f(n-1)+f(n-2);
}
void main()
{
int n,i,k=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%d\t",f(i));
k++;
if(k%5==0)
printf("\n");
}
}
(11)
编写程序,输出一堆数组a中的元素最小值及其下标。
#include<stdio.h>
void main()
{
int a[10],i,j,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
j=0;
for(i=0;i<10;i++)
{
if(a[i]<min){
min=a[i];
j=i;
}
}
printf("%d\t,%d\n",min,j);
}
(12)
矩阵的主对角线之和。
求一个44
#include<stdio.h>
void main()
{
int i,j,a[4][4],s=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
s+=a[i][i];
printf("主对角线之和为%d\n",s);
}。