C#程序设计.docx
- 文档编号:27363068
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:17
- 大小:26.05KB
C#程序设计.docx
《C#程序设计.docx》由会员分享,可在线阅读,更多相关《C#程序设计.docx(17页珍藏版)》请在冰豆网上搜索。
C#程序设计
第一章
1.程序设计语言和程序设计方法是贯穿整个程序设计过程中不可缺少的因素。
2.程序设计语言经历了三个发展阶段:
机器语言、汇编语言、高级语言。
3.机器语言是计算机能执行的二进制数字的机器指令代码(由若干0和1的序列组成的指
令)。
4.汇编语言是一种比较直观、便于记忆的指令符号。
5.机器语言和汇编语言都是面向机器的,人们称它们为低级语言。
6.高级语言是接近人们熟悉的自然语言(主要是英语)。
7.计算机不能识别与执行用高级语言设计的程序,因此,必须将高级语言程序转换为机
器语言程序,才能在计算机上得以执行,这种转换的过程叫“翻译”。
“翻译”前的程序
叫源程序或源代码(文本形式);“翻译”后的程序叫目标程序或目标代码(二进制形式)。
8.算法是指为解决一个问题而采取的方法和步骤。
要完成一件工作,应包括设计算法和实现算法两个部分。
9.计算机的算法可分为两类:
数值运算算法和非数值运算算法。
10.算法两种表示方法:
用自然语言表示、用流程图表示。
11.程序设计方法包括:
面向过程的程序设计方法和面向对象的程序设计方法。
第二章
1.简述在VisualStudio.NET环境中,怎样将程序源代码编译成机器代码?
答:
在VisualStudio.NET环境中,各种编程语言编译器(如:
C#编译器)负责完成编译工作第一步,即把源代码转换成一种中间代码(MSIL);第二步由即时编译器(JIT)将MSIL变为真正的机器语言。
2.什么是解决方案,什么是项目,它们之间有什么关系?
答:
使用VisualStudio.NET开发的每一个应用程序叫解决方案,一个解决方案可以
包含一个或多个项目;项目通常是一个完整的程序模块,一个项目可以有多个项。
第三章
1.C#程序组成要素主要由关键字、命名空间、类和方法、语句、大括号等组成。
2.关键字也叫保留字,是对C#有特定意义的字符串。
女口:
using、namespaceclass等。
3.“Main”方法是应用程序的入口。
4.当语句中包含不同层次的内容时,C#用“亠”操作符表示所属关系。
5.在C艸,括号“」”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。
6.C#应用程序中,代码格式有两类:
一类是语法规则,必须遵守;一类是结构格式,不是必须的。
7.缩进和注释语句不是C#的语法规则。
缩进用于表示代码的结构层次:
注释用于对代码进行解释说明。
8.C#中,字母区分大小写。
Name与name不是同一个名称。
9.C#中的注释基本有两种,一是单行注释,一是多行注释。
单行注释以双斜线“//”开
始,不能换行。
多行注释以“/*”开始,以“*/”结束,可以换行。
10.C#定义了四种基本数据类型:
数值型数据、字符型数据、逻辑型数据、对象型数据。
11.11.object可以表示任何类型的值;object是所有其他类型的最终基类。
12.变量是在程序运行过程中,其值可以改变的量;常量是在程序运行过程中,其值保持不变的量。
13.变量命名规则:
1)变量名的第一个字符必须是字母(包括汉字)或下划线,其余字符必须是字母(包括汉字)、数字或下划线。
2)变量名不能是C#关键字或库函数名。
14.如果一次声明多个变量,变量名之间用逗号分隔。
15.在C艸,有些字符不能直接放在单引号中作为字符常量,这时需要使用转义符来表示
这些字符常量,转义符由反斜杠“”加字符组成,如‘\n'
16.命名符号常量使用const关键字。
17.可以用汉字命名变量。
18.在C艸,常量“c”与‘c‘不是同一类型的数据;不能用常量“c”为字符变量赋值。
19.如果使用变量x来存放数据“768455.123456”,应该将变量声明为实数类型。
20.下列数据哪些可以用作变量名(1468)、
21.MyName
(2)“MyName(3)False(4)mm(5)“11/1604”(6)cj(7)”280”
(8)x(9)'我'(10)12.345F
22.C#共有6类运算符:
算术运算符、字符串运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符。
23.对应的,C#共有6类表达式:
算术表达式、字符串表达式、关系表达式、逻辑表达式、条件表达式、赋值表达式。
24.数据类型的转换有隐式转换与显示转换两种。
隐式转换的基本原则是允许数值范围小的类型向数值范围大的类型转换,允许无符号整数类型向有符号整数类型转换。
显示转也叫强制转换,是在代码中明确指示将某一类型的数据转换为另一种类型。
25.Parse()可以将特定格式的字符串转换为数值。
ToString()可以将其他数据类型的变量值转换为字符串类型。
26.
inte=1,f=4,g=2;
floatm=10.5F,n=4.0F,k;
k=(e+f)/g+n*1.2F/g+m;运算结果:
k=14.9
27.
floatx=2.5F,y=4.7F,k;
inta=7;
k=x+a%3+(int)(x+y)%2/4;运算结果:
k=3.5
26.下列变量初始化时不能完成转换的(13)
1floata=5.0F;intb=a;②charc='D';inta=c;
③strings=”abc”;charc=s;④longL=123;inta=(int)L;
27.设a=7,b=3,c=4,则下列表达式a%3+b*b/(float)c/5的值为145。
28.设a=3,b=5,c=-1,d=7,则下列逻辑表达式a-b/c
||d 29.表达式是由运算符和操作数组成的式子。 30.字符串运算符只有一个,即“二”运算符,表示将两个字符串连接起来。 • 31.逻辑运算符的操作数是布尔类型,运算结果也是布尔类型。 第四章 1.结构化程序设计方法把程序的结构规定为顺序、选择、循环三种基本结构。 目前,程序的可读性好、可维护性好已成为评价程序质量的首要标准。 2.控制台应用程序的输入主要通过Console类中的静态方法Read()、ReadLine();输出由Write()、WriteLine()来实现。 Read一次从键盘接受一个输入字符,ReadLine—次接受一行字符。 3.标签控件能实现数据的输出,但不能实现数据的输入,最常用的数据输入控件是文本—框控件。 4.下列那组语句可以实现变量a、b的互换 (2) 1)a=b;b=a;2)a=a+b;b=a-b;a=a-b; 3)a=c;c=b;b=a4)a=(a+b)/2;b=(a-b)/2; 5. 第五章 1.单分支选择结构(if语句) 格式为: if(布尔条件表达式) 内嵌语句序列1; else 内嵌语句序列2; 说明: 1若布尔表达式的值为真时,程序执行内嵌语句序列1,否则执行内嵌语句序列2。 2ifelse语句中,内嵌语句序列1和内嵌语句序列2可以是简单语句,也可以是复合 语句。 如果内嵌语句序列中为多个执行语句要使用花括号({…})组合为一个语句块。 3也可以省去else和内嵌语句序列2,即当程序满足布尔表达式的值为真时,执行语句序列1。 2.if…else语句也可以用于多种分支的选择结构,这种情况也就是if语句嵌套结构。 格式为: if(布尔条件表达式) 内嵌语句序列1; Elseif 内嵌语句序列2; Elseif 内嵌语句序列3; Else 内嵌语句序列4; 3.多分支选择结构switch语句格式: switch(控制表达式) { cass常量表达式1: 内嵌语句1; break; cass常量表达式2: 内嵌语句2; break; defaule: 内嵌语句; break; } 4.在窗体上画三个文本框和一个命令按钮,其名称分别为textBoxI,textBox2,textBox3 和button1,把三个文本框的Text属性设置为空白,然后编写button1的Click事件代码: privatevoidbutton1_Click(objectsender,EventArgse) { textBox3.Text=textBox1.Text+textBox2.Text; } 程序运行后,单击button1按钮,如果在输入对话框中分别输入8和10,则文本框显示的内容为: (C) A)108B)18C)810D)出错 5.设计程序,判断输入的数是偶数还是奇数,并输出结果。 staticvoidMain(string[]args) { intn; n=int.Parse(Console.ReadLine()); if(n%2==0) Console.WriteLine(n+"为偶数"); else Console.WriteLine(n+"为奇数"); Console.ReadLine(); } 第六章 1.C#中提供了四种不同的循环机制: for循环、while循环、do…while循环和foreach循 环。 2.for循环常常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果 满足条件,则进入下一次循环,否则,退出该循环。 3.while语句常常用于不知道循环次数的情况;用于在循环时判断是否满足某个条件。 每一次在循环的顶部进行检测循环是否继续,当循环的条件为假时,退出循环。 4.for循环语句格式为: for(表达式1;表达式2;表达式3) {循环语句序列;} 说明如下: 1表达式1用于参与循环条件变量的初始化,该表达式仅执行一次; 2表达式2为条件判断表达式,即每次循环体开始之前,判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束; 3表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。 4循环语句序列用于描述重复执行的语句,当语句序列中仅含有一条语句时,花括号可以省略。 5.while循环语句的格式为: while(布尔条件表达式) {语句序列;} 说明如下: 1布尔条件表达式是一个具有boolean值的条件表达式,为循环的条件。 2作为循环体的语句序列可以是简单语句、复合语句和其他结构语句。 3while循环的执行过程: 首先计算条件表达式的值,如果为真(True),则执行后面的循环体,执行完后,再开始一个新的循环;如果为假(False),则终止循环,执行循环体后面的语句。 4可以在循环体中的任何位置放置break语句来强制终止while循环随时跳出while 循环。 break语句通常包含于if语句中。 5可以在循环体中的任何位置放置continue语句,在整个循环体没有执行完就重新判断条件,以决定是否开始新的循环。 continue语句通常包含于if语句中。 6.do…while循环非常类似于while循环。 一般情况下,可以相互转换使用。 它们之间的 差别在于while循环的测试条件在每一次循环开始时执行,而do…while循环的测试条件在每一次循环体结束时进行判断。 7.do…while语法的一般格式为: do {语句序列;} while(布尔条件表达式) 8.当一个循环(称为“外循环”)的循环语句序列内包含另一个循环(称为“内循环”),称为循环的嵌套,这种语句结构称为多重循环结构。 内循环中还以包含循环,形成多层循 环(循环嵌套的层数理论上无限制)。 三种循环(while循环、do…while循环、for循环)可以互相嵌套。 9.C#中提供四种转移语句: goto语句、break语句、continue语句、return语句。 10.return语句用于返回方法的调用值,退出类的方法。 如果方法有返回类型,应使用该返回类型的值;如果没有返回类型,不使用。 11.有一堆100多个的零件,三个三个数,剩两个;五个五个数,剩三个;七个七个数,剩五个。 编个程序计算出这堆零件至少多少个? staticvoidMain(string[]args) { intn; for(n=100;n<200;n++)if(n%3==2&&n%5==3&&n%7==5)Console.WriteLine(n); }Console.ReadLine(); } 12.有如下程序: staticvoidMain(string[]args) {inti=0,s=0;for(;;) {if(i==3||s==5)continue;if(i==6)break; i=i+1;s=s+i; }Console.WriteLine(s);Console.ReadLine(); }程序运行后的输出结果是(D)(A)10(B)13(C)21(D)程序进入死循环 13.设计程序,实现A! +B! +C的运算,并输出结果。 staticvoidMain(string[]args) {intA=1,B=2,C=3,D; D=jieCheng(A)+jieCheng(B)+jieCheng(C);Console.WriteLine(D);Console.ReadLine(); }staticintjieCheng(inti) {intsum=1;if(i>0)sum=i*jieCheng(i-1);returnsum; }第七章 1.C#通过类、对象、继承、多态等机制形成一个完善的面向对象的编程体系。 2.类是C#程序设计的基本单位。 用类声明的变量叫类的实例,也叫类的对象。 3.现实生活中的类是人们对客观对象不断认识而产生的抽象的概念,而对象则是现实生活中的一个个实体。 面向对象程序设计的类概念从本质上和人们现实生活中的类概念是相同的。 4.值类型变量直接包含其本身的数据,因此每个值类型变量本身就包含有赋给它的值。 5.引用类型变量本身不包含数据,只是存储对数据的引用,数据保存在内存的其他位置。 6.C#中最常用的访问修饰符及其意义 public(公有): 访问不受限制,可以被任何其他类访问private(私有): 访问只限于含该成员的类,即只有该类的其他成员能访问protected(保护): 访问只限于含该成员的类、及该类的派生类 7.方法是把一些相关的语句组织在一起,用于解决某一特定问题的语句块。 C#中的方法必须放在类定义中声明,也就是说,方法必须是某一个类的方法。 8.在方法的调用中,基本数据类型作为参数默认是按值传递的。 类对象作为参数默认是按引用传递的。 类对象不能按值方式传递。 基本数据类型参数按引用传递,应该在形参与实参前均使用关键字rf。 9.方法重载有两点要求或原则: 1重载的方法名称必须相同; 2重载的方法,其形参个数或类型必须不同,否则将出现“已经定义了一个具有相同类型参数的方法成员”的编译错误。 10.静态方法属于类,只能使用类调用,不能使用对象调用。 11.C#中的常用类型转换静态方法 在C#勺System命名空间中,有一个Convert(转换)类,该类提供了由字符串类型转换为相应其他基本数据类型的一系列静态方法。 Convert.静态方法名(字符串类型数据) Convert.Tolnt32() Convert.ToSingle() Convert.ToChar()Convert.ToBoolean() 12.“类体”包括类中的所有数据及对数据的操作,面向对象程序设计将数据与对数据的操作作为一个整体,以类的形式进行定义,这种机制叫“封装”。 13.在“类体”中,所有的数据及对数据的操作的集合叫类成员」口: 字段、属性、方法、构造函数。 14.对象声明后,需用new关键字将对象实例化,这样才能为对象在内存中分配保存数据的空间。 15.访问对象实质是访问对象成员,对对象成员的访问使用一运算符。 16.在属性声明中,get与set叫属性访问器。 第八章 1.什么是类的继承? 怎样定义派生类? 类的继承性是指一个类定义既可以具有其他类的数据成员、属性成员、方法成员等, 也可以使其他类具有自己的数据成员、属性成员、方法成员等。 在类的继承中,被继承的类叫基类或父类,继承的类叫派生类或子类。 派生类通常定义的语法格式为: pulbicclass派生类名称: 基类名称{类体}说明: 1public: 访问控制修饰符,访问控制修饰符可以是public、protected和private。 通常都使用public以保证类的开放性,并且public可以省略,因为类定义的访问控制默认为是pulbic。 2“: 基类名称”: 表示所继承的类。 2.基类中的字段通常使用什么类型的访问修饰符,为什么? 在类的继承中,作为基类的数据成员通常使用protected修饰符,而不使用private修饰符。 因为如果在基类中使用private修饰符声明数据成员,则其成员将不允许派生类成员访问,而protected修饰符,既能保证数据成员不被直接访问,又允许其派生类成员访问。 3.简述创建派生类对象时,构造函数的调用。 在创建派生类对象时,调用构造函数的顺序是先调用基类构造函数,再调用派生类的构造函数,以完成为数据成员分配内存空间并进行初始化的工作。 如果派生类的基类本身是另一个类的派生类,则构造函数的调用次序按由高到低顺序 依次调用。 例如,假设A类是B类的基类,B类是C类的基类,则创建C类对象时,调用构造函数的顺序为,先调用A类的构造函数,再调用B类的构造函数,最后调用C类的构造函数。 4.对于有参数的基类构造函数,派生类如何向基类构造函数传递参数? 向基类构造函数传递参数,必须通过派生类的构造函数实现. 其格式如下: public派生类构造函数名(形参列表): base(向基类构造函数传递的实参列表){}说明: 1“base”是C#关键字,表示调用基类的有参构造函数。 2传递给基类构造函数的“实参列表”通常包含在派生类构造函数的“形参列表”中。 5.什么是密封类? 密封类是不允许其他类继承的类。 Convert类就是一个密封类。 定义密封类需要使用sealed关键字,其格式为: 访问修饰符sealedclass类名称{} 6.什么是多态性? 多态性有什么作用? 多态性就是指在程序运行时,执行的虽然是一个调用方法的语句,却可以根据派生类对象的类型不同完成方法的不同的具体实现。 在类的继承中,C#允许在基类与派生类中声明具有同名的方法,而且同名的方法可以有不同的代码,也就是说在基类与派生类的相同功能中可以有不同的具体实现,从而为解决同一问题提供多种途径。 7.什么是抽象类? 抽象类是指基类的定义中声明不包含任何实现代码的方法,实际上就是一个不具有任 何具体功能的方法。 这样的方法唯一的作用就是让派生类重写。 为了实现多态,必须在基类中声明虚方法,但有时基类中声明的虚方法无法实现具体的功能。 这时需要在基类中声明抽象方法。 在基类定义中,只要类体中包含一个抽象方法,该类即为抽象类。 在抽象类中也可以声明一般的虚方法。 第九章 1.数组是一些具有相同类型的数据按一定顺序组成的序列,数组中的每一个数据都可以 通过数组名及惟一一个索引号(下标)来存取。 所以,数组用于存储和表示既与取值有关,又与位置(顺序)有关的数据。 2.在C#中,把一组具有同一名字、不同下标的下标变量称为数组」组下标从0开始,其 最大值为: 数组元素个数-1。 3.在C#中,数组属于引用类型,也就是说,在数组变量中存放的是对数组的引用,真正的数组元素数据存放在另一块内存区域中。 4.声明一维数组的格式为: 访问修饰符类型名称程[]数组名 5.C#专门提供了一种用于遍历数组的foreach循环语句。 格式为: foreach(类型名称变量名称in数组名称){循环体} 6.声明多维数组时,用逗号表示维数,一个逗号表示二维数组,两个逗号表示三维数组,以此类推。 7.数组元素作为实参只能在调用方法时作为实参进行传递。 8.整个数组作为参数时,实参与形参是对应的。 由于数组是引用类型,所以数组参数总是按引用传递的。 使用params关键字,既可以按引用传递数组实参,也可以只传递一组数据。 9.数组的Sort()可以将数组中的元素按升序排列。 再使用ReverseO可以实现反转。 10.结构的定义需使用struct关键字;定义枚举类型使用关键字enum结构与枚举都属于值类型。 第十章 1对话框可以分为模式对话框和非模式对话框两种。 模式对话框是指用户只能在当前的窗体进行操作,在该窗体关闭之前不能切换到其它窗体。 非模式对话框是指当前所操作的窗体可以切换。 2.C#的From类中,使用show()实现非模式窗体显示。 模式窗体的显示通过ShowDialog()实现。 第十一章 1.文本文件与二进制文件的区别。 文本文件中字节单元的内容为字符的代码,在二进制文件中文件内容是数据的内部表示,是从内存中直接复制过来的。 对于字符信息无差别,对于数值信息,数据的内部表示和字符代码截然不同。 二进制文件中的数据不需要进行转换,文本文件中的数据需要进行转换。 2.检查文件是否存在的步骤。 检查文件存在与否是对文件进行操作之前必须进行的工作,可以使用File类的Exists 方法实现。 该方法的格式如下: File.Exists(path); 其中只有一个参数用于描述文件的路径,可以使用绝对路径,也可使用相对路径。 3.描述文本文件打开、读写操作的步骤。 使用File类的OpenText方法可以在指定路径读取文件,文本返回结果为StreamReader 的对象,二进制文件返回的为BinaryReader类型的对象。 4.如类是对文件的典型操作,提供文本创建、打开、复制、删除、移动等静态方法 5.类是对文件的典型操作,提供文本创建、打开、复制、删除、移动等实例方法。 6.D^cto^类实现对文件目录的典型操作,例如对文件目录的创建、重命名、删除、移动等静态方法。 7.Directory]nfo类实现对文件目录的典型操作,例如对文件目录的创建、重命名 8.FileStream类实现对文件进行读取、写入、打开、关闭操作,支持随机访问文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计