| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C程序设计谭浩强第五版课后答案 第四章习题答案 -> 正文阅读 |
|
[C++知识库]C程序设计谭浩强第五版课后答案 第四章习题答案 |
1. 什么是算术运算?什么是关系运算?什么是逻辑运算?解析:C语言中这些东西太多了,这里只讲最常见的。 (1)算术运算最常见的有:加减乘除、自增、自减、取模 运算符(优先级):++、--??; *、/、% ;+、- (2)关系运算最常见的是关系运算:大于、小于、等于、大于等于、小于等于、不等于 运算符(优先级):>、<、>=、?<=; ==、 != (3)逻辑运算基本就是再说 “与或非” 三兄弟 运算符(优先级):!;&&、|| &&:逻辑与,要求左右两边同时为真输出才会为真; ||:逻辑或,符号左右两边只需要有一个为真输出便为真; !:逻辑非,讲符号右边的内容在逻辑上取反; 注:这里的 !非,优先等级非常高。 以上所提到的所有操作符优先级排列: ++、-- ;!;剩下的算数运算符;关系运算符;剩下逻辑运算符 2. C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?解析:纯概念题,书上有原话,我简单概述一下。 在C语言中判断真假很简单:“0为假,非0为真”,具体判断又分为两种:“逻辑常量和逻辑变量” 逻辑常量只有两个:“0和1,0为假,1为真”. 逻辑变量,就跟他的名字一样,会变!因此,逻辑变量可以是数字、字母、符号甚至是表达式,判断方式也是0为假,非0为真。 ?3. 写出下面各逻辑表达式的值。设a=3,b=4,c=5。解析:这一题就是上面两题的综合实践版。 (1)a+b>c && b ==c ——>??3+4>5?&& 4==5 ——>7>c?&& 4==5 ——>真 && 假——>假 (2)a||b+c && b-c ——> 3||4+5 && 4-5 ——> 3||9 && -1 ——>真||真&&真 ——>真 (3)!(a>b) && !c||1 ——> !(3>4) && !5||1 ——>?!(假) && !真||真?——>??真 && 假||真?——>真 (4)!(x=a) && (y=b) && 0 ——>假 (5)!(a+b)+c-1 && b+c/2 ——> !(3+4)+5-1 && 4+5/2 ——> !(7)+4 && 6.5?——> 0+4 && 6.5 ——>真 注:逻辑运算符优先级:!> && > ||。0为假,非0为真!非0为真!非0为真!重要的事情说三遍,这里的负数也是真!第五题跟编译器有关系,这里说的优先级都是VS2022的,用其他的编译器答案可能是假。 4. 有3个整数a, b, c,由键盘输入,输出其中最大的数。解析:这个题目比较简单,就是一个很单纯的关系运算,我们可以使用if语句进行操作,放代码!
运算结果: ? 5.从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000 的正数。若不是,则要求重新输入。解析:这一题有歧义,“输出其整数部分”,是说输出四舍五入后得整数还是没有四舍五入得整数?因此我这里给了两个答案,大家按需索取。要注意这里要用到一个<math.h>的函数sqrt。放代码! (1)四舍五入版
运算结果: (2)非四舍五入版:
?运算结果: ?6. 有一个函数,编写程序,输入x的值,输出y相应的值。解析:这题跟第五题是一样的,运用了之前讲到的算数运算、逻辑运算和判断语句,程序的框架就是用if去分割。题目简单而且不严谨,一般数学运算不会总是整数,但是我相信谭浩强是想要用整数去运算的,放代码!
?当x<1时,运算结果: 当1<=x<10时。运算结果: 当x>=10时。运算结果: ? ?7. 有一个函数,有人编写了以下两个程序,请分析它们是否能实现题目要求。不要急于上机运行程序,先分析两个程序的逻辑,画出它们的流程图,分析它们的运行情况。然后,上机运行程序,观察和分析结果。
?(1) ?当 x == 0时y = -1;当x > 0时y = 1;当x<0时y = 0? ? ? ?????? ? (2) ?当 x <?0时y = 0;当x > 0时y = 1;当x = 0时y = -1? ? ? ?8. 给出一百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。 90分以上为’A’,80-89分为’B’,70-79分为’C’ ,60-69分为’D’ ,60分以下为’E’。?解析:这题的关键在于判断语句和关系运算,基本没有难点。
运算结果: 9. 给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为321,应输出123。解析:这题的难点在于如何逆序,可以使用整除和取模来做,取10的模获得的就是个位的数字,整除10获得的就是十位的数字,整除100获得的就是百位的数字,整除1000获得的就是千位的数字,整除10000获得的就是万位的数字。可以用if语句使用判断数据范围的方法来做。
运算结果: ? 10.企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7. 5%;200000<I≤400000时,低于200000元的部分仍按上述办法提成(下同)。高于200000元的部分按5%提成;400000<<I≤600000元时,高于400000元的部分按3%提成;600000<1≤1000000时,高于600000元的部分按1.5%提成;I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。要求:(1) 使用if语句编写程序(2) 使用switch语句编写程序(1)if语句 解析:这一题跟前面的是一样的,就是题目长,用if语句进行分类讨论就可以了,直接放代码!
(2)switch语句 解析:switch语句稍微难一点点,但是!我们看到题目里是以10w递增的,所以这里我们可以用I/10w来做分级,放代码!
11. 输入4个整数,要求按由小到大的顺序输出。解析:这一题和之前一题基本是一致的,就是简单的比较大小重新赋值。
运算结果: 12. 有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,见图。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。解析:这题实际上是一道数学题,圆心的坐标分别是(-2,2)、(2,2)、(-2,-2)、(2,-2),圆的半径是1,所以|1|<x<|3|,|1|<y<|3|,最重要的是满足坐标在圆的范围内,这里可以使用点到点的距离来判定即sqrt(x^2+y^2)<=1。为了将负数转换成正数这里引用fabs函数,#include<math.h>。放代码!
运算结果: ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:05:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |