问题 填空题

阅读以下说明和C++代码,将解答写入对应栏内。
[说明]
类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。
[C++程序]
01 #include<iostream.h>
02 using namespace std;
03 class Stock
04 protected:
05 Stock()shares=0; share_val=0.0;Output();
06 Stock(int n=0,double pr=3.5): (1) //初始化shares值为n
07 share_val=pr;
08 Output();
09 ;
10 void~Stock();
11 void Output()(cout<<shares<<’;’<<share val<<endl;
12 public:
13 //成员函数
14 private:
15 //成员变量
16 int shares;
17 double share_val;
18 ;
19
20 void main() //构造三个Stock对象a,b,C
21 Stock a(1);
22 Stock b;
23 Stock C;Stock();
24 //其他代码省略,且代码无输出
25
程序运行后的输出结果为:
1:3.5
(2)
(3)

答案

参考答案:shares(n)
0D代码行修改结果:public:
0F代码行修改结果:Stock(int n,double pr=C.E):shares(n){
A0代码行修改结果:~Stock(){}
(B) 0:0
(C) 0:0

解析:
本题考查的是用C++程序编程。
根据程序中的注释,要求初始化shars的值为n,因此根据初始化语法应为“shares(n)”;第四行定义了构造函数的访问控制为protected,但构造函数应该是公共的,所以第四行应该更改为“public”:第六行的构造函数定义了默认值,这样构造一个对象的时候可以填写不同参数,但这个构造函数会和stock()的无参构造函数混淆,所以,不能够带有默认值,可以将带有默认参数的构造函数更改为:“Stock(int n,double pr==3.5)”或者“Stock(int n,double pr)”。函数的析构函数不能够有任何的返回值,所以第十行应为“~Stock(){}”:运行程序后,程序的输出结果为:1:3.5 0:0 0:0

单项选择题 A1型题
判断题