思特威-秋招正式批-笔试

news2024/12/26 0:18:20

1.在全局数据区中分配空间的变量类型有哪些

2.new和malloc的区别

3.

class CData{
    unsigned short m_uilndex, m_uilndexFlag = 9; 
    int m_iData[10]; 
    int m_iType;
    int iGetDataType() {return m_iType;} 
public: 
    CData();
}

CData::CData(), m_iType(5) {
    string strTxt ="10";
    sscanf_s(strTxt, "%x", m_uilndex);
    int i=0; 
    do{
        m_iData[i] = i
    }while(i<10)
}

读该C++代码,回答以下三个问题:
1、以上类中有几处错误?	
2、iGetDataType()返回值是多少?
3、m_uilndexFlag的值是多少。

解析:

1. 

构造函数错误:构造函数的定义存在语法错误。正确的构造函数定义应该是:

CData::CData() : m_iType(5)

: 引出初始化列表,而不是使用 ,

sscanf_s 的使用错误sscanf_s 是安全版本的 sscanf,需要提供更多参数来描述输入的大小。对于字符串类型,应传入额外的缓冲区大小参数。并且 m_uilndex 应该使用指针传递,即 &m_uilndex

sscanf_s(strTxt.c_str(), "%x", &m_uilndex);

do-while 循环错误:在 do-while 循环中,缺少分号,导致语法错误。

do {
    m_iData[i] = i;
    i++;
} while (i < 10);

2. 返回值为 m_iType 的值。在构造函数中,m_iType 被初始化为 5,因此 iGetDataType() 返回的值是 5

3. 在声明时被初始化为 9。因此,m_uilndexFlag 的值是 9

4. 人员1: Tina,女,13256471234,上海浦东新区

人员2:Kelvin,男,13678942587,上海普陀区

人员3:Lily,女,18645671234,上海嘉定区

人员4:Jucy,女,18578964578,上海长宁区

人员5:Zack,男,19645783247,上海徐汇区

选择合适的C++数据结构存储上述信息。 

解析:一个合适的 C++ 数据结构可以是使用 结构体向量 (std::vector) 组合的方式来存储这些人员信息。

#include <iostream>
#include <vector>
#include <string>

struct Person {
    std::string name;
    std::string gender;
    std::string phone;
    std::string address;
};

int main() {
    std::vector<Person> people = {
        {"Tina", "女", "13256471234", "上海浦东新区"},
        {"Kelvin", "男", "13678942587", "上海普陀区"},
        {"Lily", "女", "18645671234", "上海嘉定区"},
        {"Jucy", "女", "18578964578", "上海长宁区"},
        {"Zack", "男", "19645783247", "上海徐汇区"}
    };

    // 打印人员信息
    for (const auto& person : people) {
        std::cout << "Name: " << person.name 
                  << ", Gender: " << person.gender 
                  << ", Phone: " << person.phone 
                  << ", Address: " << person.address 
                  << std::endl;
    }

    return 0;
}

5. 

总数据量为:640x480x1.25 Bytes的图像,数据格式如上图示,将数据按照P1[9:0] P2[9:0] P3[9:0]......解析,代码实现。 

解析:

#include <iostream>
#include <vector>
#include <fstream>
#include <bitset>

// 假设图像分辨率
const int WIDTH = 640;
const int HEIGHT = 480;

// 读取数据并解析像素
std::vector<uint16_t> parseImageData(const std::vector<uint8_t>& data) {
    std::vector<uint16_t> pixels;
    size_t bitPosition = 0;

    for (size_t i = 0; i < data.size() * 8 / 10; i++) {
        uint16_t pixel = 0;
        for (int j = 0; j < 10; j++) {
            size_t byteIndex = bitPosition / 8;
            size_t bitIndex = bitPosition % 8;

            if (byteIndex < data.size()) {
                uint8_t bit = (data[byteIndex] >> bitIndex) & 0x01;
                pixel |= (bit << j);
            }
            bitPosition++;
        }
        pixels.push_back(pixel);
    }

    return pixels;
}

int main() {
    // 假设从文件读取数据
    std::ifstream file("image_data.bin", std::ios::binary);
    std::vector<uint8_t> imageData((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());

    if (imageData.size() != WIDTH * HEIGHT * 1.25) {
        std::cerr << "图像数据大小不匹配" << std::endl;
        return -1;
    }

    std::vector<uint16_t> pixels = parseImageData(imageData);

    // 可以在此处添加进一步的处理,如显示图像或保存为其他格式
    std::cout << "像素数据解析完成,共 " << pixels.size() << " 个像素。" << std::endl;

    return 0;
}

(不一定对)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自修C++Primer----3.4迭代器(iterator)的介绍

目录 1.迭代器的使用 1.1迭代器运算符 1.2从一个元素指向下一个元素 1.3迭代器的类型 1.4begin和end操作符 1.5解引用操作符和成员访问 1.6引入迭代器失效 1.7全部改成大写的一个练习 2.使用迭代器运算 我们可以使用下标运算符访问string里面的字符或者是这个vector里面…

浅谈二分算法

浅谈二分算法 二分 首先知道一下二分是什么。 二分&#xff0c;是一种快速处理大型数据的方法。基本逻辑是折半查找。 设有一个共有 n n n 个数字的数组&#xff0c;要从中查询某个元素&#xff0c;就可以用二分查找。 注&#xff1a;这里的数组默认其成员数值具有单调性…

C++类和对象(总篇)

文章目录 C类和对象1、类的定义1.1类定义格式1.2访问限定符1.3类域 2、实例化2.1实例化概念 3、this指针4、类的默认成员函数5、构造函数5.1构造函数的特点5.2实例分析 6、析构函数6.1析构函数的特点6.2实例分析 7、拷贝构造函数7.1 拷贝构造函数的特点7.2实例分析7.3浅拷贝和深…

Linux中断管理

Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便,不需要一系列复杂的寄存器配置。 1.Linux中断简介 中断号 每个中断都有一个中断号,通过中断号即可区分不同的中断,有的资料也把中断号叫做中断线。在 Linux 内核中使用一个 int 变…

神经网络—卷积层

1.讲解 Conv2d out_channels 参数为2时&#xff0c;会生成两个卷积核&#xff0c;分别与输入进行卷积。得到的两个输出为输出 新生成的卷积核和原来的卷积核不一定相同 in_channels (int) – Number of channels in the input image out_channels (int) – Number of channels…

Marching Cubes 算法再探

Marching Cubes 算法再探 基础过程代码mian.cppMarchingCubes.hMarchingCubes.cpp 之前做NeRF相关工作时简单看过&#xff0c;但没有深究其实现&#xff0c;知其然不知其所以然的程度&#xff0c;算是初探。 基础 为了对MC有大致了解&#xff0c;可以先根据Marching Cubes 算法…

两个实用的Python编程技巧

一、变量类型声明技巧 虽然在Python中可以不用声明变量的类型&#xff0c;但是为了加快程序的运算速度&#xff0c;减少不必要的bug&#xff0c;我们可以在定义变量之初就把它的类型确定&#xff0c;这样可以更好地传输变量值。如下面的例子。 我们定义了两个变量&#xff0c…

IO进程线程 240826作业

作业 创建3个进程,子进程1拷贝文件的前一半,子进程2拷贝后一半文件,父进程回收两个子进程资源。 将1.txt内容拷贝到2.txt中 #include <myhead.h> int main(int argc, const char *argv[]) {pid_t pid1;pid1 fork();int fd1 open("./1.txt",O_RDWR);if(fd1…

JavaWeb JavaScript ④ JS的对象和JSON

只要你的风格是适应客观规律的&#xff0c;那你以后会越来越好&#xff0c;做事情会越来越顺利 —— 24.8.26 一、JS创建对象 语法 方式1 new Object() 方式2 {属性名&#xff1a;属性值&#xff0c;… …&#xff0c;函数名&#xff1a;function(){}} 方式…

Python | Leetcode Python题解之第371题两整数之和

题目&#xff1a; 题解&#xff1a; MASK1 4294967296 # 2^32 MASK2 2147483648 # 2^31 MASK3 2147483647 # 2^31-1class Solution:def getSum(self, a: int, b: int) -> int:a % MASK1b % MASK1while b ! 0:carry ((a & b) << 1) % MASK1a (a ^ b) % MA…

Agent实际落地的应用 未来生活的无形助手

在这个信息爆炸的时代&#xff0c;我们每个人都在追求更高效的生活方式。想象一下&#xff0c;如果有一个无形的助手&#xff0c;能够理解我们的需求&#xff0c;自动处理繁琐的任务&#xff0c;甚至为我们提供个性化的建议&#xff0c;那将是多么美好的体验&#xff01;这正是…

线性DP经典题型

数字三角形&#x1f342; #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;vector<vector<int>>arr(n1,vector<int>(n1,0));for(int i 1;i<n;i){for(int j 1;j<i;j){cin>>arr[i][j];}}vector<vector<i…

【精选】分享9款AI毕业论文生成初稿题目网站

在当今学术研究领域&#xff0c;AI技术的应用日益广泛&#xff0c;尤其是在学术论文的撰写过程中。AI论文生成器的出现&#xff0c;极大地简化了学术写作流程&#xff0c;提高了写作效率。以下是9款推荐的AI毕业论文生成初稿的网站&#xff0c;它们各有特色&#xff0c;能够满足…

【Qt】多元素控件QTableWidget

多元素控件QTableWidget 使用QTableWidget表示一个表格控件&#xff0c;一个表格中包含若干行、每一个行又包含若干列。 表格中的每一个单元格&#xff0c;都是一个QTableWidget对象。 QTableWidget核心方法 方法说明 item(int row, int column) 根据⾏数列数获取指定的 Q…

【电路笔记】-运算放大器基础

运算放大器基础 文章目录 运算放大器基础1、概述2、运算放大器表示3、开环增益(Open-Loop Gain)4、输入和输出阻抗5、带宽6、偏移电压7、理想运算放大器模型7.1 饱和模式7.2 线性模式8、实际运算放大器9、总结1、概述 本文将介绍运算放大器(也称为运算放大器,Operational …

HandBrakeCLI 压缩工具的简单实用

HandBrakeCLI -i input.mp4 -o output.mp4 --encoder qsv_h264 -b 500k --preset "Android 576p25" --width 320 --height 576 --quiet--encoder qsv_h264 意思代表inter的gpu编码 -b 500k 设置比特率 --preset "Android 576p25" 设置预设 --width 320 --…

揭秘OTP与MTP:你的存储小秘密,一次性和多次可编程大不同!

NVM,即非易失性存储器,是一种非易失性内存。 NVM的特点是存储的数据在断电后不会消失。传统的NVM,如掩模ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、NAND/NOR闪存等,以及目前正在开发的许多新型状态存储器,如磁性存储器(MRAM)、电…

Jar包导入本地maven仓库

当jar包未引入到公共maven仓库时&#xff0c;直接通过maven坐标的方式引入会报错&#xff0c;找不到该依赖。所以可以将jar包导入到本地maven仓库&#xff0c;再通过maven坐标引入后就没有问题。 mvn install:install-file -Dfilexxxxxx.jar -DgroupIdcom.xx -DartifactIdxxxx…

idea debug 各个步骤含义

基本功能 IntelliJ IDEA 的 Debug 功能提供了强大的调试支持&#xff0c;允许开发者逐步执行代码&#xff0c;检查变量值&#xff0c;评估表达式等。以下是 Debug 模式中常见的几个按钮及其含义&#xff1a; Show Execution Point (显示执行点)&#xff1a;将光标跳转到当前正在…

如何使用ssm实现模具制造企业订单跟踪管理系统+vue

TOC ssm256模具制造企业订单跟踪管理系统vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;…