清华大学2017年C++程序设计期终考试试题.docVIP

  • 8
  • 0
  • 约3.9千字
  • 约 5页
  • 2021-10-17 发布于上海
  • 举报

清华大学2017年C++程序设计期终考试试题.doc

清华大学期终试题 2017年C++程序设计期终考试试题 一、填空题(20分) 1.采用内联函数的目的在于提高 。 2.采用函数重载的目的在于提高 。 3.用一个已知对象来初始化一个新对象时,系统会调用 构造函数来完成。 4.静态数据成员与一般数据成员不同,它的初始化应在 进行。 5.在 C++中,不能为 类定义对象。 6.单个参数的构造函数可以提供 转换功能。 7.在定义派生类时,默认的继承方式是 。 8.在 继承方式下,派生类对象的地址值可以赋值给基类的对象指针。 9.虚基类的构造函数和非虚基类的构造函数在成员初始化列表中同时出现时, 的构造函数优先执行。 10.构造函数中调用虚函数时,采用 联编。 二、选择题(请在正确答案上打上○) (20分) 1.下列各表达式中,哪一个可能会有二义性? 已知:int a(4), b(5); A.a+b3 B.++a*b++ C.(a=3)+a++ D.b+(a=3) 2.下列关于结构的定义中,有几处错误? struct d { int a; double a; } a,d; A.1 B.2 C.3 D.4 3.下列关于goto语句的描述中,哪个是正确的? A.goto语句可在一个文件中随意转向; B.goto语句后面要跟上一个它所转向的语句; C.goto语句可以同时转向多条语句; D.goto语句可以从循环体内转到循环体外。 4.下列哪一个描述是关于引用调用的? A.形参是指针,实参是地址值; B.形参是引用,实参是变量。 C.形参和实参都是变量; D.形参和实参都是数组名; 5.定义函数模板需使用下列哪一个关键字? A.class B.inline C.template D.operator 6. 下列关于成员函数特征的描述中,哪个是错误的? A.成员函数一定是内联函数; B.成员函数可以重载; C.成员函数的函数体可以为空; D.成员函数可以是静态的。 7. 已知一个类A, 下列哪个是指向成员函数的指针?假设类A有公有成员void f( )和 int a。 A.A *p; B.int A:: *pc= A:: a; C.void (A:: *pa)(); D.A **pp; 8. 下列关于new运算符的描述中,哪个是错误的? A.它可以用来动态创建对象和对象数组; B.使用它创建的对象或对象数组,可以使用delete删除; C.使用它创建对象时要调用构造函数; D.使用它创建对象数组时必须指定初始值。 9.下列对派生类的描述中,哪个是错误的? A.一个派生类可以作另一个派生类的基类; B.派生类中继承的基类成员的访问权限到派生类仍然保持不变。 C.派生类至少有一个基类; D.派生类的成员除了自己的成员外,还包含它的基类的成员; 10.下列运算符中,哪一个不能重载? A. B. C.( ) D.?: 三、试编写求两个数中最小值的函数模板。(5分) 四、输入一字符串,去掉当中的重复字符。如字符串“ABADB”, 去掉重复字符后的字符串应为“ABD”。(10分) 五、求下列分数序列的前15项之和。(10分) 六、下面是一个利用重载运算符实现复数加和乘的类。在该类中复数加运算的实现代码已完成,但复数乘运算还未完成,试在类体外完成之。(7分) class complex { public: complex (double r=0,double i=0) { real=r; imag=i;} complex operator + (const complex c) { return complex(real+c.real, imag+c.imag); } complex operator * (const complex c); private: double real, imag; }; 七、找出下列程序中的语法错误,并注明出错类型。(8

文档评论(0)

1亿VIP精品文档

相关文档