练习题

1.1、1、2、3、5、8、13、21、34...... 求第30位数是多少
int a=1,b=1;
For(int i=0;i<28;i++){
Int temp=a+b;
a=b;
b=temp;
}
Cw(b);

2.实现一个冒泡排序法
int []arr=new int [];
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}


在每一次醒来,我拥抱着你

3. 什么是装箱和拆箱
拆箱: 引用类型 —>值类型  obj类型转换为原有类型
装箱: 值类型—–>引用类型 原有类型 转换为obj类型


4. string str = null 与 string str = "" 的区别是什么?
区别在于String str=null没有分配内存,String str=""分配了内存
String str=null 这个引用指向了一个null,没有地址没有值的地方
String str="" 这个引用指向了一个地址,地址里面存的是空的字符

5. 面向对象编程的三大特性是什么
封装,继承,多态

6. 实现一个多态
public class Animal
{
public virtual void Eat()
{
Console.WriteLine("");
}
}

public class Cat : Animal
{
public override void Eat()
{
Console.WriteLine("Cat eat");
}
}
static void Main()
{
Animal animals = new Cat();

}

7. 实现对方法 Method()的重载
public void Method(){
Console.WriteLine("无参数");
}
public void Method(int a){
Console.WriteLine("int类型参数");
}
//无参和有参


8. 接口和抽象类的区别和联系
接口里只能包含1.抽象方法2.静态方法3.默认方法,不能为普通方法提供方法实现,抽象类可以包含普通方法。
接口里只能定义静态常量,不能定义普通成员变量,抽象类里则既可以定义普通成员变量,也可以定义静态常量。
接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
接口里不能包含初始化块,但抽象类里完全可以包含初始化块。
一个类只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口。

9. 请针对DemoClass写出其构造函数与其重载,并简述什么时候采用无参数的构造函数什么时候采用有参数的构造函数
class DemoClass
{
public DemoClass();
public DemoClass(int x) {
x += 1;
Console.WriteLine(x);
}
public DemoClass(int y,int x)
static void Main(string[] args)
{
DemoClass pro= new DemoClass(25);
Console.ReadKey();
}
}
需要对参数进行初始化的时候需要有参数


10. switch和if语句的作用与区别
if可以用来比较,switch只能判断固定值
Switch:等值判断 break跳出
If:等值判断,区间判断 执行完自动结束


11. 字符串可以被修改吗?
不能

12. List和ArrayList的区别
list需要声明元素类型
arraylist不需要声明元素类型,使用其元素时要转换回原类型才可以用
13. 遍历数组最好使用什么 遍历list最好使用什么
数组最好使用for;遍历list最好使用foreach
(其实两种都可以用效率不同)
14. 请写出读文件的两种固定格式
方法一:string tempInfo = string.Empty;
using(StreamReader reader=new StreamReader(filePath1,Encoding.UTF8)){
while((tempInfo=reader.ReadLine())!=null) {
}
Console.WriteLine(tempInfo);
}

方法二:string []str=File.ReadAllText(path, Encoding.UTF8);
foreach (string temp in s)
{
Console.WriteLine("行:"+temp);
}
15. 用代码实现封装
private string _Name;
public string Name
{
get{return _Name;}
set{_Name =value;}//简写成{get;set;}
}

16. 请写出MonoBehavior中的脚本生命周期
AWake-->Start-->FixedUpdate-->Update-->LateUpdate-->OnGUI-->OnDisable/OnEnable-->Reset-->OnDestory

awake start fixedupdate update lateupdate
17. 得到组件/添加组件的完整代码(组件名称随意写)
transform.GetComponent<>();
transform.AddComponent<>();


18. float f = 15.5f; int i = (int)f ;对
string str = "aaa"; char c = (char)str? 错

19. 触发的三个代码 完整的写出 方法名称 参数
OnTriggerEnter(){}
OnTriggerStay(){}
OnTriggerExit(){}


20. 哪句代码是在加载场景的时候不销毁
DontDestroyOnLoad (this.gameObject)


21. 写出扇形攻击的代码
public Transform Target;
    private float SkillDistance = 5;//扇形距离
    private float SkillJiaodu = 60;//扇形的角度
    void LateUpdate()
    {
        float distance = Vector3.Distance(transform.position, Target.position);
        Vector3 norVec = transform.rotation * Vector3.forward * 5;
        Vector3 temVec = Target.position - transform.position;
        float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;//计算两个向量间的夹角

22. 写出四元数中常见的方法至少五种
创建 Quaternion q = new Quaternion(x,y,z,a);
绕定轴旋转 Quaternion w = Quaternion.AngleAxis(45,Vector3.forward);
从指定方向转到另一个指定方向 Quaternion e = Quaternion.FromToRotation(Vector3.forward,Vector3.back);
通过欧拉角创建 Quaternion r = Quaternion.Euler(x,y,z);
创建直接赋值给旋转物体 Quaternion s = Quaternion.LookRotation(Vector3.forward);

23. 如何在update里面进行间隔计时 写出实现的方法
private float timer;
private float time;
timer+=time.dateltime;
if(timer>=3){
time+=1;
timer=0;
}


24. 冻结刚体旋转的代码
rigidbody.constraints=RigidbodyConstraints.FreezePositionY

25. 从屏幕发射射线的代码
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

26. 射线检测的代码
RaycastHit hit;
debug.log(hit);
27. UGUI动态绑定事件的代码


28. 导航层的作用
射线射到不同层产生不同效果
29. 什么情况下scene视图看不到物体但是game视图却看的到
为物体所属Layer与照相机的culling mask不一致导致
30. 列举字典场景的几种方法和怎样遍历字典
Dictionary<string, int> list = new Dictionary<string, int>();
list.Add("d", 1);
foreach (var item in list)
{
Console.WriteLine(item.Key + item.Value);
}
foreach (KeyValuePair<string, int> kv in list)
{
Console.WriteLine(kv.Key + kv.Value);
}
foreach (string key in list.Keys)
{
Console.WriteLine(key + list[key]);
}
foreach (int val in list.Values)
{
Console.WriteLine(val);
}
List<string> test = new List<string>(list.Keys);
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(test[i] + list[test[i]]);
}

原文地址:https://www.cnblogs.com/qipei/p/9885380.html