灵感互娱U3D笔试题

文章目录

    • 题目1
      • 解析
    • 题目2
      • 解析
    • 题目3
      • 解析
    • 题目4
      • 数组
      • 链表
    • 题目5
      • 解析
    • 题目6
      • 解析
    • 题目7
    • 解析
    • 题目8
      • 解析
    • 后话

题目1

以下C#代码的输出顺序是什么

namespace ConsoleApp2
{internal class Program{class A{ public A(string text){Console.WriteLine(text);}}class B{static A a1 = new A("1");A a2 = new A("2");static B(){a1 = new A("3");}public B(){a2 = new A("4");}}static void Main(string[] args){var b = new B();}}
}

解析

  1. 创建类B实例
var b = new B();
  1. 访问类B时,触发静态字段 a1 初始化:
static A a1 = new A("1");

输出1

  1. 执行类B的静态构造函数:
static B()
{a1 = new A("3");
}

输出: 3

  1. 实例化字段 a2 初始化:
A a2 = new A("2");

输出: 2

  1. 执行类B 的实例构造函数:
public B()
{a2 = new A("4");
}

输出: 4

考点:解析类的构造函数和初始化顺序来理解输出顺序。

答案:1、3、2、4


题目2

下面程序的输出结果

namespace ConsoleApp2
{internal class Program{struct DataStruct{public int data;public DataStruct(int d){ data = d; }}static void Main(string[] args){List<DataStruct> structs = new List<DataStruct>();structs.Add(new DataStruct(1));structs.Add(new DataStruct(3));DataStruct dataStruct = structs[1];dataStruct.data = 2;Console.WriteLine(structs[1].data);}}
}

解析

重点在于

DataStruct dataStruct = structs[1];
dataStruct.data = 2;

structs[1]是否会被赋值为2,不会,因为这仅仅是修改了dataStruct,structs[1]还是为3


题目3

下列代码执行结果是什么

using System.Diagnostics;namespace ConsoleApp2
{internal class Program{public class BaseClass{private int i;public BaseClass(int _i){i = _i + 1;}public int GetI(){return i;}public virtual int GetIVal() {return i;}}public class SubClass : BaseClass{private int i;public SubClass(int _i) : base(_i){i = _i + 100;}}static void Main(string[] args){SubClass sc = new SubClass(1);BaseClass bc = sc as BaseClass;Console.WriteLine($"GetI={sc.GetI()},GetIVal={bc.GetIVal()}");}}
}

解析

基类 BaseClass子类 SubClass 各有自己的 i 字段,但 SubClass 的 i 在 SubClass 内部使用


题目4

链表和数组的区别

数组

  1. 内存分配
    连续内存: 数组中的元素在内存中是连续存放的。
    固定大小: 数组的大小在创建时必须指定,并且在大小固定的情况下使用。
  2. 访问方式
    随机访问: 通过索引可以直接访问数组中的任何元素。
    复杂度: 查找第 n 个元素的时间复杂度为O(1)
  3. 插入和删除
    低效的插入和删除: 在数组中间插入或删除元素需要移动大量元素,因此时间复杂度通常为 O(n)。
    固定位置操作: 只能在已分配的空间范围内进行插入和删除,不能动态增长或收缩。
  4. 存储空间
    内存紧凑: 仅包含元素的数据部分,没有额外的指针开销。
  5. 类型
    一维数组: 简单的线性结构。
    多维数组: 可以是二维、三维等,形成矩阵或更高维的结构。
  6. 优缺点
  • 优点:
    访问速度快,可以直接通过索引访问。
    内存紧凑,没有额外的指针开销。
  • 缺点:
    大小固定,无法动态扩展或缩减。
    插入和删除操作较慢,特别是在数组中间操作时。

链表

  1. 内存分配
    非连续内存: 链表中的元素(节点)在内存中可以不连续存放。
    动态大小: 链表可以随时动态增长或收缩,无需预先定义大小。
  2. 访问方式
    线性访问: 访问链表中的元素需要从头节点(Head)开始逐个遍历,直到找到目标节点。
    复杂度: 查找第 n 个元素的时间复杂度为 O(n)。
  3. 插入和删除
    高效的插入和删除: 在链表中,插入和删除操作只需修改相关节点的指针,不涉及大量的移动。时间复杂度通常为 O(1)(在已知位置的情况下)。
    动态操作: 插入和删除可以在任意位置进行,且这些操作不会涉及对其他元素的移动。
  4. 存储空间
    额外开销: 每个节点除了数据外,还需要存储一个或两个指针(单向链表或双向链表),这会增加内存开销。
  5. 类型
    单向链表: 每个节点有一个指针指向下一个节点。
    双向链表: 每个节点有两个指针,分别指向前一个和后一个节点。
    循环链表: 最后一个节点指向第一个节点,形成一个环。
  6. 优缺点
  • 优点:
    动态大小,无需预先定义。
    插入和删除操作高效,尤其是在头部和中间。
  • 缺点:
    访问元素速度慢,无法直接按索引访问。
    额外的内存开销用于存储指针。

题目5

下列代码是否正确

using System.Diagnostics;namespace ConsoleApp2
{internal class Program{static void Main(string[] args){List<int> ls= new List<int>(new int[] { 1,2,3,4,5 });foreach (int i in ls){if (i == 4){ ls.Remove(i);}}}}
}

解析

不正确

不能修改集合: 使用 foreach 遍历集合时不能对集合进行修改(增删)。否则会报InvalidOperationException错误


题目6

简述向量点乘和叉乘的几何意义?

解析

特性点乘叉乘
结果类型标量向量
几何意义度量两个向量的相似度计算平行四边形面积,得到垂直向量
公式A·B = |A| |B| cosθ|A x B| = |A| |B| sinθ
结果符号正、负、零向量,符号依据右手定则
应用计算夹角、投影、方向判断计算面积、法向量、共面性判断

题目7

打印6*6乘法表,请严格按照下面格式输出,并注意程序效率。

1*1=1 2*1=2 3*1=3
1*2=2 2*2=4 3*2=6
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12
1*5=5 2*5=10 3*5=15
1*6=6 2*6=12 3*6=184*1=4 5*1=5 6*1=6
4*2=8 5*2=10 6*2=12
4*3=12 5*3=15 6*3=18
4*4=16 5*4=20 6*4=24
4*5=20 5*5=25 6*5=30
4*6=24 5*6=30 6*6=36

解析

using System.Diagnostics;namespace ConsoleApp2
{internal class Program{static void Main(string[] args){for (int row = 1; row <=6; row++){for(int col = 1; col <=3; col++){int res = row * col ;Console.Write($"{col}*{row}={res}");if (col < 3 && res.ToString().Length >= 2){Console.Write(" ");}else if (col < 3 && res.ToString().Length < 2){Console.Write("  ");}}Console.WriteLine();}Console.WriteLine();for (int row = 1; row <= 6; row++){for (int col = 4; col <= 6; col++){int res = row * col;Console.Write($"{col}*{row}={res}");if (col < 6 && res.ToString().Length >= 2){Console.Write(" ");}else if(col < 6 && res.ToString().Length < 2){Console.Write("  ");}}Console.WriteLine();}}}
}

题目8

写一个求斐波那契数列的函数。请充分考虑时间和空间效率,且示例的函数调用能执行成功。
斐波那契数列:1、1、2、3、5、8、13、21、34 ······

解析

给定 n ,请计算 F(n) 。F(n)=F(n-1)+F(n-2)

public int Fib(int n) 
{int pre=0;int next=1;int sum;for(int i = 0;i < n;i++){sum=pre+next;pre=next;next=sum;}return pre;
}

后话

考的题目比较基础!

enjoy it ~

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

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

相关文章

原子性(juc编程)

原子性 概述&#xff1a;所谓的原子性是指在一次操作或者多次操作中&#xff0c;要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断&#xff0c;要么所有的操作都不执行&#xff0c;多个操作是一个不可以分割的整体。 //比如说&#xff1a;你喂你女朋友吃冰淇…

ScheduledExecutorService引起的线上问题(抛出异常后不继续执行)

线上有一个服务&#xff0c;采用ScheduledExecutorService定时任务刷新数据库数据到本地缓存作为路由信息 private ScheduledExecutorService scheduledExecutorService Executors.newScheduledThreadPool(1);scheduledExecutorService.scheduleWithFixedDelay(new Runnable()…

【docker】adoptopenjdk/openjdk8-openj9:alpine-slim了解

adoptopenjdk/openjdk8-openj9:alpine-slim 是一个 Docker 镜像的标签&#xff0c;它指的是一个特定的软件包&#xff0c;用于在容器化环境中运行 Java 应用程序。 镜像相关的网站和资源&#xff1a; AdoptOpenJDK 官方网站 - AdoptOpenJDK 这是 AdoptOpenJDK 项目的官方网站&…

Nginx Rewrite技术

一&#xff1a;理解地址重写 与 地址转发的含义。二&#xff1a;理解 Rewrite指令 使用三&#xff1a;理解if指令四&#xff1a;理解防盗链及nginx配置 简介&#xff1a;Rewrite是Nginx服务器提供的一个重要的功能&#xff0c;它可以实现URL重定向功能。 一&#xff1a;理解地…

数据库异常恢复2-备份文件恢复(快速恢复的手动启动方式)

(四) 备份文件备份恢复的概念 本次所说的数据恢复有异于数据的导入导出 1. 备份工具 gbase8s数据库提供了两种工具进行完成系统物理备份、逻辑日志备份和系统恢复&#xff1a;ontape和onbar ontape&#xff1a;提供了基本的系统物理备份、日志备份和恢复能力&#xff0c;其…

C++基础知识——命名空间

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan. 文章目录 1、什么是命名空间2、命名空间的作用3、如何定义命名…

js实现canvas截图功能

关键代码 使用canvas的导出功能和drawImage函数 class CropShape{cropShape(shape){let {x,y,w,h} shapeconsole.log(x,y,w,h)const roiCanvas document.createElement(canvas);document.getElementById(app).append(roiCanvas)const roiCtx roiCanvas.getContext(2d);roi…

贝叶斯优化、高斯过程相关概念总结

目录 贝叶斯优化 高斯过程 采集函数 贝叶斯优化 贝叶斯优化 &#xff5c; 黑盒优化全局最优方法 &#xff5c; Bayesian Optimization_哔哩哔哩_bilibili 贝叶斯优化用于解决寻找某个函数的最大值/最小值&#xff0c;在自变量维度比较小时(<20)表现的非常好。 适用…

《计算机英语》Unit1 计算机概述

期末试卷组成 1、选择20道 2、判断20道 3、词汇翻译&#xff08;单词词组&#xff0c;参照课后习题&#xff09; 4、翻译2道&#xff08;一道原题&#xff0c;参照作业&#xff09; Unit One Computer Overview 单元1 计算机概述 algorithm n. 算法 operate …

byte[]转MultipartFile、byte[]转File一次看个够

目录 需求背景 当你需要将byte[]、MultipartFile、File实现互转时&#xff0c;无外乎以下场景&#xff1a; 保存第三方接口返回二进制流前/后端文件流上传微服务间调用文件格式转换 正如你所需要的&#xff0c;通过搜索引擎筛选到我的本篇文章是因为你在开发中需要将byte[]转…

k8s学习笔记(一)

configMap 一般用来存储配置信息 创建configMap 从文件中获取信息创建&#xff1a;kubectl create configmap my-config --from-file/tmp/k8s/user.txt 直接指定信息&#xff1a; kubectl create configmap my-config01 --from-literalkey1config1 --from-literalkey2confi…

深度学习之计算机视觉

神经网络简介 全连接层和卷积层的根本区别在于权重在中间层中彼此连接的方式。图5.1描述了全连接层或线性层是如何工作的。 在计算机视觉中使用线性层或全连接层的最大挑战之一是它们丢失了所有空间信息&#xff0c;并且就全连接层使用的权重数量而言复杂度太高。例如&#xf…

鸿蒙Harmony实战—通过登录Demo了解ArkTS

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义…

最新版Cisco Packet Tracer思科模拟器Windows版本64位下载

Cisco Packet Tracer是思科公司推出的一款网络仿真工具&#xff0c;主要用于网络教学、培训和实验。它提供了一个真实的网络环境模拟平台&#xff0c;让用户可以设计、构建和调试网络&#xff0c;以及进行实时互动&#xff0c;从而帮助用户理解和实践网络技术。 通过 Cisco Pa…

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143

Unity和UE免费领恐怖书本头怪兽角色模型恐怖或奇幻游戏monster适合FPS类型PBR202406202143 Unity恐怖书本头怪兽角色模型&#xff1a;https://prf.hn/l/zpBqgVl UE恐怖书本头怪兽角色模型&#xff1a;https://prf.hn/l/4PzY1Qy 作者其他资产&#xff1a;https://prf.hn/l/0…

Fastjson漏洞之CVE-2022-25845

前言&#xff1a; 针对Fastjson之前已经介绍了&#xff0c;这里就不再重复了&#xff0c;漏洞CVE-2017-18349只能用来攻击>1.2.24版本的&#xff0c;CVE-2022-25845属于CVE-2017-18349的升级版&#xff0c;但是目前仅影响到1.2.83以下版本。CVE-2022-25845本质上是绕过了名…

SpringBoot | 实现邮件发送

运行环境&#xff1a; IntelliJ IDEA 2022.2.5 (Ultimate Edition) (注意&#xff1a;idea必须在2021版本以上&#xff09;JDK17 项目目录&#xff1a; 该项目分为pojo,service,controller,utils四个部分&#xff0c; 在pojo层里面写实体内容&#xff08;发邮件需要的发件人邮…

【etcd】etcd单机安装及简单操作

https://blog.csdn.net/Mr_XiMu/article/details/125026635 https://blog.csdn.net/m0_73192864/article/details/136509244 etcd在生产环境中一般为集群方式部署 etcd使用的2个默认端口号&#xff1a;2379和2380 2379&#xff1a;用于客户端通信(类似于sqlserver的1433&#x…

vscode卡顿问题处理(vue-official插件)

vue官方扩展由volar升级为vue-official&#xff0c;部分人的ide会变得非常卡顿&#xff0c;这是由于vscode本身一些问题导致&#xff0c;如下图作者解释&#xff1a; 解决方式&#xff1a; 通过禁用Hybrid模式&#xff0c;不使用tsserver来接管语言支持&#xff0c;卡顿会缓解…

CSS文本超限后使用省略号代替

方案一&#xff1a; 只显示一行&#xff0c;超限后使用省略号代替 .detail {overflow: hidden;text-overflow: ellipsis;white-space: nowrap; }方案二&#xff1a; 显示多行&#xff0c;到最后一行还没有显示完&#xff0c;则最后一行多出来的部分使用省略号代替。 .detai…