其他题目详见:浙大版《C语言程序设计(第3版)》题目集
习题3-1 比较大小 (10 分)
代码示例:
#include <stdio.h>
int main()
{
int x, y, z, t;
scanf("%d %d %d", &x, &y, &z);
if (x > y)
{
t = y; y = x; x = t;
}
else if (x > z)
{
t = z; z = x; x = t;
}
else if (y > z)
{
t = z; z = y; y = t;
}
printf("%d->%d->%d", x, y, z);
return 0;
习题3-2 高速公路超速处罚 (15 分)
代码示例:
#include<stdio.h>
int main()
{
int s,l;
scanf("%d %d",&s,&l);
double m = 1.0*(s-l)/l*100;
if(m < 10)
printf("OK");
else if(m >= 10 && m < 50)
printf("Exceed %.0lf%%. Ticket 200",m);
else
printf("Exceed %.0lf%%. License Revoked",m);
return 0;
}
习题3-3 出租车计价 (15 分)
代码示例:
#include<stdio.h>
#include<math.h>
int main()
{
double s,p,p2;
int m;
scanf("%lf %d",&s,&m);
if(m < 5)
p2 = 0;
else
p2 = m / 5 *2;
if(s <= 3)
p = 10 + p2;
else if(s <= 10)
p = 10 + (s-3)*2 + p2;
else
p = 10 + 7*2 + (s - 10)*3 + p2;
printf("%.0f",round(p)); \\round函数四舍五入返回值类型为浮点
return 0;
}
习题3-4 统计学生成绩 (15 分)
代码示例:
#include<stdio.h>
int main()
{
int i,n,score;
int a,b,c,d,e;
a = b = c = d = e = 0;
scanf("%d",&n);
for(i = 0 ; i < n ; i++)
{
scanf("%d",&score);
if(score >= 90) a++;
if(score < 90 && score >= 80) b++;
if(score < 80 && score >= 70) c++;
if(score < 70 && score >= 60) d++;
if(score < 60) e++;
}
printf("%d %d %d %d %d",a,b,c,d,e);
return 0;
}
习题3-5 三角形判断 (15 分)
代码示例:
#include <stdio.h>
#include <math.h>
/* 三角形面积(海伦公式) s = sqrt(s * (s - a) * (s - b) * (s - c)) */
double L(double x1, double y1, double x2, double y2)
{
return sqrt(pow(x1-x2,2) + pow(y1-y2,2));
}
int main()
{
double x1, y1, x2, y2, x3, y3, a, b, c, s;
scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &x3, &y3);
a = L(x1, y1, x2, y2);
b = L(x1, y1, x3, y3);
c = L(x2, y2, x3, y3);
s = (a + b + c) / 2;
if (a + b > c && a + c > b && b + c > a)
printf("L = %.2lf, A = %.2lf", a + b + c, sqrt(s *(s - a) *(s - b) *(s - c)));
else
printf("Impossible");
return 0;
}