杭州网站排名优化公司在线做头像网站有哪些

pingmian/2025/10/7 20:41:05/文章来源:
杭州网站排名优化公司,在线做头像网站有哪些,智慧团建学生登录入口手机版,深圳网站设计兴田德润i优惠吗C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述private#xff0c;public#xff0c;protected#xff0c;internal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前… C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述privatepublicprotectedinternal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前加上static会报什么错?为什么?8.虚函数实现原理9.指针和引用的区别10.C#中ref和out关键字有什么区别11.请简述关键字Sealed用在类声明和函数声明时的作用12.C#中委托和接口有什么区别各用在什么场合C#中委托和事件的区别13. .Net与 Mono 的关系14.请简述GC垃圾回收产生的原因并描述如何避免15.协变与逆变16.重载和重写的区别17.C#函数 Func(string a, string b)用 Lambda 表达式怎么写?18.数列1,1,2,3,5,8,13...第 n 位数是多少?用 C#递归算法实现19.冒泡排序手写代码20.C#中有哪些常用的容器类各有什么特点。21.C#中常规容器和泛型容器有什么区别哪种效率高22.有哪些常见的数值类23.反射的实现原理24.C#中unsafe关键字是用来做什么的什么场合下使用25.请简述ArrayList和 List的主要区别26.想要在for循环中删除List或者vector都行中的元素时有可能出现什么问题如何避免27.ForforeachEnumerator.MoveNext的使用与内存消耗情况28.函数中多次使用string的处理会产生大量内存垃圾垃圾碎片有什么好的方法可以解决。29.当需要频繁创建使用某个对象时有什么好的程序设计方案来节省内存30.JIT和AOT区别31.给定一个存放参数的数组重新排列数组32.Foreach循环迭代时若把其中的某个元素删除程序报错怎么找到那个元素以及具体怎么处理这种情况(注Try.....Catch捕捉异常发送信息不可行)33.GameObject anew GameObject() GameObject ba 实例化出来了A将A赋给B现在将B删除问A还存在吗34.你拥有A块钱一瓶水B块钱每瓶水可以得到一个瓶盖每C个瓶盖可以换一瓶水请写出函数求解上面题目上面题目ABC为参数35.有一排开关第一个人把所有的开关打开第二个人按2的倍数的开关第三个人按3的倍数的开关以此类推现在又n个开关k个人写函数求最后等两者的开关输入参数n和k36.数制转换将任意整数转换成8进制形式37.找出200以内的素数。38.打印杨辉三角形39.中国有句俗话“三天打鱼两天晒网”某人从2000年1月1日起开始“三天打鱼两天晒网”问这个人在今后的某天中“打鱼”还是”晒网”40.假设当前市场价一只鸡10元一只鸭12元5角。请写一个函数ShowPrice输入参数分别为鸡和鸭的个数非负整型功能为显示出总价钱精确到分。例如调用ShowPrice5,10后输出175.00。请注意程序的可读性和易于维护性。41.请写一个函数用于返回n!阶乘结果末尾连续0的个数如GetZeroCount5返回1,因为5 120末尾连续1个042、C#中 委托和事件的区别43、协同程序的执行代码是什么有何用处有何缺点45、什么是里氏代换元则46、编写一个函数输入一个32位整数计算这个整数有多少个bit为147、简述static和const关键字的作用48、计算 s 1!2!3!…num!的代码。num为输入s为输出。代表阶乘 3 1 * 2 * 349、用你熟悉的语言从一个字符串中去掉相连的重复字符例如原字符串“adffjkljaalkjhl”变为“adfjkljalkjhl”50、在一个单链表中如何判断是否有环51、有限状态机和行为树的区别附录C#常用的数据结构详解 ArrayArrayListListLinkedListQueueStackDictionary,t1、数组2、ArrayList3、List 泛型4、Queue5、Stack6、DictionaryK,T 1. 简述值类型和引用类型有什么区别 1.1介绍 值类型intboolfloatcharstructenum。 引用类型stringobjectdelegateinterfaceclassarray。 1.2 区别 值类型存储在栈中引用类型存储在堆中。 值类型存储快引用类型存储慢。 值类型表示实际数据引用类型表示指向在内存堆中的指针和引用。 值类型在栈中可以自动释放引用类型在堆中需要GC来释放 值类型继承于 System.ValueTypeSystem.ValueType继承于System.Object)引用类型继承于System.Object。 值类型在栈中存储的是直接的值引用类型数据本身实在堆中栈中存放的是一个引用的地址。 1.3 底层 1.引用类型在实例化时先在栈内开辟空间用于存储堆中对象的地址然后在堆内开辟空间存储引用对象。 2.而值类型直接在栈中开辟空间存储对象。值类型也有引用地址但都在栈内的同一空间。 3.在参数对象进入方法体内实则是在栈中开辟了新的临时空间。也就是参数对象的副本栈内值类型的修改由于栈中地址不同所以值类型不会影响到主体。而引用类型的存储数据是一个堆内的地址所以对于引用类型的修改是直接修改堆内的对象。 4.值类型对象中的引用类型在堆中struct中定义的string等)引用类型对象中的值类型也在堆中class中的int等 C#中所有引用类型的基类是什么? 引用类型的基类是System.Object值类型的基类是 System.ValueType 同时值类型也隐式继承自System.Object 2. C# String类型比 stringBuilder 类型的优势是什么? 2.1 介绍 string的修改实则是new 一个新的string在堆内新开辟空间。而此时栈内的副本也会指向堆内新对象。因此string改变是新建的对象和本体没有联系。 2.2 解决 当频繁堆一个字符串进行修改时利用StringBuilder代替String 2.3 StringBuilder的底层实现 StringBuilder 是支持扩容的char类型数组在每次空间不足时会开辟原先数组大小的容量类似于链表新建的数组指向上一个已经用完的数组本身不会产生gc。 2.4 扩展 StringBuffer是线程安全一般用于多线程C#端不存在 StringBuilder是非线程安全所以性能略好一般用于单线程 2.5 用StringBuilder拼接字符串就一定比string要好吗 答极少拼接或者短字符串的情况下 String甚至优于StringBuilder因为String是公用API通用性好用途广泛读取性能高占用内存较小Stringbuilder初始化花费时间更大。 如果是处理字符串的话用string中的方法每次都需要创建一个新的字符串对象并且分配新的内存地址而 stringBuilder是在原来的内存里对字符串进行修改所以在字符串处理方面还是建议用stringBuilder这样比较节约内存。但是 string类的方法和功能仍然还是比 stringBuilder 类要强。 string类由于具有不可变性即对一个 string 对象进行任何更改时其实都是创建另外一个 string 类的对象所以当需要频繁的对一个 string 类对象进行更改的时候建议使用StringBuilder 类StringBuilder类的原理是首先在内存中开辟一定大小的内存空间当对此 StringBuilder 类对象进行更改时 如果内存空间大小不够会对此内存空间进行扩充而不是重新创建一个对象这样如果对一个字符串对象进行频繁操作的时候不会造成过多的内存浪费其实本质上并没有很大区别都是用来存储和操作字符串的唯一的区别就在于性能上。 String主要用于公共 API通用性好、用途广泛、读取性能高、占用内存小。 StringBuilder主要用于拼接 String修改性能好。 不过现在的编译器已经把String的 操作优化成 StringBuilder 了 所以一般用String 就可以了 String是不可变的所以天然线程同步。 StringBuilder可变非线程同步。 2.6 字符串池 字符串池有什么用原理是什么 字符串池是CLR一种针对于反复修改字符串对象的优化措施作用能够一定程度减少内存消耗。原理是内部开辟容器通过键值对的形式注册字符串对象键是字符串对象的内容值是字符串在托管堆上的引用。这样当新创建的时候会去检查如果不存在就在这个容器中开辟空间存放字符串。 3.面向对象的三大特点 继承 提高代码重用度增强软件可维护性的重要手段符合开闭原则。继承最主要的作用就是把子类的公共属性集合起来便与共同管理使用起来也更加方便。你既然使用了继承那代表着你认同子类都有一些共同的特性所以你把这些共同的特性提取出来设置为父类。继承的传递性传递机制 a▶b; b▶c; c具有a的特性 。继承的单根性在C#中一个类只能继承一个类不能有多个父类。 封装 封装是将数据和行为相结合通过行为约束代码修改数据的程度增强数据的安全性属性是C#封装实现的最好体现。就是将一些复杂的逻辑经过包装之后给别人使用就很方便别人不需要了解里面是如何实现的只要传入所需要的参数就可以得到想要的结果。封装的意义在于保护或者防止代码数据被我们无意中破坏。 多态性 多态性是指同名的方法在不同环境下自适应的反应出不同得表现是方法动态展示的重要手段。多态就是一个对象多种状态子类对象可以赋值给父类型的变量。 例如叫声在鸟这个类中是“鸣啼”在狗这个类中是“犬吠”。 4.请简述privatepublicprotectedinternal的区别 public:对任何类和成员都公开无限制访问 private:仅对该类公开 protected:对该类和其派生类公开 internal:只能在包含该类的程序集中访问该类 protected internal: protected internal 5.结构体和类 区别 结构体是值类型类是引用类型。结构体存在栈中类存在堆中。值类型存取快引用类型存取慢。值类型表示实际数据引用类型表示指向存储在内存堆中的数据的指针和引用。栈的内存是自动释放的堆内存是.NET 中会由 GC 来自动释放。值类型继承自 System.ValueType,引用类型继承自 System.Object。结构体变量和类对象进行类型传递时,结构体变量进行的就是值传递,而类对象进行的是引用传递或者说传递的是指针,这样在函数中改变参数值,结构体对象的值是不变的,而类对象的值是变化了。在C#中结构体类型定义时成员是不能初始化的,这样就导致了定义结构体变量时,变量的所有成员都要自己赋值初始化。但对于类在定义类时,就可以初始化其中的成员变量,所以在定义对象时,对象本身就已经有了初始值,你可以自己在重新给个别变量赋值。(注意在C中类的定义中是不能初始化的初始化要放在构造函数中)结构体不能申明无参的构造函数而类可以。声明了结构类型后可以使用new运算符创建构造对象也可以不使用new关键字。如果不使用new那么在初始化所有字段之前字段将保持未赋值状态且对象不可用。结构体申明有参构造函数后无参构造不会被顶掉。结构体不能申明析构函数而类可以。结构体不能被继承而类可以。结构体需要在构造函数中初始化所有成员变量而类随意。结构体不能被静态static修饰(不存在静态结构体)而类可以。 使用环境 结构体 结构是值类型在栈中栈的存取速度比堆快但是容量小适合轻量级的对象比如点、矩形、颜色。如果对象时数据集合时优先考虑接结构体位置坐标在变量传值的时候希望传递对象的是拷贝而不是对象的引用地址这个时候就可以使用结构体。 类 类是引用类型存储在堆中堆的容量大适合重量级的对象栈的空间不大大量的对应当存在于堆中。如果对象需要继承和多态特征用类玩家、怪物。 什么时候用结构体呢? 结构体在堆栈中创建是值类型而类是引用类型。 每当需要一种经常使用的类型而且大多数情况下该类型只是一些数据时使用结构体能比使用类获得更佳性能。 6.请描述Interface与抽象类之间的不同 区别 1.接口不是类 不能实例化 抽象类可以间接实例化 2.接口是完全抽象 抽象类为部分抽象 3.接口可以多继承 抽象类是单继承 接口不是类(无构造函数和析构函数) ,不能被实例化抽象类可以间接实例化可以被继承有构造函数可以实例化子类的同时间接实例化抽象类这个父类。接口只能做方法申明抽象类中可以做方法申明也可以做方法实现。抽象类中可以有实现成员接口只能包含抽象成员。因此接口是完全抽象抽象类是部分抽象。抽象类要被子类继承接口要被类实现。抽象类中所有的成员修饰符都能使用接口中的成员都是对外的所以不需要修饰符修饰。接口可以实现多继承抽象类只能实现单继承一个类只能继承一个类但可以实现多个接口。抽象方法要被实现所以不能是静态的也不能是私有的。 使用环境 使用抽象类是为了代码的复用而使用接口的动机是为了实现多态性。 抽象类适合用来定义某个领域的固有属性也就是本质接口适合用来定义某个领域的扩展功能。 抽象类 1.当2个或多个类中有重复部分的时候我们可以抽象出来一个基类如果希望这个基类不能被实例化就可以把这个基类设计成抽象类。 2.当需要为一些类提供公共的实现代码时应优先考虑抽象类。因为抽象类中的非抽象方法可以被子类继承下来使实现功能的代码更简单。 接口 当注重代码的扩展性跟可维护性时应当优先采用接口。 ①接口与实现它的类之间可以不存在任何层次关系接口可以实现毫不相关类的相同行为比抽象类的使用更加方便灵活; ②接口只关心对象之间的交互的方法而不关心对象所对应的具体类。接口是程序之间的一个协议比抽象类的使用更安全、清晰。一般使用接口的情况更多。 7.在类的构造函数前加上static会报什么错?为什么? 介绍 静态构造函数既没有访问修饰符也没有参数。在创建第一个类实例或任何静态成员被引用时.NET将自动调用静态构造函数来初始化类。一个类只能有一个静态构造函数。无参数的构造函数可以与静态构造函数共存。最多只运行一次。静态构造函数不可以被继承。如果没有写静态构造函数而类中包含带有初始值设定的静态成员那么编译器会自动生成默认的静态构造函数。如果静态构造函数引发异常运行时将不会再次调用该构造函数并且在程序运行所在的应用程序域的生存期内类型将保持未初始化。 构造函数格式为public类名如果加上 static会报错静态构造函数不能有访问、型的对象静态构造函数只执行一次 运行库创建类实例或者首次访问静态成员之前运行库调用静态构造函数 静态构造函数执行先于任何实例级别的构造函数显然也就无法使用this和base 来调用构造函数。 8.虚函数实现原理 每个虚函数都会有一个与之对应的虚函数表该虚函数表的实质是一个指针数组存放的是每一个对象的虚函数入口地址。对于一个派生类来说他会继承基类的虚函数表同时增加自己的虚函数入口地址如果派生类重写了基类的虚函数的话那么继承过来的虚函数入口地址将被派生类的重写虚函数入口地址替代。那么在程序运行时会发生动态绑定将父类指针绑定到实例化的对象实现多态。 9.指针和引用的区别 引用不能为空即不存在对空对象的引用指针可以为空指向空对象。引用必须初始化指定对哪个对象的引用指针不需要。引用初始化后不能改变指针可以改变所指对象的值。引用访问对象是直接访问指针访问对象是间接访问。引用的大小是所引用对象的大小指针的大小是指针本身大小通常是4字节。引用没有const指针有const引用和指针的自增运算符意义不同。引用不需要分配内存空间指针需要。 10.C#中ref和out关键字有什么区别 ref和out的作用 解决值类型和引用类型在函数内部改值或者重新申明能够影响外部传入的变量让其也被修改。 使用 就是在申明参数的时候前面加上ref和out的关键字即可传入参数时同上。 区别 ref修饰参数表示进行引用传递 out修饰参数也表示进行引用传递但传递的引用只为带回返回值 ref又进又出 out不进只出 ref传入的变量必须初始化但是在内部可改可不改。 out传入的变量不用初始化但是在内部必须修改该值(必须赋值。 11.请简述关键字Sealed用在类声明和函数声明时的作用 关键字sealed类声明时可防止其他类继承此类在方法中声明则可防止派生类重写此方法。与override一起使用。 12.C#中委托和接口有什么区别各用在什么场合 委托介绍 委托是约束集合中的一个类而不是一个方法相当于一组方法列表的引用可以便捷的使用委托对这个方法集合进行操作。委托是对函数指针的封装。 委托和接口的区别 接口介绍 接口是约束类应该具备功能的集合约束了类应该具备哪些功能使类从复杂的逻辑中解脱出来方便类的管理和拓展同时解决类的单继承问题。 使用情况 接口无法继承的场所、完全抽象的场所、多人协作的场所 委托多由于事件的处理 C#中委托和事件的区别 委托和事件的区别 事件可以看做成委托中的一个变量。事件是基于委托的存在事件是委托的安全包裹 让委托的使用更具有安全性。 委托可以用“”来赋值事件不可以。 委托可以在声明它的类外部进行调用而事件只能在类的内部进行调用。 委托是一个类型事件修饰的是一个对象。 13. .Net与 Mono 的关系 .Net是一个语言平台Mono为.Net提供集成开发环境集成并实现了.NET的编译器、CLR 和基础类库使得.Net既可以运行在windows也可以运行于 linuxUnixMac OS 等。 14.请简述GC垃圾回收产生的原因并描述如何避免 GC为了避免内存溢出而产生的回收机制 如何避免 1减少 new 产生对象的次数 2使用公用的对象静态成员 3将 String 换为 StringBuilder 15.协变与逆变 协变(out): 和谐、自然的变化 里式替换原则中父类容器可以装载子类对象子类可以转换成父类。比如string转object感受是和谐的。 逆变(in): 逆常规、不正常的变化 里式替换原则中父类容器可以装载子类对象但是子类对象不能装载父类。所以父类转换为子类比如object转string感受是不和谐的。 协变和逆变是用来修饰泛型的用于泛型中修饰字母只有泛型接口和泛型委托能使用. 作用: //1.返回值与参数//用out修饰的泛型只能作为返回值delegate T Testoutout T();//用in修饰的泛型只能作为参数delegate T TestInin T(T t);16.重载和重写的区别 封装、继承、多态所处位置不同重载在同类中重写在父子类中。定义方式不同重载方法名相同参数列表不同重写方法名和参数列表都相同。调用方式不同重载使用相同对象以不同参数调用重写用不同对象以相同参数调用。多态时机不同重载时编译时多态重写是运行时多态。 17.C#函数 Func(string a, string b)用 Lambda 表达式怎么写? (a,b) {};18.数列1,1,2,3,5,8,13…第 n 位数是多少?用 C#递归算法实现 public int CountNumber(int num) {if (num 1 || num 2) {return 1;} else {return CountNumber(num -1) CountNumber(num-2);}}19.冒泡排序手写代码 public static void BubblingSort(int[]array) {for (int i 0; i array.Length; i){for (int j array.Length - 1; j 0; j--){if (array[j] array[i]) {int temp array[j];array[j] array[j-1];array[j - 1] temp;}}}}C#中的排序方式有哪些 选择排序冒泡排序快速排序插入排序希尔排序归并排序 排序算法里快速排序时间复杂度多少稳不稳定冒泡排序呢插入排序呢 排序算法的时间复杂度空间复杂度和稳定性常见的几种排序算法 快排复杂度是 nlogn不稳定插入排序和冒泡排序复杂度都是 n^2都稳定。 “最近情绪不稳定快快速排序些希尔排序选直接选择排序堆堆排序朋友聊聊天” 20.C#中有哪些常用的容器类各有什么特点。 List,HashTable,Dictionary,Stack,Queue List索引泛型容器 访问速度快 修改速度慢 HashTable/Dictionary散列表格式 查询效率高 空间占用较大 Stack后进先出 Queue:先进先出 21.C#中常规容器和泛型容器有什么区别哪种效率高 不带泛型的容器需要装箱和拆箱操作速度慢所以泛型容器效率更高数据类型更安全 22.有哪些常见的数值类 简单值类型–包括 整数类型、实数类型、字符类型、布尔类型 复合值类型–包括 结构类型、枚举类型 23.反射的实现原理 可以在加载程序运行时动态获取和加载程序集并且可以获取到程序集的信息反射即在运行期动态获取类、对象、方法、对象数据等的一种重要手段 主要使用的类库System.Reflection 核心类 1.Assembly描述了程序集 2.Type描述了类这种类型 3.ConstructorInfo描述了构造函数 4.MethodInfo描述了所有的方法 5.FieldInfo描述了类的字段 6.PropertyInfo描述类的属性 //反射个人认为就是得到程序集中的属性和方法。 //实现步骤 1,导入using System.Reflection; 2Assembly.Load(程序集)加载程序集,返回类型是一个Assembly 3 foreach (Type type in assembly.GetTypes()){ string t type.Name; } //得到程序集中所有类的名称 4,Type type assembly.GetType(程序集.类名);//获取当前类的类型 5,Activator.CreateInstance(type); //创建此类型实例 6,MethodInfo mInfo type.GetMethod(方法名);//获取当前方法 7,mInfo.Invoke(null,方法参数);通过以上核心类可在运行时动态获取程序集中的类并执行类构造产生类对象动态获取对象的字段或属性值更可以动态执行类方法和实例方法等。 反射面向对象体现 之前了解的面向对象是基于类实现而反射中就是基于程序集实现只不过把类再用程序集包裹了一下封装是把一些属性方法封装到一个类中限制其数据修改的程度那多加一层皮(程序集 ) 就是一个道理了继承多态就是和类一样把类换成程序集去理解。 优点 允许在运行时发现并使用编译时还不了解的类型以及成员。 缺点 1.根据目标类型的字符串搜索扫描程序集的元数据的过程耗时。 2.反射调用方法或属性比较耗时。首先必须将实参打包成数组在内部反射必须将这些实参解包到线程栈上。可以使用多态避免反射操作 通过反射去获取对象的一个实例 反射可以直接访问类的构造直接通过getConstructor去访问这个构造函数然后通过不同的参数列表就可以具体的定位到哪一个构造的重载通过这个方法去得到类的实例把对象就拿到了。 24.C#中unsafe关键字是用来做什么的什么场合下使用 非托管代码才需要这个关键字一般用在带指针操作的场合 25.请简述ArrayList和 List的主要区别 ArrayList不带泛型 数据类型丢失 需要装箱拆箱 不丢需 List带泛型 数据类型不丢失 不需要装箱拆箱 带不不 26.想要在for循环中删除List或者vector都行中的元素时有可能出现什么问题如何避免 当删除遍历节点后面的节点时会导致List.Count进行变化删除元素后当根据i遍历到删除的节点会发生异常。 处理 可以从后往前元素元素即删除在访问的前面 27.ForforeachEnumerator.MoveNext的使用与内存消耗情况 for循环可以通过索引依次进行遍历foreach和Enumerator.MoveNext通过迭代的方式进行遍历。内存消耗上本质上并没有太大的区别。但是在Unity中的Update中一般不推荐使用foreach 因为会遗留内存垃圾。 28.函数中多次使用string的处理会产生大量内存垃圾垃圾碎片有什么好的方法可以解决。 通过StringBuilder那进行append这样可以减少内存垃圾 29.当需要频繁创建使用某个对象时有什么好的程序设计方案来节省内存 设计单例模式进行创建对象或者使用对象池 30.JIT和AOT区别 Just-In-Time -实时编译 执行慢安装快占空间小一点 Ahead-Of-Time -预先编译 执行快安装慢占内存占外存大 31.给定一个存放参数的数组重新排列数组 void SortArray(Array arr){Array.Sort(arr);}32.Foreach循环迭代时若把其中的某个元素删除程序报错怎么找到那个元素以及具体怎么处理这种情况(注Try…Catch捕捉异常发送信息不可行) foreach不能进行元素的删除因为迭代器会锁定迭代的集合解决方法记录找到索引或者key值迭代结束后再进行删除。 33.GameObject anew GameObject() GameObject ba 实例化出来了A将A赋给B现在将B删除问A还存在吗 存在b删除只是将它在栈中的内存删除而A对象本身是在堆中所以A还存在 34.你拥有A块钱一瓶水B块钱每瓶水可以得到一个瓶盖每C个瓶盖可以换一瓶水请写出函数求解上面题目上面题目ABC为参数 public static int Buy(int a,int b,int c) {return a/b ForCap(c,a/b);}public static int ForCap(int c,int d) {if (d)???return 0;} else {return d/c ForCap(c,d/c d%c);}}35.有一排开关第一个人把所有的开关打开第二个人按2的倍数的开关第三个人按3的倍数的开关以此类推现在又n个开关k个人写函数求最后等两者的开关输入参数n和k static void Main(string[] args) {int n int.Parse(Console.ReadLine());int k int.Parse(Console.ReadLine());Function(100,100);}static void Function(int n, int k) {int i, j 0;bool[] a new bool[1000]; //初始false关灯true:开灯 for (i 1; i k; i) //k个人for (j 1; j n; j) //n个灯if (j % i 0)a[j] !a[j]; //取反,false变true,原来开变关关变开for (i 1; i n; i) //最后输出a[i]的值就可以了if (a[i]) //灯亮着Console.WriteLine(i);}36.数制转换将任意整数转换成8进制形式 static void Main(string[] args) {int n;n int.Parse(Console.ReadLine());Console.WriteLine(输入的10进制为{0},n);Console.Write(转换为8进制数为: );d2o(n);}static void d2o(int n) {if (n 7) {d2o(n / 8);}Console.Write(n%8);}37.找出200以内的素数。 static void Main(string[] args) {int count 0;for (int i 1; i 200; i) {//外层循环要判断的数for (int j 2; j i; j){if (i % j 0 i!j) {break;}if (j i ) {//结束的条件:最后一个数还没有被整除 count;Console.WriteLine(i);}}}Console.WriteLine(count);}38.打印杨辉三角形 public static void YHSJ(){int [][]a new int[7][] ;a[0] new int[1]; //a[0][0]1;a[1] new int[2] ;for (int i 0; i 7; i) {a[i] new int[i1] ; a[i][0] 1;a[i][i]1;if(i1) {//求出中间的数据for(int j1;ja[i][j] a[i-1][j-1]a[i-1][j];}}}for (int i0; ifor (int k 0; k a.Length-1-i; k) {Console.Write();}for(int j0;jConsole.Write(a[i][j] );}Console.WriteLine();}}39.中国有句俗话“三天打鱼两天晒网”某人从2000年1月1日起开始“三天打鱼两天晒网”问这个人在今后的某天中“打鱼”还是”晒网” public static void Compute(){Console.WriteLine ((DateTime.Now - DateTime.Parse(2000-01-01)).Days%53?打鱼:晒网);}40.假设当前市场价一只鸡10元一只鸭12元5角。请写一个函数ShowPrice输入参数分别为鸡和鸭的个数非负整型功能为显示出总价钱精确到分。例如调用ShowPrice5,10后输出175.00。请注意程序的可读性和易于维护性。 static void ShowPrice(int num_chicken, int num_duck) {float totalPrice 0.00f;float price_chicken 10f;float price_duck 12.5f;totalPrice num_chicken * price_chicken num_duck * price_duck;Console.WriteLine(总价钱为{0:0.00}, totalPrice);}41.请写一个函数用于返回n!阶乘结果末尾连续0的个数如GetZeroCount5返回1,因为5 120末尾连续1个0 static void Main(string[] args) {int fac Factorial(5);Console.WriteLine(CountZero(fac));}public static int Factorial(int n) {if (n 1) {return 1;} else {return n * jiecheng(n - 1);}}//求连续的0的个数public static int CountZero(int num) {int result 0; //最后的结果String numStr num.ToString();for (int i numStr.Length - 1; i 0; i--) {if (numStr[i] 0) {result ;} else {break;}}return result;}42、C#中 委托和事件的区别 委托是一个类该类内部维护着一个字段指向一个方法。 事件可以被看作一个委托类型的变量通过事件注册、取消多个委托或方法。 通过委托执行方法 class Program {static void Main(string[] args){Example example new Example();example.Go(); Console.ReadKey();}}public class Example {public delegate void DoSth(string str);internal void Go(){//声明一个委托变量并把已知方法作为其构造函数的参数DoSth d new DoSth(Print); string str Hello,World; //通过委托的静态方法Invoke触发委托 d.Invoke(str);} void Print(string str){Console.WriteLine(str);}}以上在CLR运行时委托DoSth实际上就一个类该类有一个参数类型为方法的构造函数并且提供了一个Invoke实例方法用来触发委托的执行。 委托DoSth定义了方法的参数和返回类型通过委托DoSth的构造函数可以把符合定义的方法赋值给委托调用委托的实例方法Invoke执行了方法 但实际上让委托执行方法还有另外一种方式那就是委托变量(参数列表) public class Example { public delegate void DoSth(object sender, EventArgs e); internal void Go() { //声明一个委托变量并把已知方法作为其构造函数的参数DoSth d new DoSth(Print); object sender 10; EventArgs e new EventArgs(); d(sender, e); }void Print(object sender, EventArgs e) { Console.WriteLine(sender); } }以上 委托DoSth的参数列表和方法Print的参数列表还是保持一致委托DoSth中的参数object sender通常用来表示动作的发起者EventArgs e用来表示动作所带的参数。 而实际上委托变量(参数列表)事件就是采用这种形式执行方法的。 通过事件执行方法 public class Example { public delegate void DoSth(object sender, EventArgs e); public event DoSth myDoSth; internal void Go() { //声明一个委托变量并把已知方法作为其构造函数的参数DoSth d new DoSth(Print); object sender 10; EventArgs e new EventArgs(); myDoSth new DoSth(d); myDoSth(sender, e);}void Print(object sender, EventArgs e) { Console.WriteLine(sender); } }以上 声明了事件myDoSth,事件的类型是DoSth这个委托通过为事件注册委托通过DoSth委托的构造函数为事件注册委托实例采用委托变量(参数列表)这种形式让事件执行方法 而且通过还可以为事件注册多个委托。 public class Example { public delegate void DoSth(object sender, EventArgs e); public event DoSth myDoSth;internal void Go() { //声明一个委托变量并把已知方法作为其构造函数的参数 DoSth d new DoSth(Print); DoSth d1 new DoSth(Say); object sender 10; EventArgs e new EventArgs(); //为事件注册多个委托 myDoSth new DoSth(d); myDoSth new DoSth(d1); myDoSth(sender, e); }void Print(object sender, EventArgs e) { Console.WriteLine(sender); }void Say(object sender, EventArgs e) { Console.WriteLine(sender); } }以上通过为事件注册1个或多个委托实例实际上还可以为事件直接注册方法。 public class Example {public delegate void DoSth(object sender, EventArgs e); public event DoSth myDoSth; internal void Go(){ object sender 10; EventArgs e new EventArgs(); //为事件注册多个委托 myDoSth Print; myDoSth Say; myDoSth(sender, e); }void Print(object sender, EventArgs e) { Console.WriteLine(sender); }void Say(object sender, EventArgs e) {Console.WriteLine(sender); }} 通过EventHandler执行方法 先来看EventHandler的源代码。 可见EventHandler就是委托。现在就使用EventHandler来执行多个方法。 public class Example { public event EventHandler myEvent; internal void Go() { object sender 10; EventArgs e new EventArgs(); //为事件注册多个委托 myEvent Print; myEvent Say;myEvent(sender, e); }void Print(object sender, EventArgs e) { Console.WriteLine(sender); }void Say(object sender, EventArgs e) {Console.WriteLine(sender); } }总结 委托就是一个类也可以实例化通过委托的构造函数来把方法赋值给委托实例触发委托有2种方式: 委托实例.Invoke(参数列表)委托实例(参数列表)事件可以看作是一个委托类型的变量通过为事件注册多个委托实例或多个方法通过-为事件注销多个委托实例或多个方法EventHandler就是一个委托 1.事件的声明只是在委托前面加一个event关键词虽然你可以定义一个public但是有了event关键词后编译器始终会把这个委托声明为private然后添加1组addremove方法。add对应remove对应-。这样就导致事件只能用-来绑定方法或者取消绑定方法。而委托可以用来赋值当然委托也是可以用-来绑定方法的 2.委托可以在外部被其他对象调用而且可以有返回值返回最后一个注册方法的返回值。而事件不可以在外部调用只能在声明事件的类内部被调用。我们可以使用这个特性来实现观察者模式。大概就是这么多。下面是一段测试代码。 namespace delegateEvent {public delegate string deleFun(string word);public class test{public event deleFun eventSay;public deleFun deleSay;public void doEventSay(string str){if (eventSay!null)eventSay(str);}}class Program{static void Main(string[] args){test t new test();t.eventSay t_say;t.deleSay t_say;t.deleSay t_say2;//t.eventSay(eventSay); 错误 事件不能在外部直接调用t.doEventSay(eventSay);//正确 事件只能在声明的内部调用string str t.deleSay(deleSay);//正确 委托可以在外部被调用 当然在内部调用也毫无压力 而且还能有返回值返回最后一个注册的方法的返回值Console.WriteLine(str);Console.Read();}static string t_say(string word){Console.WriteLine(word);return return word;}static string t_say2(string word){Console.WriteLine(word);return return word 2;}} }43、协同程序的执行代码是什么有何用处有何缺点 function Start() { // 协同程序WaitAndPrint在Start函数内执行,可以视同于它与Start函数同步执行.StartCoroutine(WaitAndPrint(2.0)); print (Before WaitAndPrint Finishes Time.time ); }function WaitAndPrint (waitTime : float) {// 暂停执行waitTime秒yield WaitForSeconds (waitTime);print (WaitAndPrint Time.time ); }作用一个协同程序在执行过程中,可以在任意位置使用yield语句。yield的返回值控制何时恢复协同程序向下执行。协同程序在对象自有帧执行过程中堪称优秀。协同程序在性能上没有更多的开销。 缺点协同程序并非真线程可能会发生堵塞。 45、什么是里氏代换元则 里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 通俗点就是子类对象可以赋值给基类对象基类对象不能赋值给子类对象 46、编写一个函数输入一个32位整数计算这个整数有多少个bit为1 uint BitCount (uint n) {uint c 0; // 计数器while (n 0) {if ((n 1) 1) // 当前位是1c; // 计数器加1n 1; // 移位}return c; }47、简述static和const关键字的作用 static 关键字至少有下列几个作用 1函数体内static 变量的作用范围为该函数体不同于auto 变量该变量的内存只被分配一次因此其值在下次调用时仍维持上次的值 2在模块内的static 全局变量可以被模块内所用函数访问但不能被模块外其它函数访问 3在模块内的static 函数只可被这一模块内的其它函数调用这个函数的使用范围被限制在声明它的模块内 4在类中的static 成员变量属于整个类所拥有对类的所有对象只有一份拷贝 5在类中的static 成员函数属于整个类所拥有这个函数不接收this 指针因而只能访问类的static 成员变量。 const 关键字至少有下列几个作用 1欲阻止一个变量被改变可以使用const 关键字。在定义该const 变量时通常需要对它进行初始化因为以后就没有机会再去改变它了 2对指针来说可以指定指针本身为const也可以指定指针所指的数据为const或二者同时指定为const 3在一个函数声明中const 可以修饰形参表明它是一个输入参数在函数内部不能改变其值 4对于类的成员函数若指定其为const 类型则表明其是一个常函数不能修改类的成员变量 5对于类的成员函数有时候必须指定其返回值为const 类型以使得其返回值不为“左值”。 48、计算 s 1!2!3!…num!的代码。num为输入s为输出。代表阶乘 3 1 * 2 * 3 Console.ReadLine(num) int s 0; for(int i 1; i num; i) {s JieCheng(num); } public int JieCheng(int num) {if(num 0){Console.WriteLine(error);return;}if(num 1){return 1;}else {return num * JieCheng(num - 1)} }49、用你熟悉的语言从一个字符串中去掉相连的重复字符例如原字符串“adffjkljaalkjhl”变为“adfjkljalkjhl” int GetResult(char[] input, char[] output) { int i, j, k 0; int flag; int length; if(input NULL || output NULL) { return -1; } lengthstrlen(input);//求数组的长度 for(i 0; ilength; i) { flag 1; for(j 0; j i; j) { if(output[j] input [i]) flag 0; } if(flag) output[k] input[i]; } printf(最终的字符串为); output[k] \0; for(int m 0; m output.Length; m){print (output [m]);} return 0; } 50、在一个单链表中如何判断是否有环 第一种对链表遍历的同时记录已访问过的结点如果遍历过程中发现有结点是此前已经访问过的结点说明有环第二种方法快慢指针法快指针每次前进两个慢指针每次前进一个如果快慢指针相遇了说明有环。 51、有限状态机和行为树的区别 附录 C#常用的数据结构详解 ArrayArrayListListLinkedListQueueStackDictionary,t 1、数组 特点 数组存储在连续的内存上。 数组的内容都是相同类型。 数组可以直接通过下标访问。 数组创建 int size 10;int[] test new int[size]; 创建一个新的数组时将在 CLR 托管堆中分配一块连续的内存空间来盛放数量为size类型为所声明类型的数组元素。 如果类型为值类型则将会有size个未装箱的该类型的值被创建。 如果类型为引用类型则将会有size个相应类型的引用被创建。 优点 由于是在连续内存上存储的所以它的索引速度非常快访问一个元素的时间是恒定的也就是说与数组的元素数量无关而且赋值与修改元素也很简单。 string[] test2 new string[3];**//赋值**test2[0] chen; test2[1] j; test2[2] d;**//修改**test2[0] chenjd;缺点 由于是连续存储所以在两个元素之间插入新的元素就变得不方便。声明一个新的数组时必须指定其长度这就会存在一个潜在的问题那就是当我们声明的长度过长时显然会浪费内存当我们声明长度过短的时候则面临这溢出的风险。 针对这种缺点下面隆重推出ArrayList。 2、ArrayList 为了解决数组创建时必须指定长度以及只能存放相同类型的缺点而推出的数据结构。ArrayList是System.Collections命名空间下的一部分所以若要使用则必须引入System.Collections。正如上文所说ArrayList解决了数组的一些缺点。 不必在声明ArrayList时指定它的长度这是由于ArrayList对象的长度是按照其中存储的数据来动态增长与缩减的。 ArrayList可以存储不同类型的元素。这是由于ArrayList会把它的元素都当做Object来处理。因而加入不同类型的元素是允许的。 ArrayList的操作 ArrayList test3 new ArrayList();//新增数据 test3.Add(i); test3.Add(j); test3.Add(d); test3.Add(is); test3.Add(25); test3[4] 26;test3.RemoveAt(4);缺点 那是因为ArrayList可以存储不同类型数据的原因是由于把所有的类型都当做Object来做处理也就是说ArrayList的元素其实都是Object类型的辣么问题就来了。 ArrayList不是类型安全的。因为把不同的类型都当做Object来做处理很有可能会在使用ArrayList时发生类型不匹配的情况。 如上文所诉数组存储值类型时并未发生装箱但是ArrayList由于把所有类型都当做了Object所以不可避免的当插入值类型时会发生装箱操作在索引取值时会发生拆箱操作。这能忍吗 注为何说频繁的没有必要的装箱和拆箱不能忍呢 装箱 (boxing)就是值类型实例到对象的转换 拆箱就是将引用类型转换为值类型 //装箱将值类型转成引用类型 int info 1989; object obj(object)info; //拆箱引用类型转换成值类型 object obj 1; int info (int)obj;显然从原理上可以看出装箱时生成的是全新的引用对象这会有时间损耗也就是造成效率降低。 那么为了解决ArrayList不安全类型与装箱拆箱的缺点所以出现了泛型 的概念作为一种新的数组类型引入。也是工作中经常用到的数组类型。和ArrayList很相似长度都可以灵活的改变最大的不同在于在声明List集合时我们同时需要为其声明List集合内数据的对象类型这点又和Array很相似其实List内部使用了Array来实现。 3、List 泛型 Liststring test4 new Liststring(); //新增数据test4.Add(“Fanyoy”); test4.Add(“Chenjd”); //修改数据 test4[1] “murongxiaopifu”; //移除数据 test4.RemoveAt(0);这么做最大的好处就是 (1)即确保了类型安全; (2)也取消了装箱和拆箱的操作; (3)它融合了Array可以快速访问的优点以及ArrayList长度可以灵活变化的优点。 也就是链表了。 和上述的数组最大的不同之处 就是在于链表在内存存储的排序上可能是不连续的。 这是由于链表是通过上一个元素指向下一个元素来排列的所以可能不能通过下标来访问。如图 既然链表最大的特点就是存储在内存的空间不一定连续那么链表相对于数组最大优势和劣势就显而易见了。 向链表中插入或删除节点无需调整结构的容量。因为本身不是连续存储而是靠各对象的指针所决定所以添加元素和删除元素都要比数组要有优势。 链表适合在需要有序的排序的情境下增加新的元素这里还拿数组做对比例如要在数组中间某个位置增加新的元素则可能需要移动移动很多元素而对于链表而言可能只是若干元素的指向发生变化而已。 缺点 由于其在内存空间中不一定是连续排列所以访问时候无法利用下标而是必须从头结点开始逐次遍历下一个节点直到寻找到目标。所以当需要快速访问对象时数组无疑更有优势。 综上链表适合元素数量不固定需要经常增减节点的情况。 4、Queue “先进先出”FIFO—first in first out的线性表。通过使用Enqueue和Dequeue这两个方法来实现对 Queue 的存取。 默认情况下Queue的初始容量为32 增长因子为2.0。 当使用Enqueue时会判断队列的长度是否足够若不足则依据增长因子来增加容量例如当为初始的2.0时则队列容量增长2倍。 5、Stack 后进先出顺序LIFO的数据结构 默认容量为10。 使用pop和push来操作。 6、DictionaryK,T 提到字典就不得不说Hashtable哈希表以及Hashing哈希也有叫散列的因为字典的实现方式就是哈希表的实现方式只不过字典是类型安全的也就是说当创建字典时必须声明key和item的类型这是第一条字典与哈希表的区别。 哈希 简单的说就是一种将任意长度的消息压缩到某一固定长度比如某学校的学生学号范围从0000099999总共5位数字若每个数字都对应一个索引的话那么就是100000个索引但是如果我们使用后3位作为索引那么索引的范围就变成了000999了当然会冲突的情况这种情况就是哈希冲突(Hash Collisions)了。 回到DictionaryK,T 劣势就是空间。 以空间换时间通过更多的内存开销来满足我们对速度的追求。 在创建字典时我们可以传入一个容量值但实际使用的容量并非该值。而是使用“不小于该值的最小质数来作为它使用的实际容量最小是3。”当有了实际容量之后并非直接实现索引而是通过创建额外的2个数组来实现间接的索引即int[]buckets和Entry[]entries两个数组即buckets中保存的其实是entries数组的下标这里就是第二条字典与哈希表的区别还记得哈希冲突吗对第二个区别就是处理哈希冲突的策略是不同的 字典会采用额外的数据结构来处理哈希冲突这就是刚才提到的数组之一buckets桶了buckets的长度就是字典的真实长度因为buckets就是字典每个位置的映射然后buckets中的每个元素都是一个链表用来存储相同哈希的元素然后再分配存储空间。 因此我们面临的情况就是即便我们新建了一个空的字典那么伴随而来的是2个长度为3的数组。所以当处理的数据不多时还是慎重使用字典为好很多情况下使用数组也是可以接受的。 爱你不跪的模样 爱你对峙过绝望不肯哭一场 你将造你的城邦在废墟之上

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

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

相关文章

网站语音转写怎么做天元建设集团有限公司总工程师

写在前面你想成为Python爬虫的高手么?你想爬取你想要的高质量数据么?那么你得需要进行爬虫项目的演练,那样你才有可能在Python爬虫的道路上走的更远小编在这里精心总结了20个爬虫项目的演练,是目前爬虫高手一直专注的领域。小编将…

变更股东怎样在工商网站做公示婚车租赁

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述(CMU,CCM,TBU,MON) 1 时钟管理单元(CMU)2 集群配置模块(CCM)3 时基单元(TBU)4 监控单元(MON)5 总结由前文的各篇内容,开发者已经知道如何使用GTM的大部分功能,在这些功能中,都需要一个信息就是fGTM 的数据,我们在前…

外管局网站做延期收汇报告衡阳建设网站

我的windows11系统上,之前已经安装好了window版本的docker,没有安装的小伙伴需要去安装一下。 下面直接记录安装linux的步骤: 一、创建linux容器 1、拉取镜像 docker pull ubuntu 2、查看镜像 docker images 3、创建容器 docker run --…

网站开发模板免费下载wordpress如何去掉版权

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 方法一:移动窗口 设置两个指针&…

手机商城网站旅游景区网站建设方案

“生成式 AI 提醒我们,很难做出有关于人工智能的预测。十年前,传统观点认为:人工智能首先会影响体力劳动;然后,是认知劳动;然后,也许有一天它可以做创造性工作。现在看起来,它会以相…

html5做的网站有哪些directadmin网站储存目录

一、为什么要使用Python进行数据分析?python拥有一个巨大的活跃的科学计算社区,拥有不断改良的库,能够轻松的集成C,C,Fortran代码(Cython项目),可以同时用于研究和原型的构建以及生产系统的构建。二、Python的优势与劣势&#xff…

宋庄网站建设移动网站开发技术

数据可视化已成为数据展示与分析领域非常重要的工具。由多种图表、3D图形组成的大屏能够帮助用户非常直观简洁地了解数据。在物联网环境下,用户在制作数据展示大屏时,对数据可视化工具提出了更高的要求,例如能够展示3D组件、灵活的图层结构、支持多种数据源、实时的数据更新、图…

国家建设工程质量检查标准网站住房和城乡建设厅官方网

电脑作为现代生活中不可或缺的工具,我们通常会在工作或娱乐过程中使用它。但有时候,我们可能需要在一段时间后自动关机,例如在下载完成后或在睡觉前。那么电脑怎么设置定时关机呢?为了满足这种需求,电脑提供了多种定时…

徐州市鼓楼区建设局网站中国设计网站排名

Linux课堂笔记day01 主要总结内容: 一:Linux背景介绍 二:系统操作 三:服务管理 四:shell脚本 五:文本操作 六:常用服务搭建 01:初识linux 收获:可以熟练应对运维和开发 对以后的生…

网上打广告有哪些软件优化系统的软件

—— Python量化工具清单 ——以下内容来源于Wilson Freitas的Github项目"Awesome Quant"。原文中包含了丰富的语言类别,但是后续介绍主要针对Python语言。原网址:https://github.com/ wilsonfreitas/awesome-quant基于Python的量化交易工具清…

中国建设银行网站查询密码什么装修网站做的好的

目录 一、AVL树的定义二、AVL树的作用三、AVL树的插入操作插入——平衡因子的更新插入——左单旋插入——右单旋插入——左右双旋插入——右左双旋 四、ALVL树的验证五、AVL树的性能 一、AVL树的定义 AVL树,全称 平衡二叉搜索(排序)树。 二…

做产品网站营销推广网页设计需要学什么技术

一、前言 本项目演示在QT中使用SQLITE数据库存储数据管理的过程。当前以会员卡管理系统为例,写了一个界面,完成会员卡的注册,添加,充值,查询,注销,导出顾客信息EXECL表格 等功能的实现。 演示 SQLITE数据库的建表、增、删、改、查等语句功能实现。 SQLite是一款轻型的…

网站底部代码特效上海比较出名的广告公司

IPKISS ------ AMF 添加自定义层 正文 正文 很多时候,我们想要添加属于我们自己的层,此时我们需要向 AMF pdk 中的 gdsii.py 和 layers.py 文件添加层的信息。这两个文件的目录如下: 在 gdsii.py 文件下的 TECH.GDSII.LAYERTABLE 字典中我们…

如何做付款网站小程序开发案例

题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:1531^35^33^3。 现在要求输出…

英文网站定制哪家好seo推广软件排行榜

运筹学中的python基本操作 运筹学库的基本介绍MIP 库的使用networkx 库的使用运筹学 所谓运筹学(Operation Research) 就是用数学方法研究各种系统最优化问题的学科,为决策者提供科学决策的依据,求解系统最优化问题,制定合理运用人力,物力,财力的方案。 库的基本介绍 对…

建工集团两学一做网站企业站官方网站

LabVIEW超声波局部放电检测系统开发 在高压电力系统中,局部放电(PD)是导致绝缘失效的主要原因之一。局部放电的检测对于确保电力系统的可靠运行至关重要。开发了一种基于LabVIEW软件的超声波局部放电检测系统的设计与实现。该系统利用数字信号处理技术,…

北京海淀国税局网站连云港网站建设网站

参见地址: https://github.com/jtyjty99999/mobileTech 转载于:https://www.cnblogs.com/duanyue/p/7337789.html

贵阳网站建设hsyunso网站建设提升界面流畅程度

ORACLE数据库常见故障: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE数据库ASM存储破坏。 3、ORACLE数据库数据文件丢失。 4、ORACLE数据库数据文件部分损坏。 5、ORACLE数据库DUMP文件损坏。 ORACLE数据库数据恢复可能性分析: 1、ORACLE数据库无…

网站建设技术服务协议新能源汽车价格表3万左右

软件工程模型 敏捷开发: 个体和交互 胜过 过程和工具、可以工作的软件 胜过 面面俱到的文件、客户合作胜过合同谈判、响应变化 胜过 循序计划。(适应需求变化,积极响应) 敏捷开发与其他结构化方法区别特点:面向人的…

做网站需要每年都缴费吗媚娘直播

1. 贝叶斯推断 统计推断这件事大家并不陌生,如果有一些采样数据,我们就可以去建立模型,建立模型之后,我们通过对这个模型的分析会得到一些结论,不管我们得到的结论是什么样的结论,我们都可以称之为是某种推…