东大21秋学期学期《C++程序设计》在线平时作业2[答案]

作者:奥鹏作业答案 字体:[增加 减小] 来源:东大在线 时间:2021-11-29 08:08

《C++程序设计》在线平时作业2 试卷总分:100 得分:100 一、单选题 (共 20 道试题,共 100 分) 1.(2) 若有以下定义: char s[20]=programming,*ps=s; 则不能代表字符o的表达式是 A.A)ps+2 B.B)s[2] C.C)ps[2] D.D)ps+=2,*ps 2

东大21秋学期学期《C++程序设计》在线平时作业2[答案]

东大21秋学期学期《C++程序设计》在线平时作业2[答案]答案

《C++程序设计》在线平时作业2

试卷总分:100  得分:100

一、单选题 (共 20 道试题,共 100 分)

1.(2)      若有以下定义: 

      char s[20]="programming",*ps=s; 

则不能代表字符o的表达式是

A.A)ps+2

B.B)s[2]

C.C)ps[2]

D.D)ps+=2,*ps

正确答案:-----

 

2.(10)  )以下程序运行后,输出结果是 

main( ) 

{ char *s="abcde"; 

正确答案:-----

  s+=2; 

  cout<<s; 

}

A.A) cde

正确答案:-----

B.B) 字符c的ASCLL码值

C.C) 字符c的地址

D.D) 出错

正确答案:-----

 

3.一个类的友元函数能够访问该类的( )

A.A)私有成员

B.B)保护成员

C.C)公有成员

D.D)所有成员

正确答案:-----

 

4.(2)    下列选项中,与实现运行时多态性无关的是( )。

A.A)重载函数

B.B)虚函数

C.C)指针

D.D)引用

正确答案:-----

 

5.(2)    以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为

正确答案:-----

#include <iostream>

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

#include <cmath>

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

using namespace std;

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

正确答案:-----

func (char str [])

{

int num =0;

while (*(str+num )!='\0')num ++;

return(num);

}

int main(int argc, char* argv[])

{

char str [10]=" ABCDE",*p=str ;

正确答案:-----

cout<< func(p);

return 0;

}

A.A) 8

B.B) 7

C.C) 6

D.D) 5

正确答案:-----

 

6.(10)如下函数中那个不是C++的隐式成员函数

A.A) 默认构造函数

B.B) 拷贝构造函数

C.C) 地址操作符

D.D) 加法操作符

正确答案:-----

 

7.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是

A.A)k=k>=k

B.B)-k++

C.C)k%int(f)

D.D)k>=f>=m

正确答案:-----

 

8.)对于一个正常运行的C程序,以下叙述中正确的是

A.A)程序的执行总是从main函数开始,在main函数结束

B.B)程序的执行总是从程序的第一个函数开始,在main函数结束

C.C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D.D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

正确答案:-----

 

9.有以下程序

#include <iostream>

#include <cmath>

using namespace std;

int fa(int x)

{

    return x*x;

}

int fb(int x)

{

    return x*x*x;

}

int f(int (*f1)(int x),int (*f2)(int x),int x){

    return f2(x)-f1(x);

}

int main(int argc, char* argv[])

{

    int i;

    i=f(fa,fb,2);

    cout<<i<<endl;

正确答案:-----

    return 0;

}

程序运行后的输出结果是______。

A.A) -4

B.B) 1

C.C) 4

D.D) 8

正确答案:-----

 

10.有如下程序:

#include<iostream>  

正确答案:-----

 using namespace std;

 class Sample{

 public:

         Sample(){} 

     ~Sample(){cout<<'*';}

 };

 int main(){

     Sample temp[2], *pTemp[2];

eturn 0;

 }

执行这个程序输出星号(*)的个数为(  )。

A.A)1

B.B)2

C.C)3

D.D)4

正确答案:-----

 

11.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明

 该基类成员的访问权限是( )。

A.A)公有或私有

B.B)私有

C.C)保护或私有

D.D)公有或保护

正确答案:-----

 

12.下列运算符函数中,肯定不属于类 Value 的成员函数的是( )。

A.A)Value operator+(Value);

B.B)Value operator-(Value, Value);

C.C)Value operator*(int);

D.D)Value operator/(Value);

正确答案:-----

 

13.以下叙述中错误的是

A.A)C++程序必须由一个或一个以上的函数组成

B.B)函数调用可以作为一个独立的语句存在

C.C)若函数有返回值,必须通过return语句返回

D.D)函数形参的值不可以传回给对应的实参

正确答案:-----

 

14.有以下程序

#include <iostream>

#include <cmath>

using namespace std;

struct STU

{

     char num[10];

     float score[3];

};

 

int main(int argc, char* argv[])

{

     struct STU s[3]={

             {"20021",90,95,85},

             {"20022",95,80,75},

             {"20023",100,95,90}

             },*p=s;

     int i;

     float sum=0;

     for(i=0;i<3;i++)

             sum=sum+p->score[i];

     cout<<sum<<endl; 

正确答案:-----

    return 0;

}  

程序运行后的输出结果是( )

 

A.A)260

B.B)270

C.C)280

D.D)285

正确答案:-----

 

15.(19)在公有继承的情况下,允许派生类直接访问的基类成员包括

A.A)公有成员

B.B)公有成员和保护成员

C.C)公有成员、保护成员和私有成员

D.D)保护成员

正确答案:-----

 

16.)能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是( )

正确答案:-----

A.A)a>10 or a<=0

B.B)a>=0|a<=10

C.C)a>=10 && a<=0

D.D)a>=10‖a<=0

正确答案:-----

 

17.(26)有以下程序

#include <iostream>

#include <cmath>

using namespace std;

void sum(int a[])

正确答案:-----

{ a[0] = a[-1]+a[1]; }

 

int main(int argc, char* argv[])

{

    int a[10]={1,2,3,4,5,6,7,8,9,10};

    sum(&a[2]);

    cout<<a[2];

    return 0;

}

程序运行后的输出结果是

A.A)6

B.B)7

C.C)5

D.D)8

正确答案:-----

 

21.(6)    以下程序运行后,输出结果是

#include <iostream>

#include <cmath>

using namespace std;

void fun (char *w ,int n)

正确答案:-----

{

    char t,*s1,*s2;

    s1=w; s2=w+n-1;

    while(s1<s2)

    {

        t=*s1++;

        *s1=*s2--;

        *s2=t;

    }

}

int main(int argc, char* argv[])

{

    char p[]="1234567";

    fun(p,strlen(p));

    cout<<p;

    return 0;

}

A.A)1234567

B.B)7654321

C.C)1711717

D.D)7177171

正确答案:-----

 

19.)有以下程序

void swap1(int c0[], int c1[])

正确答案:-----

{ int t ;

  t=c0[0]; c0[0]=c1[0]; c1[0]=t;

}

void swap2(int *c0,int *c1)

正确答案:-----

{ int t;

  t=*c0; *c0=*c1; *c1=t;

}

main()

{ int a[2]={3,5}, b[2]={3,5};

  swap1(a,a+1); swap2(&b[0],&b[1]);

  printf("%d %d %d %d ",a[0],a[1],b[0],b[1]);

正确答案:-----

}

程序运行后的输出结果是

A.A)3 5 5 3

B.B)5 3 3 5

C.C)3 5 3 5

D.D)5 3 5 3

正确答案:-----

 

20.若t为double类型,表达式t=1,t+5,t++的值是

正确答案:-----

A.A)1

B.B)6.0

C.C)2.0

D.D)1.0

正确答案:-----

 

东大21秋学期学期《C++程序设计》在线平时作业2[答案]历年参考题目如下:




C++程序设计19秋在线作业1题目

试卷总分:100  得分:100

一、单选题 (共 20 道试题,共 60 分)

1.假设A为抽象类,下列声明()是正确的。

A.int fun(A);

B.A *p;

C.A obj;

D.A fun(int);

 

2.定义类模板时要使用关键字()。

A.template

B.new

C.delete

D.const

 

3.类的构造函数被自动调用执行的情况是在定义该类的()。

A.数据成员时

B.成员函数时

C.对象时

D.友元函数时

 

4.使用派生类的主要原因是()。

A.提高程序的运行效率

B.提高代码的可重用性

C.实现数据的隐藏

D.加强类的封装性

 

5.运算符重载函数必须以特殊的关键字()开始。

A.virtual

B.template

C.static

D.operator

 

6.构造函数是一种特殊的成员函数,显式定义时其访问属性应被定义为()。

A.static

B.public

C.protected

D.private

 

7.在定义派生类时,若无继承方式说明,则默认的继承方式为()。

A.虚拟继承

B.私有继承

C.公有继承

D.保护继承

 

8.C++流类库预定义的与标准输出设备相关联的是()。

A.cout

B.clog

C.cin

D.cerr

 

9.类的析构函数是在()被调用的。

A.类创建时

B.删除对象时

C.创建对象时

D.不自动调用

 

10.cout是I/O流库中预定义的()。

A.类

B.文件

C.常量

D.对象

 

11.要将类A说明是类B的虚基类,正确的描述是()。

A.virtual class B:public A

B.class virtual B:public A

C.class B:virtual public A

D.class B:public A virtual

 

12.在下列关键字中,用于说明类中公有成员的是()。

A.public

B.protected

C.private

D.friend

 

13.类中定义的成员默认为()访问属性。

A.public

B.protected

C.private

D.friend

 

14.get()函数的功能是从输入流中读取()。

A.指定若干个字符

B.当前字符

C.一行字符

D.一个字符

 

15.通常拷贝构造函数的参数是()。

A.某个对象的指针名

B.某个对象的成员名

C.某个对象的引用名

D.某个对象名

 

16.打开一个文件,就是将这个文件与一个()建立关联。

A.设备

B.类

C.流

D.对象

 

17.下列描述中错误的是()。

A.派生类除了包含它直接定义的成员外,还包含基类的成员

B.派生类至少有一个基类

C.派生类所继承的基类成员的访问权限保持不变

D.派生类可作为另一个类的基类

 

18.设有函数模板 template<class Q> Q Sum(Q x,Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是()。

A.Sum(″AB″,″CD″);

B.Sum(5.0,6.7);

C.Sum(15.2f,16.0f);

D.Sum(10,2);

 

19.语句ofstream f(“SALARY.DAT”,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()。

A.若文件存在,打开失败;若文件不存在,建立一个新文件

B.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

C.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

D.若文件存在,将其置为空文件;若文件不存在,打开失败

 

20.在磁盘文件操作中,以追加方式打开磁盘文件时,其mode值为()。

A.out

B.in

C.ate

D.app

 

二、判断题 (共 20 道试题,共 40 分)

21.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。

 

22.数组中的每个元素它们的类型可以是不同的。

 

23.类A继承类B,则A称为B的派生类,B称为A的基类。

 

24.类是一组对象的抽象,而对象则是类的一个实例。

 

25.C++与C语言本质差别在于C++语言是面向对象的,而C语言是面向过程的。

 

26.ofstream是用于写文件的文件流。

 

27.指针和引用都是变量,都占有单独的内存空间。

 

28.为了在派生类中使用基类的同名成员,必须在该成员名之前加上基类名和作用域标识符

 

29.C++编译器能够区分重载的无参函数和缺省参数的函数。

 

30.不能在类声明中给数据成员赋初值。

 

31.文件流创建方式是打开二进制文件的是ios::binary。

 

32.this指针是一个const指针,不能在程序中修改它或给它赋值。

 

33.成员函数体写在类外部的一定不是内联函数,写在类内部的一定是内联函数。

 

34.构造函数和析构函数都不能带参数。

 

35.多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。

 

36.使用重载运算符既可以用运算符的方式又可以用函数调用的方式。

 

37.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。

 

38.当一个类被说明为另一个类的友元时,它的所有的成员函数都成为另一个类的友元函数。

 

39.构造函数和析构函数都不可以由程序员调用,只能由系统自动调用。

 

40.若有声明:class C: public A,B{};则类C公有继承自类A、私有继承自类B。

 

作业咨询:
点击这里给我发消息

论文咨询:
点击这里给我发消息

合作加盟:
点击这里给我发消息

服务时间:
8:30-24:00(工作日)