算术运算符

本文详细解释了C语言中运算符的优先级规则,通过代码实例演示了正负号、算术运算符的优先级,并探讨了字符类型在算术运算中的处理。同时,还涉及了C++代码片段,展示了如何正确处理运算顺序以得到预期结果,以及等额本息还款的计算方法。
摘要由CSDN通过智能技术生成

如果正、负号运算符的优先级低于加、减号运算符,那么 -3 + 5 的值应该是多少?

答:-8,因为C语言规定优先级高的先进行运算,因此表达式是先计算 3 + 5 的和,再取负号。当然,这样的结果明显不符合逻辑,所以C语言规定正、负号运算符的优先级是高于双目的算术运算符的优先级。

请问下边程序会显示什么内容?

#include <stdio.h>

int main()

{

 int a = 2, b = 1;

 printf("%d\n", a / 'b');

return 0;        

}

答:0,因为字符 'b' 对应的 ASCII 值为 98,a / 'b' == 2 / 98 == 0

 如果不上机实验,你知道下边代码会输出什么吗?

#include <stdio.h>

int main()

{

 int a;

(a = 2) + 3 * 4;

printf("a = %d\n", a);

return 0;

}

答:a = 2版权属于:
}3 o`5!2D]{u1~bZtL_9Ic)Y>r
如果不加小括号,那么变量 a 的值最终应该是 14 才对,因为赋值运算符的优先级要低于算术运算符,所以先计算,后赋值。[.@v3
但这里我们使用了优先级最高的小括号将赋值运算的过程括起来,因此先将变量 a 赋值为 2,再进行计算(计算结果不再赋值给变量 a)。

请写出下边表达式的值(如果结果为浮点数,请保留六位小数):

答:Powered by 
A. 5 / 3 = 1  // 整型除以整型,结果为整型,直接舍弃小数8g4 yb3

B. 1 / 0 出错  // 除数不能为 0ji' =y3[

C. 1.2 + 3 = 4.200000  // 浮点型加整型,编译器会自动将“精度较小”的类型先转换为“精度较大”的类型,再进行运算,所以结果为浮点型 =>]Q,+

D. 1.2 * 0 = 0.000000  // 同上8R9dQ>~P

E. 6.0 / 2 = 3.000000  // 同上)j-dJ

F. 10 / 6.0 = 1.666667  // 结果为无限循环小数,小数点后第六位四舍五入[b|W.FVp

G. 3 / 5 = 0  // 同 A

下边代码中存在两处错误,请指出:

#include <stdio.h>

int main()
{
        int a = (5 + 1.2) % 2;
        printf("%d\n", a);
}

答:来自:
1. 求余运算符两边要求均为整型,5 + 1.2 的结果为浮点型;tnvNY)`W
2. printf() 函数后边的分号写成了中文的分号(;),大部分新手经常遇到这样错把中文符号当代码的问题,请重视!

下边代码是实现摄氏度转换为华氏度,公式没错,但结果却并不正确(输入 32 摄氏度,转换后正确的结果应该是 89.6 华氏度),请修改。

#include <stdio.h>

int main()
{
        float fah, cel;

        printf("请输入摄氏度:");
        scanf("%f", &cel);

        fah = 9 / 5 * cel + 32;
        printf("转换为华摄度是:%.2f\n", fah);

        return 0;
}

答:虽然公式是正确的,但代码中忽视了 9 / 5 的结果会舍弃小数,等于 1,所以得到的答案偏差比较大。W&?FMq[LtK
应该这么改:

#include <stdio.h>

int main()
{
        float fah, cel;

        printf("请输入摄氏度:");
        scanf("%f", &cel);

        fah = 9.0 / 5.0 * cel + 32;
        printf("转换为华摄度是:%.2f\n", fah);

        return 0;
}

“买房难,难于上青天……”(算了,不吐槽了o(╯□╰)o)

 HVesb^w
new,R.S}6?NFfU5&b-O+@o
请根据下边的提示,写一个等额本息的还款计算器。swS;+5=z
S[kf:p!]R2*z&$bu(YUvBV.O`=XQ
小知识:

等额本息还款法,也称定期付息,即借款人每月按相等的金额偿还贷款本息,其中每月贷款利息按月初剩余贷款本金计算并逐月结清。
  • 月均还款 = 贷款本金 * (月利率 * (1 + 月利率)^还款月数) / ((1 + 月利率)^还款月数 - 1)
  • 总利息 = 还款月数 * 月均还款 - 贷款本金
  • 贷款本金 = 房款总额 * 按揭成数


程序要求用户输入房屋单价、面积、按揭成数、按揭年数以及基准利率,然后计算并显示等额本息还款法需要偿还的房款总额、首期付款、贷款总额、支付利息以及每月需要还款多少各项数据。)?jR[
-cwheGL4n>)&x~A$0#r9F
程序实现如下:

有 10000 元,想存 5 年,分别求出以下三种方法存得的本息和:TX28k%Ip
 

  • 一次性定期存 5 年;
  • 先存 3 年定期,到期后本息再存 2 年定期;
  • 存 1 年定期,到期后本息再存 1 年定期,连续存 5 次。


附:存款利率表

注:r 为年利率,n 为存款年数,则计算本息和的公式如下0k6V?s!vp$

  • 1 年本息和的计算公式:P = 10000 * (1 + r)
  • n 年本息和的计算公式:P = 10000 * (1 + r * n)
  • n 次 1年的本息和的计算公式:P = 10000 * (1 + r)^n

Powered by 

来自

BLXAq&<

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倦504

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值