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

一、选择题

1.有一函数
y={1(x>0)0(1=0)−1(x<0)y = \begin{cases} 1 & (x \gt 0) \\ 0 & (1 = 0) \\ -1 & (x \lt 0) \end{cases} y=⎩⎪⎨⎪⎧​10−1​(x>0)(1=0)(x<0)​

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

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)y=-1;

C.

y=0;
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 的初始值是 0
C. a 和 b 的初始值都是 0
D.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=5
B.3=3
C.3!=5
D.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
B. a>=0| a<= 10
C. a>=10 && a<=0
D. a>=10lla<=0

答:D

解析:a 大于等于 10,表示为 a>=10,a 小于等于 0,表示为 a<=0,使用的是关系运算符。中间的或使用逻辑运算符||,所以答案为选项D。

5.下列叙述中正确的是( )。

A. break 语句只能用于 switch 语句

B.在 switch 语句中必须使用 default

C. break 语句必须与 switch 语句中的 case 配对使用

D.在 switch 语句中,不一定使用 break 语句

答:D

解析:

选项 A 中,break 语句还可以用于循环语句中,表示强制结束循环。

选项 B 中,在 switch 语句中,default 是可选的,可以有,也可以没有。

选项 C 中,break 语句可以用于循环语句,for,while,do-while 等语句中。

选项 D ,正确。

6.在嵌套使用 if 语句时,C 语言规定 else 总是( )。

A.和之前与其具有相同缩进位置的 if 配对

B.和之前与其最近的 if 配对

C.和之前与其最近的且不带 else 的if配对

D.和之前的第一个 if 配对

答:C

解析:

else 和 if 的匹配准则:else 与最靠近它的,而且没有与别的 else 匹配过的 if 相匹配。所以答案选择C。

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

int a=2, b=-1, c=2;
if(a<b)if(b<0) c≈0;else c++;
printf( "%d\n", c);

A.2

B.1

C.0

D.3

答:A

解析:

a 的初始值为 2,b 的初始值为 -1,c 的初始值为 2。外层 if 语句的条件为 a<b ,这里条件不成立,那么直接结束这个 if 语句,执行最后的打印语句,打印 c 的值为 2。

8.在执行以下程序段时,为使输出结果为 t=4,则给 a 和 b 输入的值应满足的条件是( )。

int a, b, s, t;
scanf("%d,%d", &a, &b);
s = 1;t = 1;
if (a > 0)   s = s + 1;
if (a > b)   t = s + t;
else if (a == b)  t = 5;
else t = 2 * s;
printf("t=%d\n", t);

A. a>b

B. 0<a<b

C. 0>a>b

D. a<b<0

答:B

解析:

按照选项B为条件,a 大于 0,那么会执行第一个 if 语句,那么执行 s=s+1 后,s 的值为 2 。而下面的为 t 赋值的语句,我们执行最后 else 中的就可以让 t 的值为 4 ,就需要让前面的 if 语句以及 else if 语句的条件都不成立,那么 a < b 即可。

二、填空题

1.执行以下程序段,若输入32,则输出( );若输入58,则输出( )。

int a;
scanf("%d", &a);
if(a>50) printf("%d", a);
if(a>40) printf("%d", a);
if(a>30) printf("%d", a);

答:32,585858

解析:

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

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

2.表示条件10<x<100或者x<0的C语言表达式是( )。

答:(x>10&&x<100)||x<0

解析:x 大于 10 并且小于 100。可以表示成 x>10 ,x<100 ,因为是并且的关系,所以中间使用逻辑运算符 与&& 来链接。和 x<0 的关系是或者,那么使用 或|| 来链接。

3.输出偶数。输入一个正整数 n ,再输入 n 个整数,输出其中的偶数。要求相邻偶数中间用一个空格分开,行末不得有多余空格。请填空。

char ch;
int first = 1, k, n, x;
scanf("%d", &n);
for (k = 1; k <= n; k++){scanf("%d", &x);if(__________){if(__________){printf("%d", x);__________;}else {__________;}}
}

答:

x % 2 == 0

first == 1

first = 0;

printf(" %d", x);

4.以下程序段的运行结果是( )。

int k=16;
switch(k%3) {case 0: print("zero");case 1: printf("one"); case 2: printt("two*);
}

答:onetwo

解析:siwtch 作用的数据是:k%3,结果为 1 。那么会匹配 case 1,打印 one ,没有 break 语句,后面的 case 2 的内容直接穿透执行,继续打印 two 。

5.找出 3 个整数中最大的数。输入3个整数,输出其中最大的数。请填空。

int a, b, c, max;
scanf("%d %d %d", &a, &b, &c);
if(a>b){if(a>c)   __________;else __________;
}else {if(__________)   max=b;else __________;
}
printf("The max is %d\n", max);

答:

max = a;

max = c;

b > c

max = c;

三、程序设计题

题目1:比较大小:输入 3 个整数,按从小到大的顺序输出。试编写相应程序。

解:

方法一答案代码:

#include <stdio.h>
int main()
{// (课后习题3.3.1)/*比较大小:输入 3 个整数,按从小到大的顺序输出。*/int a, b, c;printf("input a,b,c:");scanf("%d%d%d", &a, &b, &c);if (a > b){if (b > c){printf("%d <= %d <= %d\n", c, b, a);}else{if (a > c)printf("%d <= %d <= %d\n", b, c, a);elseprintf("%d <= %d <= %d\n", b, a, c);}}else{if (a > c){printf("%d <= %d <= %d\n", c, a, b);}else{if (b < c)printf("%d <= %d <= %d\n", a, b, c);elseprintf("%d <= %d <= %d\n", a, c, b);}}return 0;
}

运行结果:

方法二答案代码:

#include <stdio.h>
int main()
{// (课后习题3.3.1)/*比较大小:输入 3 个整数,按从小到大的顺序输出。*/int a, b, c;int temp;printf("input a,b,c:");scanf("%d%d%d", &a, &b, &c);// 先比较a和b,让a中存储比较小的,b中存储较大的。if (a > b){ // 所以判断,如果a大于b,就交换a和b的值temp = a;a = b;b = temp;}// 然后比较a和c,如果a大于c,就交换a和c的值,此操作结束后,a存储3个数中最小值。if (a > c){temp = a;a = c;c = temp;}// 最后,比较b和cif (b > c){temp = b;b = c;c = temp;}// 按照a,b,c的顺序打印即可。printf("%d <= %d <= %d\n", a, b, c);return 0;
}

题目2:高速公路超速处罚:按照规定,在高速公路上行驶的机动车,超出本车道限速的 10% 则处 200 元罚款; 超出 50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。

答:

答案代码:

#include <stdio.h>
int main()
{// (课后习题3.3.2)/*高速公路超速处罚:按照规定,在高速公路上行驶的机动车,超出本车道限速的 10% 则处 200 元罚款; 超出 50%,就要吊销驾驶证。*/double n = 120, x;printf("input x(为车辆实际速度):");scanf("%lf", &x);if (x >= n * 1.1 && x < n * 1.5)printf("您已超速10%%,处罚款200元 \n");else if (x >= n * 1.5)printf("您已超速50%%,已吊销驾驶证 \n");elseprintf("您没有超速\n");return 0;
}

运行结果:

题目3:出租车计价:某城市普通出租车收费标准如下:起步里程为 3公里,起步费 10 元; 超过起步里程后 10 公里内,每公里 2 元; 超过 10 公里以上的部分加收 50% 的空驶补贴费,即每公里 3 元; 营运过程中,因路阻及乘客要求临时停车的,按每 5 分钟 2 元计收(不足 5 分钟则不收费)。运价计费尾数四舍五入,保留到元。编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客应支付的车费(元)。

答:

答案代码:

#include <stdio.h>
int main()
{// (课后习题3.3.3)/*出租车计价:某城市普通出租车收费标准如下:起步里程为 3公里,起步费 10 元;超过起步里程后 10 公里内,每公里 2 元;超过 10 公里以上的部分加收 50% 的空驶补贴费,即每公里 3 元;营运过程中,因路阻及乘客要求临时停车的,按每 5 分钟 2 元计收(不足 5 分钟则不收费)。运价计费尾数四舍五入,保留到元。编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客应支付的车费(元)。*/double x, y=0.0;int t; //等待时间printf("输入行驶公里x(x>0),临时停车时间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 <stdio.h>
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 <= n; i++){scanf("%d", &score);printf("输入百分制成绩 %d 对应的五分制成绩为:", score);if (score >= 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=s(s−a)(s−b)(s−c)area=\sqrt{s(s-a)(s-b)(s-c)} area=s(s−a)(s−b)(s−c)​

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

答:

答案代码:

#include <stdio.h>
#include <math.h>
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);}elseprintf("Impossible \n");return 0;
}

运行结果:

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

  1. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案

    浙大版<C语言程序设计>第四版(何钦铭颜晖) 第4章 循环结构 课后习题答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解, ...

  2. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第11章 指针进阶 课后习题答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题. 一.选择题 1.下面程序段的运行结果是( ). int x[5] = { ...

  3. 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第一章初识Python课后习题答案【强烈推荐】

    点个

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

    浙大版<C语言程序设计>第四版(何钦铭颜晖) 第9章 结构 课后习题答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可 ...

  5. 何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针

    1.第8章 指针[练习8-1]如果有定义"int m, n = 5, *p = &m;"与m = n等价的语句是 B .A m = *p; B. *p = *&n; ...

  6. 何钦铭c语言程序设计第八章,C语言程序设计(第3版)何钦铭颜晖第8章指针

    <C语言程序设计(第3版)何钦铭颜晖第8章指针>由会员分享,可在线阅读,更多相关<C语言程序设计(第3版)何钦铭颜晖第8章指针(16页珍藏版)>请在人人文库网上搜索. 1.第8 ...

  7. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第8章 指针 课后习题答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题. 一.选择题 1.下列语句定义 px 为指向 int 类型变量的指针,正确 ...

  8. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第7章 数组 课后习题答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题. 一.选择题 1.假定 int 类型变量占用两个字节,则以下定义的数组 a ...

  9. 浙大版《C语言程序设计》第四版(何钦铭颜晖) 第12章 文件 课后习题答案

    你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题. 一.选择题 1.以下语句的输出结果是( ). printf(" ...

最新文章

  1. Excel 2010单元格中设置表头
  2. Pixhawk飞控源码目录结构及编译流程分析
  3. java magnolia,java – Magnolia富文本字段
  4. Python全栈开发之11、进程和线程
  5. 【转载】 深入浅出Windows的Dll文件
  6. python最新版安装图集_[python] plist图集拆分小图
  7. ArcGis10.2详细安装步骤
  8. Android studio 三大模拟器比较
  9. 使用Zxing在Java中生成QR码
  10. mysql二级考试范围_计算机二级MySQL考试内容大纲
  11. 一曲罢已,愁若梨花,乱红释怀,浮躁尽然。。。。。。
  12. Redis应用场景-排行榜
  13. python豆瓣电影top250爬虫课程设计_[教程]图文:爬虫爬取豆瓣电影top250
  14. CVE-2017-7494紧急预警:Samba蠕虫级提权漏洞,攻击代码已在网上扩散
  15. 学习java的第十三天,回顾方法的定义及调用,以及面向对象构造器、类与对象的关系等基础
  16. pyton基础语法学习笔记一
  17. 江苏大学毕业设计TEX排版(一)
  18. Element ui中el-table表格如何实现加一列序号(从1开始排)
  19. 电影票房之数据分析(Hive)-- 第2关
  20. 【CCM-计传阅读树01】论文《探测新闻的公共影响:基于话题感知的格兰杰检验方法》

热门文章

  1. 【动态规划】牛客NC20035打鼹鼠
  2. 微软Win11应用商店功能增强:允许用户备份/修复游戏
  3. 如何把Tasking的工程转到Hightec上
  4. 讨论,您如何阅读论文?
  5. 搜索引擎的原理,架构与细节
  6. 2020-10-16FATFS 0.12 ffconf.h配置
  7. 从尾到头打印一个链表
  8. 新赛题上线!2021 CCF大数据与计算智能大赛全面开赛!
  9. 我们都进入了一个误区,其实面试官 “ 回去等通知 ” 不等于没戏....
  10. android otg u盘 视频教程,Android OTG U盘文件读写