浙大版《C语言程序设计》第四版(何钦铭颜晖) 第3章 分支结构 课后习题答案

您所在的位置:网站首页 c语言程序设计第四版何钦铭课后题答案选择填空 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第3章 分支结构 课后习题答案

浙大版《C语言程序设计》第四版(何钦铭颜晖) 第3章 分支结构 课后习题答案

2023-09-01 04:33| 来源: 网络整理| 查看: 265

你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。

一、选择题

1.有一函数

$$ y = \begin{cases} 1 & (x \gt 0) \\ 0 & (1 = 0) \\ -1 & (x \lt 0) \end{cases} $$

以下程序段中错误的是( )。

A.

if(x>0)y=1; else if(x==0)y≈0; else y=-1;

B.

y=0; if(x>0)y=1; else if(x=0); if(x>0)y=1; else y=-1;

D.

if(x>=0) if(x>0)y=1; else y=0; else y=-1;

答:C

解析:根据函数, x 大于 0 ,y 的值为 1 。x 等于 0,y 的值为 0,x 小于 0,y 的值为 -1。选项 A,B,D 代码均正确。

2.对于变量定义: inta, b=0; 下列叙述中正确的是( )。A. a 的初始值是 0,b 的初始值不确定B. a 的初始值不确定,b 的初始值是 0C. a 和 b 的初始值都是 0D.a 和 b 的初始值都不确定

答:B

解析:定义变量时,没有给a赋值,所以 a 的初始值不确定。b 的值赋值为 0 。

3.下列程序段的输出结果是( )。

int a=3,b=5; if(a=b)printf("%d=%d",a,b); else printf( "%d!=%d",a,b);

A.5=5B.3=3C.3!=5D.5!=3

答:A

解析:a 的初始值为 3 ,b 的值为 5 。执行 if 语句的条件,为赋值语句。赋值语句作为判断条件是什么意思呢?它并不是以是否赋值成功作为 true 和 false 的判断机制,而是看赋值的值是多少,如果为 0 自动就作为 false了。这里赋值为 5 。执行 if 里的语句。所以答案为选项A。

4.能正确表示逻辑关系“a≥10或a≤0"的C语言表达式是( )。

A. a>=10 or a=0| a=10 && a=10lla=10,a 小于等于 0,表示为 a30) printf("%d", a);

答:32,585858

解析:

如果输入 32,那么 a 的值为 32,前面两个 if 语句条件不成立,最后一个成立,打印 32。

如果输入 58,那么 a 的值为 58,3 个 if 语句条件都成立,打印了 3 次 a 的值,所以 585858。

2.表示条件100),临时停车时间t:"); scanf("%lf%d", &x, &t); if (x >= 3.0) { y += 10.0; if (x >= 13.0) //超过起步里程后10公里 y += 10.0 * 2.0 + (x - 13.0) * 3.0; else //大于3公里但不超过13公里 y += (x - 3.0) * 2.0; } else //不足三公里的按照起步价收费 y = 10.0; // 加上等待时间 if (t >= 5) y += t / 5.0 * 2; printf("金额 %f 元\n", y); y = (int)(y + 0.5); printf("乘客应支付的车费为:%.2lf 元\n", y); return 0; }

运行结果:

题目4:统计学生成绩:输入一个正整数 n ,再输入 n 个学生的成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:大于或等于 90 分为 A ,小于 90 分且大于或等于 80 分为 B,小于 80 分且大于或等于 70 为 C,小于 70 分且大于或等于 60 为D,小于 60 分为E。试编写相应程序。

答:

答案代码:

#include int main() { // (课后习题3.3.4) /* 统计学生成绩:输入一个正整数 n ,再输入n个学生的成绩,统计五分制成绩的分布。 百分制成绩到五分制成绩的转换规则: 大于或等于 90 分为 A , 小于 90 分且大于或等于 80 分为 B, 小于 80 分且大于或等于 70 为 C, 小于 70 分且大于或等于 60 为D, 小于 60 分为E。 试编写相应程序。 */ int score, n, i, A = 0, B = 0, C = 0, D = 0, E = 0; printf("input n:"); scanf("%d", &n); printf("输入 %d 个score(1~100):\n", n); for (i = 1; i = 90) { putchar('A'); putchar('\n'); A++; } else if (score >= 80) { putchar('B'); putchar('\n'); B++; } else if (score >= 70) { putchar('C'); putchar('\n'); C++; } else if (score >= 60) { putchar('D'); putchar('\n'); D++; } else { putchar('E'); putchar('\n'); E++; } } printf("等级占比:A=%d, B=%d, C=%d, D=%d, E=%d\n", A, B, C, D, E); return 0; }

运行结果:

题目5:三角形判断:输入平面上任意三个点的坐标(x1, y1)、(x2, y2)、(x3, y3),检验它们能否构成三角形。如果这 3 个点能构成一个三角形,输出周长和面积(保留 2 位小数); 否则,输出 “Impossible”。试编写相应程序。

提示:在一个三角形中,任意两边之和大于第三边。三角形面积计算公式如下:

$$ area=\sqrt{s(s-a)(s-b)(s-c)} $$

,其中 s = (a+b+c)/2。

答:

答案代码:

#include #include int main() { // (课后习题3.3.5) /* 三角形判断:输入平面上任意三个点的坐标(x1, y1)、(x2, y2)、(x3, y3), 检验它们能否构成三角形。 如果这 3 个点能构成一个三角形,输出周长和面积(保留 2 位小数); 否则,输出 “Impossible”。 */ double x1, y1, x2, y2, x3, y3, S, C, area, a, b, c; printf("输入三个点的坐标(x1,y1),(x2,y2),(x3,y3):"); scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3); a = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); b = sqrt(pow(x3 - x2, 2) + pow(y3 - y2, 2)); c = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2)); if ((a + b > c) && (a + c > b) && (b + c > a) && (a - b < c) && (a - c < b) && (b - c < a)) { C = a + b + c; S = (a + b + c) / 2.0; area = sqrt(S * (S - a) * (S - b) * (S - c)); printf("此三角形的周长为 %.2lf, 面积为 %.2lf \n", C, area); } else printf("Impossible \n"); return 0; }

运行结果:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3