c#期末复习资料.docx

上传人:b****4 文档编号:4518638 上传时间:2023-05-07 格式:DOCX 页数:17 大小:22.55KB
下载 相关 举报
c#期末复习资料.docx_第1页
第1页 / 共17页
c#期末复习资料.docx_第2页
第2页 / 共17页
c#期末复习资料.docx_第3页
第3页 / 共17页
c#期末复习资料.docx_第4页
第4页 / 共17页
c#期末复习资料.docx_第5页
第5页 / 共17页
c#期末复习资料.docx_第6页
第6页 / 共17页
c#期末复习资料.docx_第7页
第7页 / 共17页
c#期末复习资料.docx_第8页
第8页 / 共17页
c#期末复习资料.docx_第9页
第9页 / 共17页
c#期末复习资料.docx_第10页
第10页 / 共17页
c#期末复习资料.docx_第11页
第11页 / 共17页
c#期末复习资料.docx_第12页
第12页 / 共17页
c#期末复习资料.docx_第13页
第13页 / 共17页
c#期末复习资料.docx_第14页
第14页 / 共17页
c#期末复习资料.docx_第15页
第15页 / 共17页
c#期末复习资料.docx_第16页
第16页 / 共17页
c#期末复习资料.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c#期末复习资料.docx

《c#期末复习资料.docx》由会员分享,可在线阅读,更多相关《c#期末复习资料.docx(17页珍藏版)》请在冰点文库上搜索。

c#期末复习资料.docx

c#期末复习资料

,《计算机高级语言》复习提纲

第一章C#概述

1.了解计算机语言的作用。

了解计算机语言与人类语言的区别。

2.了解机器语言、汇编语言和高级语言。

最早的高级语言是什么___Fortran_____?

C#是属于__________(机器语言、汇编语言和高级语言)?

计算机能够直接执行的是_____机器语言_________语言的程序?

3.C#语言由_____Microsoft(或微软)_________公司发明?

C#语言的源文件扩展名是______cs_______?

C#开发的可执行程序需要安装_____.NETFramework__________才可以运行?

注意:

不是.NETFrameworkSDK。

这个是进行开发的编译工具,不是运行的环境。

第二章简单的C#程序设计

1.C#从一个类的名为____Main________的方法开始运行

注意大小写

2.掌握最简单的C#程序的框架,能够输出指定的字符串内容

classHello

{

staticvoidMain(){

}

}

对于控制台应用程序,通常为了方便使用控制台Console的功能,会使用usingSystem;语句引入所需的命名空间。

要输出内容,可以使用WriteLine()语句。

例:

Console.WriteLine("Apple");

3.C#程序的两种添加注释的方法,程序注释的作用

练习:

以下程序的输出结果是:

usingSystem;

classHello

{

staticvoidMain(){

//Console.WriteLine("Apple");

/*China*/Console.WriteLine("England");

}

}

C#中的注释有两种,采用//开头只行末的部分,或者使用/**/括起来的部分。

一般,//适合单行注释,而/**/适合多行注释

4.C#中标识符的命名规则。

能够判断给定的字符串是否合法的标识符(注意:

按照课本上的规则,不允许采用汉字或者希腊字母)

练习:

以下可以作为合法的自定义标识符的是:

AbcA100_1_200M_400

注意根据标识符的命名规则判别:

第一个字符只能是字母或者下划线,后面的可以是字母、数字或者下划线

5.掌握常见的C#关键字。

注意:

关键字不能作为普通的标识符使用。

另外,可以看到C#中所有关键字都是全部小写的

练习:

以下是C#关键字的是:

MainifmainusingSystembreak

6.掌握使用Console.WriteLine()输出字符串、数字、表达式的值的方法

7.掌握使用Console.WriteLine()按指定格式输出多个数值的方法

8.掌握使用Console.ReadLine()输入字符串的方法

9.掌握使用Console.ReadLine()输入数值数据的方法

10.掌握Console.Read()的功能,并掌握输入单个字符的方法

第三章数据类型、运算符、表达式

1.掌握常见的数据类型(int,long,float,double,char,bool,string)能够表示的数据范围、表示精度。

2.掌握定义简单变量的方法,并能够根据变量的取值范围和精度要求选择恰当的变量类型

3.常量定义的方法

练习:

定义一个常量G,值为9.82

constdoubleG=9.8;

注意:

常量定义的格式是:

const常量类型常量名=常量值;

4.掌握如何将包含四则运算的数学表达式写成等价的C#表达式。

正确地使用括号来改变运算的顺序

5.掌握常见的运算符的运算优先级次序。

6.掌握整数相除的运算规则,整数相除和小数相除的不同点

练习:

17/5的结果是多少?

17%5的结果是多少?

32

练习:

17/5*2.0的结果是多少?

8+15%4的结果是多少?

611

注意:

如果是17*2.0/5,结果将会不同。

因为17*2.0计算就会变为小数,小数除以整数就按照小数消除的规则进行了

7.掌握几个常用数学函数和常量的使用方法:

Math.Sqrt(),Math.Pow(),Math.PI,Math.Log(),Math.Log10()

8.掌握赋值语言的功能,在赋值语句中使用变量。

赋值语句与数学等式的区别

9.自增运算符,++i和i++的区别和共同点

10.字符串类型string所能表示的信息,字符串连接运算(+号)

掌握字符串常量的表示方法

练习:

如果输出以下字符串常量,显示内容是什么?

A)"Programer"

B)@"Prog\nram"

C)"Prog\nram"

D)"Prog\"ram"

E)@"Prog\"""

11.布尔类型。

要求掌握简单的数学比较式子的布尔运算结果,以及使用&&,||,!

来组合简单布尔表达式的运算结果:

练习:

如果(1+3==5)||(2<3)的运算结果是__________

A:

true

B:

false

C:

都不是

D:

无法确定

注意:

因为2<3的结果是true,而||运算只要一个为true,结果也为true,所以整个式子结果为true

练习:

已知a是bool类型的变量,则与逻辑表达式!

a等效的逻辑表达式是

A:

a==true

B:

a!

=true

C:

a==false

D:

a!

=false

12.简单的二进制位运算的规则

练习:

6|46&4的结果是什么?

注意:

位运算的方法是先将数字转换为二进制数字,在逐位运算。

事实上,计算机在保存数字的时候已经是二进制数字了。

6写成二进制=>00000110

4写成二进制=>00000100

-------------------------

|位或00000110=>写成十进制6

&位与00000100=>写成十进制4

13.复合赋值运算符与普通的运算符

练习:

写出等价的赋值运算式子:

a+=3;

a=a+3

练习:

写出等价的复合赋值运算:

b=b–5;

b-=5;

14.隐式类型转换。

哪些类型转换可以隐式进行?

一般上,表示范围小的类型向表示范围大的类型转换,可以隐式进行。

第四章结构化程序设计

1.if语句的语法格式,符合语句的应用

练习:

以下程序的输出结果是?

usingSystem;

classTest

{

staticdoublef(doublex)//根据汇款金额计算手续费

{

doubleret=0.0;

ret=x*0.01;

if(ret<1.0)

ret=1.0;

elseif(ret>50.0)

ret=50.0;

returnret;

}

staticvoidMain()

{

Console.WriteLine("f(80)={0}",f(80));

Console.WriteLine("f(5000)={0}",f(5000));

}

}

注意:

按照if语句的规则进行分析判断。

练习2:

编写一个密码判别程序。

如果用户输入的是字符串"hello",则显示“密码正确”,否则显示“密码错误”

核心参考代码:

stringpwd;

pwd=Console.ReadLine();

if(pwd=="hello")

Console.WriteLine("密码正确");

else

Console.WriteLine("密码错误");

2.switch语句的使用

注意:

1case后面只能接“常量表达式”,不要出现包含变量的式子

2case后面不能是小数类型的式子

3每个case分支后的语句应该有break语句。

3.while,do-while,for,for-each语句的语法格式

练习:

for(inta=0;a<=10;a++)Console.Write(a);

语句的循环次数是________11_____

练习:

for(inti=0;i<10;i++)

Console.WriteLine(i);

语句的循环次数是_______10_____

练习:

for(inti=1;i<10;i++)

Console.WriteLine(i);

语句的循环次数是_______9_____

注意:

尽量熟悉常见的for循环形式的循环次数,和循环体内循环变量的取值范围

练习:

以下程序段的输出结果是_________

inta=3;intb=0;

while(a<20)

{

a=a+3;

b+=a;

Console.WriteLine(b);

}

练习:

以下程序段的输出结果是_________

inta=3;intb=0;

while(a<20)

{

a=a+3;

b+=a;

}

Console.WriteLine(b);

以下for语句的循环次数是___________

intk;

for(k=5;k<12;k++)

Console.WriteLine(2*k+3);

以下语句的运行结果是什么?

intk;

for(k=5;k<12;k++);

Console.WriteLine(2*k+3);

4.break和continue语句的用法。

注意:

在每个switch-case分支中必须有break语句。

5.单重循环的使用

练习:

编程计算1+2+3+...+N的值,其中N由用户输入

核心代码:

intsum=0;

for(inti=1;i<=N;i++)

sum+=i;

练习:

编程计算1+2+4+8+...+512的值,使用循环语句

核心代码:

intsum=0;

for(inti=1;i<=512;i*=2)

sum+=i;

练习:

编程1到200之中,所有不被11整除的整数的和

intsum=00

for(inti=1;i<=200;i++)

{

if(i%11!

=0)

sum+=i;

}

6.简单两重循环的使用

练习:

编程输出正方形的九九乘法表

for(inti=1;i<=9;i++)

{

for(intj=1;j<=9;j++)

Console.Write("{0}*{1}={2}",i,j,i*j);

Console.WriteLine();

}

注意:

WriteLine等方法只能逐行输出,不能随意定位来输出。

另外注意上面程序中大括号的使用。

如果没有这个大括号,外层的for语句将不包括Console.WriteLine()语句,而没有正确分行

练习:

以下程序输出结果是什么?

usingSystem;

classWelcome

{

staticvoidMain()

{

inti,j;

for(i=1;i<4;i++)

{

for(j=0;j<7-2*i;j++)

Console.Write("*");

Console.WriteLine();

}

}

}

7.练习:

编程输出九九乘法表(三角形的形式)

1*1=1

2*1=22*2=2

...

9*1=99*2=18...9*9=81

for(inti=1;i<=9;i++)

{

for(intj=1;j<=i;j++)

Console.Write("{0}*{1}={2}",i,j,i*j);

Console.WriteLine();

}

掌握利用试除法判断指定的整数是否素数的办法

练习1:

写出一个程序,要求读取用户输入的一个整数,然后判断该整数是否素数,并输出判断结果

usingSystem;

classTest

{

staticboolisPrime(intn)

{

if(n<=1)returnfalse;

for(inti=2;i

if(n%i==0)returnfalse;

returntrue;

}

publicstaticvoidMain()

{

intx;

x=int.Parse(Console.ReadLine());

if(isPrime(x))

Console.WriteLine("{0}是一个素数",x);

else

Console.WriteLine("{0}不是一个素数",x);

}

}

注意:

方法的参数和返回类型需要合理设计,一般应该遵循将运算结果返回,而不要直接显示的原则。

至于返回值用作何种用途(用来显示,或者作为其他式子的一部分,等等),应由调用者决定

8.异常处理语句:

C#中,使用try-catch语句捕获并处理异常

第五章数组、结构和枚举

1.掌握一维数组的使用

在int[]b={2,3,4,5,6};中,数组元素b[3]的值是__5___

注意:

数组第一个元素的下标为0

2.了解二维数组的使用

3.掌握至少一种简单的数组排序算法(冒泡排序、选择排序或者插入排序)

练习1:

写出对以下数据进行从小到大排序的C#程序:

double[]data={2.3,5.6,7.4,1.8,7.0,9.2,5.3,1.5};

练习2:

从控制台输入8个整数到数组dd,并对数组元素进行从大到小拍序:

练习3:

计算并输出数组中的最大值,以及最大值所在的元素下标

4.结构数据类型的定义

结构成员的访问方法:

练习:

有结构类型定义

structstudent

{

publicintm1;

publicstringm2;

};

则以下语句正确的有:

(不止一个)

student={1,2};

student={1,"abc"};

students1={1,"abc"};

students1;s1={1,"abc"};

students1;s1.m1=200;

students1;s1.m1="abc";

students1;s1.m2="abc";

5.枚举类型的定义和使用

练习:

定义一个表示季节的枚举类型

第六章C#的面向对象程序设计

1.类和对象的含义

练习:

在用class定义的类中,如果一个成员没有指定它的私有或者公有属性,那么它是______private_______

2.类定义和对象定义

练习:

定义一个表示学生的类Student,包含学号、姓名等信息。

在Main()方法中定义并生成一个Student类型的对象

classStudent

{

intid;

stringname;

}

定义并生成对象:

Students1=newStudent();

注意:

熟悉包含数据成员、方法成员的类定义的一般格式

对象需要在类定义之后使用new来生成。

Stduents1=newStudent();实际上相当于两个语句:

Students1;

这个语句定义了一个Student类型的引用变量。

当定义时,该变量为空引用(没有指向任何实际的对象)

s1=newStudent();

new语句可以生成相应的对象,并返回该对象的引用。

这个赋值语句将生成的对象的引用保存到s1中,以后可以通过s1来“使用”这个对象。

s1是引用,在某个时候可以被重新赋值来重新“引用”另外的对象。

3.构造函数和析构函数的定义和功能

注意:

构造函数在生成对象时自动调用;析构函数在回收对象时被自动调用

4.方法的定义

已知类Test的一个方法m2的方法头如下:

publicstringm2(intx)

则在该方法中,以下返回返回语句是正确的:

return2*x;

return""+2*x;

return"100";

return'a';

注意:

return后的表达式必须可以转换为返回类型。

上题中,返回类型是string,上面有两个类型符合。

练习1:

编写一个判断输入参数是否为素数的方法,要求输入参数为素数时,返回true,否则返回false。

注意:

参见实验指导书中相应的参考答案。

一般使用试除法即可。

5.方法的参数传递规则:

根据参数传递的方式,可以分为三种:

值参数,引用参数,输出参数

练习:

比较以下程序的区别和输出结果,并分析原因:

usingSystem;

classProgram

{

staticvoidc(intx)

{

x=x+10;

}

staticvoidMain()

{

intx=10;

Console.WriteLine(x);

c(x);

Console.WriteLine(x);

}

}

usingSystem;

classProgram

{

staticvoidc(refintx)

{

x=x+10;

}

staticvoidMain()

{

intx=10;

Console.WriteLine(x);

c(refx);

Console.WriteLine(x);

}

}

注意:

参数中如果有ref关键字修饰,是引用参数。

使用引用参数时,实参可以看作和形参完全相同,即在方法中修改形参的值,也会引起实参的改变(类似于通过文件的快捷方式修改文件);out关键字修饰的是输出参数,与ref参数类似,不过要求在方法中必须对out修饰的形参进行赋值。

如果没有ref,out修饰,则为值参数。

值参数传递的时候,形参相当于实参的复制品(类似于文件复制后,修改复制后的文件内容,原文件内容并没有跟着改变)。

练习:

类X中有f方法的方法头staticvoidf(inta,refintb),要使用x,y作为参数调用方法f,调用形式为:

(x,y均为int类型变量)

_____f(x,refy)______

注意:

如果在定义时有ref或者out关键字,则调用的时候也需要有相同的关键字。

定义方法的时候,需要指明每一个参数的类型,但在调用的时候,不要写参数的类型,直接写参数的式子即可

6.了解局部变量、静态成员变量、非静态成员变量的定义方法,使用方法,以及访问优先级。

注意:

局部变量定义在方法内,成员变量定义在类内(但不在方法内)。

静态成员定义时,前面有static关键字;非静态成员则没有static。

静态的成员属于类;而非静态的成员属于对象(使用时必须先用new生成相应类型的对象,然后才可以使用对象名.成员名的方法访问)

7.递归算法

练习1:

根据以下算法写出C#的递归算法程序

1n=1

f(n)={

2f(n-1)n>1时

核心算法:

voidintf(intn)

{

if(n==1)return1;

elsereturn2*f(n-1);

}

练习2:

写出以下算法的递归程序

2n=0

Fii(x)={

3Fii(x-1)n>0时

练习3:

计算Feibonacci数列(0,1,1,2,3,5,...)并显示前30项的程序

规律:

Feibonacci

(1)=0

Feibonacci

(2)=1

Feibonacci(n)=Feibonacci(n-1)+Feibonacci(n-2),当n>=2时

核心代码段:

voidintf(intn)

{

if(n==0)return0;

elseif(n==1)return1;

elsereturnf(n-1)+f(n-2);

}

注意:

递归定义的问题,可以利用简单的if分支语句,相当直接的转换为相应的递归方法。

8.掌握string类型的基本用法,常见的string方法的功能

练习:

字符串定义如下:

stringss="ABCDE";

则ss[3]的值是:

_____'D'_____

注意:

使用[]可以取字符串指定位置上的字符。

注意:

位置从0算起

练习:

以下程序运行结果是:

usingSystem;

classTest

{

publicstaticvoidMain()

{

stringstr1="Program";

stringstr2=str1.Replace("a","d");

stringstr3=str1.ToUpper();

Console.WriteLine(str2);

Console.WriteLine(str3);

}

}

Progrdm

PROGRAM

注意:

常用的string类的方法有Replace,Substring,ToUpper,ToLower等

9.掌握Math类的常见方法的使用,了解Random类的功能

注意:

System.Random类用于产生随机数

第七章继承

1.继承的基本知识

2.方法覆盖

3.多态性概述

4.虚方法

5.多态性的实现

第九章C#的文件操作

1.利用Directory进行文件夹操作

2.利用File进行文件的创建、打开、复制、删除、移动

3.对FileStream对象进行字节的读写

练习:

要使用FileStream类,需要引入哪个命名空间?

System.IO

4.利用StreamReader类进行文本文件读取

练习:

要定义一个StreamReader类对象,并打开磁盘文件abc.txt,应该调用____________________________StreamReaderf=newStreamReader("abc");

5.利用StreamWriter类进行文本文件写入

练习:

编程,生成一个文本文件abc.txt,内容包括文本内容:

HelloWorld

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2