欢迎光临,有需要请联系站长!
想要快速找到正确答案?
立即关注 超新尔雅学习通微信公众号,轻松解决学习难题!
作业辅导
扫码关注
论文指导
轻松解决学习难题!
中国大学MOOC程序设计基础(C_C++)作业答案
程序设计基础(C_C++)
学校: 九八五题库
学校: 超星学习通
题目如下:
1. 1. 在定义类A的非静态成员函数 A& f(A& m)时,有语句“return n;”,则n不能是( )。
A. m
B. *this
C. 函数f中用语句 “A a=m;”定义的a
D. 类A中类型为A的静态数据成员
答案: 函数f中用语句 “A a=m;”定义的a
2. 2. 有如下类定义和变量定义 class A{ public: A() {data=0;} ~A() {} int GetData() const {return data;} void SetData(int n) {data=n;} private: int data; }; const A a; A b; 下列函数调用中错误的是( )。
A. a.GetData();
B. a.SetData(10);
C. b.GetData();
D. b.SetData(10);
答案: a.SetData(10);
3. 3. 有如下类定义: class Cup{ public: void SetPrice(double val=5.8); double GetPrice( ){ return price; } double GetPrice() const { return price; } private: double price; }; void Cup::SetPrice(double val) { price=val; } 下列关于类中成员函数的叙述中,错误的是()。
A. 成员函数SetPrice不是内联函数
B. 成员函数SetPrice的形参val具有默认值
C. 成员函数GetPrice有两个重载
D. 类中没有对成员函数GetPrice进行重载
答案: 类中没有对成员函数GetPrice进行重载
4. 4. 如下程序执行后的输出结果是( )。 #include using namespace std; class AA { int n; public: AA( int k) :n(k) {} int get() { return n; } int get()const { return n+1; } }; int main() { AA a(5); const AA b(6); cout << a. get()<< b. get(); return 0; }
A. 55
B. 57
C. 75
D. 77
答案: 57
5. 5. 有如下类定义: class Test { public: Test(){a=0;c=0;}//① int f(int a)const{ this->a=a;}//② static int g(){ return a;}//③ void h(int b){Test::b= b;};//④ private: int a; static int b; const int c; }; int Test::b= 0; 在标注号码的行中,能被正确编译的是( )
A. ①
B. ②
C. ③
D. ④
答案: ④
6. 6. 由于常对象不能被更新,因此( )
A. 通过常对象只能调用它的常成员函数
B. 通过常对象只能调用静态成员函数
C. 常对象的成员都是常成员
D. 通过常对象可以调用任何不改变对象值的成员函数
答案: 通过常对象只能调用它的常成员函数
7. 7. 关于成员函数特征的下述描述中,( )是错误的。
A. 成员函数一定是内联函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
8. 8. 静态成员函数没有( )
A. 返回值
B. this 指针
C. 指针参数
D. 返回类型
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
9. 9. 下列因素中,对C++编译器区分重载函数无任何意义的是 ( )。
A. 返回值类型
B. 常成员函数关键字const
C. 参数类型
D. 参数个数
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
10. 10. 以下程序的输出结果为____。 class Class { public: static int var; Class() { var++; } }; int Class::var = 0; int main() { cout<
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
11. 1. 设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是( )
A. A类构造函数先执行
B. 成员对象构造函数先执行
C. 两者并行执行
D. 不能确定
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
12. 2. 有如下程序: #include #include using namespace std; class Wheel { public: Wheel(string s="W"):name(s) { cout<
A. G
B. RG
C. WRG
D. RWG
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
13. 3. 对象成员的构造函数调用顺序取决于( )
A. 对象成员在初始化列表中给出的顺序
B. 对象成员在类中声明的顺序
C. 对象成员与在初始化列表中顺序和类中声明顺序均有关
D. 随机顺序
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
14. 4. 以下程序的输出结果为:( ) #include using namespace std; class ONE { int c; public: ONE():c(0) { cout<<1; } ONE(int n):c(n) { cout<<2; } }; class TWO { ONE one1; ONE one2; public: TWO(int m):one2(m),one1(0) { cout<<3; } }; int main(){ TWO t(4); return 0; }
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
15. 1. 有如下程序: class Date { public: Date(int y=2014,int m=9,int d=9):year(y),month(m),day(d) {} ________________(ostream& stream, Date &ddd) //运算符<<的定义 { stream<
A. istream& operator <<
B. ostream& operator <<
C. friend istream& operator <<
D. friend ostream&operator <<
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
16. 2. 运算符重载时必须有所不同的是 ( )。
A. 优先级
B. 结合性
C. 操作数个数
D. 操作数类型
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
17. 3. 下列运算符中,( )运算符在C++中不能重载。
A. &&
B. [ ]
C. ::
D. new
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
18. 4. 下列关于运算符重载的描述中,( )是正确的。
A. 运算符重载可以改变运算数的个数
B. 运算符重载可以改变优先级
C. 运算符重载可以改变结合性
D. 运算符重载不能改变其意义
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
19. 5. 如果表达式++i*k中的++和*都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为( )
A. operator* (i. operator++(),k)
B. operator * (operator++(i),k)
C. i. operator++(). operator* (k)
D. k. operator * (operator++(i))
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
20. 6. 下列关于运算符重载的叙述中,正确的是( )。
A. 通过运算符重载,可以定义新的运算符
B. 有的运算符只能作为成员函数重载
C. 若重载运算符+,则相应的运算符函数名是+
D. 重载一个二元运算符时,必须声明两个形参
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
21. 7. 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME) const;。 下列关于这个函数的叙述中,错误的是( )。
A. 这是运算符-的重载运算符函数
B. 这个函数所重载的运算符是一个一元运算符
C. 这是一个成员函数
D. 这个函数不改变类的任何数据成员的值
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
22. 8. 将运算符*重载为类成员函数时,其参数表中有且仅有一个参数,说明该运算符是( )。
A. 无操作数的运算符
B. 一元运算符
C. 二元运算符
D. 三元运算符
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
23. 9. 下面是重载为非成员函数的运算符的函数原型,其中错误的是()。
A. Fraction operator+(Fraction, Fraction);
B. Fraction operator-(Fraction);
C. Fraction& operator= (Fraction&, Fraction);
D. Fraction& operator+= (Fraction&, Fraction);
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
24. 10. 有如下类定义: class MyClass { public: _____________ private: int data; }; 若要为MyClass类重载流输入运算符“>>”,使得程序中可以"cin >> obj”的形式改变MyClass类的对象obj中数据成员data的值,则下划线处的声明语句应为() 。
A. friend istream& operator >> (istream& is,MyClass& a);
B. friend istream& operator >> (istream& is,MyClass a);
C. istream& operator >> (istream& is, MyClass& a);
D. istream& operator >> (istream& is, MyClass a);
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
25. 1. 计算数列第n项的函数定义如下: int fa(int n){ if (n == 1) return 1; else return 3*fa(n-1)+2; } 若执行函数调用表达式 fa(4)时,返回的函数值为( )。
A. 53
B. 17
C. 23
D. 49
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
26. 2. 计算斐波那契数列第n项的函数定义如下: int fib(int n) { if (n == 0) return 1; else if (n == 1) return 2; else return fib(n-1)+fib(n-2); } 若执行函数调用表达式fib(4),函数fib 被调用的次数是()。
A. 6
B. 7
C. 8
D. 9
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
27. 3. 有以下程序 #include using namespace std; int fun(int x) { int p; if(x==0||x==1) return(3); p=x-fun(x-2); return p; } int main() { cout<
A. 7
B. 3
C. 2
D. 0
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
28. 4. 有以下程序 int fun(int a,int b) { if(b==0) return a; else return (fun(--a,--b)) ; } int main() { cout<
A. 1
B. 2
C. 3
D. 4
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
29. 5. 以下程序的输出结果是____。 #include using namespace std; void fun(int x) { if(x/2>0) fun(x/2); cout<
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
30. 6. 以下程序的输出结果是____。 sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; } main() { int x=0; sub(&x,8,1); cout<< x; }
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
31. 7. 以下程序的运行结果是:____。 #include using namespace std; int f(int a[],int n) { if(n>1) return a[0] + f(a+1, n-1); else return a[0]; } int main() { int aa[10]= {1,2,3,4,5,6,7,8,9,10}, s; s=f(aa,5); cout<
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
32. 8. 以下程序的运行结果是:____。 #include using namespace std; fun(int t[],int n) { int i,m; if(n==1) return t[0]; else if(n>=2) { m=t[n-1]+fun(t,n-1); return m; } } main() { int a[]= {4,6,3,8,2}; cout<
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
33. 1. 在一个派生类对象结束其生命周期时( )
A. 先调用派生类的析构函数后调用基类的析构函数
B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数
D. 如果派生类没有定义析构函数,则只调用基类的析构函数
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
34. 2. 在派生类构造函数的初始化列表中不能包含( )。
A. 基类的对象成员的初始化
B. 派生类对象成员的初始化
C. 派生类中一般数据成员的初始化
D. 基类的构造函数
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
35. 3. 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( )。
A. 派生类的对象可以赋给基类的对象
B. 派生类的对象可以初始化基类的引用
C. 派生类的对象可以直接访问基类中的任何成员
D. 派生类的对象的地址可以赋给指向基类的指针
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
36. 4. 有如下程序: #include < iostream > using namespace std; class A { public: A( ) { cout<<"A"; } }; class B{ public: B(){ cout<<"B";} }; class C : public A { B b; public: C( ) { cout<<”C”;} }; int main() { C obj; return 0; } 执行后的输出结果是( )
A. CBA
B. BAC
C. ACB
D. ABC
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
37. 5. 有如下类定义: class XA{ int x; public: XA(int n){ x=n;} }; class XB: public XA{ int y; public: XB(int a, int b); }; 在构造函数XB的下列定义中,正确的是( )。
A. XB::XB(int a,int b): x(a), y(b){}
B. XB::XB(int a,int b): XA(a), y(b){ }
C. XB:: XB(int a,int b): x(a), XB(b){ }
D. XB::XB(int a,int b): XA(a),XB(b){ }
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
38. 6. 有如下程序: #include < iostream > using namespace std; class Base { public: void fun(){cout <<" Base::fun"<< endl;} }; class Derived: public Base { public: void fun() { _______________ cout <<”Derived::fun”<< endl; } }; int main() { Derived d; d. fun(); return 0; } 已知其执行后的输出结果为: Base::fun Derived::fun 则程序中下划线处应添加的语句是( )。
A. Base.fun();
B. Base::fun();
C. Base-> fun();
D. fun();
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
39. 7. 有如下程序: #include < iostream > using namespace std; class A{ public: A(){cout<<"A";} ~A(){cout<<"-A";} }; class B:public A{ A* p; public: B(){cout<<"B"; p = new A();} ~B(){cout<<"-B"; delete p;} }; int main(){ B obj; return 0; } 执行这个程序的输出结果是( )。
A. BAA-A-B-A
B. ABA-B-A-A
C. BAA-B-A-A
D. ABA-A-B-A
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
40. 8. 有如下程序: # include < iostream > using namespace std; class Base { private: void fun1()const{ cout <<"fun1";} protected: void fun2()const{ cout <<"fun2";} public: void fun3()const{ cout<<”fun3" ;} }; class Derived : protected Base { public: void fun4( )const{ cout<<"fun4" ;} }; int main() { Derived obj; obj. fun1();//① obj. fun2();//② obj. fun3();//③ obj. fun4();//④ } 其中有语法错误的语句是( )。
A. ①②③④
B. ①②③
C. ②③④
D. ①④
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
41. 9. 有如下类定义: class MyBase { private: int k; public: MyBase(int n=0):k(n){} int value( )const{ return k; } }; class MyDerived : MyBase{ int j; public: MyDerived(int i):j(i){} int getK()const{ return k;} int getj()const{ return j; } }; 编译时发现有一处语法错误,对这个错误最准确的描述是( )。
A. 函数getK试图访问基类的私有成员变量K
B. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private
C. 类MyDerived缺少一个无参的构造函数
D. MyDerived构造函数没有对基类数据成员K进行初始化
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
42. 10. 有如下程序: #include < iostream > using namespace std; class Base{ protected: Base(){cout<<'A';} Base(char c){cout<
A. B
B. BA
C. AB
D. BB
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
43. 1. 当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( )
A. 都是虚函数
B. 只有被重新说明时才是虚函数
C. 只有被重新说明为vrual时才是虚函数
D. 都不是虚函数
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
44. 2. ( )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A. 虚析构函数
B. 虚构造函数
C. 纯虚函数
D. 静态成员函数
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
45. 3. 关于纯虚函数和抽象类的描述中,( )是错误的
A. 纯虚函数是一种特殊的虚函数,它没有具体的定义
B. 抽象类是指具有纯虚函数的类
C. 一个基类中定义有纯虚函数,该基类的派生类一定不再是抽象类
D. 抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
46. 4. 有如下程序: class Animal { public: virtual string GetType() const { return "Animal"; } virtual string GetVoice() const { return "Voice"; } }; class Dog:public Animal { public: string GetType() const { return "Dog"; } string GetVoice() const { return "Woof"; } }; class Cat:public Animal { public: string GetType() const { return "Cat"; } string GetVoice() const { return "Miaow"; } }; void Type(Animal &a) { cout<
A. Dog speak Voice - Cat speak Voice
B. Dog speak Woof - Cat speak Miaow
C. Animal speak Voice - Animal speak Voice
D. Animal speak Woof - Animal speak Miaow
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
47. 5. 有如下程序: #include < iostream > using namespace std; class Base { public: void fun1( ){cout <<" Base\n";} virtual void fun2(){cout <<" Base\n";} }; class Derived: public Base { public: void fun1(){cout <<"Derived\n" ;} void fun2(){cout <<"Derived\n";} }; void f(Base& b){b. fun1();b.fun2();} int main() { Derived obj; f(obj); return 0; } 执行这个程序,输出结果是( )。
A. Base Base
B. Base Derived
C. Derived Derived
D. Derived Base
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
48. 6. 有如下程序: #include < iostream > using namespace std; class A{ public: virtual void func1(){cout<< “A1";} void func2(){cout <<"A2";} }; class B:public A{ public: void func1(){cout<<"B1";} void func2(){cout<<"B2";} }; int main( ) { A *p=new B; p-> func1(); p-> func2(); return 0; } 运行程序,屏幕上将显示输出( )
A. B1B2
B. A1A2
C. B1A2
D. A1B2
答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
49. 7. 有如下程序:
#include < iostream >
using namespace std;
class Base{
int a,b;
public:
Base(int x ,int y) { a=x; b=y;}
void show( ){ cout A. 10,20 B. 30,40 C. 20,30 D. 50,50 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。 50. 1. 类模板的实例化( )。 A. 在编译时进行 B. 属于动态联编 C. 在运行时进行 D. 在连接时进行 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。 51. 2. 以下类模板定义正确的为( )。 A. template B. template C. template D. template 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。 52. 3. 类模板的使用实际上是将类模板实例化成一个( )。 A. 函数 B. 对象 C. 类 D. 抽象类 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。 53. 4. 类模板的模板参数( )。 A. 只能作为数据成员的类型 B. 只可作为成员函数的返回类型 C. 只可作为成员函数的参数类型 D. 以上三种均可 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。 54. 5. 下列关于模板的表述中,正确的是( )。 A. 如果一个类中存在纯虚函数,这个类就是类模板 B. 函数模板不能有形式参数表 C. 类模板是一种参数化类型的类,是类的生成器类 D. 模板中不能包含构造函数 答案:请关注【九八五题库】微信公众号,发送题目获取正确答案。
版权所有:学通智库|学起Plus/超星/安徽继教/云上河开全平台题库中心
文章标题:中国大学MOOC程序设计基础(C_C++)作业答案
文章链接:https://www.211tiku.cn/cxey/32064.html
本站文章来自网上,侵权联系站长,立即删除。
文章作者:学通智库
文章标题:中国大学MOOC程序设计基础(C_C++)作业答案
文章链接:https://www.211tiku.cn/cxey/32064.html
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自学通智库 !