01:在C#中,string str = null 与 string str = “” 请尽量使用文字或图
答:前者是将str这块空间置空(或理解为对象置空),后者给str赋予了空字符串,两者显然是不一样的.你可以输出str和""的比较结果或分别输出两种情况下的str的串长就会发现问题,str=null根本就无法计算出串长或跟空格进行比较。
02:简述类和结构的相同点和不同点。并用代码举例。
定义类的语法
1 class Person
2 {
3 private string name;
4 private int age;`在这里插入代码片`
5
6 public void SayHi()
7 {
8 Console.WriteLine("Hello,My Name is "+this.name+",My Age is "+this.age);
9 }
定义结构的语法.
1 struct Rectangle
2 {
3 private int width;
4 private int height;
5
6 public int GetArea()
7 {
8 return this.width * height;
9 }
10 }
a.在结构体中可以声明字段,但是声明字段的时候是不能给初始值的.
b.定义类使用关键字class 定义结构使用关键字struct.
c.在类下面只能直接定义类的成员,只能定义.
03:什么是拆箱和装箱?举例说明
答:
拆箱是把“引用”类型转换成“值”类型;装箱是把“值”类型转换成“引用类型”;
低类型–>高类型例:objecti=“aa”;这个是string–>object叫装箱拆箱:高类型–>低类型例:Stringi=(String)object;这个是string–>int叫拆箱.
04:编程实现一个冒泡排序
static void Main(string[] args)
{
int[] score = new int[5];
int i, j;//循环变量
int temp;//临时变量
Console.WriteLine("请输入五位同学成绩:");
for (i = 0; i < score.Length; i++)
{
Console.WriteLine("请输入第{0}位同学的成绩", i + 1);
score[i] = int.Parse(Console.ReadLine());
}
//开始排序--冒泡排序
for (i = 0; i < score.Length - 1 - 1; i++)
{
for (j = 0; j < score.Length - 1 - i; j++)
{
if (score[j] > score[j + 1])
{
temp = score[j];
score[j] = score[j + 1];
score[j + 1] = temp;
}
}
}
//输出结果
for (i = 0; i < score.Length; i++)
{
Console.WriteLine("{0}\n", score[i]);
}
Console.ReadLine();
}
}
05:编程实现一个递归方法
#include <iostream.h>
class Questionone{
public:
int answer(int n, int sum){
if(n>0){
sum = 2*sum+2;
if(n-1>0){
cout<<"第"<<n-1<<"个村庄"<<"卖出"<<2*sum+2-sum<<endl;
}
n--;
return answer(n,sum);
}else{
return sum;
}
}
};
void main(){
int SUM = 2;
int N = 7;
Questionone question;
cout<<"总数:"<<question.answer(N,SUM)<<endl;
}
06:说说目前学的集合有哪些?,每一种集合的特点以及使用场景
答:
ArrayList,List,Hashtable,Dictionary<key,value>
ArrayList和List获取,删除元素是通过下标或对象名获取;
Hashtable,和Dictionary<key,value>获取,删除元素是通过key获取。
List和Dictionary<key,value>访问元素无须转换。
07:变量被标记为 “const” 和readonly” 有何不同?
答:1)const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到构造函数初始化
2)const修饰的常量在编译期间就被解析,即常量值被替换成初始化的值;readonly修饰的常量则延迟到运行的时候
此外const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。
08:“out” 和 “ref” 参数有何不同?用代码举例
public void num(ref int num1, ref int num2){ }
public void num(out int num1, out int num2){ }
09:“StringBuilder” 和 “String” 有何不同?
答:用string += 追加的时候会分配新的地址,StringBuilder不会 ,所以StringBuilder的运行速度会快,不会浪费资源空间。