东大23春《C++程序设计》在线平时作业2[答案][答案]
时间:2023-06-02 09:17 来源:奥鹏教育 作者:奥鹏作业答案 点击:次
正确答案:D 正确答案:A 试卷总分:100 得分:100 一、单选题 (共 20 道试题,共 100 分) 1.(6) 在C++语言中,打开一个文件就是将这个文件与一个什么建立关联( ) A.流 B.类 C.结构 D.对象 正确答案:A
2.(24)若变量已正确定义并赋值,以下符合C++语言语法的表达式是( ) A.A)a:=b+1 B.B)a=b=c+2 C.C)int 21.5%3 D.D)a=a+7=c+b 正确答案:B
3.以下C++语言中用于单行注释的是( ) A.A)// B.B)/* C.C)*/ D.D)| 正确答案:D
4.以下程序运行后,输出结果是
#include <iostream> 正确答案:D 正确答案:A 正确答案:A #include <cmath> 正确答案:C 正确答案:D 正确答案:A using namespace std; 正确答案:B 正确答案:C 正确答案:A void fut (int **s,int p[2][3]) 正确答案:B { **s=p[1][1]; } int main(int argc, char* argv[]) { int a[2][3]={1,3,5,7,9,11},*p; p=new int; fut (&p,a); cout<<*p; return 0; } A.A)9 B.B)0 C.C3 D.D)7 正确答案:D
5.设有定义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 正确答案:D
6.(32) 下列语句中,正确的是( )。 A.A)char*myString="Hello-World!"; 正确答案:B 正确答案:C 正确答案:B B.B)char myString="Hello-World!"; C.C)char myString[11]="Hello-World!"; D.D)char myString[12]="Hello-World!"; 正确答案:D
7.函数int test(int a,int b=1,int c=0),下列调用不合法的个数是( ) test(0); test(0,0); test(); test(0,0,0); A.0 B.1 C.2 D.3 正确答案:B
8.下列关于虚基类的描述,错误的是( ) A.A)设置虚基类的目的是为了消除二义性 B.B)虚基类的构造函数在非虚基类之后调用 C.C)若同一层中包含多个虚基类,这些基类的构造函数按它们说明的次序调用 D.D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 正确答案:D
9.下面关于模版不正确的说法是 A.A)C++提供了类模版 B.B)C++t提供了函数模版 C.C)C++函数模版可用重载 D.D)子类对象不可以使用父类定义的模版函数 正确答案:D
10.(4) 以下程序运行后,输出结果是 #include <iostream> #include <cmath> using namespace std; func (int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b ; return(m); }
int main(int argc, char* argv[]) { int k=4,m=1,p; p=func (k,m); cout<<p<<”,”; 正确答案:D p=func (k,m); cout<<p; return 0; } A.A) 8,15 B.B} 8,16 C.C) 8,17 D.D) 8,8 正确答案:B
11.)有以下程序 main( ) { unsigned char a=2,b=4,c=5,d; 正确答案:D d=a|b; d&=c; 正确答案:A cout<<d<<endl; 正确答案:D 正确答案:A } 程序运行后的输出结果是 A.A)3 B.B)4 C.C)5 D.D)6 正确答案:C
12.(8) C++中类的定义的结束声明的符号是( ) A.A) } B.B) , C.C) ; D.D) { 正确答案:A
13.(24)有以下程序 int main(int argc, char* argv[]) { int a[]={2,4,6,8,10}, y=0, x, *p; p=&a[1]; for(x= 1;x<3;x++) y += p[x]; cout<<y; return 0; }程序运行后的输出结果是 A.A)10 B.B)11 C.C)14 D.D)15 正确答案:D
14.当执行以下程序段时 x=-1 ; do {x=x*x;} while(!x); 正确答案:A A.A) 循环体将执行一次 B.B) 循环体将执行两次 C.C) 循环体将执行无限次 D.D) 系统将提示有语法错误 正确答案:D
15.中国《涉外民事关系法律适用法》第42条规定消费者合同,适用消费者经常居所地法律;消费者选择适用商品、服务提供地法律或者经营者在消费者经常居所地没有从事相关经营活动的,适用商品、服务提供地法律。 此条规定体现了( )。 A.国家主权独立原则 B.平等互利原则 C.保护弱方当事人合法权益原则 D.维护和促进国际民商事交往发展的原则 正确答案:D
16.(12)以下程序运行后,输出结果是 main() { char ch[2][5]={"693","825"},*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for (j=0;p[i][j]>='0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; cout<<s; } A.A)6385 B.B)22 C.C)33 D.D)693825 正确答案:A
17.)若有语句char *line[5];,以下叙述中正确的是 A.A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 B.B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C.C)定义line是一个指针数组,语句中的*号称为间址运算符 D.D)定义line是一个指向字符型函数的指针 正确答案:C
21.(8) 执行以下程序后,输出的结果是 #include <iostream> #include <cmath> using namespace std; int main(int argc, char* argv[]) { int y=10; do {y--;} while(--y); 正确答案:D cout<<y--<<endl; return 0; } A.A) -1 B.B) 1 C.C) 8 D.d) 0 正确答案:A
19.类的构造函数和析构函数描述正确的是()
A.A)构造函数可以重载,析构函数不能重载 B.B)构造函数不能重载,析构函数可以重载 C.C)构造函数可以重载,析构函数也可以重载 D.D)构造函数不能重载,析构函数也不能重载 正确答案:C
20.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为( )。 A.A)派生类、成员对象类、基类 B.B)成员对象类、基类、派生类 C.C)基类、成员对象类、派生类 D.D)基类、派生类、成员对象类 正确答案:B
东大23春《C++程序设计》在线平时作业2[答案]历年参考题目如下: C++程序设计2022年秋学期在线作业2题目 试卷总分:100 得分:100 一、单选题 (共 20 道试题,共 60 分) 1.要使用动态联编,必须使用()调用虚函数。 A.类名 B.对象名 C.派生类指针 D.基类指针
2.假定classA为一个类,a为该类公有的数据成员,px为指向该类对象的指针,则访问px所指对象中数据成员a的格式为()。 A.px(a) B.px[a] C.px->a D.px.a
3.如有以下函数模板 T min(T a,T b) { return a<b?a:b; } 则函数调用 min<int>(100,’b’); 返回的结果是()。 A.100 B.98 C.b D.d
4.下列关于虚基类的描述,错误的是()。 A.设置虚基类的目的是为了消除二义性 B.虚基类的构造函数在非虚基类之后调用 C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数
5.#include <iostream.h> class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout A.XY B.YX C.X D.Y
6.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。 A.基类、自己所属类、对象成员所属类 B.对象成员所属类、基类、自己所属类 C.自己所属类、对象成员所属类、基类 D.基类、对象成员所属类、自己所属类
7.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。 A.public B.protected C.private D.static
8.假定classA为一个类,则执行“classA x(5);”语句时将自动调用该类的()。 A.无参构造函数 B.带参构造函数 C.复制构造函数 D.赋值重载函数
9.下面描述中,表达错误的是()。 A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承时基类中的private成员在派生类中仍是private的 C.公有继承时基类中的protected成员在派生类中仍是protected的 D.保护继承时基类中的public成员在派生类中是private的
10.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。 A.类 B.对象 C.函数体 D.数据块
11.cout是I/O流库中预定义的()。 A.类 B.对象 C.文件 D.常量
12.假设己经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是()。 A.class derived:: student private{ //…… }; B.class derived : student public { //…… }; C.class derived :private student { //…… }; D.class derived::public student { //…… };
13.在下面有关静态成员函数的描述中,正确的是()。 A.在静态成员函数中可以使用this指针 B.在建立对象前,就可以为静态数据成员赋值 C.静态成员函数在类外定义时,要用static前缀 D.静态成员函数只能在类外定义
14.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()。 A.友元函数 B.虚函数 C.构造函数 D.析构函数
15.如有以下模板类定义 Template <class T> class sum { T a, b; Public: Sum (T x, T y); } 则在类体外定义构造函数正确的是()。 A.template <class T> sum::sum(T x,T y) { a=x; b=y; } B.template <typename T> sum(T x,T y) { a=x; b=y; } C.template <class T> sum<T>::sum(T x,T y) { a=x; b=y; } D.sum<T>::sum(T x,T y) { a=x; b=y; }
16.已知类A中一个成员函数说明如下void Set(A&a);其中,A&的含义是()。 A.指向类A的指针为a B.将a的地址值赋给变量Set C.a是类A对象的引用,用来作函数Set()的参数 D.变量A与a按位与作为函数Set( )的参数
17.下面对于指针的描述不正确的是()。 A.指针是地址变量 B.指针不能用除0以外的常量赋值 C.两个指针变量的加减法无意义 D.指针指向不同基类型的变量长度不同
21.在函数声明中,()是不必要的。 A.函数名 B.函数类型 C.参数的名称 D.参数类型
19.下列说法正确的是()。 A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline定义
20.假设已经有定义char*const name="chen"; 下面的语句中正确的是()。 A.name[3]= 'q'; B.name="lin"; C.name=new char[5]; D.name=new char ('q') ;
二、判断题 (共 20 道试题,共 40 分) 21.若一个类A,它的两个直接基类是从同一个间接基类派生而来的,则类A对基类成员的访问会产生二义性。
22.只要一个类定义了一个构造函数(不一定是无参构造函数),系统将不再给它提供缺省的构造函数。
23.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。
24.类A继承类B,则A称为B的基类,B称为A的派生类。
25.拷贝构造函数使用本类对象的指针作为参数初始化新创建的对象。
26.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。
27.如果派生类没有实现虚函数,那么它将使用它的基类的虚函数。
28.在类定义体内,只有具有public访问属性的成员间可以相互访问。
29.静态成员函数与在一般的成员函数一样,都隐含有一个this指针。
30.对于类中的对象成员既可以在构造函数的初始化列表中初始化也可以在构造函数体中初始化。
31.类对象的输入输出需在类中定义重载的提取运算符“>>”和插入运算符“<<”。
32.类和对象之间的关系是抽象和具体的关系。
33.cout通常与键盘相连,cin通常与显示器相连。
34.C++流类库是用继承方法建立起来的,它具有两个平行的基类,即istream类和ostream类,所有其他的流类都是从它们直接或间接地派生出来的。
35.在一般的成员函数中都隐含有一个this指针,用来指向对象自身,而在静态成员函数中是没有this指针的。
36.C++与C语言本质差别在于C++语言是面向对象的,而C语言是面向过程的。
37.在C++中,只能重载已有的运算符。
38.在文件操作结束时,可以用eof()成员函数关闭该文件。
39.构造函数是不能说明它的返回值类型的,但可以说明为void类型。
40.protected和private区别在于protected成员可以被派生类访问,而private成员则不能被派生类访问。
|
![东大23春《C++程序设计》在线平时作业2[答案][答案]](/uploads/allimg/240110/7d437cb485e5dcf152e12588fd191427.jpg)