C#基础面试题
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
1.面向对象的思想主要包括什么? 继承,封装,多态 2.简述private、protected、public、internal修饰符权限 Private:私有成员,在类的内部才能访问 Protected:保护成员,在类的内部和继承中访问 Public:公开成员,没有访问限制 Internal:当前程序集内访问 3.什么是override和interface? override用于重写父类的虚方法和抽象方法,interface用于定义接口 4.Abstract class和interface有什么区别? Abstract class可以定义属性,字段及实现方法,不能多继承,只能用于引用类型 interface只能包含方法并且不能实现,可以多继承,可以用于值类型和引用类型 5.Struct和class的相同和不同? 相同点:都可以定义字段、属性和方法,可以通过new来初始化对象 不同点:struct是值类型,class是引用类型,struct可以继承接口不可以继承class,class既可以继承接口,又可以继承class 6.C#中委托时什么?事件是不是一种委托? 委托是一种引用类型,保存的是对函数的引用。事件是一种特殊的委托。 7.堆和栈的区别? 栈是编译期间就分配好的内存空间 堆是程序运行期间动态分配的内存空间 8.Float f=123.567F; int i=(int)f; i的值现在是123? 9.String s=new String(“xyz”);创建了几个Object? 两个string对象 10.Short s1=1;s1=s1+1;有什么错? Short s1=1;s1+=1;有什么错? 第一个有可能导致数据溢出,第二个short类型没有+=运算符 11.C#中,string str=null与string str=””,请尽量用文字说明区别? null 表示没有引用任何对象,而空字符串 "" 表示引用了一个空对象 12.请简述一下两个for循环的优缺点? 第一个for执行的次数可能少于第二个,第二个for循环if判断的次数少 13.在下面的例子里,当使用 new B()创建B的实例时,产生什么输出? X=1,y=-1 14.写出程序的输出结果 10,21,1,str,string being converted 15.写出程序的输出结果 B,B,Fun() 16.写出程序的输出结果 2 5 1 6 17.什么是进程和线程? 进程是程序执行的实例,线程是程序执行的最小单位。 18.进程间通信的方式? 管道通信,信号量通信 19.死锁的必要条件?怎么克服? 互斥,等待; 20.根据线程安全的相关知识,分析以下代码,当调用test 方法时i>10时是否会引起死锁?并简要说明理由。 会引起死锁,该线程递归调用test(i)时,它将再次尝试获取同一个锁。由于锁不能被释放,所以这个线程将被阻塞 21.UDP连接和TCP连接的异同? UDP是无连接的TCP是面向连接的 22.实现快速排序 static void QuickSortAlgorithm(int[] arr, int low, int high) { if (low < high) { int pi = Partition(arr, low, high); QuickSortAlgorithm(arr, low, pi - 1); QuickSortAlgorithm(arr, pi + 1, high); } }
static int Partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); // index of smaller element for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; Swap(arr, i, j); } } Swap(arr, i + 1, high); return i + 1; }
static void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } 23.实现单例模式
24.什么是存储过程?有什么优点? 存储过程是一组sql语句,有点是执行速度快、减少网络流量、安全 25.写出一条Sql语句:取出表A中第31到第40记录 (SQLSever, 以自动增长的ID作为主键,注意:ID可能不是 连续的) select * from(select row_number() over(order by Id asc)as index,* from A)aa where index between 31 and 40 26.用一条SQL语句,查询出每门课都大于80分的学生姓名 select distinct name from(select min(fenshu) over(partition by name)aa, * from tt) a where aa>80 该文章在 2023/11/16 21:51:05 编辑过 |
关键字查询
相关文章
正在查询... |