首页 > 其他分享 >20240719 CVTE 笔试

20240719 CVTE 笔试

时间:2024-11-05 08:48:45浏览次数:4  
标签:构造函数 字节 int 20240719 笔试 char CVTE txt 解答


岗位:嵌入式软件开发工程师(Linux方向)

题型:20 道不定项选择题,2 道编程题


1、不定项选择题

1.1

如下哪个命令可以帮助你知道 shell 的用法 (D)

  1. more
  2. help
  3. pwd
  4. man

解答:

more,以翻页的形式查看某文件中的内容
help,无此命令
pwd,显示当前工作目录的完整路径
man,查看命令的手册页,因此选 D 选项

1.2

关于差分信号的理解正确的是 (ABC)

  1. 差分信号有减少 EMI(电磁干扰)
  2. 差分信号能较容易地识别小信号
  3. 差分信号抗干扰能力较强
  4. 曼切斯特编码是差分信号的一种

解答:

曼切斯特编码不是差分信号的一种

1.3

下列说法错误的是 (ACD)

  1. rm 命令可以用来删除目录
  2. comm 命令打印两个文本文件中的相同内容
  3. df 命令可以查看当前目录占用磁盘空间大小
  4. ln -s a.txt b.txt 作用是制作文件 b.txt 的符号链接,其名称为 a.txt

解答:

rm 用来删除文件,删除目录需要增加 -r 选项,选项 A 错误
comm 命令用于一列列地比较两个已排序文件的差异,并将其结果显示出来,选项 B 正确
df 查看的是文件系统的使用情况,选项 C 错误
ln -s a.txt b.txt 是制作 b.txt 指向 a.txt 的符号链接,选项 D 错误

1.4

设已经有 A,B,C,D 4 个类的定义,程序中 A,B,C,D 析构函数调用顺序为?(A)

C c;

void main() 
{ 
	A* pa = new A(); 
	B b; 
	static D d; 
	delete pa; 
}
  1. A B D C
  2. A D B C
  3. A C D B
  4. A D C B

解答:

c 为全局对象,pa 和 b 为局部对象,d 为静态局部对象,构造时顺序应该为 C->A->B->D,析构时顺序应该为 A->B->D->C

  1. 局部对象会在作用域结束时按照构造时相反的顺序析构
  2. 全局对象、静态对象会在程序结束时按照构造时相反的顺序析构

1.8

一个空类的实例占用多少个字节的内存?(D)

  1. 4
  2. 8
  3. 0
  4. 1

解答:

C++ 标准要求每个对象在内存中必须有一个唯一的地址,编译器会分配至少 1 个字节的内存空间

1.9

嵌入式系统最常用的数据传送方式是 (C)

  1. 查询
  2. I/O处理机
  3. DMA
  4. 中断

1.10

在 32 位编译环境下,以下程序运行的可能输出是 (C)

#include <iostream>
#pragma pack(push)
#pragma pack(4)

struct Foo {
    char m1;
    long m2;
    int m3;
};

#pragma pack(pop)

int main() {
    std::cout << sizeof(Foo) << std::endl;
    return 0;
}
  1. 13
  2. 9
  3. 12
  4. 24

解答:

#pragma pack(4) 确定了内存对齐数为 4 ,在 32 位编译环境下,m1 占用 1 字节,m2 占用 4 字节,m3 占用 4 字节,为保证内存对齐,m1 实际上占用了 4 字节

1.11

下列语句或语句组中,能正确进行字符串赋值的是 (C)

  1. char *sp; *sp="Dream future!";
  2. char s[20]; s="Dream future!";
  3. char *sp="Dream future!";
  4. char s[20];*s="Dream future!";

解答:

  1. error: invalid conversion from 'const char*' to 'char'
  2. 数组名不可赋值
  3. 正确
  4. error: invalid conversion from 'const char*' to 'char'

1.12

阅读代码选择正确的选型 ()

#include <iostream>

class MyBase {
public:
    virtual void SayHello() {
        std::cout << "MyBase Hello.";
    }
};

class Worker : public MyBase {
public:
    MyBase() {
        SayHello(); 
    }

    void SayHello() { 
        std::cout << "Worker Hello.";
    }
};

int main() {
    auto w = new Worker; 
}

解答:

这道题可能存在问题,Worker 的构造函数不能是 MyBase() 而应该是 Worker()

1.17

crontab 文件由 6 个域组成,每个域之间用空格分隔,下列哪个排列方式是正确的?(A)

  1. MIN HOUR DAY MONTH DAYOFWEEK COMMAND
  2. COMMAND YEAR MONTH DAY HOUR MIN
  3. COMMAND HOUR DAY MONTH DAYOFWEEK
  4. MIN HOUR DAY MONTH YEAR COMMAND

解答:

分钟 小时 第几日 月份 一个星期中的第几天 要执行的程序

1.18

关于 C 语言正确的是 (D)

  1. int* p1; 可以这样赋值 *p1=5;
  2. "1" 占 1 个字节
  3. 1 bit = 8 byte
  4. printf 中用到格式符 “%5s" ,如果输出字符中长度大于 5,则按原字符中长度从左往右全部输出

解答:

  1. int* p1; 定义了一个 int * 型指针,但是未对其初始化,因此无法对其赋值
  2. “1” 不是字符 '1',而是字符 ‘1’ + ‘\0’ ,因此其占用两个字节
  3. 1 字节(byte) == 8 位(bit)

1.19

telnet 一个端口的时候,如何手动退出 (C)

  1. quit
  2. Exit
  3. ctrl+]
  4. ctrl+q

1.20

如下代码,正确的选项是 (B)

class A 
{
public:
    A() { std::cout << "a"; }
    ~A() { std::cout << "b"; }
    A(const A&) { std::cout << "c"; }
    A& operator=(const A&) { std::cout << "d"; return *this; }
};

void main() {
    A a;
    auto f = [=]() { A b = a; };
    f();
}
  1. 输出字符串中,a、c 和 d 的总数与 b 数量一致;
  2. 输出字符串中,a 和 c 的总数与 b 数量一致;
  3. 输出字符串中,a 数量为 2;
  4. 输出字符串中,d 数量为 1;

解答:

A() 为类 A 的默认构造函数,A(const A&) 为类 A 的拷贝构造函数,~A() 为其析构函数

执行 A a; 时使用默认构造函数,执行 f(); 时使用拷贝构造函数,程序结束时 ab 都执行析构函数,所以最终程序应该输出 acbb

2、编程题

2.1

题目:

给定一个字符串,将字符串中的每个单词逐个翻转

示例:

  1. 输入:“I Am a Programmer!"
  2. 结果:“I mA a remmargorP!
  3. 函数形式如下:char* ReverseString(char* Source)

解答:

  1. 以空格分割每个单词
  2. 创建函数用于反转每个单词
  3. 增加判断是否为字母的函数,确保句子最后的标点符号不会被翻转
#include <stdio.h>  
#include <string.h>  
  
// 判断字符是否为字母的函数  
int isAlpha(char c) {  
    // 检查是否为大写字母或小写字母  
    if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {  
		// 是字母 
		return 1;  
    } else {  
		// 不是字母 
		return 0;  
    }  
}  
  
// 辅助函数,用于翻转字符串中从 start 到 end 的部分  
void reverseWord(char* str, int start, int end) {  
	while (start < end) {  
		char temp = str[start];  
		str[start] = str[end];  
		str[end] = temp;  
		start++;  
		end--;  
	}  
}  
  
// 主函数,用于翻转字符串中的每个单词  
char* ReverseString(char* source) {  
	int n = strlen(source);  
	int start = 0;  
	
	for (int i = 0; i <= n; ++i) {  
	   // 检查空格或字符串末尾  
	   if (source[i] == ' ' || source[i] == '\0' || !isAlpha(source[i])) {  
		  reverseWord(source, start, i - 1);  
		  // 移动到下一个单词的起始位置  
		  start = i + 1; 
	   }  
	}  
	
    return source;  
}

2.2

给定一个正整数 n ,你可以做如下操作:

  1. 如果 n 是偶数,则用 n/2 替代 n ;
  2. 如果 n 是奇数,则可以用 n+1 或 n-1 替换 n ;
  3. 返回 n 变为 1 所需的最小替换次数;

示例:

  1. 输入:n=8
  2. 输出:3
  3. 解释:8 -> 4 -> 2 -> 1

解答(存疑):

#include <stdio.h>

int minStepsToOne(int n) {
    int steps = 0;

    while (n != 1) {
		// 如果是偶数,除以2
        if (n % 2 == 0) {
            n /= 2;  
        } else {
			// 特殊情况:3 变为 2 或 4,选择 2 更优
            if (n == 3) {
                n -= 1;
			// 或选择 n-1
            } else {
                n += 1;  
            }
        }
        steps++;
    }
    
    return steps;
}

int main() {
    int n;
    scanf("%d", &n);
    int result = minStepsToOne(n);
    printf("%d\r\n", result);
    return 0;
}

标签:构造函数,字节,int,20240719,笔试,char,CVTE,txt,解答
From: https://www.cnblogs.com/lc-guo/p/18525041

相关文章

  • 20240712 TCL 笔试
    岗位:华星-电子设计类(提前批)笔试题型:20道不定项选择题1、不定项选择1.1【单选】下列关于理想二极体的说法,错误的是?(D)顺向时视为短路,逆向时视为开路顺向电阻等于零,逆向电阻无限大无顺向电压降,无逆向电流顺向电压等于零,逆向电流无限大解答:理想二极管:顺向导通时视为......
  • Linux笔试题目记录(1)
    文章目录一、Linux文本三剑客---grep、sed、awk二、Linux内核模块相关命令三、Linux内核日志级别四、Linux内存管理之kmallockzallocvmallocmalloc和get_free_page()的区别五、Linux的调度策略六、(多选)下列哪些是linux驱动开发中常用的调试技术()七、简述GDB常见的调......
  • 荣耀2025届校园招聘 AI工程师-NLP大模型 笔试
    目录1.第一题2.第二题3.第三题⏰时间:2024/10/09......
  • 阿里国际2025届校园招聘 0826算法岗笔试
    目录1.第一题2.第二题3.第三题⏰时间:2024/08/26......
  • 笔试真题——机器人拧魔方模拟
    说明:根据遗留的记忆写出来了此篇文章,可能与原文解释有部分出入,但总体思路一致。题目说明:YYYYRRRRWWWWOOOOGGGGBBBBUUL'第一行为输入为对应F,R,B,L,U,D面的元素颜色第二行输入为翻转的标识符标识符有:F、F'、R、R'、B、B'、L、L'、U、U'、D、D'。分别为对应明的顺时针......
  • 嵌入式软件名企笔试真题文章汇总帖
    1、前言欢迎各位来到我的专栏,笔者为25届应届毕业生,投递岗位为嵌入式软件开发工程师相关岗位,在秋招过程中有意记录各大企业的真实笔试题目,现以博客形式记录,有意者可自行查看!2、约定笔者专栏中的每篇文章将采用统一的习惯/步骤,以方便读者查找,主要有以下几点需要注意:专栏中的......
  • 深度学习面试笔试之迁移学习(Transfer)、强化学习(Reinforcement) & 多任务
    深度学习面试笔试之迁移学习Transfer、强化学习Reinforcement&多任务13.迁移学习(Transfer)1.什么是迁移学习2.为什么需要迁移学习?3.迁移学习的基本问题有哪些?4.迁移学习有哪些常用概念?基本定义按特征空间分类按迁移情景分类按迁移方法分类5.迁移学......
  • 笔试强训1)
    题1题目描述:算法原理:我们可以利用哈希表来将其中一个数组的元素放进哈希表,哈希表具有天然去重效果。再把另一个数组的每个元素拿来在哈希表中找,把相同的添加进要返回的顺序表中,然后再将该元素从哈希表中删除但是我们能用数组来模拟哈希表就可以不要直接去new一个哈希表,......
  • 笔试题
    不调用库函数的情况下实现一个strcpy函数。voidmy_strcpy(char*dest,constchar*src){inti=0;while(src[i]!='\0'){dest[i]=src[i];i++;}dest[i]='\0';//添加字符串结束的空字符}/* *@Author:[email protected]......
  • 【秋招笔试-支持在线评测】10.19京东秋招(已改编)-三语言题解
    ......