青青 发表于 2017-10-16 13:03:50

福师17秋《C++语言程序设计》在线作业一二

福师17秋《C++语言程序设计》在线作业一
一、单选题:【20道,总分:40分】

1.设x和y均为bool量,则x&&y为真的条件是(    )(    )(    )(    )。          (满分:2)
    A. 它们均为真
    B. 其中一个为真
    C. 它们均为假
    D. 其中一个为假
2.在不考虑强制类型转换的情况下,关于类中常量成员函数的下列说法不正确的是(    )(    )。          (满分:2)
    A. 常量成员函数中不能修改本类中的非静态数据成员。
    B. 常量成员函数中可以调用本类中的任何静态成员函数。
    C. 常量成员函数的返回值只能是void或常量。
    D. 若常量成员函数中调用虚函数f,那么函数f在本类中也一定是一个常量成员函数。
3.能正确表示x>=3或者x<1的关系表达式是(    )          (满分:2)
    A. x>=3 or x<1
    B. x>=3|x<1
    C. x>=3(    )x<1
    D. x> =3&&x<1
4.静态成员函数仅能访问(    )          (满分:2)
    A. 静态的数据成员
    B. 非静态的成员函数
    C. 非静态的数据成员
    D. 以上都不对
5.要使几个不同数据类型的数据共享同一块内存区域,应使用(    )          (满分:2)
    A. 数组
    B. 结构
    C. 联合
    D. 文件
6.在对typedef的叙述中错误的是(    )。          (满分:2)
    A. 用typedef可以定义各种类型名,但不能用来定义变量
    B. 用typedef可以增加新类型
    C. 用typedef只是将已存在的类型用一个新的标识符来代表
    D. 使用typedef有利于程序的通用和移植
7.下面关于数组的描述错误的是(    )。          (满分:2)
    A. 在C++语言中数组的名字就是指向该数组第一个元素的指针
    B. 长度为n的数组,下标的范围是0-n-1
    C. 数组的大小必须在编译时确定
    D. 数组只能通过值参数和引用参数两种方式传递给函数
8.设有数组定义:chararray[]=”China";,则数组array所占的空间为(    )。          (满分:2)
    A. 4个字节
    B. 5个字节
    C. 6个字节
    D. 7个字节
9.下列关于模板的说法正确的是(    )。          (满分:2)
    A. 模板的实参在任何时候都可以省略
    B. 类模板与模板类所指的是同一概念
    C. 类模板的参数必须是虚拟类型的
    D. 类模板中的成员函数全部都是模板函数
10.假定a为一个整型数组名,则元素a的字节地址为(    )(    )。          (满分:2)
    A. a+4
    B. a+8
    C. a+16
    D. a+32
11.类模板规定了如何创建一个(    )。(    )          (满分:2)
    A. 对象
    B. 类
    C. 实例
    D. 变量
12.函数重载体现了面向对象的(    )          (满分:2)
    A. 封装性
    B. 多态性
    C. 继承性
    D. 抽象性
13.在C++语言中,数据封装要解决的问题是(    )(    )。          (满分:2)
    A. 数据的规范化
    B. 便于数据转换
    C. 避免数据丢失
    D. 防止不同模块之间数据的非法访问
14.下列的各函数中, 不是类的成员函数的是(    )          (满分:2)
    A. 构造函数
    B. 析构函数
    C. 友元函数
    D. 复制构造函数
15.虚函数使用关键字(    )          (满分:2)
    A. virtual
    B. static
    C. public
    D. private
16.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是(    )。          (满分:2)
    A. g(f(3));
    B. f(g(3));
    C. g(f(3)+2);
    D. p= f(g(3)+1);
17.下面的哪个保留字不能作为函数的返回类型?          (满分:2)
    A. void
    B. int
    C. new
    D. long
18.下面列出的保留字中,不能作为函数的返回类型的是(    )          (满分:2)
    A. void
    B. int
    C. new
    D. long
19.在C++语言中,为了使得类中的某些数据成员及某些成员函数的返回值能取任意类型,应使用(    )          (满分:2)
    A. 类
    B. 类模板
    C. 抽象类
    D. 虚基类
20.下列表达式的值为false的是(    )。          (满分:2)
    A. 1<3&&5<7
    B. !(2>4)
    C. 3&0&&1
    D. !(5<8)(    )(2<8)
二、判断题:【20道,总分:40分】

1.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向数据结构的设计方法。          (满分:2)
    A. 错误
    B. 正确
2.达式operator+(x,y)还可以表示为x+y。          (满分:2)
    A. 错误
    B. 正确
3.内联函数是为了提高编程效率而实现的,它克服了用#define宏定义所带来的弊病 。(    )          (满分:2)
    A. 错误
    B. 正确
4.在内存中,字符数据以ASCII码存储,即以整数表示。(    )          (满分:2)
    A. 错误
    B. 正确
5.常对象必须进行初始化,而且不能被更新(    )          (满分:2)
    A. 错误
    B. 正确
6.在一个函数内的复合语句中定义的变量在本函数范围内有效。(    )          (满分:2)
    A. 错误
    B. 正确
7.运算符重载不能改变原运算符的语义。          (满分:2)
    A. 错误
    B. 正确
8.若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x;,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值。          (满分:2)
    A. 错误
    B. 正确
9.在程序运行过程中,其值不能被改变的量称为常量(    )          (满分:2)
    A. 错误
    B. 正确
10.关系表达式x+y>5的相反表达式为x+y<=5。          (满分:2)
    A. 错误
    B. 正确
11.设有int w;,pw是与数组名w等价的数组指针,则pw应初始化为int(* pw)=w;          (满分:2)
    A. 错误
    B. 正确
12.switch后面括号中的表达式只能是整型、字符型或枚举型表达式。(    )          (满分:2)
    A. 错误
    B. 正确
13.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的函数体实现。          (满分:2)
    A. 错误
    B. 正确
14.函数体内声明的静态变量,至多只会被初始化一次。          (满分:2)
    A. 错误
    B. 正确
15.一个类可以作为另一个类的友元类。          (满分:2)
    A. 错误
    B. 正确
16.派生类的成员函数可以直接访问基类的所有成员。          (满分:2)
    A. 错误
    B. 正确
17.引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间都不如意的问题。(    )          (满分:2)
    A. 错误
    B. 正确
18.NULL是空指针值,它不指向任何地方。(    )          (满分:2)
    A. 错误
    B. 正确
19.每个cpp文件是单独编译的,但一个程序中多个cpp文件的编译顺序是不固定的。          (满分:2)
    A. 错误
    B. 正确
20.类是一种类型,它封装了数据和操作。          (满分:2)
    A. 错误
    B. 正确
三、多选题:【10道,总分:20分】

1.下列说法中错误的是(    )。          (满分:2)
    A. C++程序总是从第一个定义的函数开始执行
    B. C++程序总是从main函数开始执行
    C. C++函数必须有返回值,否则不能使用函数
    D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
2.C++语言的跳转语句中,对于break和continue说法不正确的是(    )。          (满分:2)
    A. break语句只应用于循环体中
    B. continue语句只应用于循环体中
    C. break是无条件跳转语句,continue不是
    D. break和continue的跳转范围不够明确,容易产生问题
3.下面关于指针变量和引用变量的说法正确的是(    )。          (满分:2)
    A. 指针变量存放的是内存地址,并且可以置为0
    B. 定义引用变量时,必须同时指明具体被引用的对象或变量
    C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
    D. 类中的数据成员可以是指针变量,但不能是引用变量
4.考虑函数原型void test(int a ,int b=7,char z=’*’),下面的函数调用中,属于合法调用的是(    )。          (满分:2)
    A. test(5)
    B. test(5,8)
    C. test(6,’#’)
    D. test(0,0,’*’)
5.以下关于函数模板叙述错误的是(    )。          (满分:2)
    A. 函数模板也是一个具体类型的函数
    B. 函数模板的类型参数与函数的参数是同一个概念
    C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数
    D. 用函数模板定义的函数没有类型
6.使用值传递方式将实参传给形参,下列说法不正确的是(    )。          (满分:2)
    A. 形参是实参的备份
    B. 实参是形参的备份
    C. 形参和实参是同一对象
    D. 形参和实参无联系
7.下面哪些保留字可以作为函数的返回类型(    )。          (满分:2)
    A. void
    B. int
    C. new
    D. long
8.对C++语言和C语言的兼容性,描述不正确的是(    )。          (满分:2)
    A. C++兼容C
    B. C++部分兼容C
    C. C++不兼容C
    D. C兼容C++
9.以下不正确的描述是(    )。          (满分:2)
    A. 函数的定义可以嵌套,函数的调用不可以嵌套
    B. 函数的定义不可以嵌套,函数的调用可以嵌套
    C. 函数的定义和函数的调用均可以嵌套
    D. 函数的定义和函数的调用均不可以嵌套
10.下列说法中错误的是(    )。          (满分:2)
    A. 不允许设置参数的默认值
    B. 设置参数的默认值只能在定义函数时设置
    C. 设置参数的默认值时,应该设置右边的参数
    D. 设置参数的默认值时,应该全部参数都设置
福师《C++语言程序设计》在线作业二
一、单选题:【20道,总分:40分】

1.下列各种高级语言中,(    )是面向对象编程语言。(    )          (满分:2)
    A. BASIC
    B. C语言
    C. C++语言
    D. Pascal语言
2.对类的构造函数和析构函数描述正确的是(    )。          (满分:2)
    A. 构造函数可以重载,析构函数不能重载
    B. 构造函数不能重载,析构函数可以重载
    C. 构造函数可以重载,析构函数也可以重载
    D. 构造函数不能重载,析构函数也不能重载
3.下面有关重载函数的说法中正确的是(    )          (满分:2)
    A. 重载函数必须具有不同的返回值类型
    B. 重载函数形参个数必须不同
    C. 重载函数必须有不同的形参列表
    D. 重载函数名可以不同
4.下列运算符中,(    )运算符在C++中不能重载          (满分:2)
    A. &&
    B. []
    C. ::
    D. new
5.派生类公有继承基类时,基类中的所有公有成员成为派生类的(    )。(    )          (满分:2)
    A. public 成员
    B. 友员
    C. protected成员
    D. private成员
6.下面程序的运行结果为(    )(    )。#include void main(    ) { for(int a=0,x=0;!x&&a { a++; } l cout          (满分:2)
    A. 10
    B. 11
    C. 12
    D. 0
7.类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的(    )(    )。          (满分:2)
    A. TM* a;
    B. TN& a;
    C. TM a;
    D. TN a;
8.将小写字母n赋值给字符变量onechar,正确的操作是(    )。          (满分:2)
    A. onechar=‘\n’;
    B. onechar=“n”;
    C. onechar=110;
    D. onechar=‘N’;
9.析构函数在什么时间开始调用。(    )          (满分:2)
    A. 类创建
    B. 创建对象
    C. 引用对象
    D. 释放对象
10.设int a=10,b=11,c=12;,表达式(a+b)(    )(    )。          (满分:2)
    A. 2
    B. 0
    C. -2
    D. 1
11.C++语言提供的预处理语句有3种,下面不属于预处理语句的是(    )。(    )          (满分:2)
    A. 宏定义预处理
    B. 文件预处理
    C. 条件编译预处理
    D. 中止预处理
12.下列程序的输出结果为(    )(    )。#include int func(int n) {  if〔n else return n+tune(n-1): return 0; } void main(    ) { cout }          (满分:2)
    A. 0
    B. 10
    C. 15
    D. 16
13.循环while(int i=0) i--;执行次数是(    )。          (满分:2)
    A. 0
    B. 1
    C. 5
    D. 无限
14.不能作为重载函数的调用的依据是(    )(    )。          (满分:2)
    A. 参数个数
    B. 参数类型
    C. 函数类型
    D. 函数名称
15.在不考虑强制类型转换的情况下,关于类中常量成员函数的下列说法不正确的是(    )(    )。          (满分:2)
    A. 常量成员函数中不能修改本类中的非静态数据成员。
    B. 常量成员函数中可以调用本类中的任何静态成员函数。
    C. 常量成员函数的返回值只能是void或常量。
    D. 若常量成员函数中调用虚函数f,那么函数f在本类中也一定是一个常量成员函数。
16.下列运算符中,在C++语言中不能重载的是(    )(    )。          (满分:2)
    A. *
    B. >=
    C. ::
    D. /
17.下面的哪个选项不能作为函数的返回类型?          (满分:2)
    A. void
    B. int
    C. new
    D. long
18.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(    )。          (满分:2)
    A. main
    B. MAIN
    C. name
    D. function
19.下面四个运算符中,优先级最低的是(    )。          (满分:2)
    A.(    )
    B. .
    C. ->
    D. ++
20.对于全局函数 int f(void) ,与其完全等价的函数原型为(    )(    )(    )。          (满分:2)
    A. int& f(    );
    B. int f(void ) const;
    C. const int f(    );
    D. A、B、C都不是
二、判断题:【20道,总分:40分】

1.C++中函数声明就是函数原型。(    )          (满分:2)
    A. 错误
    B. 正确
2.C++目标程序经连接后生成扩展名为exe的可执行程序文件。          (满分:2)
    A. 错误
    B. 正确
3.在内存中,字符数据以ASCII码存储,即以整数表示。(    )          (满分:2)
    A. 错误
    B. 正确
4.设置函数的参数默认值的顺序是自左向右。          (满分:2)
    A. 错误
    B. 正确
5.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。          (满分:2)
    A. 错误
    B. 正确
6.字符型数据在内存中的存储形式是ASCII码(    )          (满分:2)
    A. 错误
    B. 正确
7.要使引用pr代表变量char * p;,则pr应初始化为 char ** &pr=p;          (满分:2)
    A. 错误
    B. 正确
8.C++中,一个函数必须在函数声明后才能使用(    )          (满分:2)
    A. 错误
    B. 正确
9.带extern的变量说明是变量声明,不是变量定义。(    )          (满分:2)
    A. 错误
    B. 正确
10.运算符重载不能改变原运算符的语义。          (满分:2)
    A. 错误
    B. 正确
11.在一个函数内的复合语句中定义的变量在本函数范围内有效。(    )          (满分:2)
    A. 错误
    B. 正确
12.定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。(    )          (满分:2)
    A. 错误
    B. 正确
13.设有int w;,pw是与数组名w等价的数组指针,则pw应初始化为int(* pw)=w;          (满分:2)
    A. 错误
    B. 正确
14.在程序运行过程中,其值不能被改变的量称为常量(    )          (满分:2)
    A. 错误
    B. 正确
15.关系表达式x+y>5的相反表达式为x+y<=5。          (满分:2)
    A. 错误
    B. 正确
16.声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。(    )          (满分:2)
    A. 错误
    B. 正确
17.inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。          (满分:2)
    A. 错误
    B. 正确
18.执行if(x>=0(    )x<=0) cout<<"abcd";else cout<<"wxyz";屏幕上显示的是dcab。          (满分:2)
    A. 错误
    B. 正确
19.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。          (满分:2)
    A. 错误
    B. 正确
20.C++中,一个函数必须在函数声明后才能使用(    )          (满分:2)
    A. 错误
    B. 正确
三、多选题:【10道,总分:20分】

1.函数调用可以(    )。          (满分:2)
    A. 出现在一个表达式中
    B. 出现在执行语句中
    C. 作为一个函数的实参
    D. 作为一个函数的形参
2.下列说法中错误的是(    )。          (满分:2)
    A. C++程序总是从第一个定义的函数开始执行
    B. C++程序总是从main函数开始执行
    C. C++函数必须有返回值,否则不能使用函数
    D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
3.下面关于指针变量和引用变量的说法正确的是(    )。          (满分:2)
    A. 指针变量存放的是内存地址,并且可以置为0
    B. 定义引用变量时,必须同时指明具体被引用的对象或变量
    C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
    D. 类中的数据成员可以是指针变量,但不能是引用变量
4.下列哪些是类的特性(    )。          (满分:2)
    A. 多态性
    B. 继承性
    C. 封装性
    D. 虚拟性
5.下面哪些保留字可以作为函数的返回类型(    )。          (满分:2)
    A. void
    B. int
    C. new
    D. long
6.关于异常和C++提供的异常处理机制正确的说法是(    )。          (满分:2)
    A. 若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
    B. 使用dynamiccast操作符可能会产生异常
    C. 异常可以用catch进行捕获处理
    D. 异常可以是对象,也可以是普通整数
7.下列说法中错误的是(    )。          (满分:2)
    A. 不允许设置参数的默认值
    B. 设置参数的默认值只能在定义函数时设置
    C. 设置参数的默认值时,应该设置右边的参数
    D. 设置参数的默认值时,应该全部参数都设置
8.使用值传递方式将实参传给形参,下列说法不正确的是(    )。          (满分:2)
    A. 形参是实参的备份
    B. 实参是形参的备份
    C. 形参和实参是同一对象
    D. 形参和实参无联系
9.在下面的一维数组定义中,没有语法错误的是(    )。          (满分:2)
    A. inta[ ]={1,2,3}
    B. inta={0}
    C. inta[ ]
    D. inta
10.下列关于构造函数的描述中,正确的是(    )。          (满分:2)
    A. 构造函数可以设置默认参数
    B. 构造函数在定义类对象时自动执行
    C. 构造函数可以是内联函数
    D. 构造函数不可以重载



页: [1]
查看完整版本: 福师17秋《C++语言程序设计》在线作业一二