实验二参考答案
1.输入两个整型数字,输出他们的和。
#include
main()
{
int a, b, sum;
scanf(“%d%d ”, &a, &b);
sum=a+b;
printf(“a+b=%d ”, sum);
}
2.输入两个实型数,输出他们的和与乘积。
#include
main()
{
float a, b, sum, product;
scanf(“%f%f ”, &a, &b);
sum=a+b;
product=a*b;
printf(“a+b=%5.2f, a*b =%5.2f ”, sum, product);
}
3.求方程02=++c bx ax 的根(设042≥-ac b )(其中a ,b ,c 的值由键盘输入)。
#include
#include
main()
{
float a, b, c, dt, x1, x2;
scanf(“%f%f%f ”, &a, &b, &c);
dt=sqrt(b*b-4*a*c);
x1=(-b+dt)/(2*a);
x2=(-b-dt)/(2*a);
printf(“x1=%5.2f, x2 =%5.2f ”, x1, x2);
}
4.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只?(h和f的值由键盘输入,输出鸡和兔的头数)
#include
main()
{
int h, f, x,y;
scanf(“%d%d”, &h, &f);
x=2*h-f/2;
y=f/2-h;
printf(“x=%d, y =%d”, x, y);
}
实验三参考答案
1.输入三个数a、b、c,要求按由小到大的顺序输出。
#include
main()
{
float a,b,c,t;
scanf(“%f,%f,%f”,&a,&b,&c);
if(a>b)
{
t=a; a=b; b=t;
}
if(a>c)
{
t=a; a=c; c=t;
}
if(b>c)
{
t=b; b=c; c=t;
}
printf(“%f,%f,%f”,a,b,c);
}
2.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。
(1)
#include
main()
{
float a,b,c,t;
scanf(“%f,%f,%f”,&a,&b,&c);
if(a>b)
{t=a; a=b; b=t;}
if(a>c)
{t=a; a=c; c=t;}
if(b>c)
{t=b; b=c; c=t;}
if(a+b>c)
{
if(a==b||b==c)
{
if(a==c) printf(“等边三角型”);
else if(c*c==a*a+b*b) printf(“等腰直角三角形”); else printf(“一般等腰三角形”);
}
else if(c*c==a*a+b*b) printf(“一般直角三角形”);
else printf(“一般三角形”);
}
else printf(“不构成三角形”);
}
(2)
#include
main()
{
float a,b,c,t;
scanf(“%f,%f,%f”,&a,&b,&c);
if(a>b)
{t=a; a=b; b=t;}
if(a>c)
{t=a; a=c; c=t;}
if(b>c)
{t=b; b=c; c=t;}
if(a+b<=c) printf(“不构成三角形”);
else if(a==b && b==c && a==c) printf(“等边三角型”);
else if(a==b && c*c==a*a+b*b) printf(“等腰直角三角形”); else if (a==b) printf(“一般等腰三角形”);
else if(c*c==a*a+b*b) printf(“一般直角三角形”); else printf(“一般三角形”);
}
3.编程实现下列函数
x (x<1)
y= 2x-1 (10
≤x)
1<
|3x-11| (10
x)
#include
#include
main()
{
int x,y;
printf("input x=:");
scanf("%d",&x);
if(x<1) y=x;
else if(x<10) y=2*x-1;
else y=abs(3*x-11);
printf("x=%d y=%d\n",x,y);
}
4.编写程序,输入一百分制成绩,对应输出等级A、B、C、D、E,90分以上为A,80分—89分为B,70分—79分为C,60分—69分为D,60分以下为E。
方法一:用if语句
#include
main()
{
float score;
char grade;
scanf("%f", &score);
if(score>100||score<0) printf("\ninput error!");
else
{
if(score>=90) grade='A';
else if(score>=80) grade='B';
else if(score>=70) grade='C';
else if(score>=60) grade='D';
else grade='E';
}
printf("the student grade=%c \n", grade);
}
方法二:用switch语句。
注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。#include
main()
{
float score,
int s;
char grade;
scanf("%f", &score);
s=score/10;
if(s<0||s>10) printf("\ninput error!");
else
{
switch (s)
{
case 10:
case 9: grade ='A'; break;
case 8: grade ='B'; break;
case 7: grade ='C'; break;
case 6: grade ='D'; break;
default: grade ='E';
}
printf("the student grade =%c \n ", ch);
}
}
实验四参考答案
1.编写程序,计算以下级数前n 项之和。
!/...!4/!3/!2/1432n x x x x x sum n ++++++=
#include
void main()
{
int i, n;
float s=1.0, sum=1.0, x;
scanf(“%d, %f ”, &n, &x);
for(i=1; i<=n; i++)
{
s=s*x/i;
sum=sum+s;
}
printf(“sum=%5.2f ”, sum);
}
2.编程打印如下图案(书后习题第3题):
**
****
******
********
**********
************
**************
#include
main( )
{
int i, j, n;
for(i=1; i<=7; i++)
{
for(j=0; j<14-2*i; j++) printf(" ");
for(j=0; j<2*i; j++) printf("*");
printf("\n");
}
}
3.编写程序实现输入整数n,输出如下所示由数字组成的菱形。(图中n=5)
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
#include
main( )
{
int i, j,n;
scanf("%d", &n);
for(i=1; i { for(j=1; j for(j=i; j>0; j--) printf(" %d", j); printf("\n"); } for(i=n; i>0; i--) { for(j=1; j for(j=i; j>0; j--) printf(" %d", j); printf("\n"); } } 4.输出Fibonacci数列第n项。其数列通项公式为F n =F n-1 +F n-2 ,F1=1,F2=1。 方法一: #include main() { float f, f1=1, f2=1; int i, n; scanf("%d", &n); 。 for(i=3; i<=n; i++) { f=f1+f2; f1=f2; f2=f; } printf("%10.0f \n", f ); } 方法二: #include #define NUM 20 void main() { int i; float f[NUM]={1,1}; for(i = 2; i < NUM; i++) f[i] = f[i-2]+f[i-1]; for(i = 0; i < NUM; i++) printf("%10.0f \n", f[i]); } 实验五参考答案 1.编写程序,将1,2,3这三个数赋给数组a,将5,6,7赋给数组b,将两数组对应元素相加的和赋给数组c,输出数组c #include void main() { int a[3]={1,2,3}, b[3]={4,5,6}, c[3]; int i; for(i=0;i<3;i++) { c[i]=a[i]+b[i]; printf("%d",c[i]); } } 2.输入任意10个数,按从大到小或从小到大的顺序输出(“冒泡”排序) #include #define NUM 10 void main () { int a[NUM], i, j, temp, flag; printf ("input %d numbers: \n", NUM);