笔试面试相关记录(4)

2023-09-15 23:26:46

(1)实现防火墙的主流技术有哪些?

实施防火墙主要采用哪些技术 - 服务器 - 亿速云 (yisu.com)

(2)

char arr[][2] = {'a', 'b', 'c', 'd'};
printf("%d", *(arr+1));
输出的是谁的地址?字符c
测试代码如下
char arr[][2] = {'a', 'b', 'c', 'd'};
printf("%d\n", *(arr+1));
printf("%x\n", *(arr+1));
printf("%d  %c", &arr[1][0], arr[1][0]);

输出结果如下:
-1454471282
a94e878e
-1454471282  c

(3)

int main()
{
    printf("%p", main);
    return(0);
}
上述代码会死循环吗?不会

(4)

int main()
{
    int a = 4;
    a += a*a<<1+2;
    printf("%d", a);
    return(0);
}
输出132,a = 4 + (4*4)<<(1+2) = 132
算数运算优先级大于移位运算符>赋值运算符

(5)如果两个动态库包含一个同名的全局函数,则他们不能同时链接?

C 多个动态库存在同名函数问题处理方法:-fvisibility=hidden_c语言库函数重名_万能菜道人的博客-CSDN博客 C/C++多个链接库含有同名函数,编译会报错吗_c 语言连接两个静态库方法一样没有报错_杰特JET的博客-CSDN博客

(6)

int main()
{
    int ii = 0;
    printf("%d,%d,%d", ++ii, ++ii, ++ii);
    return(0);
}
输出3,3,3

(7)

void fun(char a[100]) {
    char b[100];
    printf("%d, %d", sizeof(a), sizeof(b));
}

int main()
{
    char a[100];
    fun(a);
    return(0);
}
64位系统中输出8,100

(8)内核空间和用户空间都属于虚拟内存空间吗?内核为系统所有进程共享吗?

虚拟内存、内核空间和用户空间_optics_ts的博客-CSDN博客 

linux虚拟内存与物理内存,内核态与用户态_物理内存被分为内核和用户?_selfsongs的博客-CSDN博客

(9)

union x{
int a;
char b[2];
}t;

int main()
{
    
    t.b[0] = 10;
    t.b[1] = 1;
    printf("%d", t.a);
    return(0);
}
输出266

(10)

#include <iostream>

using namespace std;

class Base {
    virtual void method() {cout << "from Base" << endl;}
public:
    virtual ~Base() {method();}
    void baseMethod() {method();}
};

class A : public Base {
    void method() { cout << "from A" << endl;}
public:
    ~A() { method();}
    
};
int main()
{
    Base* base = new A;
    // 基类指针调用非虚方法,则这里调用的是父类的baseMethod()方法
    // 父类方法中又调用了method(),而这个方法是虚方法,相当于指向子类的基类指针调用
    // method,发生多态,先调用子类的method方法,输出from A
    base->baseMethod();
    // delete base,由于析构函数虚函数,所以会调用子类的析构函数输出from  A
    // 然后调用父类的析构函数输出from Base
    delete base;
    return 0;
}

测试输出:(以上是个人理解,不对之处,请指出)
from A
from A
from Base

(11)

int main()
{
       // 然后调用父类的析构函数输出from Base
    char* str = "hello, world";
    str[1] = 'a';
    printf("%s", str);
    return 0;
}
段错误,通过char* str = 字符串这种方式定义的,字符串在常量区,不能原地修改。

C语言:字符串内容的修改_c语言修改字符串_不吃饭就会放大招的博客-CSDN博客

 (12)对文件的操作模式中,a和a+、w和w+、r和r+有什么区别

 r只读模式,文件必须存在;
r+读写模式,文件必须存在;
a追加模式,文件存在则追加,文件不存在则创建;
w写模式,文件存在则覆盖,文件不存在则创建;
w+读写模式,文件存在则覆盖,文件不存在则创建;
a+读写模式,和a一样;
如果以二进制模式,则rb+,或者r+b,

(13)

int main()
{
    char* p_string = "0123456789";
    printf("sizeof(p_string):%d\n", sizeof(p_string));
    printf("sizeof(*p_string):%d\n", sizeof(*p_string));
    printf("char:%c\n", *p_string);
    printf("p_string=%s\n", p_string);
    printf("strlen(p_string):%d\n", strlen(p_string));
    return 0;
}

输出:
sizeof(p_string):8
sizeof(*p_string):1
char:0
p_string=0123456789
strlen(p_string):10

 (14)

int g_inta;
static int g_intb;
void fun() {
    static int intc;
    int intd;
    printf("%d,%d,%d,%d", g_inta, g_intb, intc, intd);
}
int main()
{
    fun();
    return 0;
}

输出0,0,0,0

(15)

int main()
{
    char str[] = {'1', 49};
    printf("%d,%d,%c,%c", str[0], str[1], str[0], str[1]);
    return 0;
}
输出49,49,1,1

(16)

class A {
public:
    A() {cout << "A()" << endl;};
    A(int val) {cout << "A(int val)" << endl;}
};
int main()
{
    A a, b(3), *p;
    return 0;
}
输出
A()
A(int val)
调用两次构造函数

(17)

void fun(char* str) {
    str = (char*)malloc(10*sizeof(char));
    strcpy(str, "hello");
    
}
int main()
{
    char* str = "world";
    fun(str);
    printf("%s\n", str);
    return 0;
}
输出world

(18)

int main()
{
    int val=100, *p=&val;
    printf("%d", *p);
    return 0;
}
输出100

(19)double(*(*(*fp)(int))[5])(char)  中定义的fp是什么类型?

以下来自chatgpt回答:

表达式 `double(*(*(*fp)(int))[5])(char)` 定义了一个名为 `fp` 的函数指针,该函数指针指向一个函数,该函数具有以下特征:

1. 接受一个 `int` 类型的参数。
2. 返回一个指向数组的指针,该数组包含5个元素。
3. 每个数组元素都是一个指向函数的指针,这些函数接受一个 `char` 参数并返回 `double`。

总的来说,`fp` 是一个指向复杂函数签名的函数指针类型。这种类型的声明可能在某些高级的应用中使用,但通常很难理解和维护,因为它包含了多层指针和函数指针的组合。

 

 单循环比赛生成网站:赢生科技 - 在线单循环赛编排 (16win.cn)

 单循环比赛的编排方法 - 知乎 (zhihu.com)

 

更多推荐

ESP32主板-MoonESP32

==产品简介==Moon-ESP32主板,一款以双核芯片ESP32-E为主芯片的主控板,支持WiFi和蓝牙双模通信,低功耗,板载LED指示灯,引出所有IO端口,并提供多个I2C端口、SPI端口、串行端口,方便连接,拓展性强。Moon-ESP32主板深度支持ArduinoIDE编程,并且支持Mind+图形化编程,Mixl

近世代数之集合与映射

近世代数之集合与映射近世代数为密码学基础,因此想要补充一下这方面的相关概念与性质,因此进行记录与分享。主要参考书籍为《近世代数基础》-张禾瑞集合:(有限或者无限个)固定事物的全体叫做一个集合。元素:组成一个集合的事物叫做这个集合的元素空集合:一个没有元素的集合叫做空集合子集:若集合B的每一个元素都属于集合A,则说,B为

计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)

图像分类教程博客_传送门链接:链接在本教程中,您将学习如何使用迁移学习训练卷积神经网络以进行图像分类。您可以在cs231n上阅读有关迁移学习的更多信息。本文主要目的是教会你如何自己搭建分类模型,耐心看完,相信会有很大收获。废话不多说,直切主题…首先们要知道深度学习大都包含了下面几个方面:1.加载(处理)数据2.网络搭建

物联网:用python调入机器学习分析物联网数据入侵检测模块

要使用Python调用机器学习分析物联网数据入侵检测模块,您需要以下步骤:安装Python和相关的机器学习库,如scikit-learn、pandas、numpy等。您可以使用pip命令来安装这些库。准备输入数据。这些数据可以是来自物联网设备的原始数据,例如传感器读数、错误代码等。对输入数据进行特征工程。这涉及将原始数

“探索前后端分离架构下的Vue.js应用开发“

目录引言1.前后端分离2.Vue的简介1.Vue.js是什么?2.库和框架的区别3.MVVM的介绍3.Vue的入门数据的双向绑定数据的单项绑定4.Vue的生命周期总结引言在当今互联网时代,前后端分离架构已经成为了Web应用开发的主流趋势。前后端分离架构的核心思想是将前端和后端的开发过程解耦,使得前端和后端可以独立开发、

[JAVEee]SpringBoot项目的创建

SpringBoot可以更好的开发Spring项目,本文章将使用idea社区版来演示创建项目的过程与注意事项.SpringBoot的优点SpringBoot中内置快速添加依赖的功能,能够便捷的集成各种框架,帮助开发.内置运行容器,无需配置Tomcat容器等其他web容器,可直接进行项目的部署与运行.更好的使用注解与配置

AI Studio星河社区生产力实践:基于文心一言快速搭建知识库问答

还在寻找基于文心一言搭建本地知识库问答的方案吗?AIStudio星河社区带你实战演练(支持私有化部署)!相信对于大语言模型(LLM)有所涉猎的朋友,对于“老网红”知识库问答不会陌生。自从大模型爆火后,开发者都希望尽快进行开发实战,企业都希望尽快在产品中集成LLM的能力,结合业务快速落地,那最直接的方式就是构建知识库问答

算法 杨辉三角求解 java打印杨辉三角 多路递归打印杨辉三角 递归优化杨辉三角 记忆法优化递归 帕斯卡三角形 算法(十二)

1.杨辉三角:是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。--百度百科2.杨辉三角特点:1.每个数等于它上方两数之和

CATTI考试,拿证必看篇:CATTI备考,你不可不知的东西都在这里!

打工人,打工魂,打工都是人上人。在人才拥挤的就业市场里,我们如何能够脱颖而出,赢得一份好工作呢?于是很多人把目光投向了CATTI。CATTI是一项面向全社会的职业资格考试,全称为全国翻译专业资格(水平)考试。具有一定外语水平的人员,不分年龄、学历、资历和身份,均可报名参加相应语种二、三级的考试。本文将带大家快速了解这门

SkyWalking快速上手(一)——安装单机版SkyWalking、使用SkyWalking

文章目录什么是SkyWalking为什么选择SkyWalking安装步骤前置条件环境要求下载SkyWalking配置SkyWalkingSkywalking使用Agent配置Collector配置启动SkyWalking配置SkyWalking代理SkyWalking的监控功能分布式调用链追踪性能指标监控告警和报警总结

黑马JVM总结(六)

(1)常量池方法区的组成中都由一个叫做运行时常量池的部分,内部包含一个叫做StringTable的东西反编译二进制字节码:类的基本信息:常量池:方法定义:构造方法main方法:方法中有一些指令,通过指令#2去常量池中找这个静态指令常量池:#2它是要找java/lang/System类下的out变量,类型是java/io

热文推荐