2017年计算机二级考试C++模拟试题1
-
以下程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*2<1+2,故不输出该数:对于27,有2*7>2+7,故输出该数。请填空。
#include<iostream.h>
void main()
{
int n,k=1,s=o,m;
for (n=1:n<=100:n++=
{
k=1;s=0;
_____,
while( )
{
k*=m%10;s+=m%10;
(3) ;
-
插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。
class InsertSort{
public:
InsertSort(int* a0,int n0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数
void sort()
{//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]
for(int i=1;i<n;++i){
int t=a[i];
int j;
for(【 】;j>0;--j){
if(t>=a[j-1])break;
a[j]=a[j-1];}
a[j]==t;}}
protected:
int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数
};
-
下面程序中错误之处是 ______。
#include<iostream.h>
class A{
private:
int xl;
protected:
int x2;
public:
int x3;
};
class B: public A{
private:
int b1;
protected:
int b2;
public:
int b3;
void disp(){cout<<x1<<b2<<end1;} //A
void set(int i){x3=i;} //B
};
void main()
B bb;
bb. a3=10 //C
bb. b3=10 //D
}
-
若将一个二元运算符重载为类的成员函数,其形参个数应该是______个。
-
下列叙述中正确的是
- A.数据库系统是一个独立的系统,不需要操作系统的支持
- B.数据库技术的根本目的是解决数据的共享问题
- C.数据库管理系统就是数据库系统
- D.以上3种说法都不对
-
对于拷贝构造函数和赋值操作的关系,正确的是
- A.拷贝构造函数和赋值操作是完全一样的操作
- B.进行赋值操作时,会调用类的构造函数
- C.当调用拷贝构造函数时,类的对象正在被建立并被初始化
- D.拷贝构造函数和赋值操作不能在同一个类中被同时定义
-
在一个派生类的成员函数中,试图调用其基类的成员函数“void f( );”,但无法通过编译,这说明
- A.f( )是基类的私有成员
- B.f( )是基类的保护成员
- C.派生类的继承方式为私有
- D.派生类的继承方式为保护
-
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
- A.编译程序
- B.操作系统
- C.教务管理系统
- D.汇编程序
-
关于成员函数特征的下述描述中,( )是错误的。
- A.成员函数一定是内联函数
- B.成员函数可以重载
- C.成员函数可以设置参数的默认值
- D.成员函数可以是静态的
-
继承机制的作用是
- A.信息隐藏
- B.数据封装
- C.定义新类
- D.数据抽象
-
以下函数值的类型是
fun(float x)
{float y;
y=3*x-4;
return y;
}
- A.int
- B.不确定
- C.void
- D.float
-
在结构化程序设计中,模块划分的原则是
- A.各模块应包括尽量多的功能
- B.各模块的规模应尽量大
- C.各模块之间的联系应尽量紧密
- D.模块内具有高内聚度、模块间具有低耦合度
-
假定MyClass为一个类,则执行MyClassa,b(2),*p;语句时,自动调用该类构造函数( )次。
- A.2
- B.3
- C.4
- D.5
-
下列( )是C++语言的有效标识符。
- A.Nol
- B.N0.1
- C.12345
- D.int
-
在一个被调用函数中,关于rerun语句的描述,______ 是错误的。
- A.被调用函数中可以不用return 语句
- B.被调用函数中可以使用多个return 语句
- C.被调用函数中,如果有返回值,就一定要有return 语句
- D.被调用函数中,一个return 语句可以返回多个值给调用函数
-
有如下程序:
#include
usingnamespacestd;
classTest(
public:
Test( ){}
Test(constTest8Lt){cout<<1;}
};
Testfun(Test&u){Testt=U;returnt;}
intmain( ){Testx,y;x=fun(y);return0;}
运行这个程序的输出结果是( )。
- A.无输出
- B.1
- C.1l
- D.111
-
下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。
- A.int f(int n){ if(n<1) return 1; else return n*f(n+1); }
- B.int f(int n){ if(n>1) return 1; else return n*f(n-1); }
- C.int f(int n){ if(abs(n)<1) return 1; else return n*f(n/2); }
- D.int f(int n){ if(n>1) return 1; else return n*f(n*2); }
-
为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。
- A.public
- B.protected
- C.static
- D.private
-
下列运算符中哪些是不能够被重载的?
- A..,.*,->*,::,?:
- B.++,--,new,delete,==
- C.sizeof,new,delete,++,--
- D.sizeof,new,delete,+,-
-
C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言
- A.ASP
- B.C
- C.VB
- D.Java
-
下面关于C++语言变量的叙述错误的是( )。
- A.C++语言中变量分为auto,static,extern和register四种存储类型
- B.自动变量和外部变量的作用域为整个程序
- C.内部静态变量的作用域是定义它的函数
- D.外部静态变量的作用域是定义它的文件
-
下列叙述中错误的是( )。
- A.线性表是由n个元素组成的一个有限序列
- B.线性表是一种线性结构
- C.线性表的所有结点有且仅有一个前件和后件
- D.线性表可以是空表
-
关于this指针的说法错误的是( )。
- A.this指针必须显示说明
- B.当创建一个对象后,this指针就指向该对象
- C.成员函数拥有this指针
- D.静态成员函数不拥有this指针
-
用黑盒技术测试用例的方法之一为( )。
- A.因果图
- B.逻辑覆盖
- C.循环覆盖
- D.基本路径测试
-
在C++语言类体系中,不能被派生类继承的有
- A.转换函数
- B.构造函数
- C.虚函数
- D.静态成员函数
-
下列关于多态性的描述,错误的是
- A.C++语言中的多态性分为编译时的多态性和运行时的多态性
- B.编译时的多态性可通过函数重载实现
- C.运行时的多态性可通过模板和虚函数实现
- D.实现运行时多态性的机制称为动态绑定
-
一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。
- A.38,40,46,56,79,84
- B.40,38,46,79,56,84
- C.40,38,46,56,79,84
- D.40,38,46,84,56,79
-
下列程序的运行结果为
#include<iostream.h>
int i=0;
class A {
public:
- A( ) {i++;} }; void main( ) {
- A a,b [3] , * c;
- c=b;
- cout < < i < < endl; }
- A.2
- B.3
- C.4
- D.5