【2.9】初识指针(作业讲解)

本文介绍了C/C++编程中的几个经典练习题目,包括计算整数补码中1的个数、比较两个数二进制中不同位的个数、字符串逆序、递归计算数字各个位置的和以及递归实现n的k次方。通过这些练习,深入理解位操作、递归及数值运算的细节。
摘要由CSDN通过智能技术生成

目录

1.练习题:

第一题:

第二题:

2.编程题

2.1 求整数补码中1的个数

2.2 比较两个数二进制中不同位的个数

2.3 字符串逆序

2.4 计算数字各个位置的和(递归实现)

2.5 递归实现n的k次方


1.练习题:

第一题:

  • 因为sizeof返回的是一个无符号数,sizeof(i)就是无符号的4
  • i--虽然为-1,但是会发生算术转换,转换成两个无符号数相减
  • -1内存的补码是全1,那么将它看成一个无符号数是一个很大的数字
  • 所以打印结果:>

第二题:

讲解:

  • 这里赋值(=)比逗号表达式的优先级高,而且没有加括号
  • 所以b = ++c先算,b=7,然后计算后的表达式
  • 所以结果是:9 23 8

 

2.编程题

2.1 求整数补码中1的个数

  • n&n-1:会让n最右边的1消失

 

  • 只要n = n & n-1 这个动作执行几次,就知道n中有多少个 1

代码实现:

 

2.2 比较两个数二进制中不同位的个数

2.3 字符串逆序

2.4 计算数字各个位置的和(递归实现)

例如:输入1234,返回1+2+3+4 = 10 

2.5 递归实现n的k次方

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喵星人监护人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值