【面试笔试避坑指南】一

本文是针对编程笔试中的常见易错点进行讲解,涵盖了字节序的理解、inline函数的作用、宏定义的使用、逗号表达式的解析以及位运算和浮点数格式化的示例。文章通过具体例子帮助读者理解大端字节序和小端字节序的区别,强调inline是编译器建议而非强制行为,并介绍了如何统计二进制中1的个数。此外,还讨论了浮点数的格式化输出规则。
摘要由CSDN通过智能技术生成

从这篇文章开始 进行笔试的训练环节,我会在 本专栏详细介绍笔试的易错点,帮助大家精准避坑。

1.有如下一段代码(unit16_t为2字节无符号整数,unit8_t位1字节无符号整数);

请问x.z.n在大字节序和小字节序机器上的值分别为多少()

在这里插入图片描述
A. 0x34, 0x12
B. 0x12, 0x34
C. 0x1234, 0x1234
D. 0x1234, 0
E. 0,0x1234

正确答案 : A
解析 :
在结构体中,先声明的是 低地址,然后是 高地址。所以 m 是低地址, n 是高地址。(栈生长方向是自上向下,先声明入栈,则 先高地址,后地址,结构体特殊 )

大端字节序 :较高有效字节位于内存的较低地址,而较低有效字节位于较高地址。 小端字节序:较低有效字节位于内存的较低地址,而较高有效字节位于较高地址。

大多数计算机系统中 ,最左边的地址被认为是最低地址(较小的地址值),而最右边的地址被认为是最高地址(较大的地址值)。
在这里插入图片描述
对于 0x1234 : 0x12:高位 , 0x34:低位 。 所以: 小端模式

                m   n 
                34   12 

大端

				m   n
               12    34 

2 . 下面关于inline说法正确的是()

A . 关键字 inline 是强制行为
B . 关键字 inline 只是一种编译器建议
C . inline 不能避免函数调用时的参数传递带来的栈开销
D . inline 在运行时生效

正确答案 : B
解析 :
要先了解 inline 的基本用法:

  • inline 是一个关键字,用于向编译器提供函数内联展开的建议。使用 inline 关键字声明时,编译器会尝试将函数的调用处替换为函数体。
  • 内联函数的目的是减少函数调用的开销,提高程序的执行效率。通过内联展开,可以避免函数调用的额外开销,例如函数栈帧的创建和销毁、参数的拷贝等操作。
  • 注意:inline 关键字只是向编译器提供了内联展开的建议,而不是强制要求。编译器可以选择忽略 inline 关键字,尤其对于较大或复杂的函数,可能不会进行内联展开。

3 . 下列定义不正确的是( )

A . #define PI 3.141592
B . #define S345
C . int max(x,y); int x,y; { }
D . static char c;

正确答案 : C
解析:

#define S345 是空宏定义。 空宏定义是指在C语言中使用#define预处理指令创建一个空的宏。它是一种特殊的宏,它没有任何替换文本,相当于将宏名称替换为空字符串。空宏定义通常用于创建一个标识符,起到注释的作用或者在编译时启用或禁用一些代码片段。


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

在这里插入图片描述
A . 5
B . 6
C . 7
D . 8

正确答案 : C
解析:
由于赋值运算符的优先级高于逗号表达式,因此 pAd = ++sum, pAd++, ++pad; 等价于 (pAd = ++sum), pAd++, ++pad; sum 先自增然后赋值给 pAd,pAd 为 6,然后 pAd 自增变为 7。 逗号表达式的结果为最后一个表达式的值,因此正确答案为 C。


5 . 下列 main ()函数执行后的结果是()

在这里插入图片描述
A . 17
B . 15
C . 16
D . 1

正确答案 : C
解析:

& 位运算符将二进制数据进行按位 与 操作。
统计二进制数中 “ 1 ” 的个数: x&(x-1)
统计二进制数中 “ 0 ” 的个数: x|(x+1)


6. 下列程序段的输出结果为( )

在这里插入图片描述
A . 0085.6%%
B . 0085.7%
C . 0085.6%
D . .857

正确答案 : B
解析:

6.1f其中6 指一共保留6位有效数字,1表示小数点后面有一位数字 表示保留一位小数
%写在 %d %f %s 前面的,都是占位符,% 写在后面的,就是%。因此 整数部分4位有效数字(小数点本身也占一位)

原数字 85.67,那么 %06.1%f % 表示整数部分 0085 小数部分 .7%

一般默认 取有效数字时 四舍五入,不足的补零


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

糖果罐子♡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值