【05】昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析

发布于:2025-08-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析

昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析

1 补码11111001B对应的真值用十进制表示为()

正数的补码等于自身,这说明他是个负数 ,负数补码等于反码加1 ,
反码是11111000  原数是100000111     -7

2 以下为MCS51汇编语言问题

设SP值为40H时
执行以下指令:

PUSH #53H
PUSH #54H
MOv A,41H

请问执行完上述指令后寄存器SP和A的值是多少()

SP=43H A=53H
SP=42H A=54H
SP=43H A=54H
SP=42H A=53H

#号是立即数 sp是栈指针,push一个数到栈里, sp就会+1,

应该是选 D

3 网络156.26.0.0/28的广播地址是()(10分)

C

156.26.0.255
156.26.255.255
156.26.0.15
156.26.0.16

156.26.0.0这个地址一共32位;
28位的掩码,所以主机位还有4位;
那么每个子网的最大IP数=2的4次方=16;
156.26.0.0的广播地址就是这个子网的最后一个IP地址;
从156.26.0.0开始第16个地址为156.26.0.15;
所以广播地址为156.26.0.15.

4 以下关于TCP协议特点的描述中,正确的是()(10分)

D

TCP是一个点到点的通信协议
TCP提供了无连接的可靠数据传输
TCP将来自上层的字节流组织成数据报,然后交给IP协议
TCP将收到的报文段组成字节流交给上层

5 在已知int a = 5,b = 5,c=4;表达式(++a == b)? a:c–的值是()(10分)

4

4
3
5
6

6 计算出value的值是

GET_BIT(a,b,c) = 1 << 4-4 = 1<< 0 = 1

 2
#define GET_BIT(a, b,c) a<<b-c  // 左移5级,减法4级; 
void main() {
	int a = 1;
	int b = 4;
	int c = 4;      
	//GET_BIT(a,b,c) = 1 << 4-4 = 1<< 0 = 1
	printf("%d", GET_BIT(a,b,c) + 1); //1 + 1 = 2
}
13
12
2
1

做题的时候,不知道优先级,按顺序算的,做错了
GET_BIT(a,b,c) = 16-4 =12
GET_BIT(a,b,c) + 1 = 13

在这里插入图片描述
在这里插入图片描述
说明:
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

7 下面的代码输出结果是

D

char *str = "hollyland";
str[0]=0;
printf("%s\n", str);
hollyand
ollyand
%s
没有输出

在这里插入图片描述
在这里插入图片描述
将char 型指针字符串,改为字符数组,可以运行了

char str[] = "hollyland";

str[0] = 0;//将字符数组,第一个字符重赋值为 0 ,相当于结束符 ‘\0’,所以后面的字符都不在读取,无输出
在这里插入图片描述

8 有如下程序:执行后的输出结果应该是

#include<iostream>
using namespace std;

class cla {
	static int n;
public:
	cla() { n++; }
	~cla() { n--; }
	static int get_n() { return n; }
};
int cla::n = 0;
int main() {
	cla* p = new cla;
	delete p;
	cout << "n=";
	return 0;
}
0
1
3
4
cout << "n=";  应该是没写完整

9 本程序三位正整数中寻找符合下列条件的整数:它既是完全平方数,又有两位数字相同,例如144、676等,编写程序找出所有满足上述条件的三位数并输出。(20分)

#include<stdio.h>
#define MAX 1000

int a, b, c;
int num = 100, n = 10;
void main()
{
	for (; n * n < MAX; n++) {
		num = n * n;
		a = num / 100;
		b = num % 100 / 10;
		c = num % 10;
		if (a == b || a == c || b == c)
			printf("%d\n",num);
	}
}

在这里插入图片描述