【面试笔试避坑指南】一

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

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

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

【面试笔试避坑指南】一_第1张图片
A. 0x34, 0x12
B. 0x12, 0x34
C. 0x1234, 0x1234
D. 0x1234, 0
E. 0,0x1234

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

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

大多数计算机系统中 ,最左边的地址被认为是最低地址(较小的地址值),而最右边的地址被认为是最高地址(较大的地址值)。
【面试笔试避坑指南】一_第2张图片
对于 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 . 以下程序的运行结果是()

【面试笔试避坑指南】一_第3张图片
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 ()函数执行后的结果是()

【面试笔试避坑指南】一_第4张图片
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%

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


总结

你可能感兴趣的:(笔试避坑,面试,职场和发展,编程语言,c语言,笔试)