西南交通大学2012年面向对象程序设计(专业版 )Microsoft Word 文档
- 格式:doc
- 大小:442.50 KB
- 文档页数:29
2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案2012年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A )循环队列是队列的一种链式存储结构B )循环队列是队列的一种顺序存储结构C )循环队列是非线性结构D )循环队列是一种逻辑结构(2)下列叙述中正确的是A )栈是一种先进先出的线性表B )队列是一种后进先出的线性表C )栈与队列都是非线性结构D )以上三种说法都不对(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A )16B )10C )6D )4(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A )外模式B )内模式C )概念模式D )逻辑模式(5)在满足实体完整性约束的条件下A )一个关系中应该有一个或多个候选关键字B )一个关系中只能有一个候选关键字C )一个关系中必须有多个候选关键字D )一个关系中可以没有候选关键字(6)有三个关系R 、S 和T 如下:R ST 则由关系R 和S 得到关系T 的操作是A )自然连接B )并C )交D )差(7)软件生命周期中的活动不包括A )市场调研B )需求分析C )软件测试D )软件维护(8)下面不属于需求分析阶段任务的是A )确定软件系统的功能需求B )确定软件系统的性能需求C )需求规格说明书评审 A B Ca 1 2b 2 1c 3 1 A B C a 1 2d 2 1 A B C b 2 1 c 3 1整理:陈远跃D)制定软件集成测试计划(9)在黑盒测试方法中,设计测试用例的主要根据是A)程序内部逻辑B)程序外部功能C)程序数据结构D)程序流程图(10)在软件设计中不适用的工具是A)系统结构图B)PAD图C)数据流图(DFD图)D)程序流程图(11)以下合法的VB变量名是D)x*y A)case B)name10 C)t-name(12)设x是小于10的非负数。
西南交通大学2011-2012学年第(2)学期考试课程代码 0471004 课程名称 面向对象程序设计 考试时间90分钟阅卷教师签字:答题说明:① 考试形式:闭卷;② 考试时间:90分钟; ③ 全部答案请写在答题卷上,试题卷上作答无效。
④ 假设所有程序代码中的头文件和命名空间都已经具备。
一、填空题(每空1分,共10分)1. 运算符重载函数既可以定义为类的友元函数,也可以定义为类的 【1】 函数。
2. 含有纯虚函数的类称为 【2】 。
3. 面向对象的三大机制是:是封装、 【3】 和多态 。
4. 在C++程序中,动态申请存储空间是采用 【4】 ,释放存储空间采用 【5】 。
5. 对于【6】继承方式,基类中访问属性为public 成员和【7】成员在子类中的访问属性都是private 。
6. 后置++运算符被重载为友元函数时,其参数的个数为 【8】 个。
7. 在C++中,当定义一个class 时,成员的默认访问权限是【9】,而struct 中成员的默认访问权限是【10】。
.二、单项选择题(每空2分,共24分)1. C++语言建立类族是通过 ( )(A )类的嵌套 (B ) 类的继承 (C ) 虚函数 (D ) 抽象类 2. 关于new 运算符的下列描述中,下面那一项 ( )是错的。
(A ) 它可以用来动态创建对象和对象数组;(B ) 使用它创建的对象或对象数组可以使用运算符delete 删除; (C ) 使用它创建对象时要调用构造函数; (D ) 使用它创建对象数组时必须指定初始值。
3. 有如下两个类定义class XX {private:double x1; protected:double x2;班 级 学 号 姓 名密封装订线密封装订线 密封装订线public: double x3;};class YY: protected XX{ private: double y1;protected: double y2;public: double y3;};在类YY中受保护成员的数量是()(A)1 (B) 2 (C) 3 (D) 44.在C++中,以下不能重载的运算符是( ) 。
辽东学院自编教材《面向对象程序设计》实验指导书王昕编(信息管理及电子商务专业用)信息技术学院2014年6月目录实验一 JDK的安装和配置及帮助文档的使用 (1)实验二基本数据类型和控制语句的使用 (3)实验三类与对象的使用 (6)实验四继承和接口的使用 (9)实验五 JAVA基本类库的使用 (15)实验六 GUI编程 (19)实验七多线程 (22)实验八输入输出流 (24)实验九网络编程 (26)实验一JDK的安装和配置及帮助文档的使用实验类型:验证型实验课时: 2 指导教师:时间:201 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.JDK下载、安装与开发环境设置2.学习编写第一个Java 程序二、实验内容和要求1.JDK的安装及配置1)下载JDK 1.7或更高版本及其帮助文档。
2)执行安装文件并按提示进行安装。
3)设置环境变量,使用鼠标右击“我的电脑”->属性->高级->环境变量系统变量->新建->变量名:JA V A_HOME 变量值:为JDK的安装目录,例如c:\jdk1.7 系统变量->新建->变量名:CLASSPATH 变量值:.;%JA V A_HOME%\lib,注意路径中最前面的.代表当前路径,一定要加上。
修改系统变量Path,在其值的后面加上:%JA V A_HOME%\bin;2.编写JA V A程序1)使用文本编辑器(例如记事本)编写如下代码,并保存为文件:Hello.java(注意:Java区分大小写)。
public class Hello{public static void main (String args[ ]){System.out.println("你好,很高兴学习Java");}}编译运行:在DOS环境下进入Hello1.java文件所在的路径,然后输入下列命令进行编译:javac Hello.java输入下列命令运行程序:java Hello2) 使用文本编辑器(例如记事本)编写如下代码,并保存为文件FirstApplet.java:import java.applet.*;import java.awt.*;public class FirstApplet extends Applet{ public void paint(Graphics g){ g.setColor(Color.red);g.drawString("我一边喝着咖啡,一边学Java呢",5,30);g.setColor(Color.blue);g.drawString("我学得很认真",10,50);}}编译此文件,再编写一个静态网页文件命名为applet.html,内容如下所示:<html><body><applet code= FirstApplet .class height=100 width=300></applet></body></html>最后在命令提示符下执行appletviewer applet.html。
西安交通大学《面向对象程序设计》作业考核试题一、单选题1.??C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型[正确]D. 引进了类和对象的概念??????满分:2??分2.??如果一个类至少有一个纯虚函数,那么该类称为().。
[正确]A. 抽象类B. 虚基类C. 派生类D. 以上都不对??????满分:2??分3.??假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数B. 带参构造函数C. 赋值重载函数[正确]D. 拷贝构造函数??????满分:2??分4.??带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。
A. 与虚基类下面的派生类个数有关B. 多次C. 二次[正确]D. 一次??????满分:2??分5.??派生类的构造函数的成员初始化列表中,不能包含()。
A. 基类的构造函数;B. 派生类中子对象的初始化;[正确]C. 基类的子对象初始化;D. 派生类中一般数据成员的初始化;??????满分:2??分6.??由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A. cpp[正确]B. exeC. objD. lik??????满分:2??分7.??以下叙述中正确的是()A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值[正确]B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值??????满分:2??分8.??下列不是C++基本数据类型的是()。
A. int[正确]B. stringC. charD. void??????满分:2??分9.??下列函数中,()不能重载。
实验__1__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.15实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;}三、实验结果1.aaa2.100实验__2__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.22 实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.简单输入和输出语句的练习。
第 6 章对象、类、包和接口在前面几章中,我们对Java的简单数据类型、数组、运算符和表达式以及流控制方法作了详细的介绍。
从现在开始,我们要深入到面向对象的编程技术,深入到Java最吸引人的地方。
本章中,我们首先讲述面向对象程序设计的基本概念及特点,然后讨论Java中的类、对象、包和接口,最后进行小结,给出一个完整的Java 文件的格式。
6.1 面向对象的程序设计面向过程的程序设计方法从解决问题的每一个步骤入手,它适合于解决比较小的简单问题。
C语言采用面向过程的程序设计模型,但是由于C本身几乎没有支持代码重用的语言结构,并且缺乏统一的接口,使得当程序的规模达到一定程度时,程序员很难控制其复杂性。
面向对象的程序设计方法则按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。
6.1.1 对象、类和消息一个对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为,下图表示了一个对象的特征:一个对象的变量构成这个对象的核心,包围在它外面的方法使这个对象和其它对象分离开来。
例如:我们可以把汽车抽象为一个对象,用变量来表示它当前的状态,如速度、油量、型号、所处的位置等,它的行为则可以有加速、刹车、换挡等。
我们操纵汽车时,不用去考虑汽车内部各个零件如何运作的细节,而只需根据汽车可能的行为使用相应的方法即可。
实际上,面向对象的程序设计实现了对对象的封装,使我们不必关心对象的行为是如何实现的这样一些细节。
通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也利于对复杂对象的管理。
对象之间必须要进行交互来实现复杂的行为。
例如,要使汽车加速,必须发给它一个消息,告诉它进行何种动作(这里是加速)以及实现这种动作所需的参数(这里是需要达到的速度等)。
对象A 对象B间的消息传递过程。
一个消息包含三个方面的内容:●消息的接收者●接收对象应采用的方法●方法所需要的参数。
西南交通大学2012年面向对象程序设计试题及答案开发环境为VC++6.0,运行结果有截图,若发现错误欢迎指正。
实验一、C++程序开发环境及c++简单程序设计。
题目1、简单c++程序任务:按提示的操作步骤输入下面的代码,编译连接并执行。
源程序代码:#include"iostream.h"void main(){ cout<<"Hello!\n";cout<<"Welcome to c++!"<<endl;cout<<"This is my first c++ program"<<endl;}运行结果:题目2、编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”。
源程序代码:#include<iostream>using namespace std;void main(){ char ch;cout <<"请输入数字用来转化为英文单词:";while(1){ cin>>ch;if(ch=='\n') break;switch(ch-48){case 0:cout<<"zero "; break;case 1:cout <<"one "; break;case 2:cout <<"two "; break;case 3:cout <<"three ";break;case 4:cout <<"four "; break;case 5:cout <<"five "; break;case 6:cout <<"six "; break;case 7:cout <<"seven ";break;case 8:cout <<"eight ";break;case 9:cout <<"nine "; break;}}运行结果:题目3、循环结构程序设计任务把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来。
源程序代码:#include<iostream>using namespace std;void main(){int i,j,k,x=0;cout<<"一角"<<"两角"<<"三角"<<endl;for(i=1;i<=93;i++)for(k=1;k<=47;k++)for(j=1;j<=19;j++)if(i+2*k+5*j==100){x++;cout<<i<<" "<<j<<" "<<k<<" "<<endl;}cout<<"换法的总数为:"<<x<<endl;}运行结果:(由于种数太多截图不方便所以只截了最后的部分!)实验二、函数题目1、内联函数任务(1)定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用(2)定义内联函数inline-fun()和一般函数common-fun(),使整型参数值加1,然后在main()函数中惊醒调用;源程序代码:#include<iostream>using namespace std;inline int max(int x,int y);inline int inline_fun(int x);int common_fun(int x);void main()int x=4,y=5;cout<<x<<","<<y<<"中最大的是:"<<max(x,y)<<endl;cout<<x<<"加1后为:"<<inline_fun(x)<<endl;cout<<y<<"加1后为:"<<common_fun(y)<<endl;}inline int max(int x,int y){ if(x>y) return x;else return y;}inline int inline_fun(int x){ return ++x;}int common_fun(int x){ return ++x;}运行结果:题目2、函数参数的传递机制、重载函数任务(1)编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。
(2)定义两个名称都为sum()的函数,第一个函数支持整型数组,第二个函数支持浮点型数组,求数组元素的和。
源程序代码:#include<iostream>using namespace std;int max1(int x,int y){ if(x>y) return x;else return y;}int max1(int x,int y,int z){if(x>max1(y,z)) return x;else return max1(y,z);}double max1(double x,double y){ if(x>y) return x;else return y;}double max1(double x,double y,double z){ if(x>max1(y,z) ) return x;else return max1(y,z);}int sum(int *p,int n){ int i=0,s=0;for(;i<n;i++)s+=p[i];return s;}double sum(double *p,int n){int i; double s=0;for(i=0;i<n;i++)s+=p[i];return s;}void main(){ int a=1,b=2,c=3; double x=4.5, y=6.7, z=8.9;int p[5]={1,2,3,4,5}; double q[5]={4.5 ,6.7,8.9,2.4,1.2};cout<<a<<","<<b<<"的最大值为:"<<max1(a,b)<<endl;cout<<a<<","<<b<<","<<c<<"的最大值为:"<<max1(a,b,c)<<endl;cout<<x<<","<<y<<"的最大值为:"<<max1(x,y)<<endl;cout<<x<<","<<y<<","<<"的最大值为:"<<max1(x,y,z)<<endl;cout<<"int 型p数组元素的和为:"<<sum(p,5)<<endl;cout<<"double 型数组q的元素和为:"<<sum(q,5)<<endl;}运行结果:题目3、带默认参数的函数任务定义函数volume(),计算立体的体积,要求在主函数中以5中不同的形式调用此函数。
源程序代码:#include<iostream>using namespace std;double volume(double x=1,double y=2,double z=3);void main(){double x=4,y=5,c=6;cout<<volume()<<endl;cout<<volume(4)<<endl;cout<<volume(4,5)<<endl;cout<<volume(5,6)<<endl;cout<<volume(4,5,6)<<endl;}double volume(double x,double y,double z)//注意这里不可以再带默认的参数!!!{cout<<"以"<<x<<","<<y<<","<<z<<"为棱的长方体的体积为:";return x*y*z;}运行结果:实验三、类于对象题目1、私有成员的访问任务下面的程序中用ERROR标明的语句有错误,在不删除和增加代码行的情况下,改正错误的语句,使其正确运行。
错误代码及改正方法:#include<iostream>using namespace std;class Aa{public :Aa(int i=0){ a=i; cout<<"Constructor"<<a<<endl;}~Aa() { cout<<"Destructor"<<a<<endl;}void print(){ cout<<a<<endl;}private :int a;};int main(){Aa a1(1),a2(2);a1.print();cout<<a2.a<<endl;//ERROR将该行代码中访问了a2的私有属性,改为a2.print();return 0;}改正后的运行结果:题目2、构造函数、拷贝构造函数任务(1)调试下列程序源程序代码:#include <iostream>using namespace std;class Topint{public:Topint(int x,int y) { X=x;Y=y;}Topint(Topint &p);~Topint () { cout<<"destructor is called \n";}int getx() { return X;}int gety() { return Y;}private :int X,Y;};Topint::Topint(Topint &p){X=p.X; Y=p.Y;cout<<"Copy -initialization Cnstructor is called\n";}int main(){Topint p1(4,9);Topint p2(p1);Topint p3=p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")\n";return 0;}运行结果:问题:(1)在该程序中将Topint类的带有两个参数的构造函数进行修改,在函数体内添加下述语句:cout<<"Constructor is Called.\n"。