计算机类二级C++

2013年9月全国计算机等级《二级C++》上机临考冲刺试卷(5)

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
有3个关系R、S和T如下表所示:
  
其中关系T由关系R和s通过某种操作得到,该操作为(  )。
查看答案
D. 并
2单选题2 / 43
下列关于this指针的叙述中,正确的是(  )。
查看答案
D. 类的非静态成员函数才有this指针
3单选题3 / 43
下列叙述中正确的是(  )。
查看答案
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
4单选题4 / 43
对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为(  )。
查看答案
A. 并运算
5单选题5 / 43
下列程序的输出结果是(  )。#include
voidmain()
(char*str="12123434";
intx1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!='\0';i++)
switch(str[i])
{case'1':x4++;
case'2':x3++;
case'3':x2++;
case'4':x1++;
}
cout<<x1<<","<<x2<:<","<<x3<
< ","<
}
查看答案
D. 8,6.4,2
6单选题6 / 43
有如下程序:
#include
usingnamespacestd;
voidfunction2(intn);
voidfunctionl(intn):{
if(n<=0)return;
function2(n-2);
}
voidfunction2(intn){
if(n<=O)return;
functionl(n-1);
}
intmain(){
functionl(5);
return0;
}
下列关于程序运行情况的描述中,正确的是(  )。
查看答案
D. functionl运行2次,function2运行2次
7单选题7 / 43
下列关于模板的描述中,错误的是(  )。
查看答案
D. 模板形参只能由关键字typename声明
8单选题8 / 43
以三级模式为框架形成的三种数据库中,真实存在于计算机外存的数据库是(  )。
查看答案
C. 物理数据库
9单选题9 / 43
实现运行时的多态性要使用(  )。
查看答案
D. 虚函数
10单选题10 / 43
在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是(  )。
查看答案
A. ios_base::cur
11单选题11 / 43
已知chara;intb;floatC;doubled;则表达式a*b+c-d的结果为(  )。
查看答案
A. double
12单选题12 / 43
下列关于运算符重载的描述中,错误的是(  )。
查看答案
A. 可以通过运算符重载在C++中创建新的运算符
13单选题13 / 43
设计数据库的存储结构属于(  )。
查看答案
D. 物理设计
14单选题14 / 43
下列关于虚函数的描述中,正确的是(  )。
查看答案
C. 基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明
15单选题15 / 43
下列叙述中正确的是(  )。
查看答案
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
16单选题16 / 43
下列关于运算符重载的描述中,错误的是(  )。
查看答案
A. 可以通过运算符重载在C++中创建新的运算符
17单选题17 / 43
下列关于构造函数的描述中,错误的是(  )。
查看答案
B. 构造函数可以有返回值
18单选题18 / 43
有三个关系R、S和T如下:
  
则由关系R和S得到关系T的操作是(  )。
查看答案
C. 除
19单选题19 / 43
如有以下程序:
#include(iostream>
usingnamespacestd;
longfun(intn)
{
if(n)2)
return(fun(n-1)+fun(n-2));
else
return2;
}
intmain(  )
{
cout<<fun(3)<
return0;
}
则该程序的输出结果应该是(  )。
查看答案
C. 4
20单选题20 / 43
下列选项中正确的语句是(  )。
查看答案
D. char*S;s="BOOK!";
21单选题21 / 43
变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000,若要求将a的高4位取反,低4位不变,所要执行的运算是(  )。
查看答案
A. a*b
22单选题22 / 43
对于循环队列,下列叙述中正确的是(  )。
查看答案
D. 队头指针可以大于队尾指针,也可以小于队尾指针
23单选题23 / 43
已知一函数的形参说明为intarr[5][6],则与此等效的形参说明为(  )。
查看答案
D. int(*a)[6]
24单选题24 / 43
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(  )。
查看答案
A. 控制流
25单选题25 / 43
设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择存储类别是(  )。
查看答案
C. static
26单选题26 / 43
派生类对象对其基类中的什么成员是可访问的?(  )
查看答案
B. 私有继承的公有成员
27单选题27 / 43
下列关于关系运算的叙述中正确的是(  )。
查看答案
C. 投影、选择、连接是从二维表的列的方向来进行运算
28单选题28 / 43
有如下类声明:
classXA{
intx:
public:
XA(intn){x=n;}
};
classXB:publicXA{
inty;
oublic:
XB(inta,intb);
};
在构造函数XB的下列定义中,正确的是(  )。
查看答案
B. XB::XB(inta,intb):XA(a),y(b){}
29单选题29 / 43
打开文件时可单独或组合使用下列文件打开模式:
①ios_base::aop
②ios_base::binary
③ios_base::
④ios_base::out
若要以二进制读方式打开一个文件,需使用的文件打开模式为(  )。
查看答案
D. ②④
30单选题30 / 43
下列程序的运行结果是(  )。
#include
classA
{
inta;
public:
A(){a=0;}
A(){intaa}
{a=aa;
cout<
}
};
voidmain()
{
Ax,y(2),z(3);
cout<
}
查看答案
B. 23
31单选题31 / 43
实体是信息世界中广泛使用的一个术语,它用于表示(  )。
查看答案
C. 实际存在的事物
32单选题32 / 43
可以用P.a的形式访问派生类对象P的基类成员a,其中a是(  )。
查看答案
D. 公有继承的公有成员
33单选题33 / 43
有如下程序:
#include
usingnamespacestd;
classBase{
public:
Base(intx=O){cout<<x;}
};
classDerived:publicBase{
public:
Derived(intx=O){cout<<="" p="">
private:
Baseval;
};
intmain(){
Derivedd(1);
return0;
}
程序执行后的输出结果是(  )。
查看答案
D. 001
34单选题34 / 43
下列程序的执行结果是(  )。
#include(iostream.h>
#include
classTestClass
{
public:
intX,y;
TestClass(  ){x=y=0;}
TestClass(inta,intb){x=a;y=b;}
voiddisp(  )
{
cout<<"x="<<x<<",y="<y<
}
};
voidmain(  )
{
TestClasss1(2,3);
s1.disp(  );
}
查看答案
B. x=2,y=3
35单选题35 / 43
算法的有穷性是指(  )。
查看答案
A. 算法程序的运行时间是有限的
36单选题36 / 43
类MyClass的定义如下:
classMvClass
{
public:
MyClass(){value=0;}
SetVariable(inti){value=i;}
private:
intvalue;
};
则对下列语句序列正确的描述是(  )。
查看答案
D. 语句p->SetVariable(5)与语句my.SetVariable(5)等价
37单选题37 / 43
下面排序算法中,平均排序速度最快的是(  )。
查看答案
D. 堆排序法
38单选题38 / 43
一个教师可讲多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是:(  )。
查看答案
D. m:n联系
39单选题39 / 43
下列选项中正确的语句是(  )。
查看答案
D. char*S;s="BOOK!";
40单选题40 / 43
下列关于继承方式的描述中,错误的是(  )。
查看答案
D. 采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员
41主观题41 / 43
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在
//******error******的下面。
试题程序:
#include
#include
//********error********
usingstd;
voidWriteFile(char*s)
{
ofstreamout1;
//********error********
out1.open("1.txt",binary|app);
for(inti=0;s[i]!=0;i++)
{
//********error********
out1.puts(s[i]);
}
out1.close();
}
voidClearFile()
{
ofstreamout1;
out1.open("1.txt");
out1.close();
}
intmain()
{
chars[1024];
ClearFile();
cout<<"pleaseinputastrin9:"<
cin.getline(s,1024);
WriteFile(s);
return0;
}
查看答案
(1)应改为“usinGnAmEspACEstD;”。
(2)应改为“outl.opEn("1.txt",ios::BinAry|ios::App);”。
(3)应改为“out1.put(s[i]);”。
42主观题42 / 43
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*S,inta[]),其功能是把字符串S中的数字提取出来存储在a[]中,然后返回数字的个数。
例如s="1234abcdef567",则a[]中存储着1234567,返回7。
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include(iostream.h>
intfun(char*s,inta[])
{
}
intmain()
{
inta[1024];
intlen=fun("1234abedef567",a);
for(inti=0;i<len;i++)
{
COUt<<a[i]<<'';
}
cout<
cout<<i<
return0;
}
查看答案
intj=0; For(inti=0;
s[i]!=0;i++)//字符串内循环
{
iF(s[i]>='0'&&s#i#<='9')//判断字符是否为0~9的字符
A#j++#=s[i]-'0';//如果为0~9的字符,转换为整型
}
}
rEturnj;
//返回数字个数
43主观题43 / 43
(1)“while()”应改为“while(infile.get(ch))”。
(2)应添加“bur[len++]=ch;bur[len]=ch;len++;”。
(3)应添加“outfile2<<bur[i++];”或“outfile2<
(4)“TCobj();”应改为“TCobi("in.txt");”。
查看答案
使用VC++6.0打开源程序文件3.Cpp。其中类TC用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将in.txt文件中的内容输出到 屏幕,并且将文件按照以上方式分割,存于文件out1.txt和out2.txt中。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。(1)从输入文件中获得一个字符,并判断是否到文件结 尾,如果到文件结尾,则退出循环。请在注释1后添加适当的语句。 (2)把获得的输入文件的内容存储到Bur中,并且用lEn记录下文件的长度。请在注释2后添加适当的语句。 (3)将输入文件的后一半内容存储在第二个文件中,请 在注释3后添加适当的语句。(4)使用文件流对象打开输入文件in.txt,请在注释4后添加适当的语句。 注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 试题程序:
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h)
classTC
{
public:
TC(char*fileName)
{
len=0;
fstreaminfile;
infile.open(fileName,ios::in);
charch; //********1********while()
{
cout<<ch;
//********2********}infile.close();
}
voidsplit(){fstreamoutfilel;
fstreamoutfile2;
outfile1.open("out1.txt",ios::out);
outfile2.open("out2.txt",ios::out);
inti=0: for(i=0;i<len/2;
i++){outfilel<<buf[i];
}
do
{
//********3********}while(i!=len); outfilel.close(); outfile2.close(); }prwate: intlen; charbuf[1024]; }; voidmain(){//********4********TCobj(); obj.split(); return; }
← 上一卷下一卷 →