移远通信笔试题

限时60分钟

1.下列关于栈叙述正确的是 A

A) 栈顶元素最先能被删除

B)栈顶元素最后才能被删除

C)栈底元素永远不能被删除

D)以上三种都不对

在栈中,最后被压入的元素总是在栈顶上方,而栈顶元素总是最先被弹出的元素。
因此,在进行删除操作时,栈顶元素会最先被删除。

所以,选项 A 是正确的。

2.下列叙述中正确的是 B

A) 有一个以上根结点的数据结构不一定是非线性结构
B) 只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构

选项 B 是正确的。只有一个根结点的数据结构不一定是线性结构。
选项 A 是错误的。拥有一个以上根结点的数据结构一定是非线性结构,因为它们无法形成单一的层次结构。
选项 C 和 D 都是错误的。循环链表和双向链表都是线性结构,因为它们沿着一个线性序列连接元素。
循环链表中,最后一个元素链接到了第一个元素,从而形成了一个环。
而双向链表中,每个节点都包含两个指针,分别指向前驱节点和后继节点,这样可以支持双向遍历。

3.某二又树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)

A)3 B) 4 C)6 D)7

在这里插入图片描述

4.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是

A)a=(b=4)=3;
B)a=b=c+1;
C) a=(b=4)+c;
D)a=1+(b=c=4);

选项 A 是错误的,因为 b=4 的结果是 4,所以 a=(b=4)=3 等价于 a=3 和 b=4,但是在 C 语言中,赋值操作返回被赋的值,因此 (b=4) 的结果是 4。然后再将 4 赋值给 b,使得 b 的值变成了 4。这时候再把 b=4 和 a=3 再进行一次赋值运算,就等价于 (4=3),由于左值必须是可修改的,因此会产生一个编译错误。

选项 B、C 和 D 都是正确的,其解释如下:

选项 B:首先计算 c+1 的结果为 2,然后将其赋值给 b,使得 b 的值变成了 2。接着将 b 赋值给 a,使得 a 的值也变成了 2。
选项 C:首先计算 (b=4) 的结果为 4,然后将其加上 c=1 的结果为 5,最后将 5 赋值给 a,使得 a 的值变成了 5。
选项 D:首先执行表达式 b=c=4,将 c 和 b 的值都变成了 4。接着计算 1+(b=c=4) 的结果为 5,最后将 5 赋值给 a,使得 a 的值变成了 5。
因此,选项 A 是错误的。

5.若有定义语句:char s[3][10],(*k)[3], *p;,则以下赋值语句正确的是

A)p=s;
B) p=k;
C)p=s[0];
D)k=s;

6.一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 D

A)DBEFCA
B) DEBCAF
C) DEBFAC
D) DEBFCA
在这里插入图片描述

7.下列三条指针定义语句哪些表示含义相同的 B

(1)const char p; (2)char * const p; (3)char constp;
A)1,2
B) 1,3
C) 2,3
D) 1,2,3都相同
在这里插入图片描述

8.有以下程序void Func(char str[100]){print("%d”,sizeof(str));}运行结果是 C

A)1
B)2
C)4
D)8
E)100
F)根据传入字符串size大小

9.有以下程序printf(“%d”,sizeof(struct data)+sizeof(max));运行结果是 D

typedef union {
	long i; int k[5];char c: 
}DATA; 
typedef struct data 
{
	int cat;
	DATA cow;
	doubie dog; 
} animal; 
DATA max; 

A)29
B)12
C)16
D) 52
E)58
F)32

10.有以下程序程序运行后的输出结果是 B

#define S(x) 4*(x)*x+1
main 
{ 
	int k = 5, j = 2;
	printf("%d\r", S(k+j));
}

A)197 B)143 C)33 D)28 E)66 F)208

11.传入参数0x23调用下面的函数fn()会得到返回值是 E

#define x(y)((y<<2) | y)
unsigned int fn(unsigned int u) 
{
  	return x(u);
}

A) will not compile
B)0xdc
C)0xcd
D)0xbe
E) 0xaf
F) 0xg0

12. <多选>在多线(进)程编程中,线(进)程间通信方式有 ABCDEF

A)信号
B)信号量
C)消息队列
D)共享内存
E) 管道
F)套接字

13.<多选> 通信双方为了建立串行UART)通信,须要解决哪些问题 ABCDEF

A)波特率
B)数据位数
C)奇偶校验
D)数据流控制
E)起始位
F)停止位

14.<填空>

程序的局部变量存储于 中,全局变量存储于全局静态区,动态申请数据存储于

15. <填空>

TCP通信中端口的作用是 标识使用TCP协议的应用进程

16.<填空>

请定义该函数指针类型,带一个整型参数和void* 的返回类型

void * (*pfun) (int arg);

17. <填空>

整型变量a,设置a的bit 3;清除a的bit 3:(保持其它位不变)。
设置a bit 3:

a |= (0x01 << 3);

清除a的bit3 保持其他位不变:

a &= ~(0x01 << 3);

18. <填空>

关键字 volatile有什么含意

在计算机编程中,关键字"volatile"通常用于声明一个变量是易变的(即具有不稳定性)。它告诉编译器该变量的值可能会在程序的其他位置改变,因此不应该对该变量进行优化或缓存。这样可以确保访问该变量时始终从内存中读取最新的值,而不是使用已经缓存的旧值。
在多线程编程中,使用"volatile"变量可以确保不同线程之间的数据同步,因为它们都从内存中读取最新的变量值。否则,在没有同步机制的情况下,并发线程可能会读取到过期的变量值,从而导致不可预测的结果。

一个既可以是const还可以是volatile么?为什么?

可以。比如只读的状态寄存器

19. <填空>

ISO的七层模型是什么? tcp/udp 是属于哪一层? tcp/udp 有何优缺点?

从高往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/UDP属于传输层;

20. <填空> 给出下列程序执行结果

(1) chat str[] = “Hello”; char *p = str;

1sizeof(str) =  6
2sizeof(p) = 4

(2)void *p = maloc( 100); int n = 10;

1sizeof(p) = 4
2sizeof(n) = 4

21.请找出下列代码片段中不正确的地方,并提供一种你认为合理的解决方案。

(1)

void test1()
{ 
	char string[10];
	char* str1="0123456789";
	strcpy( string, str1 );
}

(2)

void test3(char* str1)
{
	char string[10];
	if( strlen( str1 ) <= 10 ) 
		strcpy( string, str1);
}

22下面的程序执行后会有什么输出?

(1)

int sum(int a) 
{
	auto int c = 0;
	static int b = 3;
	
	c += 1;
	b += 2;
	return(a+b+c);
}

void main()
{
	int i; int a = 2;
	for(i = 0: i < 5: i++)
	{
		printf("%d," sum(a));
	}
}

这个程序输出是:8,10,12,14,16
(2)

int func(x)
{
	int countx = 0;
	
	while(x)
	{ 
		countx++;
		x =x&(x-1);
	}
	return countx:
}

void main()
{
	int ret = func(263);
}

ret变量为 4

23.<编程>定义一个函数,该函数功能为:设置一绝对地址为0x67a9 的整型变量的值为0xaa66,并将该值显示在屏幕上。(编译器是一个纯粹的ANSI编译器)

void func(void)
{
	int *p = (int *)0x67a9;
	*p = 0xaa66;
	printf("%d", *p);
}

24.中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展一让标准C支持中断。具代表事实是,产生了一个新的关键字 interrupt。下面的代码就使用了_interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。

__interrupt double compute area (double radius)
{
	double area = PI* radius * radius;
	sleep(1);
	printf(" Area = %f", area);
	return area;
}

中断不能有返回值和参数
最好不好在中断函数做浮点运算和打印操作,因为耗时长,中断处理追求快进快出
不要再中断函数中调用sleep这种引起系统阻塞函数,因为在中断中系统是不调度,这可能引起系统崩溃

25.<编程>设计一个函数来获知 stack 是向高地址还是低地址方向增长。(使用 C,不建议用伪码)

#include <stdio.h>

void find_stack_direction(int *p)
{
	int val;
	
	printf("%p %p\r\n", p, &val);
	if (p > &val)    /* 栈底变量地址比栈顶变量地址大,说明向下增长 */
	{
		printf("stack diretion: grow down\r\n");
	}
	else
	{
		printf("stack diretion grow high\r\n");
	}
}

26.<编程>有一个单向链表,请编写代码反转该链表。(数据类型可以任意定义,使用 C,不建议用伪码

struct Node {
    void *data;            // 数据指针,数据类型任意
    struct Node *next;     // 指向下一个节点的指针
};

struct Node* reverseList(struct Node* head) {
    struct Node* prev = NULL;
    struct Node* curr = head;
    
    while (curr != NULL) {
        struct Node* next = curr->next;
        curr->next = prev;
        prev = curr;
        curr = next;
    }
    
    return prev;
}

27. Please translate English into Chinese

Tracker 007 is a multi-functional tracker. Combining with GPRS and high performance GPS, the devicecan be used to track and report device’s position and status to mobile phone through SMS or Main DattServer (MDS) through HTTP The operation modes include continuous tracking and position lock (park). So:buttons can be used to send emergency call. All configurations can be set through SMS or USB interface. The wireless communication includes UDP, TCP/IP,HTTP and SMS. With MTK EPO, it can get shorter TTFF atdistressed environment.

跟踪器007是一款多功能跟踪器。该设备结合GPRS和高性能GPS,可通过短信或HTTP向手机报告设备的位置和状态。
操作模式包括连续跟踪和位置锁定(泊车)。
所以:按钮可以用来发送紧急呼叫。所有配置都可以通过短信或USB接口进行设置。
无线通信包括UDP、TCP/IP、HTTP和SMS。使用MTK EPO,可以在恶劣的环境下获得更短的TTFF。

28.请用英文写信(5分)

客户 Peter 很焦急的写来邮件请求您的帮助。可是由于出差,你耽误了两天才看到邮件。并且他提出的关于蜂窝网络方面的问题并不是你非常熟悉的,你得介绍相关的技术人员和他沟通。请你马上回一个由件给Peter,另外邮件内容中蜂窝网问题的答复要包含如下主要信息
当个人和商业用户需要像手机网络一样简单易用的互联网连接时,移动计算提供简易的方案,以便在任何手机能够工作的地方通过蜂窝网络让上网本、膝上电脑或者其他电子设备连接网络。蜂窝网络是提供任何时间和任何地方低价的数据连接的理想选择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/14671.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

理解龙格库塔法基本C程序

先学习龙格-库塔法&#xff1b; 龙格-库塔&#xff0c;Runge-Kutta&#xff0c;该方法用于数值求解微分方程&#xff1b; 其中包括著名的欧拉法&#xff1b; 经典四阶法 该方法主要是在已知方程导数和初值信息&#xff0c;利用计算机仿真时应用&#xff0c;省去求解微分方…

人工智能之配置环境教程一:安装VsCode和Anaconda

人工智能之配置环境教程一&#xff1a;安装VsCode和Anaconda 作者介绍一&#xff0e; 安装VScode编辑器二. 安装Anaconda 作者介绍 孟莉苹&#xff0c;女&#xff0c;西安工程大学电子信息学院&#xff0c;2021级硕士研究生&#xff0c;张宏伟人工智能课题组。 研究方向&#…

shell脚本----条件判断语句

文章目录 一、条件测试1.1 文件测试和整数测试文件测试整数值比较 1.2字符串测试和逻辑测试字符串测试&#xff1a;逻辑测试 二、if语句三、case语句 一、条件测试 1.1 文件测试和整数测试 文件测试 test命令 测试表达是是否成立&#xff0c;若成立则返回0&#xff0c;否则返…

元宇宙的应用领域

应用领域一&#xff1a;游戏 1.游戏是最先成长起来的元宇宙场景。虚拟社交身份、开放性、经济系统、沉浸感、世界可持续性是元宇宙游戏需关注的五大特征。 2.元宇宙游戏依然是游戏&#xff0c;现阶段参与元宇宙游戏的主要是游戏爱好者。新的概念依旧需要好的游戏产品支撑。团…

malloc的一些知识

这是一个叫malloc的家伙&#xff0c;一直勤勤恳恳帮你为所欲为的玩转系统内存。可是长路漫漫&#xff0c;唯malloc作伴&#xff0c;我却不懂它。走近malloc&#xff0c;多了解一下总没错。 可能对我们来讲&#xff0c;malloc就是void* malloc (size_t len)&#xff0c;调用就是…

4月24日作业

作业1 #include <iostream> using namespace std; template <typename T> class Node { private: T* p; //指针指向栈的首地址 int maxsize; //栈最大容量 int top-1; //栈顶 public: Node(){} //无参构造 Node(int max):maxsize(max)//有参构造 填最大容…

JavaScript 知识总结下篇(更新版)

91.实现一个 promise 参考链接&#xff1a;实现一个完美符合Promise/A规范的Promise Issue #4 forthealllight/blog GitHub function myPromise(constructor) {let self this;self.status "pending" // 定义状态改变前的初始状态self.value undefined;// 定义状…

基于html+css的图片展示32

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

STM32WB55_NUCLEO开发(11)----发送数据到手机

概述 本篇文章将详细介绍如何在上节配置的基础上&#xff0c;实现通过点击STM32WB开发板上的按键发送数据到手机上。 硬件准备 首先需要准备一个开发板&#xff0c;这里我准备的是NUCLEO-WB55RG 的开发板&#xff1a; 蓝牙配置 选择“mySVC”选项卡。添加第二个特征&…

有始有终的编码原则

基本情况 在程序员的修炼之道之中&#xff0c;说到&#xff1a; 这个建议能简单地应用到大多数场合。简单说就是&#xff0c;分配资源的函 数或对象&#xff0c;对释放资源应负有责任。 这其实就是我们常说的谁分配的就谁负责释放&#xff0c;这也是内存释放的一个原则&#x…

CGI, FastCGI, WSGI, uWSGI, uwsgi一文搞懂

1. CGI # 1、通用网关接口&#xff08;Common Gateway Interface/CGI&#xff09;是一种重要的互联网技术&#xff0c;可以让一个客户端&#xff0c;从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。 # 2、CGI程序可以…

Hive ---- DDL(Data Definition Language)数据定义

Hive ---- DDL&#xff08;Data Definition Language&#xff09;数据定义 1. 数据库&#xff08;database&#xff09;1. 创建数据库2. 查询数据库3. 修改数据库4. 删除数据库5. 切换当前数据库 2. 表&#xff08;table&#xff09;1. 创建表2. 查看表3. 修改表4. 删除表5. 清…

TCP教程:详解TCP连接过程

目录标题 一 、简述二 、TCP建立连接协议&#xff08;三次握手&#xff09;2.1 概述及目的2.2 第一次握手&#xff1a;客户端发送SYN报文2.3 第二次握手&#xff1a;服务器回应SYN-ACK报文2.4 第三次握手&#xff1a;客户端回应ACK报文2.5 顾客预定座位场景2.6底层原理2.7 TCP …

Docker 网络

一、Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。因为在同一宿…

科海思除COD树脂,大孔树脂,除COD专用树脂

一、产品介绍 Tulsimer A-722 MP具有控制孔径的大孔强碱性Ⅰ型阴离子交换树脂 Tulsimer A-722 MP 是一款具有便于颜色和有机物去除的控制孔径的&#xff0c;专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-722 MP&#xff08;氯型&#xff09;专门应用于去除COD…

day2 OSI七层体系结构

目录 网络体系结构的形成 协议与划分层次 OSI七层体系结构 网络体系结构的形成 两台计算机要互相传送文件需解决很多问题&#xff1b; (1) 必须有一条传送数据的通路。 (2) 发起方必须激活通路。 (3) 要告诉网络如何识别接收方。 (4) 发起方要清楚对方是否已开机&#…

[BJDCTF2020CTF]之Misc篇(NSSCTF)刷题记录③

NSSCTF-Misc篇刷题记录wp SUCTF-2019-MISC签到题2021-安徽省赛-misc签到RCTF-2019-Misc-draw2020-BJDCTF-Misc-藏藏藏2020-BJDCTF-Misc-签个到2020-BJDCTF-Misc-认真你就输了2020-BJDCTF-Misc-你猜我是个啥2020-BJDCTF-Misc-一叶障目2020-BJDCTF-Misc-鸡你太美2020-BJDCTF-Misc…

NLP原理和应用入门:paddle(梯度裁剪、ONNX协议、动态图转静态图、推理部署)

目录 一、梯度裁剪 1.1设定范围值裁剪 1. 全部参数裁剪&#xff08;默认&#xff09; 2. 部分参数裁剪 1.2 通过L2范数裁剪 1.3通过全局L2范数裁剪 二. 模型导出ONNX协议 三、动态图转静态图 3.1两种图定义 3.2 什么场景下需要动态图转静态图 3.3为什么动态图模式越来…

【NFS共享存储服务】

目录 一、NFS (Network File System&#xff09;网络文件系统1.1、NFS工作原理1.2、举例1.2.1、共享文件总结 一、NFS (Network File System&#xff09;网络文件系统 依赖于RPC (远端过程调用) 需安装nfs-utils、rpcbind软件包 系统服务: nfs、rpcbind 共享配置文件: /etc/ex…

Ajax和Json综合案例

1. 查询所有 创建brand.html,使用axios发送请求&#xff0c;其中查询一般采用get的请求方式 <script src"js/axios-0.18.0.js"></script><script>//1. 当页面加载完成后&#xff0c;发送ajax请求window.onload function () {//2. 发送ajax请求axi…