帮你提升成绩,规划学习路径,设计职业方向,解决作业难题,指导论文写作。
想要快速找到正确答案?
立即关注 九八五题库微信公众号,轻松解决学习难题!
作业论文指导
扫码关注
作业论文指导,轻松解决学习难题!
超星学习通程序设计基础(C_C++)作业答案 (3)
程序设计基础(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. 模板中不能包含构造函数 答案: 请关注公众号【九八五题库】查看答案
版权所有:全平台试卷库 | 一站式学习资源整合中心
文章标题:超星学习通程序设计基础(C_C++)作业答案 (3)
文章链接:https://exem.yuyue-edu.com/cxey/31041.html
本站文章均为网上,如侵权,联系站长
收藏