奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 321|回复: 0

四川大学《面向对象程序设计(1)》17春在线作业2答案资料

[复制链接]

1万

主题

1

回帖

2万

积分

论坛元老

积分
29028
发表于 2017-6-22 17:14:23 | 显示全部楼层 |阅读模式
扫码加微信
《面向对象程序设计(1)》17春在线作业2


一、单选题:
1.有如下类和对象的定义:class Constants{public:  static double getPI(    ){return 3.1416;}};Constants constants;下列各组语句中,能输出 3.1416 的是(    )。          (满分:2)
    A. cout<<constants->getPI(    );和 cout<<Constants::gerPI(    );
    B. cout<<constants.getPI(    );和 cout<<Constants.getPI(    );
    C. cout<<constants->getPI(    );和 cout<<Constants->getPI(    );
    D. cout<<constants.getPI(    );和 cout<<Constants::getPI(    )。
2.有如下类定义:class MyClass{  int value; public:MyClass(int n): value(n) {}int gerValue(    )const{ return value;}};则类 MyClass 的构造函数的个数是(    )。          (满分:2)
    A. 1个
    B. 2个
    C. 3个
    D. 4个
3.假定a 为一个短整型(short   int)数组名,则元素a[8]的地址为(    )。          (满分:2)
    A. a+4
    B. a+8
    C. a+16
    D. a+32
4.在定义int a[3][4][2];后,第10个元素是(    )。          (满分:2)
    A. a[2][1][2]
    B. a[1][0][1]
    C. a[2][0][1]
    D. a[2][2][1]
5.有如下类定义:class Point{private;static int howmany;};(    )(    ) howmany=0; 要初始化 Point 类的静态成员 howmany,下划线处应填入的内容是:          (满分:2)
    A. ing
    B. static int
    C. int Point::
    D. static int Point::
6.已知函数 f 的原型是 void f(int *a, long & b);,变量 v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是 (    )。          (满分:2)
    A. f(v1,&v2)
    B. f(v1,v2)
    C. f(&v1,&v2)
    D. f(&v1,v2)
7.当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含(    )文件。          (满分:2)
    A. iostream、h
    B. iomanip、h
    C. fstream、h
    D. ststrea、h
8.假定AB   为一个类,则执行“AB   a(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为(    )。          (满分:2)
    A. 4
    B. 5
    C. 8
    D. 13
9.有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值 5 的是 (    )。          (满分:2)
    A. a[2]
    B. a[3]
    C. *(p+2)
    D. *p+4
10.下列有关抽象类和纯虚函数的叙述中,错误的是(    )。          (满分:2)
    A. 拥有纯虚函数的类是抽象类,不能用来定义对象;
    B. 抽象类的派生类若不实现纯虚函数,它也是抽象类;
    C. 纯虚函数的声明以“=0;”结束;
    D. 纯虚函数都不能有函数体
11.若已定义int a=5;下面对(1),(2)两个语句正确理解的是(    )。(1)int *p=&a;(2)*p=a;          (满分:2)
    A.(1)(2)中的*P含义相同,都表示给指针变量P 附值;
    B.(1)(2)的执行结果都是把变量a的地址值赋给指针变量P;
    C. (1)在对P进行说明的同时进行初始化,使P指向a,(2)将变量a的值赋给指针变量P;
    D. (1)在对P进行说明的同时进行初始化,使P指向a,(2)将变量a的值赋给*P
12.在每个C++程序中都必须包含有这样一个函数,该函数的名称为(    )。          (满分:2)
    A. main
    B. MAIN
    C. name
    D. function
13.下面是一个模板声明的开始部分:templute double 由此可知(    )。          (满分:2)
    A. 这可能是一个函数模板的声明
    B. 这可能是一个类模板的声明
    C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明
    D. 这肯定是一个错误的模板声明
14.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的是(    )。          (满分:2)
    A. p1=&m,p2=&p1
    B. p1=&m;p2=&n;*p1=*p2
    C. p1=&m;p1=p2
    D. p1=&m;*p2=*p1
15.C++源文件的缺省扩展名为(    )。          (满分:2)
    A. cpp
    B. exe
    C. obj
    D. lik
16.下面的选项中正确的赋值语句是(char a[5],*p=a;)。          (满分:2)
    A. p=“abcd”;
    B. a=“abcd”;
    C. *p=“abcd”;D*a=“abcd”;
17.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是(    )。          (满分:2)
    A. cout<<left<<setfill(~*~)<<357;
    B. cout<<left<<setw(5)<<357;
    C. cout<<left<<setw(5)<<"ABCDE";
    D. cout<<left<<"ABCDE";
18.执行下列语句段后,输出字符“*”的个数是 (    )。for(int i=50; i>1; I-=2)cout          (满分:2)
    A. 24
    B. 25
    C. 26
    D. 50
19.数组名作为实参传递给形参时,数组名被处理为该数组的(    )。          (满分:2)
    A. 长度
    B. 元素个数
    C. 首地址
    D. 各元素的值
20.以下对二维数组a的正确说明是:(    )。          (满分:2)
    A. int a[3][];
    B. float a(3,4);
    C. double a[1][4];
    D. float a(3)(4);
21.若k为整形,则while循环执行(    )次。k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”);          (满分:2)
    A. 10
    B. 9
    C. 0
    D. 1
22.程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用(    )符号作为分隔符。          (满分:2)
    A. 空格或逗号
    B. 逗号或回车
    C. 逗号或分号
    D. 空格或回车
23.在下列关键字中,不能用来表示继承方式的是(    )。          (满分:2)
    A. private
    B. static
    C. public
    D. protected
24.两个指针变量不可以(    )。          (满分:2)
    A. 相加
    B. 比较
    C. 相减
    D. 指向同一地址
25.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是(    )。          (满分:2)
    A. 增加了一些新的运算符
    B. 允许函数重载,并允许设置缺省参数
    C. 规定函数说明符必须用原型
    D. 引进了类和对象的概念
26.有如下 4 个语句:① cout② cout③ cout④ cout其中能显示 A******B 的是(    )。          (满分:2)
    A. ①和③
    B. ①和④
    C. ②和③
    D. ②和④
27.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(    )。          (满分:2)
    A. Value operator+(Value v, int i);
    B. Value operator+(Value v=value, int i);
    C. Value operator+(Value vint i=0);
    D. Value operator+(Value v=value, int i=0);
28.下面函数调用语句含有实参的个数为:func((exp1,exp2),(exp3,exp4,exp5))          (满分:2)
    A. 1
    B. 2
    C. 4
    D. 5
29.设有定义int x; float v;,则10+x+v值的数据类型是(    )。          (满分:2)
    A. int
    B. double
    C. float
    D. 不确定
30.下列哪个是C++语言的有效标识符?          (满分:2)
    A. No1
    B. No、1
    C. 12345
    D. int
二、多选题:
1.模板定义中的类型参数可以用作(    )。          (满分:4)
    A. 局部变量类型
    B. 函数参数类型
    C. 函数返回值类型
    D. 数据成员类型
2.两个同名函数构成重载关系,只要(    )不同。          (满分:4)
    A. 返回类型
    B. 参数个数
    C. 参数类型
    D. 函数头后有无const
3.构造函数(    )。          (满分:4)
    A. 函数名只能是类名
    B. 返回类型可以是任意的
    C. 参数个数和类型可以是任意的
    D. 在对象创建时自动调用
4.关于公共静态数据成员,下面说法正确的是(    )。          (满分:4)
    A. 在main函数之前创建
    B. 跟某个具体对象无关
    C. 可以用类名和成员名直接访问
    D. 需要在类体外初始化
5.设有定义语句:int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有(    )。          (满分:4)
    A. for(i=0;i<6;i++)printf(“%2d”,*(p++));
    B. for(i=0;i<6;i++)printf(“%2d”,*(p+i));
    C. for(i=0;i<6;i++)printf(“%2d”,*p++);
    D. for(i=0;i<6;i++)printf(“%2d”,(*p)++);
三、判断题:
1.C++程序从上机到得到结果的几个操作步骤依次是:编辑、编译、连接、运行。          (满分:4)
    A. 错误
    B. 正确
2.逻辑运算符两侧运算对象的数据类型只能是0或1。          (满分:4)
    A. 错误
    B. 正确
3.字符串"ab\\\n"在机器中占6个字节。          (满分:4)
    A. 错误
    B. 正确
4.宏名必须用大写字母表示。          (满分:4)
    A. 错误
    B. 正确
5.1.234e0为C++语言合法常量。          (满分:4)
    A. 错误
    B. 正确
更多免费学习资料请登录www.openhelp100.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-11-25 19:34

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表