《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj 《嵌入式软件笔试-23年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm 选择题 1. 对以下C语言类型声明语句的解释正确的是:( ) double * const cptr; cptr指向的地址以及地址内的内容均可以改变 cptr指向的地址不能改变 cptr指向的地址内的内容不能改变 cptr指向的地址以及地址内的内容均不能改变 2.以下哪种情况适合使用数据库事务? 用户进行简单的查询操作 用户进行多次更新操作 用户进行单次更新操作 用户进行数据备份操作 3.以下叙述中不正确的是: 在不同的函数中可以使用相同名字的变量 函数中的形式参数是局部变量 在一个函数内定义的变量只在本函数范围内有效 在一个函数内的复合语句{}中定义的变量在本函数范围内有效 解释: 如果在复合语句(如一个代码块内部)中定义了变量,这些变量只在该复合语句的范围内有效,而不是整个函数范围内有效。 4.以下哪个关系代数操作符可以用来实现SQL中的JOIN操作? 选择 投影 自然连接 笛卡尔积 5.在计算机网络中,下列哪个协议用于将域名解析为IP地址? SMTP HTTP DNS FTP 解释: DNS 是一个分布式数据库,允许用户通过域名(如 www.nowcoder.com)访问网站,而不需要记住其对应的数值IP地址。 6. 若不想使用编译器自动生成类的成员函数(如拷贝构造函数),就该明确拒绝,明确拒绝的方式有? 将成员函数显式声明为private。 将成员函数显式声明,并加“=default”标识。 将成员函数显式声明,并加“=delete”标识。 显式声明并实现成员函数。 7. 以下哪些操作可能会产生资源泄漏? 使用mmap接口映射的内存段没有通过munmap()撤销映射 文件没有关闭 程序运行中加载的动态库没有卸载 套接字没有关闭 FIFO在使用完之后没有关闭 已知本机是小字节序,如下定义及赋值语句: union { unsigned int u32; unsigned short u16[2]; unsigned char u8[4]; } order; order.u32 = htonl(0x12345678); 假设int为4字节,htonl是将int型整数字节序由主机序转为网络序则下列判断有错误的包括: order.u8[2]=0x56 order.u8[0]=0x12 order.u8[3]=0x78 order.u8[1]=0x12 解释: htonl 函数:htonl函数将主机字节序(通常是小字节序)转换为网络字节序(总是大字节序)。 在小字节序机器上,整数 0x12345678 通过 htonl 转换为网络字节序后,将存储为 0x78563412 因此四字节依次存为:0x78 0x56 0x34 0x12 请问以下说法正确的有: 可以使用空指针创建std::string ,因为std:string内部做了保护 不要试图用空指针创建std::string,这是C++安全编码规范的要求 可以使用空指针创建std::string,只要不访问创建的string对象就没问题 如果使用空指针创建std::string ,会引发对空指针的解应用从而导致程序异常 以下哪种网络拓扑结构可以实现高可用性和冗余? 总线型 星型 环形 网状型 解释: 网状拓扑提供了最高级别的冗余,因为它允许每个节点与多个其他节点直接连接。在网状网络中,即使多个连接或节点发生故障,数据通常仍有多条路径可以流动,从而确保网络的持续运行和高可用性。 以下代码,输出结果是什么( ) #include <iostream>using namespace std;template<class T>class MyClassB {protected: static int num_; // 静态成员变量,需要在类外初始化public: MyClassB() { ++num_; } void show() { cout << num_ << endl; }};template<class T>int MyClassB<T>::num_ = 0; // 静态成员变量初始化template<class T>class MyClassD : public MyClassB<T> {public: MyClassD() { ++MyClassB<T>::num_; // 在派生类构造函数中递增基类的静态成员变量 }};int main() { MyClassB<int> intInstance; // 创建int模板实例 intInstance.show(); // 显示int实例的num_值,预期是1 MyClassB<float> floatInstance; // 创建float模板实例 floatInstance.show(); // 显示float实例的num_值,预期是1 MyClassD<int> intDInstance; // 创建继承自int模板的派生类实例 intDInstance.show(); // 显示派生类实例的num_值,预期是2 return 0;} 1 1 3 下面不正确的赋值或赋初值的方式是() char str[5]={'g','o', 'o', 'd'}; char str[]="string"; char str[10]; str = "string"; char str[6]="g"; 解释: 在C/C++中,不能直接将字符串字面量赋给已经声明的数组。 在计算机网络中,下列哪个协议用于在互联网上传输电子邮件? SMTP HTTP MAILTO FTP 下面哪种变量定义不当,可能导致堆栈溢出 静态全局变量 动态全局变量 静态局部变量 动态局部