河大期末C++精选试题.docx_第1页
河大期末C++精选试题.docx_第2页
河大期末C++精选试题.docx_第3页
河大期末C++精选试题.docx_第4页
河大期末C++精选试题.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 判断题(15分)(对的打,错的打)1. 友元函数用于允许一个函数访问不相关类的私有部分。2. 构造函数可以被继承。3. 动态绑定的多态性是通过虚函数实现的。4. 在c+中,传引用调用等同于传地址调用。5. 重载函数必须有不同的参数列表。6. 可以用delete释放不是用new运算符分配的内存。7. 类成员的默认访问模式是private。8. 在类Time中的析构函数可以声明为:void Time(int);9. const对象必须初始化。10. 在c+中,只能重载已有的运算符。二 、选择题(20分)1. 关键字 _ 说明对象或变量初始化后不会被修改。 a. static b. public c. const d. inline2. 如果调用带有默认参数的函数时缺少一个参数,则_参数就作为这一参数。 a. 第一个 b. 最后一个 c. 中间一个 d. 以上都不是3. 成员函数可声明为静态的,条件是它不访问 _类成员。 a. 静态 b. 常数 c. 非静态 d. 公共4. 内联函数执行起来比标准函数_。a. 更慢 b. 更快 c. 次数更多 d. 以上都不是5. 默认参数的值由_提供。 a. 该函数 b. 调用程序 c. 上述二者 d. 以上都不是6. 在 C+ 中,混合类型表达式_。a. 允许存在 b. 为一错误 c. 从 int 到 float d. 从 float 到 int7. 表达式 long(intVar) 也可表示为 _。a. intvar = long; b. intVar(long) c. (long)intVar d. 以上都不是8. 静态数据成员的生存期_。a. 与整个程序相同 b. 不长于类的生存期 c. 取决于创建的对象数 d. 以上都不是9. 要让一个类中的所有对象具有共同的数据,请使用_。a. 常数成员变量 b. 私有数据成员 c. 静态数据成员 d. 以上都是10. 设置虚基类的目的是:a.简化程序 b.消除二义性 c.提高运行效率 d.减少目标代码三 、指出下列程序片段中的错误标号,写出正确语句或解释错在何处。(20分)1) int index=675;const int *ptr=&index;int *const ntptr=&index;*ptr=555;*ntptr=666;int another=8;ptr=&another;ntptr=&another;2) int arrp;arrp=new int15;delete arrp;3)下面程序为什么会编译错误,并改正错误(提出解决办法)。 class window protected: int basedata;class border: public window ;class menu: public window ;class border_and_menu: public border, public menu public: int show() return basedata; 4)改正下面程序段中的错误,写出整个正确的程序段templatevoid print(T *a)coutan;void main( )const int x=0;coutyn;int y;x=5;int* pp=&y;print(p);return 0;四 、写出下面程序的执行结果:(15分)1)#include using namespace std;class Afriend double count(A&);public:A(double t, double r):total(t),rate(r)private:double total;double rate;double count(A& a)a.total+=a.rate*a.total;return a.total;int main(void)A x(80,0.5),y(100,0.2);coutcount(x),count(y)n;coutcount(x)n;return 0;执行结果:2)#include using namespace std;class Count private: static int counter; int obj_id; public: Count(); /constructor static void display_total(); /static function void display(); Count(); /destructor ; int Count:counter; /definition of static data member Count:Count() /constructor counter+; obj_id = counter; Count:Count() /destructor counter-; coutObject number obj_id being destroyedn; void Count:display_total() /static function cout Number of objects created is = counterendl; void Count:display() cout Object ID is obj_idendl; int main(void) Count a1; Count:display_total(); Count a2, a3,a4; Count:display_total(); a2.display(); a4.display(); return 0;3)#include using namespace std;class BASE char c; public: BASE(char n):c(n) virtual BASE()coutc; ; class DERIVED:public BASE char c; public: DERIVED(char n):BASE(n+1),c(n) DERIVED()coutc; ; int main(void) DERIVED(X); return 0; 五、 程序填空:(10分)#include using namespace std;class A_(1)_char name80;public:A( _(2)_ ) _(3)_ ;class B_(4)_public:B(const char*n)_(5)_void PrintName( ) cout”name:”nameendl;void main( )B b1(“Ling Li”);b1.PrintName( ) ; /执行结果:name: Ling Lipublic:B(const char*n)_(5)_void PrintName( ) cout”name:”nameendl;void main( )B b1(“Ling Li”);b1.PrintName( ) ; /执行结果:name: Ling Li杭州电子科技大学学生考试卷(A)答案一、判断题(15分)1) 2) 3) 4) 5) 6) 7) 8) 9) 10)二、选择题(20分)1) c 2)b 3) c 4)b 5)c 6) a 7)c 8)a 9)c 10)b三 、指出下列程序片段中的错误,并解释错在何处。(20分)1)*ptr=555; ptr是指向整数常量的指针ntptr=&another; ntptr是常量指针,不能指向别的的变量2)int arrp; 应改为:int *arrp;delete arrp; 应改为:delete arrp;3)return basedata;/ 在border_and_menu中引用basedata时产生二义性,应使用虚基类应改为:class border:virtual public window ;class menu: virtual public window ;4)整个正确的程序段(参考):#include /加本句template /加typenamevoid print(T *a)coutan;void main( ) int y=10; /y应先声明后使用,并给初值const int x=0;coutyy)z=x; x=y; y=z; A. 10 B. 20 C. 30 D. 04、循环语句whlie(int i=0 )i-;的循环次数是A. 0 B. 1 C. 5 D. 无限5、一个函数无返回值时,应选择的说明符是A. static B. extern C. void D. 无说明符6、对重载函数形参的描述中,错误的是A. 参数的个数可能不同 B. 参数的类型可能不同C. 参数的顺序可能不同 D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是A. int N=5,bNN; B. int a2=1,3,4,5;C. int c2=1,2,3,4; D. int d32=1,2,3,4;8、下列给字符数组进行的初始化中,不正确的是A. char s1=abcd; B. char s23=x,y,0;C. char s3=a,x,y,0; D. char s46=xyz,mnp;9、通常的拷贝构造函数的参数是A 某个对象名 B某个对象成员名C 某个对象的引用 D某个对象的指针名10、关于构造函数特点的描述中,错误的是A. 定义构造函数必须指出类型 B. 构造函数的名字与该类的类名相同C. 一个类中可定义0至多个构造函数 D. 构造函数是一种成员函数11、下面程序的运行结果为#include int add(int a,int b);void main() extern int x,y;coutadd(x,y)a表示从键盘上读入一个_ 到数组a中。3、若希望用一个已有对象来构造另一个同类型的对象,可以使用_来实现。4、静态成员属于_ ,而不属于_ ,它被同一个类的所有对象共享。5、类的继承方式有_ 继承、_ 继承和_ 继承。6、重载运算符的含义必须清楚,不能有_ 。7、按照联编进行阶段的不同,联编方法可分为两种: _ 和_ 。8、当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、_ 、_ 、参数类型以及参数的顺序都必须与基类中的原型完全相同。9、C+的I/O是以 的形式实现的,每个C+编译系统都带有一个面向对象的输入/输出软件包,这就是 。三、判断题(共10题,每题1分,共10分)1、C+语言支持封装性和继承性,不支持多态性。2、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。)3、字符串sdfgh的长度是5。4、引用和指针都可作函数参数。5、友元函数说明在类体内,它是一种成员函数。6、友元类必须被说明为公有成员。7、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。8、析构函数不能被继承。9、运算符重载以后,其优先级和结合性都不能改变。10、在C+中,函数名实际上是一个指针,它指向函数的入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论