试卷详情
-
二级C++笔试320
-
[单项选择]有如下程序
main( )
{int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++)n[i]=n[i]+1;
cout<<n[k]<<endl;
}
该程序的输出结果是
A. 不定值
B. 2
C. 1
D. 0
-
[填空题]下列程序的运行结果是______。
#include<iostream.h>
class Base
{
public:
void f(int x){cout<<"Base:"<<x<<endl;}
};
class Derived:public Base
{
public:
void f(char*str){cout<<"Derived:"<<str<<endl;)
};
void main(void)
{
Base*pd=new Base;
pd=new Derived;
pd->f(’a’);
}
-
[单项选择]下列不能作为类的成员的是
A. 自身类对象的指针
B. 自身类对象
C. 数组
D. 另一个类的对象
-
[单项选择]下面说法正确的是
A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C. 类的内联函数必须在类体内定义
D. 类的内联函数必须在类体外通过加关键字inline定义
-
[单项选择]要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用
A. 重载函数
B. 内联函数
C. 静态函数
D. 虚函数
-
[单项选择]下列关于虚函数与函数重载区别的叙述中不正确的是
A. 函数说明形式上不同
B. 函数重载允许是非成员函数,虚函数只能是成员函数
C. 函数重载的调用依据参数和类型的差别,虚函数则依据对象
D. 函数重载的本体可以在类外定义,虚函数不可以
-
[单项选择]在下列关系运算中,可能改变关系中属性个数的是
A. 并
B. 差
C. 投影
D. 交
-
[填空题]下列程序的执行结果为________。
#include<iostream.h>
class Point
{
public:
Point(double i,double j){x=i;y=j;}
double Area( )const{return 0.0;}
private:
double x,y;
};
class Rectangle:public Point
{
public:
Rectangle(double i,double J,double k,double 1);
double Area( )const(return w*h;}
private:
double w,h;
};
Rectangle::Rectangle(double i,double j,double k,double 1):Point(i,j)
{
w=k;h=l;
}
void fun(Point&s)
{
cout<<s.Area( )<<endl;
}
void main( )
{
Rectangle rec(3.0,5.2,15.0,25.0);
fun(rec);
}
-
[单项选择]在深度为6的满二叉树中,叶子结点的个数为
A. 64
B. 63
C. 32
D. 31
-
[填空题]在C++流类库中,根基类为______。
-
[单项选择]将7个数据进行插入排序,在最坏情况下需要比较的次数是
A. 42
B. 6
C. 7
D. 21
-
[单项选择]下列能对对象进行初始化的是
A. 构造函数
B. 析构函数
C. 友元函数
D. 静态成员函数
-
[单项选择]对于拷贝构造函数和赋值操作的关系,正确的是
A. 拷贝构造函数和赋值操作是完全一样的操作
B. 进行赋值操作时,会调用类的构造函数
C. 当调用拷贝构造函数时,类的对象正在被建立并被初始化
D. 拷贝构造函数和赋值操作不能在同一个类中被同时定义
-
[填空题]下列程序用于将源文件中的字母进行大小写转换,while的条件是______。
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
void main( )
{
char ch;
fstream filel,file2;
char fnl[10],fn2[10];
cout<<"输入源文件名:";
cin>>fn1;
cout<<"输入目标文件名:";
cin>>fn2;
filel.open(fnl,ios::in);
file2.open(fn2,ios::out);
while(______)
{
if(ch>=’a’&&ch<=’z’)
ch=ch=’a’+’A’;
file2.put(ch);
}
filel.close( );
file2.close( );
}
-
[单项选择]下列叙述中正确的是
A. 软件测试的主要目的是确定程序中错误的位置
B. 软件调试的主要目的是发现程序中错误的类型
C. 程序经调试后还应进行测试
D. 软件的测试与调试工作最好都由程序编制者来完成
-
[填空题]结构化分析方法是面向______进行分析的方法。
-
[单项选择]下列描述中正确的是
A. 类中可以定义与类名相同的数据成员
B. 直接子类中可以定义与父类名相同的数据成员
C. 孙子类中可以定义与爷爷类名相同的数据成员。
D. 类的所有子孙中都不可以定义与该类同名的数据成员。
-
[填空题]若需要定义一个标识符常量,并且使得C++能够进行类型检查,则应在定义语句的开始使用保留字______。
-
[填空题]假定用户没有给一个名字为Sampie的类定义构造函数,则系统为其隐含定义的构造函数为______。
-
[单项选择]关于常成员函数,下列说法中错误的是
A. 常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量
B. 常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员
C. 常成员函数既可以被常对象调用,也可以被一般对象调用
D. 常成员函数不仅要在声明中用到const修饰符,在定义时也必须使用const修饰符
-
[单项选择]控制格式输入/输出的操作子中,设置域宽的函数是
A. ws
B. oct
C. setfill(in
D. setw(in
-
[单项选择]数据库概念设计中,由分散到集中的设计方法是
A. 视图设计
B. 视图集成设计
C. 集中式模式设计
D. 分散式模式设计
-
[单项选择]下列数据结构中按“先进先出”原则组织数据的是
A. 线性表
B. 循环队列
C. 循环链表
D. 双向链表
-
[填空题]下列程序的执行结果为______。
#include<iostream.h>
class Myclass
{
public:
void GetSum(int a);
static int Sum;
prtvate:
int A;
};
int Myclass::Sum=10;//必须在类外部对静态数据成员初始化
void Myclass::GetSum(int a)
{
A=a;
Sum+=A:
}
vold PrintSum(Myclass& A)
{
cout<<"Sum="<<A. Sum<<endl;
}
void main( )
{
Myclass M,N;
M.GetSum(3);
N.GetSum(7);
PrintSum(M);
}
-
[单项选择]请阅读以下程序
main( )
{
int x=1,y=0,a=0,b=0;
switch(x)
case 1:
switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:
a++;b++;break;
}
cout<<"a="<<a<<"b="<<b<<endl;
}
上面程序的输出结果是
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
-
[单项选择]执行下列语句后,输出结果为steven的是
char*str="steven";
eout.write(str, );
A. strlen(st
B. sizeof(st
C. strlen(str+1)
D. sizeof(str-1)
-
[单项选择]下列关于虚基类的描述中错误的是
A. 虚基类子对象的初始化由最派生类完成
B. 虚基类子对象的初始化次数与虚基类下面的派生类个数有关
C. 设置虚基类的目的是消除二义性
D. 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用
-
[单项选择]以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出:
main( )
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{
for(k=1;k<=4;k++)
{
cin>>score;
sum+=score;
}
ave=sum/4.0;
cout<<"NO"<<n<<":"<<ave<<endl;
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是
A. sum=0.0
B. sum+=score
C. ave=sun/4.0
D. cout<<"N0"<<n<<":"<<ave<<endl;
-
[单项选择]解决类继承中产生的二义性的方法不包括
A. 使用作用域运算符限定访问的成员函数
B. 在派生类中定义同名函数,且参数表必须和基类的保持一致
C. 在派生类中定义同名函数,且参数表可以和基类的不同
D. 采用虚基类解决多重继承中的共同基类产生的二义性
-
[填空题]以下程序的执行结果是______。
#inelude<iostream.h>
class Sample
{
public:
int x;
int y;
void disp( )
{
cout<<"x="<<x<<",y="<<y<<endl;
}
};
void main( )
{
int Sample::*pc;
Sample s;
pc=&Sample::x;
s.*pc=10;
pc=&Sample::y;
s.*pc=20;
s.disp( );
}
-
[单项选择]设置虚基类的目的是
A. 简化程序
B. 消除二义性
C. 提高程序运行效率
D. 减少目标代码
-
[单项选择]已知一个运行正常的程序中有下面两个语句:
int*p1,p2&a;
p1=b;
由此可知,变量a和b的类型分别是
A. int和int
B. int*和int
C. int和int*
D. int*和int*
-
[填空题]在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较______次。
-
[单项选择]设有char str[80];以下不能将输入数据first/nsecond/n<CR>读取到数组str中的语句是
A. ciget(str,strlen(st);
B. cigetline(str,strlen(st);
C. cin>>str;
D. ciread(str,strlen(st);
-
[单项选择]以下程序的输出结果是
main( )
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0)break;
else i - -;
}
i+=11;a+=i;
}
cout<<a<<endl;
}
A. 21
B. 32
C. 33
D. 11
-
[单项选择]在某类的公共部分有声明string operator++( );和string operator++(int);则说明
A. string operator++( );是前置自增运算符声明
B. string( )perator++( );是后置自增运算符声明
C. string operator++(in;是前置自增运算符声明
D. 两条语句无区别
-
[单项选择]下面描述中体现了抽象类特性的语句是
A. 可以说明虚函数
B. 可以进行构造函数重载
C. 可以定义友元函数
D. 不能定义对象
-
[填空题]数据库技术的主要特点为______,具有较高的数据和程序的独立性以及对数据实行集中统一的控制。
-
[单项选择]一个类的友元函数能够访问该类的
A. 私有成员
B. 保护成员
C. 公用成员
D. 所有成员
-
[单项选择]执行语句序列
ofstream outfile(“DATE.DAT”);
if(…)cout<<"OK"; else cout<<"FAIL"后,如果文件打开成功,显示“OK”,否则显示"FAIL"。由此可知,上面if语句…处的表达式是:
A. outfilfail( )或outfile
B. outfilgood( )或outfile
C. outfilgood( )或!outfile
D. outfilfail( )或!out file
-
[单项选择]面向对象的开发方法中,类与对象的关系是
A. 具体与抽象
B. 抽象与具体
C. 整体与部分
D. 部分与整体
-
[填空题]对n个元素的序列进行冒泡排序时,最少的比较次数是______。
-
[填空题]在派生类中,对类对象成员,基类成员和非类对象成员的初始化程序是______。
-
[单项选择]已知类X成功地重载了- -、+、=、[ ]这几个运算符。则其中肯定属于成员函数的运算符是:
A. 前置- -和[ ]
B. =和[ ]
C. [ ]和后置- -
D. +和=
-
[填空题]继承使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,提高了软件的______。
-
[单项选择]下列关于软件设计基本原理的叙述中错误的是
A. 信息隐蔽是指在一个模块内的信息要使所有的模块都能访问得到
B. 模块的独立程度是评价软件设计好坏的重要标准
C. 耦合性用于衡量软件的模块独立性
D. 内聚性用于衡量软件的模块独立性
-
[单项选择]以下说法中错误的是
A. strcpy(A,函数是将A字符串的内容复制到B字符串中
B. strlen(cha*返回字符串S的长度,未尾的字符不计算在内
C. char a[20]="string";中字符串长度为6
D. strstr(S1,S2)函数在字符串S1中从左边开始查找字符串S2,若查找成功则返回S2在S1中首次出现的位置,否则返回NULL,如果S2为"",则返回S1。
-
[填空题]逻辑表达式x>3&&x<10的相反表达式为______。