AMD 2022年中秋节笔试题目

AMD 2022年中秋节笔试题目

首先,题目都是全英的。这个确实读题会慢一些,单词基本都认识,不认识的基本都可以猜出来,最大的影响可能是读题慢一点。包含15道选择题(10个单选,5个多选),2道编程题。

选择题都比较常规的,都是一些基础的知识,现在还记得有:

  • 一个是关于LSB(字节意思感觉是最低有效位的一个判断,也是属于C语言位运算的一个题目)
  • 一个是关于动态链接库的,有一些选项,判断对错。
  • 还有一个是关于C语言计算优先级的,核心是()、*、%、+等优先级顺序。
  • 还有两道关于进程和线程的题目。
编程第一题:

一个32位的无符号整数,请帮助它交换其二进制位,将第0位和第31位交换,将第1位和第30位交换,以此类型,直到交换其第15位和第16位。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
// 核心是采取移位的方法,我记得也可以通过计算的方式来实现,具体可自行百度
unsigned int reserve_bit(unsigned int num)
{
unsigned int ret = 0;
int bit = 0;
int i = 0;
// 遍历原始数的每一位
for (i = 0; i < 32; i++)
{
// 每一次先往结果中移位一个二进制的1,那么移位32次就可以构造出结果了
ret <<= 1;
// 提取出来原始数的当前位(按位与提取)
bit = num & 1;
// 将结果的当前位计算出来
ret = bit | ret;
// 将原始数右移移位(丢掉一个低位)
num = num / 2;
}
return ret;
}

方法的核心是一次将num的最低位写到ret中,然后将ret左移,再计算,再左移。

编程第二题:

给定两个不超过一百个元素的整型数组,请帮助找到一个整数,该整数不在这两个数组中。

这个没有代码,emmmm,这个我直接return 100,就ac了……..

经过是这样的:我写的是将两个数组排序,然后去重并合并这两个有序数组,之后再从1遍历到其最大值,将找到的第一个返回,但是我自己写的函数,我准备看看去重合并的效果咋样,发现调试有问题,自测不支持自己在外面写的函数(showmebug平台),我一看时间,就剩5分钟了,直接将代码全部注释掉,换成return 100,结果提示我pass了……….,噗,我就直接交题了,ahhhhh

打赏
  • 版权声明: 版权所有属于未央。商业转载,请联系作者(邮箱:sheensong@163.com)以获取授权。 非商业转载,请注明出处并附上原文链接,谢谢配合。

请我喝杯咖啡吧~

支付宝
微信