2003级C++面向对象程序设计试题B-计算机学院2004年冬天

合集下载

《面向对象程序设计C》期末试卷及标准答案A

《面向对象程序设计C》期末试卷及标准答案A

《面向对象程序设计C++ 》期末考试一试卷( A )班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。

(答题纸在本套试卷的第10 页上)一、选择题(每题 2 分,共 40 分)1、C++是( C )。

A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混杂型语言D.非构造化的程序设计语言2、面向对象程序设计思想的主要特色中不包含(D)。

A. 封装性B.多态性C.继承性D.功能分解,逐渐求精3、若定义:string str;当语句 cin>>str;履行时,从键盘输入:Microsoft Visual Studio !所得的结果是str=(B)。

A. Microsoft Visual Studio !C. Microsoft VisualB. MicrosoftD. Microsoft Visual Studio4、考虑下边的函数原型申明:void testDefaulParam(int a,int b=7,char z='*');下边函数调用中,不合法的是(A. testDefaulParam(5);C. testDefaulParam(5,'#');C)。

B. testDefaulParam(5,8); D. testDefaulParam(0,0,'*');5、以下语句中,将函数 int sum(int x, int y)正确重载的是(C)。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、以下表示引用的方法中,(A)是正确的。

已知: int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求经过函数来实现一种不太复杂的功能,而且要求加速履行速度,采纳(A)。

面向对象程序设计试题集多套

面向对象程序设计试题集多套

目录C++面向对象程序设计模拟测试题 (2)计算机技术与软件水平考试面向对象程序设计试题(1) (39)计算机技术与软件水平考试面向对象程序设计试题(2) (41)计算机技术与软件水平考试面向对象程序设计试题(3) (47)计算机技术与软件水平考试面向对象程序设计试题(4) (54)计算机技术与软件水平考试面向对象程序设计试题(5) (58)计算机技术与软件水平考试面向对象程序设计试题(6) (64)面向对象程序设计试题(6)参考答案 (67)计算机技术与软件水平考试面向对象程序设计试题(7) (69)面向对象程序设计试题(7)参考答案 (74)2008年全国计算机及应用面向对象程序设计试卷 (75)2009高等教育自学考试面向对象程序设计试题 (79)《面向对象程序设计》期末考试(开)试题及答案 (86)计科开放本科网络专业面向对象程序设计试题 (94)【面向对象程序设计】全国2011年试题及答案 (101)【面向对象程序设计】全国2010年试题及答案 (110)【面向对象程序设计】2010年试题及答案 (118)C++面向对象程序设计模拟测试题一.选择填空1.下面关于对象概念的描述中,( A )是错误的。

A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C.对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的2.下面关于类概念的描述中,( D )是错误的。

A.类是抽象数据类型的实现:B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板:D.类就是C语言中的结构类型3.在16位机中,int 型字宽为( A )字节。

A.2;B.4;C.6;D.84.类型修饰符unsigned 修饰( D )类型是错误的。

A.char;B.int ;C.long int ;D.float5.在int a[5]={1,3,5};中,数组元素a[1]的值是( C )。

#2003年C 程序设计期终考试试题#

#2003年C 程序设计期终考试试题#

2003年C++程序设计期终测试试题班级姓名学号 .一、填空题(10分)1.面向对象程序设计的三大重要机制是、和。

2.、和是C++的三种继承方式。

3.带有纯虚函数的类被称为类。

4.引进虚基类的真正目的是为了解决问题。

5.仅仅返回值类型不同的重载函数是。

6.表达式2+1<3?4:5的值为。

二、选择题(请在正确答案上打上 ) (20分)1.下列关于运算符重载的描述中,下列哪个是正确的?A.运算符重载可以改变操作数的个数;B.运算符重载不可以改变语法结构。

C.运算符重载可以改变优先级;D.运算符重载可以改变结合性;2.关于new运算符的下列描述中,哪一个是错的?A.它可以用来动态创建对象和对象数组;B.使用它创建的对象或对象数组可以使用运算符delete删除;C.使用它创建对象时要调用构造函数;D.使用它创建对象数组时必须指定初始值。

3.已知一个类A,下列哪个是指向类A成员函数的指针?假设它有两个公有成员:void f( ) and int a?A. A & p;B. int A:: * pc = &A::a;C. void A:: * pa();D. A * pp;4.下列哪个不是构造函数的特征?A.构造函数的函数名与类名相同;B.构造函数可以重载;C.构造函数可以设置缺省参数;D.构造函数必须指定类型说明。

5.下列哪个是定义指向数组的指针p。

A. int *p[3];B. int ( * p)[3];C. (int *)p[3];D. int *p[];6.关于成员函数特征的下述描述中,哪个是错的? A.成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置缺省参数;D.成员函数可以是静态的。

7.关于动态联编的下列描述中,哪个是错误的?A.动态联编是以虚函数为基础的;B.动态联编是在运行时确定所调用的函数代码的; C.动态联编调用函数操作是用指向对象的指针或对象引用;D.动态联编是在编译时确定操作函数。

03~04面向对象程序设计期末试卷B

03~04面向对象程序设计期末试卷B

6
得分
评卷人
三、
综合题(共 40 分)


1.在下面的程序中带标号的空白处填写正确的标识符或表达式,以便满足 main() 中的调用需要。 (本题共 7 分,每空 1 分) #include <iostream.h> class Complex { private: double real, imag; public: Complex(double r = 0, double i = 0); Complex operator+(const Complex &c) ② ①; ③);


3
是错误的。 6.下列引用的定义中, A. int i; B. int i; C. float i; int &j=i; int &j; int j=i;
D. char d; float &j=i;
char &k=d;
是错误的。 7.下列关于重载函数在调用时选择的依据中, A. 参数个数 B. 参数类型 C. 函数名字 D. 函数类型 8. 要求通过函数来实现一种不太复杂的功能, 并且要求加快执行速度, 选用 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套调用 9. A. B. C. D. 不是构造函数的特性。 构造函数的函数名与类名相同 构造函数可以重载 构造函数可以设置默认参数 构造函数可以指定类型说明 。
。 。
的另一种特殊形式,在 在一个派生类中重新定义基类的虚函数是 派生类中重新定义此虚函数时,要求 、 、 、 和 都必须与基类中原型完全相同。 。这两种派生的区别在于产生派生类 是否已经被 。
13 类模板可以派生 和 时,作为基类的类模板的 14

汽院2003C语言试卷

汽院2003C语言试卷

2003《C语言程序设计》考试试卷一、填空题(每小空1分,共10分)1、C语言程序的三种基本结构是顺序结构、选择结构、循环结构。

2、为了便于实现程序的模块化,C语言以函数为程序的基本单位。

3、C语言中构造类型数据有数组、结构体和共用体。

4、表达式3.5+1/2的计算结果是 3.5 。

5、在C语言中每个变量有两个属性:数据类型和数据的存储类别。

6、文件结束符EOF的十进制值为—1 。

二、是非判断题(每小题2分,共10分,对打√,错打ⅹ)(ⅹ)1.在C语言中,函数可以递归调用或递归定义。

(ⅹ)2.C程序的执行总是从程序第一句开始。

(ⅹ)3.C程序中有调用关系的所有函数必须放在同一个源程序文件中。

(ⅹ)4.一个数组的各个数组元素可属于不同的数据类型。

(√)5.for(;;)语句相当于while(1)语句。

三、阅读填空(每小空2分,共20 分)1.以下函数求x的y 次方。

double fun(double x, int y){int i; double z=1.0;for(i=1;i<=y;i++)z= z*x ;ruturn(z);}2.下列程序计算2到100的偶数的累加和。

main(){int i,sum;for(i=2,sum=0;i<=100;i=i+2) sum+=i;printf(“sum=%d\n”,sum);}3.对数组中的元素值进行从大到小的排序。

main(){int a[]={2,4,15,3,17,5,8,23,9,7,11,13},i,j,k;for(k=0;k<12;k++)for(i=k+1;i<12;i++)if(a[i] > a[k]){j=a[i]; a[i]= a[k] ;a[k]=j ;}for(i=0;i<12;i++)printf(“%4d”,a[i]);printf(“\n”);}4.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

C 面向对象程序设计习题解答(全)

C  面向对象程序设计习题解答(全)

4答案 n=2,sum=2 n=3,sum=5 n=5,sum=10
5答案 x=3 6答案 x=1,y=2 x=30,y=40 7答案 1 2 3 4 exit main 3 2 1 8答案 n=100 9答案 the student is:Li Hu the teacher is:Wang Ping 10答案 2 11答案 1035,789.504 12答案 13答案
一、选择题 1 2 3 4 D B B C
类和对象的进一步解析
5 D 6 D 7 D B 8 C B 9 10 11 12 13 14 15 16 B D B A A C B A
17 18 19 20 21 22 23 24 C C D B A D 二、填空题 1 this 2所有成员 3友元类、友元函数 4 friend 5 程序编译、程序结束 三、程序阅读题
第六章 派生与继承
一、选择题 1(1) 1(2) 2 A B 3 4 5 6 7 8 9 10 11 D C C C D D B C A D
二、填空题 1 继承 2 具体化、抽象 3 公有继承、保护继承、私有继承 4 子对象 5 public(共有的)、protected(保护的)、不可访问 6 protected(保护的)、protected(保护的)、不可访问的 7 private(私有的)、private(私有的)、不可访问的 8 二义性 三、判断下列描述的正确性 1 2 3 4 5 6 7 8 9 10 11 12 13 √ × × × × × √ √ × × √ √ ×
1、 选择题 1 2 3 4 5 6 7 C 8 9 10 D D D C A D C 2、 程序阅读题 1答案 a=639,b=78,c=12 2答案 a=5,b=8 a=8,b=5 3答案 10 4答案 x=20.6 y=5 z=A x=216.34 y=5 z=A x=216.34 y=2 z=A x=216.34 y=2 z=E 5答案 ic=11 fc=7.82 ic=5 fc=2.15 3、 判断下列描述的正确性 1 2 √ × D A

2003年C++程序设计试题

2003年C++程序设计试题
}
程序的输出是(11)。(2")
7、#include<iostream.h>
void main()
{charch;
cin>>ch;
if ((ch>='a')&&(ch<='z'))
ch=ch-'a'+'A';
else if ((ch>='A')&&(ch<='Z'))
ch=ch+'a'-'A';
cout<<ch<<endl;
A、3B、1C、0D、4
9、用#include命令包含的文件是(9)。
A、目标文件B、可执行文件C、源程序文件D、二进制文件
10、设有说明"char s1[11],*s2=s1;",则下列语句正确的是(10):
A、*s2="Visual C++";B、s2="Visual C++";
C、s1="Visual C++";D、s1[10]="Visual C++";
pa=&b;pa->print();
pa=&c;pa->print();
}
程序的输出是(9),若删去A行的virtual则输出(10)。(4")
6、#include<iostream.h>
#define MAX(a,b) a>b?a:b
void main()

面向对象程序设计复习题(附参考答案)

面向对象程序设计复习题(附参考答案)

【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。

[A.]二进制[B.1符号[c.1十进制[D.]数字【答案】A【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】JaVa语言的主要特点不包括()。

[A.]面向对象[B.]自动垃圾回收[CJ处理文件[D.]可移植性【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java开发工具包简称为()。

[A.]JKD[B.]JRK[C.]JDK[D.]JRE【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】具有相同属性和服务的一组对象的模板称为()。

1B.]类[c.1代码[D.]概念【答案】B【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。

[A.]产品[B.1元素[c1成分[D.]实例【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java是一门()语言。

[A.]机器[B.]汇编[C.)面向过程的高级[D.]面向对象的高级【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】使用JDK编译JaVa程序时使用的命令是()。

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

一、[25分,每小题5分] 指明下列各程序中存在的不符合C++语言规范之处(每
三、[20分,每题4分] 判断下列的论述是否正确(回答:正确或错误),对于你
认为错误的论述,说明你判断的理由(可以举反例)。

1.假设类D以public继承方式继承了类B,f是子类D中定义的一个非静态成员函数,在包括B在内的任何一个D的祖先类中没有关于f的定义。

那么,无论f如何实现,对于在main函数中用子类D说明产生的对象d来说,它在执行f时,永远不会直接或间接地访问到(它所拥有的)在类B中以private 形式说明的数据成员。

2.类A有一个非静态的成员函数f,其函数原型是:void A::f( ) const,则该函数被调用时,一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。

3.类A有一个非静态的成员函数f,若其函数原型是:void A::f(const int& anInt),那么,该函数被调用时,形式参数anInt是实际参数的引用,不需要为它分配空间,并且在执行过程中,不会改变实际参数的数值。

若把f的函数原型改变为:void A::f(int anInt),则形式参数anInt是实际参数的一个拷贝,该函数被调用时,需要为anInt分配空间,并用实际参数为它初始化。

如果不考虑是否需要为参数anInt分配空间,并且,在f的函数体内没有对参数anInt 进行任何数值改变的语句,则用这两种方式定义的函数f的作用是一样的。

4.若类A的所有构造函数、析构函数、赋值运算用protected访问权限进行修饰,并且,类A中没有任何用static修饰的成员函数,那么,类A不能产生任何对象,进而可以得出结论:定义并实现类A对编写一个需要产生对象的程序来说,没有任何用处,定义并实现类A的代码是冗余代码。

5.对一个类来说,赋值运算是一个很基本,也很重要的操作,因此,定义一个类时,即使程序员不为它定义并实现赋值运算,编译器也会为该类自动产生一个。

一个类的赋值运算可看作该类的一个成员函数。

若用某个类A和它的两个非常量对象a1、a2举例来说,类A中用public访问权限修饰的赋值运算的用途主要体现在两种场合,场合一是:若a1和a2均有定义,且因类A 有赋值运算,则可以写出代码a1 = a2;场合二是:若a2有定义,且因类A 有赋值运算,则可写出代码 A a1 = a2.
四、[10分]“四支老鼠抬花轿,一支老鼠放鞭炮,前面两只当鼓手,咚隆咚隆真
热闹,老猫来贺喜,一只一只全吃掉。

”。

这首儿歌描述了老鼠婚嫁的场面。

完成下面两个问题:
1.[7分] 就这段描述,找出所有可能对象,用C++定义相应的类,用文字说明各成员数据和函数的作用,不需给出成员函数的实现。

2.[3分] 在main函数中,用你定义的类产生对象,并用这些对象尽可能地模拟出儿歌中描述的场面。

五、[15分] 已知某程序中类MyString是自定义的一个用来描述字符串的类,
(1)可以使用iostream.h中定义的类及相关内容。

(2)可以使用string.h中定义的如下函数:
int strlen(const char* ); 用于计算标准表示的字符串长度;
char* strcpy( char *strDestination, const char *strSource );用于将strSource 串拷贝给strDestination。

返回的是strDestination串,一般不用。

char* strcat( char *strDestination, const char *strSource );用于将strScource 串接于strDestination串后。

返回的是strDestination串, 一般不用。

本题目要求:根据上述已知条件,不借用其它标准函数库或类库,遵循上面程序输出结果,完成MyString类的定义和实现。

六、[10分]在如下定义和实现的两个类Male 和Female中,各自存在着指向对
方对象的指针成员。

且已知在运行时刻,对于任意Male类对象m,若m.pWife 的值不空,则有m.pWife->getHusband( )==&m;同时,对任何Felmale类对象f,若f.pHusband的值不空,有f.pHusband->getWife( ) == &f,即:若m 内的指针指向f,则f内的指针指向m,反之亦然。

这种情况称为双向依赖。

现请你在不改变这两个类已有的各成员函数的原型及功能的条件下,重新实现这两个类,使得两个类之间不存在双向依赖。

允许增加类,允许增加。

相关文档
最新文档