C语言编程习题及答案

  • 格式:doc
  • 大小:75.00 KB
  • 文档页数:13

1-1. 编写求圆的面积、周长的程序。圆的半径从键盘输入。

#include

void main()

{

float r,c,s;

scanf("%f",&r);

c=2*3.1415926*r;

s=3.1415926*r*r;

printf("周长为:%f,面积为:%f\n",c,s);

}

1-2.输入三个正数,计算并输出由此构成的立方体的体积。

#include

void main()

{

float a,b,c,v;

scanf("%f,%f,%f",&a,&b,&c);

v=a*b*c;

printf("体积为:%f\n", v);

}

1-3.输入华氏温度h,计算并输出摄氏温度s. ( 转换公式:s=5 / 9(h - 30) )。

#include

void main()

{

float h,s;

printf("请输入华氏温度:");

scanf("%f",&h);

s=5.0/9.0*(h-32);

printf(" 摄氏温度为:%f\n", s); }

1-4.用*号输出字母C的图案。

#include

void main()

{

printf(" **\n");

printf(" *\n");

printf("*\n");

printf("*\n");

printf(" *\n");

printf(" **\n");

}

2-1.输入三个正数a,b,c,如果能构成三角形,计算并输出该三角形的面积。

面积公式: (其中:p=(a+b+c)/2)

#include

#include

#define p(a,b,c,x) sqrt(x*(x-b)*(x-c))

void main()

{

double a,b,c,x;

scanf("%lf,%lf,%lf",&a,&b,&c);

if(a<0||b<0||c<0||a+b<=c||a+c<=b||b+c<=a)

printf("不能构成三角形");

else

{

x=(a+b+c)/2;

printf("能构成三角形,面积=%lf\n",p(a,b,c,x));

}

}

2-2.分段函数。

#include

#include

void main()

{

int x,y;

scanf("%d",&x);

if(x<0)

y=abs(x)-2;

else if(x==0)

y=0;

else

y=x*(x+1);

printf("%d\n",y);

}

2-3分段函数

#include

#include

void main()

{

int x;

double y;

scanf("%d",&x);

if(x<0)

y=x*x+5*x-1;

else if(x==0)

y=0;

else

y=x*x-sqrt(x)+2;

printf("%lf\n",y);

}

2-4 运费。

#include

void main()

{

double w,s;

scanf("%lf,%lf",&w,&s);

if(s<100)

printf("%lf",20*w*s);

else if(s>=100 && s<200)

printf("%lf",17.5*w*s);

else

printf("%lf",15*w*s);

}

2-5 学习成绩。

#include

void main()

{

double grade;

scanf("%lf",&grade);

if( grade>=90)

printf("A\n",grade);

else if( grade>=60 && grade <=89)

printf("B\n",grade);

else

printf("C\n",grade);

}

3-1 闰年。

#include

void main()

{

int x;

for(x=1900;x<=2010;x++)

if((x%4==0 && x%100!=0)||(x%400==0))

printf("%5d",x); }

3-2 输出100以内的个位数为6、且能被3整除的所有数

#include

void main()

{

int n;

for(n=0;n<=100;n++)

if(n%3==0&&n%10==6)

printf("%d\t",n);

}

3-3 求值

#include

void main()

{

double a,n,c=0;

scanf("%lf",&n);

for(a=1;a<=n;a++)

c=c+a*a/(a+1);

printf("%lf\n",c);

}

3-4 求:m= 1/1! + 1/2! + 1/3! + … 直到最后一项小于10-6。

#include

void main()

{

int i=1,m=1;

double e=1;

while(1.0/m>=1.0e-6)

{

m=m*i;

e=e+1.0/m;

i++;

}

printf("%lf\n",e);

}

3-5 写一个函数,求一个字符串的长度,在main函数中输入。

#include

int StrLen(char a[])

{

int i;

for(i=0;a[i]!='\0';i++);

return i;

}

void main()

{

char a[100];

printf("请输入一串字符:");

scanf("%s",a);

printf("字符串的长度为:%d\n",StrLen(a));

}

3-6 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13, …求出这个数列的前20项之和。

#include

void main()

{

int i,t,n=20;

float a=2,b=1,s=0;

for(i=1;i<=n;i++) {

s=s+a/b;

t=a;

a=a+b;

b=t;

}

printf("sum=%9.6f\n",s);

}

4-1 写出排序函数,要求将整数从大到小递减排列。在主函数中产生20个整数存入数组,然后调用排序函数对数组元素排序,并在主函数中输出排序结果。

#include

#define N 20

void sort (int a[])

{

int i,j,t;

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

void main()

{

int a[N],i;

for(i=0;i

scanf("%d",&a[i]);

sort(a);

for(i=0;i

printf("%5d",a[i]);

printf("\n");

}

4-2字符从小到大排序

#include

#include

#define N 20

int m[N];

char a[N][10];

int Input()

{