1. 编写一个控制台应用程序,完成下列功能。
1) 创建一个类,用无参数的构造函数输出该类的类名。
2) 增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来。
3) 在main方法中创建属于这个类的一个对象,不传递参数。
4) 在main方法中创建属于这个类的另一个对象,传递一个字符串“this is a string.”。
5) 在main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。
6) 写出运行程序应该输出的结果。
【解答】
using system;
class test1
{
public test1()
{
console.writeline(this);
}
public test1(string str)
{
console.writeline(str);
}
public static void main()
{
test1 t1 = new test1();
test1 t2 = new test1("this is a string.");
test1[] t3 = new test1[5];
}
}
输出结果:
test1
this is a string.
2. 编写一个控制台应用程序,定义一个类myclass,类中包含有public、private以及protected数据成员及方法。然后定义一个从myclass类继承的类mymain,将main方法放在mymain中,在main方法中创建myclass类的一个对象,并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。
【解答】
using system;
class myclass
{
public int i;
private int j;
protected int k;
public void method1()
{
console.writeline("public method.");
}
private void method2()
{
console.writeline("private method.");
}
protected void method3()
{
console.writeline("protected method.");
}
}
class mymain : myclass
{
public static void main()
{
myclass t = new myclass();
console.writeline("i={0}", t.i);
console.writeline("j={0}", t.j); //会出现编译错误,私有成员不允许在其它类中访问
console.writeline("k={0}", t.k); //会出现编译错误,应该创建mymain的对象,然
//后通过mymain的对象访问
t.method1();
t.method2(); //会出现编译错误,私有的方法不允许在其它类中调用
t.method3(); //会出现编译错误,应该创建mymain的对象,然后通过mymain的
//对象调用该方法
}
}
3. 创建一个类包含有protected数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据。
【解答】
using system;
class class1
{
protected int i = 5;
protected void mymethod()
{
console.writeline("protected method.");
}
}
class class2 : class1
{
private void newmethod()
{
console.writeline(this.i);
this.i += 10;
console.writeline(this.i);
}
public static void main()
{
class2 t = new class2();
t.newmethod();
}
}
4. 分别写出下列语句执行的结果。
1) console.writeline("{0}--{0:p}good",12.34f);
2) console.writeline("{0}--{0:####}good",0);
3) console.writeline("{0}--{0:00000}good",456);
【解答】
12.34--1,234.00%good
0--good
456--00456good
5. 编写一个控制台应用程序,计算
要求精度为10-8。
【解答】
using system;
class test5
{
public static void main()
{
int n = 50;
double x = 3;
double s = 0;
double a = 1;
for (int i = 1; i <= n; i++)
{
a *= i;
s += math.pow(-1, i + 1) * math.pow(x, i) / a;
}
console.writeline("n={0},s={1:0.00000000}", n, s);
}
}
6. 编写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能
1) 输出字符串的长度。
2) 输出字符串中第一个出现字母a的位置。
3) 在字符串的第3个字符后面插入子串“hello”,输出新字符串。
4) 将字符串“hello”替换为“me”,输出新字符串。
5) 以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。
【解答】
using system;
class test6
{
public static void main()
{
string str = "";
while (str.length <= 3)
{
console.write("请输入一个长度大于3的字符串:");
str = console.readline();
}
//(1)
console.writeline("字符串的长度为:{0}", str.length);
//(2)
int i = str.indexof('a');
if (i > -1)
{
console.writeline("第一个出现字母a的位置是:{0}", i);
}
else
{
console.writeline("字符串中不包含字母a。");
}
//(3)
string str1 = str.insert(3, "hello"); //在第3个(初始序号为)字符前插入hello
console.writeline("插入hello后的结果为:{0}", str1);
//(4)
string str2 = str1.replace("hello", "me");
console.writeline("将hello替换为me后的结果为:{0}", str2);
//(5)
string[] arr = str2.split('m');
console.writeline("以m为分隔符分离后的字符串有:");
for (int j = 0; j < arr.length; j++)
{
console.writeline(arr[j]);
}
}
}
本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。