2011年校选修《Vc .NET程序设计基础》期末复习思考题

合集下载

.net复习题

.net复习题

.net复习题在计算机科学领域中,.NET是一个广泛使用的开发框架。

它提供了许多工具和库,帮助开发人员创建高效、可靠的应用程序。

无论是初学者还是有经验的开发人员,复习一些.NET的基本知识是非常重要的。

本文将介绍一些.NET复习题,帮助读者巩固他们的知识。

1. 什么是.NET框架?.NET框架是一个由微软开发的软件平台,用于构建和运行各种类型的应用程序。

它包括一个运行时环境(Common Language Runtime)和一个类库(Framework Class Library),提供了许多功能和工具,简化了应用程序的开发过程。

2. 请解释一下.NET的CLR(Common Language Runtime)是什么?CLR是.NET框架的核心组件之一。

它是一个虚拟机,负责管理和执行.NET应用程序的代码。

CLR提供了许多功能,如内存管理、安全性和异常处理。

它还负责将源代码编译为中间语言(IL),并在运行时将其转换为机器代码。

3. 什么是C#?C#是一种面向对象的编程语言,由微软开发。

它是.NET框架的主要语言之一,被广泛用于开发各种类型的应用程序。

C#具有简单易学的语法和强大的功能,它结合了C++和Java的特点,提供了更高的生产力和更好的性能。

4. 请解释一下面向对象编程(OOP)的概念。

面向对象编程是一种编程范式,通过将数据和操作封装在对象中,来组织和管理代码。

它基于对象的概念,其中对象是类的实例,类定义了对象的属性和行为。

OOP提供了封装、继承和多态等特性,使得代码更加模块化、可重用和易于维护。

5. 什么是集合(Collection)?集合是.NET框架中的一个重要概念,用于存储和操作一组相关的对象。

它提供了各种类型的集合,如列表、字典、队列和堆栈等。

集合类提供了丰富的方法和属性,使得对集合中的元素进行增删改查操作更加简单和高效。

6. 请解释一下异常处理(Exception Handling)的概念。

vc 复习题答案

vc  复习题答案

一、名词1.面向对象技术:全称Oriented Object Technology, 是以对象为单位描述客观世界的一种新技术,其领域包括OO-PL(程序设计语言)、OO-DB。

2.对象:object,是对现实世界任何实体的抽象描述,包含数据以及对数据的操作。

3.类与类库:类(class)是对一组性质相近的客观对象的抽象归纳,它将对象的共性集中起来,形成一个集合。

类库:类(class)——是一种C++数据类型,它能够提供访问某个“类对象”的接口,这个“类对象”由一个名字来标识。

一个类定义包括类的变量和方法,以及实例的变量和方法,它还包含着它的父类的所有变量和方法。

类库(class library)——支持相同应用程序的相关C++类的集合。

对象(object)——是“类”的实例,它对能够修改类状态的属性(数据)和行为(函数)都作了具体实现。

4.MFC:微软基础类(Microsoft Foundation Classes),类库是一些类的集合,其中封装了大量的有用的函数和数据结构,一个成熟的软件开发工具都有一个功能庞大的类库与他匹配,与Visual C++捆绑在一起的是微软基础类MFC。

5.匈牙利命名法:是匈牙利人查尔斯·西蒙尼提出的。

有两条规则:标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。

在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。

如,nCount为一整型变量,bFlag为一Boolean型变量。

基类(base class)——指C++中的一些抽象的、基础性的“大”类,其它类能够通过继承关系由它派生。

派生类(derived class)——由一个基类派生出来的类,它由基类创建,并且继承了该基类的所有特性。

6.类的继承性与派生性:类的派生类:在已有类的基础上定义一个新类,新定义的类称为原有类的派生类或子类,原有的类称为新定义的类的基类或父类,派生类继承了基类所有的属性和行为。

.net期末复习题简答题

.net期末复习题简答题

1)MFC 类结构2)在MFC 应用程序框架中的应用程序类型,并简要说明::(1)单文档(2)多文档(3)基于对话框3)弹出式菜单的开发步骤::1、创建多文档或单文档程序2、使用菜单资源编辑器添加菜单资源3、在鼠标右键事件中显示菜单(p97)4、在CView 类中添加消息WM_RBUTTONUP 的响应函数——调用CMenu:: LoadMenuA 加载弹出式菜单——调用CMenu:: TrackPopupMenu 显示弹出式菜单 5、改善菜单显示的位置——调用ClientToScreen 来调整弹出式菜单显示的位置6、为快捷菜单的每个选项添加响应函数——创建菜单项的WM_COMMAND 消息响应函数 ——调用MessageBox 弹出提示信息7、运行测试程序4)对话框的种类,并简要说明:: 模态对话框:当其显示时,不能操作程序的其他界面,只能操作对话框,一直到关闭为止,具有独占性非模态对话框:当其显示时,不影响程序其他界面的操作,不具有独占性5)下拉框控件的使用开发步骤创建一个基于对话框的程序添加一个下拉框控件以及对应的控件变量,设置下拉区域的高度在对话框类的OnInitDialog 函数中调用AddString 添加选项调用SetCurSel 设置当前被选中的项调用ResetContent 清空所有的选项定义消息CBN_SELCHANGE 的响应函数,调用GetWindowT extA 获取选中的字符串 调用GetCurSel 和DeleteString 删除当前选项6)列表控件的使用开发步骤创建基于对话框的程序添加ListBox 控件及其对应的控件成员在对话框类的OnInitDialog 函数中调用AddString 添加选项调用SetCurSel 设置当前被选中的项调用ResetContent 清空所有的选项定义消息LBN_SELCHANGE 的响应函数,调用GetT ext 获取选中的字符串调用GetCurSel 和DeleteString 删除当前选项7)ActiveX 控件属性的类型及实现步骤公共属性、具有通知特性的属性和Get/Set 类型的属性。

2011年12月C#复习资料

2011年12月C#复习资料

12011-2012第一学期C#期末复习资料一、填空题1. .NET 框架包括 公共语言运行库 和 .NET 类库。

2. 类的成员或者是静态成员,或者是实例成员,将前者看作属于类和将后者看作属于对象很有用。

在“类”中,如果声明有多个同名的方法但它们的签名不同,则称为方法的重载。

3.在现有的类(基类)的基础上建立新类(派生类)的处理过程称为继承,这带来的好主要有代码复用、继承性多态。

可以用base 关键字从派生类中访问基类的成员。

在派生类中定义与基类同名的方法,使用new 修饰符显式隐藏从基类继承的方法成员。

4.在类声明中使用abstract 修饰符以指示类只能是其他类的基类,我们称它为抽象类;用sealed 修饰的类的特点是不能继承(密封);virtual 关键字用于指定属性或方法可以在派生类中重写,具有该关键字的方法或属性被称作虚拟成员。

当实例方法声明包含override 修饰符时,称该方法为重写方法,重写方法用相同的签名重写继承的虚拟方法。

5. OpenFileDialog 对话框执行后,用户选择文件的文件名保存在它的FileName 属性中. 6. 如果希望在OpenFileDialog 控键中选择多个文件,应把它的MultiSelect 属性设置为true 。

7. 语句string[] Drv=Directory.GetLogicalDrives()返回系统中所有磁盘列表。

8. 试列举 中的五个主要对象Connection 、Command 、DataReader 、DataSet 、DataAdapter 。

9.C#不但具有面向对象程序语言所应有的一切特性:继承性、封装性、多态性,而且C#的一个重要创新就是使面向组件编程更加容易。

10. 借助C#,可以创建多种应用程序,如:Windows 应用程序、Web 应用程序、控制台应用程序、智能设备应用程序(Pocket PC 袖珍PC )、移动Web 应用程序(PDA 个人数字助理)等等。

VC期末考试及答案

VC期末考试及答案
public:
Shape() { }
virtualintArea()=0;
};
class Circle:public Shape {
intr;
public:
Circle(intc){r=c;}
{static int j;
do{ s[j]+=s[j+1]; } while(++j<2);
}
void main(void)
{int k, a[10]={1, 2, 3, 4, 5};
for(f(a),k=0; k<5; k++) cout<<a[k];cout<<endl;
for(f(a),k=0; k<5; k++) cout<<a[k];cout<<endl;
};
class D:public C{
int z;
public:
D(int a,int b,int c,int d):C(a,b,c){ z=d; }
int& Accessz(){ return z; }
};
void main()
{D d(35,100,300,500);
d.A::Access()+=20;d.B::Access()+=d.B::Access();
27.下列叙述中,不正确的是27。
A.含纯虚函数的类为抽象类B.不能直接由抽象类建立对象
C.抽象类不能作为派生类的基类 D.纯虚函数不能定义其实现部分
28.下列叙述中,不正确的是28。
A.this指针是指向当前调用成员函数的对象的指针
B.this指针可用于类中非静态的数据成员和函数成员

《C#.NET程序设计案例教程》课后习题参考答案

《C#.NET程序设计案例教程》课后习题参考答案
答:do-while循环就是先执行再判断,while循环是先判断后执行。
5.异常处理有哪几种常用的语法格式?
答:try语句有以下三种可能的形式:
(1)try…catch语句:一个try块后接一个或多个catch块。
(2)try…finally语句:一个try块后接一个finally块。
(3)try…catch…finally:一个try块后接一个或多个catch块,后面再跟一个finally块。

习题
一、选择题
1.在.NET中不能使用的语言是(B)。
A.C#B.Pascal
C.VB D.VC++
2.(A)可以帮助用户可视化的程序设计界面。
A.工具箱B.类视图
C.解决方案资源管理器D.动态帮助
3.导入命名空间使用关键字是(B)。
A. MainB. using
C. SystemD. Console
4.下列关于C#中继承的描述,错误的是(A)。
A.一个子类可以有多个父类。
B.通过继承可以实现代码重用。
C.派生类还可以添加新的特征或者是修改已有的特征以满足特定的要求。
D.继承是指基于已有类创建新类的语言能力。
5.可以在一个类中定义多个同名的方法,但只有使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法,这是(D)。
A.虚方法B.运算符重载
C.抽象方法D.方法重载
3.关于构造函数,下列说法错误的是(B)。
A.C#中对对象进行初始化的方法叫构造函数。
B.构造函数可不与类同名,可以用户自己命名。
C.如果一个类没有声明任何实例构造函数,则系统会自动提供一个默认构造函数。
D.构造函数在类的声明中,可以有函数名相同,但参数个数不同的多种形式。

VC 复习题+答案

VC 复习题+答案

《VC程序设计》试卷1一、单项选择题(每小题1分,共20分)1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为()A、2B、3C、4D、52、对于类中定义的成员,其隐含访问权限为()A、protectedB、privateC、publicD、static3、一个类的友元函数或友元类能够通过成员操作符访问该类的()A、私有成员B、所有成员C、公用成员D、保护成员4、下面说法正确的是()A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、下列语句的运行结果为()#include <iostream.h>srtuct COMPLEX{int x;int y;} cNum[2]={1,3,2,7};void main(){cout<< cNum[0].y*cNum[1] x<<endl;}A、3B、2C、21D、66、类AB的缺省构造函数和析构函数是()A、AB( )和~AB( )B、AB(int)和~AB( )C、AB( )和~AB(delete )D、AB( )和int~AB( )7、在C++中,若对函数未加说明,则函数的隐含类型是()A、intB、doubleC、voidD、char8、已知类A是类B的友元,类B是类C的友元,则( )A、类A一定是类C的友元B、类C一定是类A的友元C、类C的成员函数可以访问类B的对象的任何成员D、类A的成员函数可以访问类B的对象的任何成员9、下列说法中正确的是( )A、类定义中只能说明函数成员的函数头,不能定义函数体B、类中的函数成员可以在类体中定义,也可以在类体之外定义C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中D、在类体之外定义的函数成员不能操作该类的私有数据成员10、以下不属于成员函数的是( )A、静态成员函数B、友元函数C、构造函数D、析构函数11、对于消息队列的描述正确的是()A、在Windows中只有一个消息系统,即系统消息队列。

.net程序设计课后习题整理及重点

.net程序设计课后习题整理及重点

第一章1.填空题(1).NET Framework主要包括公共语言运行库CLR 和类库。

(2)网站在编译时,首先将语言代码编译成微软中间语言MSIL。

(3)一台IIS Web服务器IP地址为210.78.60.19,网站端口号为8000,则要访问虚拟目录xxxy中default.aspx的URL为http://210.78.60.19:8000(4)可以通过复制网站同步网站上的一个文件。

2.是非题(1)托管代码是以CLR为基础的代码。

(√)(2)3.5仍使用2.0引擎。

(√)(3).NET Framework 3.0是.NET Framework 3.5的一部分。

(√)(4) 3.5是边解释边执行的。

(×)(5)在Visual Studio 2008环境中开发网站必须安装IIS。

(×)3.选择题(1).NET Framwork3.5不包括(A)A. .NET Framework 1.1B. .NET Framework 2.0C. LINQD. AJAX(2)下面(D)网站在建立时要求安装Microsoft FrontPage服务器扩展。

A.文件系统B. 本地IISC. FTP站点D.远程站点(3)发布网站后不可能存在的文件夹是(B)A. App_Data B.App_Code C.App_Themes D.bin4.简答题(1) 一个学校有多个分院,每个分院有各自的网站,如果仅提供一台Web服务器,如何设置?每个分院设置各自的虚拟目录。

虚拟目录是服务器硬盘上通常不在主目录下的文件夹的一个好记名称(别名),使用别名可以发布多个文件夹下的内容以供所有用户访问,并能单独控制每个虚拟目录的读写权限。

(2) 在访问一些网站时,为什么只需输入域名就可以访问网站主页?因为设置了网站默认文档。

设置网站默认文档可使用户在访问主页时即使不输入网页名也能访问该文档。

(3) “文件系统”、“本地IIS”、“FTP站点”和“远程站点”的区别是什么?“文件系统”、“本地IIS”、“FTP站点”和“远程站点”代表了不同的四种网站类型。

《VC程序设计》期末复习题集(学生用)

《VC程序设计》期末复习题集(学生用)
{intt=1;
if (n==1)t=1;
elset=n*fun1(n-1);
returnt;
}
void main(void)
{cout<<fun2(4)<<endl;}
9.下列程序的输出是abcABCabc。
#include <iostream.h>
char * str(char *p1, char *p2)
{cout<<list->data<<endl;
if(list->next)ShowList(list->next );
}
}
void AddToEnd(Lnode* New,Lnode*&head)
{if(head==NULL)head=New;
elseAddToEnd(New,head->next);
c=fun(a,b);
cout<<a<<'\t'<<b<<'\t'<<c<<endl;
}
8.下列程序的输出是20。
#include<iostream.h>
int fun2(int);
int fun1(int n)
{if(n==1) return 1;
else returnn&#)
{if(b)
{a=new int[n=m];
for(int i=0;i<n;i++) a[i]=b[i];
}else a=0,n=0;
}
~DArr(){ delete []a; }
int& Elem(int i) { return a[i]; }

C程序设计教程期末复习题及答案

C程序设计教程期末复习题及答案

C程序设计教程期末复习题及答案习题 1 一、选择题1(在C#中 B 都是对象。

A 任何类型B 任何事物C 任何代码D 任何技术 2(对象包含数据和 A 的方法。

A 在该数据上工作B 调用C 函数调用D 传递参数 3(一个类是 D 的蓝本。

A 数据集合B 函数集合C 方法集合D 给定功能集合 4(.NET构架包含公用语言运行时期和 B 。

5(.NET的核心是 A 。

A CLRB Windows2000C DNAD 分解平台 6(C#程序以 B 扩展名保存编写的程序。

A .CS B .PS C .CSS D .SCB 的命名空间。

7(System是A 存储系统类B 控制台类C I/O操作D 新项目 8(namespace用于声明 B 。

A 新项目B 一个命名空间C 类与方法D 指令 9(每个C#程序必须有一个 D 方法。

A 类方法B 构造方法C MainD 重载方法二、问答题1. 面向对象编程的三大原则是什么,答:封装、继承和多态性。

2. 封装是什么,答:封装是用于隐藏对象实际的制作细节。

3. 继承是什么,答:继承是在建立新的特定对象时,可以使用现有对象的功能性。

4. 多态性是什么,答:多态性是程序代码能够依据实际对象所需而进行不同的行为。

5. .NET的核心构件包括哪些,答:(1).NET构造块服务或有计划的访问某些服务。

(2)将在新的Internet设备上运行的.NET设备软件。

(3).NET用户经验。

6. CLR的作用是什么,答:CLR是.NET的核心,它是一个运行时期环境,在该环境中,以不同语言编写的应用程序均能始终运行。

三、编程题使用.NET代码编辑器编写一个C#应用程序,以在屏幕打印出:C# is the Component-oriented language in C and C++ family of language.要求:(1) 使用using System命名空间,即定位System命名空间的Console类。

(完整word版)《c.net程序设计案例教程》课后习题参考答案.

(完整word版)《c.net程序设计案例教程》课后习题参考答案.

《C#.NET程序设计案例教程》课后习题参考答案习题1一、选择题1.在。

NET中不能使用的语言是( B )。

A.C#B.PascalC.VB D。

VC++2.( A )可以帮助用户可视化的程序设计界面。

A.工具箱B. 类视图C.解决方案资源管理器D。

动态帮助3.导入命名空间使用关键字是( B )。

A. MainB. usingC。

System D。

Console二、填空题1.在C#程序中,程序的执行总是从(Main )方法开始的。

2.在C#程序中,单行注释用( // )引导。

3.在C#程序中,注释分为单行注释和(块注释)。

4.关键字class的含义是(类).5。

要添加控件到窗体中,应该使用(Windows窗体设计器)设计窗口。

6。

要修改项目的属性,必须在(解决方案资源管理器)设计窗口中选择项目. 7。

要修改对象的属性,应该使用( 属性)设计窗口。

三、问答题1.简述Visual Studio 2010的安装过程。

答:1、获取Visual Studio 2010的安装文件2、启动Visual Studio 2010的安装程序3、单击第一个安装选项“安装Visual Studio 2010”,弹出图1-2所示的“Visual Studio 2010安装向导"界面。

4、单击“下一步”按钮,弹出图1-3所示的“Visual Studio 2010安装程序起始页”.5、选中“我已阅读并接受许可条款”按钮,单击“下一步"按钮,弹出图1—4所示的“Visual Studio 2010安装程序选项页”,用户可以选择要安装的功能及安装路径,一般使用默认设置即可.6、选择好产品安装路径后,单击“安装”按钮,进入图1—5所示的“Visual Studio 2010安装程序安装页"界面,显示正在安装的组件。

7、安装完毕后,单击“下一步”按钮,弹出图1—6所示的“Visual Studio 2010安装程序完成页”界面。

《c#.net程序设计案例教程》课后习题参考答案

《c#.net程序设计案例教程》课后习题参考答案
《C#.NET 程序设计案例教程》课后习题参考答案
习题 1
一、选择题
1.在.NET 中不能使用的语言是( B )。
A.C#
B.Pascal
C.VB
D.VC++
2.( A )可以帮助用户可视化的程序设计界面。
A.工具箱
B. 类视图
C.解决方案资源管理器
D.动态帮助
3.导入命名空间使用关键字是( B )。
编程思路:利用 if..else 语句
习题 3
一、选择题
1.假设有三个文本框 textBox1、textBox2 和 textBox3,其中 textBox3.Text 值为空,
textBox1.Text 值 为 8 , textBox2.Text 值 为 10 , 则 执 行 语 句 :
“textBox3.Text=textBox1.Text+textBox2.Text;”后,textBox3.Text 的值为:( C )。
5. 异常处理有哪几种常用的语法格式? 答:try 语句有以下三种可能的形式: (1)try…catch 语句:一个 try 块后接一个或多个 catch 块。 (2)try…finally 语句:一个 try 块后接一个 finally 块。 (3)try…catch…finally:一个 try 块后接一个或多个 catch 块,后面再跟一个 finally 块。
属性的值为 False。
3.按键盘上的( F7 )键可以进入代码编辑窗口。
4.C#中的 4 种循环结构是( for
)、( while )、( do…while
)和
( foreach
)。
5. 专门用于集合元素访问的循环语句是( foreach

c_程序设计课后习题与解答[1]资料

c_程序设计课后习题与解答[1]资料

习题与解答习题一一、单项选择题1 在 Visual 窗口中,在__________窗口中可以察看当前项目的类和类型的层次信息。 (B)A.解决方案资源管理器B.类视图C.资源视图D.属性2.能作为C#程序的基本单位是( B)。

A. 字符B. 语句C. 函数D. 源程序文件3.C#语言是微软.NET公共语言运行环境中内置的核心程序设计语言,是一种(B)。

(A)面向过程程序设计语言(B)面向对象程序设计语言(C)跨平台程序设计语言(D)机器语言4.C#语言支持面向对象程序设计概念,(C)。

(A)但不支持继承(B)而且支持多继承(C)但仅支持单继承(D)支持单继承和多继承5.C#应用程序由一个或者多个类组成,一个应用程序的所有程序代码(A)。

(A)必须封装在类中(B)不能封装在类中(C)必须封装在一个类中(D)必须封装在多个个类中6.C#应用程序中,导入其他系统预定义元素部分可以使用关键字(D)。

(A)use (B)namespace (C)import (D)using7.命名空间是一种在程序中防止标识符命名冲突而引入的逻辑隔离机制,C#中使用关键字(D)表示。

(A)using (B)spacename (C)class (D)namespace8.C#应用程序中,用主方法指明程序执行的开始点,主方法的名字规定为(C)。

(A)class (B)main (C)Main (D)MainWay9. C#中的注释方法有三种,下列注释方法中错误的是(D)。

(A)单行注释“//”(B)多行注释“/*和*/”(C)XML注释“///”(D)HTML注释“<!--和-->”10. 下列对控制台应用程序描述正确的是(C)。

(A)控制台(Console)应用程序就是对设备进行控制的应用程序(B)控制台(Console)应用程序包含了大量Windows系统的组成元素(C)控制台(Console)应用程序是C#语言能够开发的应用程序类型之一(D)控制台(Console)应用程序是基于标准C语言的单片机技术11. 在控制台应用程序中,如果在程序开头使用using System; 语句引入了System命名空间,则下列对Read()和ReadLine()方法调用错误的是(D)。

程序设计习题与思考题答案.docx

程序设计习题与思考题答案.docx

习题与思考题22.1试根据题意写出空白处的内容。

(1) _______________________________ V isual Basic是可视化的、血向、采用事件驱动方式的结构化高级程序设计语言。

(2) ________________________________________________________ 在Visual Basic JT发集成环境中,如果工具箱不可见,应在______________________________________________ 主菜单中操作而使它可见。

(3) _________________________________________________ 双击窗体中的对彖后,Visual Basic将显示的窗口是。

(4) ____________________________________ 要使窗体在运行时最大化,应设置其属性。

(5) _____________________________________________ 可以同时删除字符串前导和尾部空白的函数是。

(6) _______________________________________ 函数Vai (aSd76fG2hgf356)的返回值是。

(7)在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。

用于标志各个控件数组元索的参数是(8) _________________________________________________________________________________________ 在按卜"Esc”键后,要让程序执行CommandButton_Click事件屮的代码,应将CommandButton的______________ 属性设为True。

(9) _______________________________ 使一个控件不可见,应设置其属性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Vc++.NET程序设计基础》期末复习思考题目一、名词解释题【每个名词2分,共16分】1、句柄2、消息循环3、窗口函数4、命名空间5、类6、继承7、对象8、程序集(Assembly)9、解决方案10、项目11、事件12、属性说明:从以上12个名词中选择8个。

二、简答题【每小题3分,共12分】1、简述RadioButton控件与CheckBox控件的差别。

如何讲Radio Button 控件进行分组?2、接口(interface)与类(class)的差别是什么?3、用value class定义的类与用ref class定义的类有什么差别?4、模态对话框(/窗体)与非模态对话框(/窗体)的差别是什么?编程显示时有什么不同?5、什么叫组件?什么叫控件?它们有什么差别?如何设计一个组件?6、抽象类与接口的差别是什么?7、虚继承解决了什么问题?8、什么叫虚函数?为什么在基类中要定义虚函数?9、什么叫接口适配器类?它有什么作用?10、.NET环境下应用程序以托管方式与非托管方式运行有什么差别?11、装箱与拆箱操作的作用是什么?说明:从以上10个问题中选择4个。

三、单项选择题【每小题2分,共24分】1、假设有一个类的定义如下:class A{private:int number;public:A(){number=0;}void Set(int i){number=i;}};在主程序中有下列调用语句,其中正确的是A、A a();B、A b; b->Set(38);C、A b; b.Set(24);D、A::Set(38);2、不属于类成员访问限制符的是:A、privateB、publicC、protectedD、friend3、下列说法正确的是A、定义构造函数必须指出其返回类型,并且不允许重载构造函数B、静态数据成员可以在类体中、类体外被初始化,但无须通过构造函数C、默认构造函数是不接受实参的函数,并且能由系统自动生成D、在创建一个类的新对象时,系统会为它的所有成员分配一块存储空间4、以下声明的含义是:const A *p; //A是类名A、p是指向类A的对象的指针变量,由该指针变量指向的对象是常量B、p是指向类A的对象的指针C、p是指向类A常成员的指针D、p是指向类A的对象的常指针,该指针值是常量5、在下列派生类的定义或声明语句中,能实现共有继承方式的语句是class Father{....}A、class Son: Father{...}B、class Son: inherients Fater{...}C、class Son:private virtual Father{...}D、class Son:public Father{...}6、派生类对象的成员函数可以访问的基类成员是:A、保护继承方式下基类的私有成员B、公有继承方式下基类的私有成员C、公有继承方式下基类的保护性成员D、私有继承方式下基类的公有成员7、对于下面的基类和派生类:class Father{ class Son: public Father{public: private:int a; int d;private: protected:int b; int e;protected: public:int c; void fun();... .....}; };下面代码中,正确的是:A、Son A; A.a=100;B、Son A; A.c=100;C、Son A; A.b=100;D、Son A; A.fun("123”);8、在下列的类继承层次结构中:class A{...};class B:public virtual A{...};class C:public virtual A{...};class D:public virtual B,public virtual C{...};在主程序中有语句D d;则构造函数的调用顺序是:A、B,A,C,A,DB、A,B,A,C,DC、A,B,C,DD、A,C,,A,B,D9、在类中声明虚函数的关键字是:A、publicB、virtualC、dummyD、inline10、下列关于虚函数的描述中,正确的是:A、虚函数不是类的成员函数B、基类的虚函数不能被派生类继承C、虚函数必须是一个非静态的成员函数D、基类中的虚函数的参数和派生类中的同名的虚函数的参数可以略有不同11、下列纯虚函数的定义中,正确的是:A、virtual void fun(int a){//...}B、virtual void fun(int a )C、virtual void fun(0)D、virtual void fun(int a)=012、下列关于抽象类的描述中,正确的是:A、抽象类中至少有一个纯虚函数B、抽象类可以定义该类的指针变量C、抽象类不能定义该类的对象D、抽象类至少有一个虚函数四、填空题【每空2分,共20分】1、已知下面的程序的执行结果是:类对象的序号是1zhangsang is 17 years old in year 2011类对象的序号是2Lisiis 19 years old in year 2011请您将下面的代码填写完整,以使程序的逻辑符合预期的要求。

class Person{private:int age;char name[20];int count;public:Person(int k,char *pName);void HowOld(){cout<<name<<"is"<<age<<”years old in year 2011”<<endl;};int Person::count=0;Person::Person(int i, char *pName ){age= ;strcpy(name, );cout<< <<count<<endl;}void main(){Person obj1(17,”zhangsan”);obj1.HowOld();A obj2(19,”Lisi”);obj2.HowOld();}2、下面的程序的预期输出结果如下:类A对象的数据值是:12类B对象的数据值是:10类B对象的数据值是:20类C对象的数据值是:22,33请您将空缺的部分填写完整。

class A{public:A(int i=12){a=i;}void Show(){cout<<"类A对象的数据值是:"<<a<<endl;}protected:int a;};class B: public A{void Show(){ cout<<"类B对象的数据值是"<<”:”<< <<endl;} };class C: B{private:int c;public:C(int i,int j){ a=i; ; }void Show(){cout<<"类C对象的数据值是:"<< <<","<< <<endl;} }void main(){A oA1;B oB1; B oB2(22);C oC1(22,33);oA1.Show();oB2.Show();oC1.Show();}3、假设有下面的类层次结构:class A{ class B: public A{public: private:virtual ~A(){cout<<"A is dying!";} char *buffer;}; public:B(int len) {buffer=new char[len];}~B(){cout<<"B is dying!";.}};主函数如下:void main(){B *b=new B(128);A* a=b;delete a;}那么,执行结果是:五、阅读理解题【每小题4分,共12分】1、仔细阅读下面的程序段,写出程序的执行结果。

#include <iostream>#include <string>#include<cmath>using namespace std;class MathCal{public:MathCal(double x=0,double y=0){a=x;b=y;}virtual double calc()=0;protected:double a,b;};class AddCal : public MathCal {public:AddCal(double x,double y) :MathCal(x,y){s=0 .0; }double calc(){ s = x+y;return s;}private:double s;};class MulCal : public MathCal{ public:MulCal(double x,double y) :MathCal(x,y){s=0.0; }double calc(){ s = x*y;return s;}private:double s;};class PowCal:public MathCal {public:PowCal(double x,double y) :MathCal(x,y){s=0.0 ;}double calc(){ s = pow(x,y);return s;}private:double s;};void main(){ int i;double sum = 0.0;MathCal *ptr[3];AddCal obj1(4,3);MulCal obj2(4,3);PowCal obj3(4,3);ptr[0] = &obj1;ptr[1] = &obj2;ptr[2] = &obj3;for ( i=0;i<3;++i){ sum += ptr[i]->calc();cout<<ptr[i]->calc(); }cout<<"总和是:"<< sum<<endl;cin.get(); //等待输入任一个字符就会结束,以便调试程序,可以删除}2、画出上题中各个类之间的继承图,并说明基类中calc()函数的性质及作用。

相关文档
最新文档