c#期末复习资料.docx
- 文档编号:4518638
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:17
- 大小:22.55KB
c#期末复习资料.docx
《c#期末复习资料.docx》由会员分享,可在线阅读,更多相关《c#期末复习资料.docx(17页珍藏版)》请在冰点文库上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 期末 复习资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)