【笔试题】2019CVTE软件支持工程师笔试题(附超详细解答)

2023-10-19 08:59

本文主要是介绍【笔试题】2019CVTE软件支持工程师笔试题(附超详细解答),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CVTE的软件支持工程师的笔试题主要分为选择题(20道)和编程题(2道),考查内容主要是C语言、Linux操作系统为主。编程题都比较简单,没有什么难度;选择题涉及的范围还是比较广的。不过有三点比较“坑”的地方:

  • 选择题都是多选框,没有单选或者多选的提示(也就是说,每道题都有可能是多选);
  • 编程题只给出了一个文本框,不提供编译的功能。并且,编程题是不能在本地IDE上进行编译的(也就是说,每道编程题都需要自己对自己的程序有信心);
  • 整个试卷没有“前一道”按钮(也就是说,一旦你选择了某个答案,就不能再退回去修改了)。

 

选择题

1、共享变量是指()访问的变量。

只能被系统进程

只能被多个进程互斥

只能被用户进程

可被多个进程

KEY:D

2、关于GPIO,下面的描述错误的有()。

GPIO可以用于外部SDRAM进行高速传输

GPIO可以用于模拟Flash的接口,对Flash存储器进行读写操作

GPIO可以由CPU编程决定方向,但不能查询其状态

CPU可以通过编程,决定GPIO是输入、输出的通信功能,但不能是双向的

KEY:ACD

3、一个PWM波形,输出低电平为200ms,高电平为300ms,请问这个方波的占空比是()。

42.9%

60%

66.7%

40%

KEY:B

4、线程相对于进程强调的是()。

同步与互斥

并行执行与资源共享

相互独立与互相制约

资源的分配和独占性

KEY:D

5、C语言中,函数内部定义的局部变量申请到的空间存储在哪个位置()。

data段

bss段

堆区

栈区

KEY:D

6、若已知一个栈的入栈顺序为1、2、3、4,其出栈顺序为P1、P2、P3、P4,则P2、P4不可能是()。

2、1

4、3

2、4

1、4

KEY:B

7、栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此,()必须用栈。

将一个元素序列进行逆序

实现函数或过程的递归调用及返回处理时

可执行程序的装入与卸载

链表节点的申请和释放

KEY:B

解答:栈是一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。链表节点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。可执行程序的装入与卸载,也不存在“后进先出”的操作要求。对于函数的递归调用与返回,一定是后被调用执行的先返回。

8、文件file1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的权限,下列哪个命令是对的()

chmod a+x g+w file1

chmod a+x o+w file1

chmod 775 file1

chmod 765 file1

KEY:AC

9、下段程序中的a、b的值分为是()。

char str[20] = "0123456789";
int a = strlen(str);
int b = sizeof(str);

10、4

10、20

4、20

4、4

KEY:B

10、关于SPI和IIC总线的描述,正确的是()

IIC可以实现全双工,SPI不能实现全双工

IIC的数据输入输出用的是一根线,SPI则分别为数据输入和数据输出两根线

IIC的抗干扰能力比SPI强

SPI适合长距离传播

KEY:D

11、以下是线性顺序结构的是()。

顺序存储完全二叉树

双向链表

数组

顺序存储栈

KEY:ACD

12、Linux下有文件A和文件B,文件A中的内容是文件B的路径,下列说法错误的是()。

文件A叫做文件B的软链接或符号链接

它们的文件索引信息中文件的链接数并不会因为这种关系发生变化

它们的文件的索引信息inode号是相同的

访问文件A其实就是访问文件B

KEY:C

13、下列关于管道(pipe)通信的叙述中,正确的是()。

一个管道可以实现双向数据传输

一个管道只能由一个读进程和一个写进程对其操作

进程对管道进行读操作和写操作都可能被堵塞

管道的容量仅受磁盘容量大小限制

KEY:C

14、设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的序列是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是()。

2

3

4

1

KEY:B

15、MMU是Memory Mangement Unit的缩写,即内存管理单元,下列关于MMU说法错误的是()。

MMU作为转换器,将程序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地址,即在物理主存中的地址

MMU提供了一些资源以允许使用虚拟存储器

在带MMU的操作系统控制下,运行的任务必须知道其他与之无关的任务的存储需求情况,这就简化了各个任务的设计

MMU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中运行

KEY:C

16、若用n个权值构造一棵最优二叉树(哈夫曼树),则该二叉树的结点总数为()。

2n-1

2n

2n+1

2n+2

KEY:A

17、下列关于查看当前Linux的系统状态(如CPU使用、内存使用、负载情况)命令的描述,正确的是()。

可以使用top命令分析CPU使用,内存使用,负载等情况

可以使用free查看内存整体的使用情况

可以使用cat /proc/meminfo查看内存更详细的情况

以上描述都不正确

KEY:ABC

18、下列关于makefile描述正确的是()。

主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释

makefile文件保存了编译器和连接器的参数选项

在Makefile不可以使用include关键字把别的Makefile包含进来

默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件, 找到了解释这个文件

KEY:ABCD

19、执行完下列语句后,y的值为()。

int x, y, z;
x = y = 5;
z = ++x || ++y;

6

5

1

不确定

KEY:B

20、以下程序段执行后的结果为()。

#include <stdio.h>void main()
{short *p, *q;short arr[15] = { 0 };p = q = arr;p++;printf("%d", p - q);printf("%d", (char *)p - (char *)q);printf("%d", sizeof(arr) / sizeof(*arr));return 0;
}

011

1215

121

1115

KEY:B

 

编程题

1、要求实现下面的函数,杨辉三角算法基础:

输入一个整型值N(>10)代表杨辉三角的阶数,例如输入3,输出

1
1 1
1 2 1

同时输出第N阶的值相加之和,例如第3阶(1+2+1=4)。

解答:杨辉三角形,比较简单:

#include<stdio.h>int main()
{int n;scanf("%d", &n);int i, j, a[100][100], m = 0;for (i = 0; i <= n; i++) {for (j = 0; j <= n; j++) {a[i][0] = 1;a[i][i] = 1;}}for (i = 2; i <= n; i++) {for (j = 1; j <= i - 1; j++)a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}for (i = 0; i <= n; i++) {for (j = 0; j <= i; j++) {printf("%d ", a[i][j]);if (i == n) {m += a[i][j];}}printf("\n");}printf("%d ", m);return 0;}

2、小C的信用卡支付密码是一串长度为6的数字,为了防止遗忘小C把它写在纸上,但是经过了加密,加密规则是:将这个6位整数的每一位数字都加上5,然后用每位数字分别对10求出余,接着用这6个余数来替换原来每位上的数字,最后将第一位和最后一位数字交换。请编写代码实现此加密过程。

例:输入34567,每一位加上5之后变成8 9 10 11 12,替换第一位和最后一位后输出29018。

提示:请实现encode函数:

char *encode(const char *psw_in, char *psw_out);

解答:主要掌握怎么将int与char之间如何进行转换就可以了,逻辑什么的倒是蛮简单:

char *encode(const char *psw_in, char *psw_out) {int i;char temp;for (i = 0; i < 6; i++)psw_out[i] = (psw_in[i] - '0' + 5) % 10 + '0';temp = psw_out[5];psw_out[5] = psw_out[0];psw_out[0] = temp;return psw_out;
}

 

这篇关于【笔试题】2019CVTE软件支持工程师笔试题(附超详细解答)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238767

相关文章

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4