C#复习资料 联系客服

发布时间 : 星期三 文章C#复习资料更新完毕开始阅读8ff4a2ee011ca300a7c39048

}

}

6.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。 class Exe6 {

Static void Main(string[] args) {

int i,j;

for(i=0;________;i++) {

j=i*10+6; if(_________) {

continue; }

Console.WriteLine(“{0}”,j); }

Console.Read(); } }

7.程序运行结果:____________ public class Test {

public void change1(string s)

{

s=s+”Change1”; }

Public void change2(ref string s) {

s=s+”Change2”; }

public void change3(string s1,out string s2) {

s1=s1+”Change3”; s2=s1; } }

class Exe7 {

static void Main(string[] args) {

string s1,s2; s1=”Hello,”;

Test t1=new Test();

t1.change1(s1);

Console.WriteLine(“s1 after call to change1 is {0}”,s1); t1.change2(ref s1);

Console.WriteLine(“s1 after call to change2 is {0}”,s1); t1.change3(s1,out s2);

Console.WriteLine(“s1 after call to change3 is {0}”,s1); Console.WriteLine(“s2 after call to change3 is {0}”,s2); Console.Read(); } }

五、编程题

1.斐波那契数列中的前两个数是1和1,从第三个数开始,每个数等于前两个数的和,编程 计算此数列的前30个数,且每行输出5个数。

2.从键盘上输入一个整数n的值,按下式求出y,并输出n和y的值(y用浮点数表示)。

y=1!+2!+3!+4!+??+n!

3.设计一个程序,输出所有水仙花数,所有水仙花数是一个三位整数,其各位数字的立方和 等于该数本身,例如,153=13+53+33。 4.设计一个程序,输入一个四位整数,将各位数字分开,并按其反序输出。例如:输入1234, 则输出4321。要求必须用循环语句实现。

5.求π/2的金是指的公式为:π/2=(2/1)*(2/3)*(3/4)*(4/5)*??*(2n/2n-1)*(2n/2n+1)*?? 其中,n=1,2,3,??。设计一个程序,求出当n=1000是π的近似值。 6.设计一个程序,输入一个十进制数,输出相应的十六进制数。 7.当x>1时,Hermite多项式定义为:

1 n=0

Hn(x)= 2x n=1

2xHn-1-2(n-1)Hn-2(x) n>1

当输入浮点数x和整数n后,求出Hermite多项式前n项的值。 8.找出数组a中最大值的下标,输出下标及最大值。 9.判断s所指的字符串是否是“回文”(即顺读和逆读是相同的字符)。

10.输入一组非0整数(以0作为结束标志)到一位数组中,求出这一组数的平均值,并统 计出正数和负数的个数。

11.设计一个程序,求一个4*4矩阵两对角线元素之和。 12.输入一个字符串,串内有数字和非数字字符,例如,“abc2345 345fdf678 jdhfg945”, 将其中连续的数字作为一个整数,依次存放到另一个整型数组b中。如将2345存放到b[0]。 345存放到b[1],678放入b[2],??统计出字符串中的整数个数,并输出这些整数。 第三章 C#面向对象编程 一、选择题

1.C#语言的核心是面向对象编程(OOP),所有OOP语言都应至少具有三个特性:()

A.封装、继承和多态 B.类、对象和方法 C.封装、继承和派生 D.封装、继承和接口 2.以下有关属性的叙述正确的是:()

A.要求与字段域一一对应 B.只包含get访问器的属性是只写属性 C.不能把它当变量使用 D.在静态属性访问器中可访问静态数据

3.假设class Mclass类的一个方法的签名为:public void Max(out int max,params int[]a),m1是Mclass类的一个对象,maxval是一个int型的值类型变量,arrayA是一个int型的数组对象,

则下列调用该方法有错的是()

A. m1.Max(out maxval) B. m1.Max(out maxval,4,5,2) C. m1.Max(out maxval,ref arrayA) D. m1.Max(out maxval,3,3.5)

4.枚举类型是一组命名的常量集合,所有整型都可以作为枚举类型的基本类型,如果类型省 略,则约定为()

A.uint B.sbyte C.int D.ulong 二、简答题

1.举一个现实世界中继承的例子,用类的层次图表示出来。 2.什么是抽象类和密封类?它们有什么不同?

3.分别在什么情况下使用隐式数值转换和显式数值转换? 三、填空题

1.析构函数不能由程序显式地调用,而是由系统在_________时自动调用。如果这个对象是 一个派生类对象,那么在调用析构函数时,除了执行派生类的析构函数,也会执行基类的 析构函数,其执行顺序与构造函数__________. 2.C#实现了完全意义上的面向对象,所以它没有____,任何数据域、方法都必须封装在类中。 3.在类中,如果一个数据成员被声明为static的,则说明这个类的所有实例都共享这个static 数据成员。在类体外,static成员不能通过_______来访问,它必须通过________来访问。 四、程序分析

1.下面的程序,输入不同参数,如:5、hello、0、1212121212121212等,观察并分析运行结果。 class Test {

static void Main(string[] args) {

while(true) {

String s=Console.ReadLine(); if(s==”exit”) break; try {

int i = 10/int32.Parse(s); Console.WriteLine(“结果是”+i); }

catch(IndexOutOfRangeException e) {

Console.WriteLine(e.Message); }

catch(FormatException e) {

Console.WriteLine(e.Message); }

catch(DivideByZeroException e) {

Console.WriteLine(e.Message); }

catch(OverflowException e) {

Console.WriteLine(e.Message); } }

Console.Read(); } }

2.指出下面代码中错误的地方,并进行修改。 using System;

??

namespace PavelTsekov {

interface I1 {

void MyFunction1(); }

interface I2 {

void MyFunction2(); }

class Test:I1,I2 {

public void I1.MyFunction() {

Console.WreitLine(\ }

public void I2.MyFunction() {

Console.WreitLine(\ } }

class AppClass {

static void Main(string[] args) {

Test t=new Test(); t.MyFunction1(); t.MyFunction2(); Console.Read(); } } }