【C语言】牛客面试常考选择题精讲(每日小细节33)

文章涵盖了编程基础的多个方面,包括printf函数的打印格式,不同进制间的转换,数组名的含义,递归的理解以及内存对齐的重要性。其中,讲解了如何将十进制转换为其他进制,数组名在内存中的表示,递归的次数计算,并讨论了内存对齐对于代码可移植性和效率的影响。
摘要由CSDN通过智能技术生成

目录

1.printf的打印格式和十进制与常见进制转化 

2.数组名的意义和类型

 3.十六进制的加减法

 4.理解递归次数

5.内存对齐


 

1.printf的打印格式和十进制与常见进制转化 

 选C

 常见进制有

二进制:101010b(b常作为后缀出现表示该数字为二进制,b不代表数值)

八进制:012(0作为八进制前缀,不代表数值)

十进制:456(不加任何前后缀)

十六进制:0x22/22h(0x前缀,h后缀,不代表任何数值)

那么改题目中的m就是一个八进制数字,n是十进制数

常见的printf格式有

那题目中的%o就是八进制打印,所以m直接打印,n需要十进制->八进制

十进制转换成2/8/16进制采用余数倒置

 

所以123转换成八进制就是173

2.数组名的意义和类型

 

选C 

 3.十六进制的加减法

选A  

 第一种思路就是列出关系式求解

 还有就是可以发现他给的地址都是行=列

 4.理解递归次数

选A

这个题很明显就是找规律,因为数字很大就先写出几个观察结果

 

5.内存对齐

——为什要结构体要内存对齐?

不是所有硬件平台都能访问任意地址的数据

某些硬件平台只能在某些地址访问某些特定类型的数据

为了提高代码的可移植性和提高cpu访问内存的效率

——如果想让结构体按照任意类型对齐怎么搞?

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值