二级C++笔试-304-真题无答案_第1页
二级C++笔试-304-真题无答案_第2页
二级C++笔试-304-真题无答案_第3页
二级C++笔试-304-真题无答案_第4页
二级C++笔试-304-真题无答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C++笔试-304(总分100,做题时间90分钟)一、选择题

在下列各题的A)、B)、C)、D)选项中,只有一个选项是正确的。1.

下面内容不属于使用软件危机的是(

)。A

软件质量难以保证B

软件的成本不断提高C

软件需求增长缓慢D

软件不可维护或维护程度非常低2.

下列叙述中,正确的是(

)。A

while语句构成的循环不能用其他语句构成的循环来代替B

do-while语句构成的循环只能用break语句退出C

用while语句构成的循环,只有在while后的表达式为非0时才执行循环D

do-while语句构成的循环,只有在while后的表达式为0时才结束循环3.

以下程序执行后的输出结果是(

)。

#include<iostream.h>

classBasel

public:

voidfun()cout<<"Basel"<<end1;

;

classBase2

public:

voidfun()

cout<<"Base2"<<end1;

classDerived:publicBasel,publicBase2

;

voidmain()

DerivedObj;

Obj.fun();

A

BaselB

Base2C

BaselBase2D

程序产生二义性4.

有如下程序:

#include<iostream>

usingnamespacestd;

intgetSum(intnum);

intmain()

inti;

for(i=1;i<4;i++)

cout<<getSum(i);

return0;

intgetSum(inthum)

staticintsum=O;

sum+=num;

returnsum;

上述程序执行后的输出结果是(

)。A

136B

248C

123D

1355.

数据字典(DD)是定义以下哪种系统描述工具中的数据的工具(

)。A

数据流程图B

系统流程图C

程序流程图D

软件结构图6.

若有以下程序:

voidg(int**q)

(**q)++;

(*q)++;

voidmain()

intline[5];

int*p=line;

for(i=0;i<5;i++)

*p=i;

g(&P);

for(i=0;i<5;i++)

cout<<line[i];

cout<<end1;

该程序运行后的输出结果为(

)。A

12345B

01234C

11111D

555557.

以下各项说法中,正确的是(

)。A

当通过引用传递参数时,函数创建一个变量以存储参数的值B

当通过引用传递参数时,函数无法访问参数的值C

当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值D

当通过引用传递参数时,函数访问调用程序中参数的原始值8.

若有定义“intk,*q;”,则下列各选项中,赋值表达式正确的是(

)。A

q=(&k+1)B

q=&kC

q=kD

*q=&k9.

概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(

)。A

把软件划分成模块B

确定模块之间的调用关系C

确定各个模块的功能D

设计每个模块的伪代码10.

有如下程序:

#include<iostream>

usingnamespacestd;

classsample

private:

intx,y;

public:

sample(inti,intj)

x=i;

y=j;

voiddisp()

cout<<"displ"<<end1;

voiddisp()

const

cout<<"disp2"<<end1;

;

intmain()

constsamplea(i,2);

a.disp();

return0;

该程序运行后的输出结果是(

)。A

disp1B

disp2C

disp1disp2D

程序编译时出错11.

下面的程序段中,有(

)处错误和警告。

#include<stdio.h>

intmain()

intx;

cin>>x

cout<<x;

A

1B

2C

3D

412.

有以下程序:

#include<iostream>

usingnamespacestd;

intf1(intx,inty)

returnx>y?x:y;

intf2(intx,inty)

returnx>y?y:x;

intmain()

inta=4,b=3,c=5,d,e,f;

d=f1(a,b);

d=f1(d,c);

e=f2(a,b);

e=

f2(e,c);

f=a+b+c-d-e;

cout<<d<<","<<e<<","<<f<<end1;

return0;

执行后的输出结果是(

)。A

3,4,5B

5,3,4C

5,4,3D

3,5,413.

下列对派生类的描述中,错误的是(

)。A

一个派生类可以作为另一个派生类的基类B

派生类至少有一个基类C

派生类的默认继承方式是私有派生D

派生类只继承了基类的公有成员和保护成员14.

关于类型转换的说法中,错误的是(

)。A

如果a为血型变量,b为char型变量,则a+b的值为血型B

如果a为float型变量,b为int型变量,则a-b的值为float型C

如果a为double型变量,b为float型变量,则a*b的值为double型D

如果a为血型变量,b为血型变量,则a/(double)b的值为int型15.

下列关于栈的叙述中,不正确的是(

)。A

在栈中能插入数据B

在栈中能删除数据C

栈是先进先出的线性表D

栈是先进后出的线性表16.

下列各项特点中,属于线性表的顺序存储结构的是(

)。A

线性表中所有元素所占的存储空间是不连续的B

线性表的数据元素在存储空间中是随便存放的C

线性表中所有元素所占的存储空间是连续的D

前后件两个元素在存储空间是随便存放的17.

一个关系数据库文件中的各条记录(

)。A

前后顺序不能任意颠倒,一定要按照输入的顺序排列B

前后顺序可以任意颠倒,不影响库中数据的数据关系C

前后顺序可以任意颠倒,但排列/顷序不同,统计处理的结果就可能不同D

前后顺序不能任意颠倒,一定要按照关键词段值的顺序排列18.

对于输入输出,在设计和编程时都应该考虑的原则是(

)。A

对部分输入数据检验数据的合法性B

不允许默认值C

输入一批数据时,最好使用输入结束标志D

输入数据时,不允许使用自由格式19.

有以下程序:

#include<iostream>

usingnamespacestd;

intmain()

chars1[10],s2[10];

char

*p=s1,*q=s2;

cin>>s1>>s2;

while(*p!='\0')

p++;

while(*q!='\0')

*p++=*q++;

*p='\0';

cout<<s1<<end1;

return0;

A

abcd0ghijB

abcd0ghij0C

abcdD

abcdghij20.

对下列程序的描述中,正确的是(

)。

#include<iostream>

usingnamespacestd;

intFun(int,int);

intmain()

cout<<Fun(5,50)<<end1;

return0;

intFun(intx,inty)

returnx*x+y*y;

A

该函数定义正确,但函数调用方式错误B

该函数调用方式正确,但函数定义错误C

该函数的定义和调用方式都是正确的D

该函数的定义和调用方式都是错误的21.

以下程序执行结果是(

)。

#include<iostream.h>

classBase

public

virtualvoidfun()

cout<<"B";

;

classDerived

public:

Derived()

cout<<"D";

virtualvoidfun()

Base::fun();

cout<<"C";

intmain()

Base*ptr;

Derivedobj;

ptr=&obj;

p->fun();

return0;

A

DBCB

DCBC

BDCD

CBD22.

对待排序文件的初始状态不作任何要求的排序方法有(

)。A

直接插入和快速排序B

直接插入和归并排序C

归并和快速排序D

归并和直接选择排序23.

一个类的友元函数或友元类可以通过成员操作符访问该类的(

)。A

私有成员B

保护成员C

公有成员D

所有成员24.

下面对静态数据成员的描述中,正确的是(

)。A

静态数据成员可以在类体内进行初始化B

静态数据成员不可以通过类的对象调用C

静态数据成员不能受private(私有)控制符的作用D

静态数据成员可以直接通过类名调用25.

有以下程序:

#include<iostream>

usingnamespacestd;

classA

private:

intx,y;

public:

voidset(inti,intj)

x=i;

y=j;

intget_y()

returny;

;

classbox

private:

intlength,width;

Alabel;

public:

voidset(int1,intw,ints,intp)

length=1;

width=w;

label.set(s,p);

intget_area()

returnlength*width;

;

intmain()

boxsmall;

small.set(2,4,1,35);

cout<<small.get_area()<<end1;

return0;

运行后的输出结果是(

)。A

8B

4C

35D

7026.

若有以下程序

#include<iostream>

usingnamespacestd;

classA

public:

A(inti,intj)

a=i;

b=j;

voidmove(intx,inty)

a+=x;

b+=y;

voidshow()

cout<<a<<","<<b<<end1;

private:

int

a,b;

;

classB:

privateA

public:

B(inti,intj):A(i,j)

voidfun()

move(3,5);

voidf1()

A::show();

;

intmain()

Bd(3,4);

d.fun();

d.f1();

return0;

程序执行后的输出结果是(

)。A

3,4B

6,8C

6,9D

4,327.

下列各项中不属于算法基本特征的是(

)。A

可行性B

递归性C

确定性D

有穷性28.

执行语句序列

ofstreamoutfile("data.dat");

if(...)

cout<<"ok";elsecout<<"fail";

后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面if语句“...”处的表达是(

)。A

outfile.fail()或outfileB

outfile.good()或!outfileC

outfile.good()或outfileD

outfile.fail()或!outfile29.

下列描述中,(

)是抽象类的特性。A

可以说明虚函数B

可以进行构造函数重载C

可以定义友元函数D

不能说明其对象30.

下列关于链式存储的叙述中,正确的是(

)。A

链式存储结构的空间不可以是不连续的B

数据节点的存储顺序与数据元素之间的逻辑关系必须一致C

链式存储方式只可用于线性结构D

链式存储也可用于非线性结构二、填空题

请将每空的正确答案写在【1】~【15】序号的横线上。1.

对于长度为n的线性表,若进行顺序查找,则时间复杂度为

【1】

。2.

已知某序列为49,38,65,97,76,13,27,试采用该序列的第一个元素为枢轴进行快速排序,则经过一趟快速排序之后所得到的序列为:

【2】

。3.

软件生命周期一般可分为以下阶段:问题定义、可行性研究、

【3】

、设计、编码、

【4】

、运行与维护。4.

在选择运算所得到的结果关系中,所含的元组数不合

【5】

原关系中的元组数。5.

当输入10,11,12时,下面程序运行结果是

【6】

#include<iostream>

usingnamespacestd;

intmain()

int

a,b,c,max;

cin>>a>>b>>c;

max=a;

if(max<B)

max=b;

if(max<C)

max=c;

cout<<max<<end1;

return0;

6.

下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空完成此程序。

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

chara[]="changuage",t,m;

int

i,j,k;

k=strlen(A);

for(i=0;i<=k-2;i+=2)

m=i;

for(j=i+2;j<=k;

【7】

)

if(a[m]>a[j]

m=j;

if(

【8】

)

t=a[i];

a[i]=a[m];

a[m]=t;

cout<<a<<end1;

return0;

7.

阅读下面程序:

#include<iostream>

usingnamespacestd;

intfun(

inta,

intb)

intc;

c=a*b;

returnc;

intmain()

inta=3,

b=5,

c=4,

x=O;

x=fun(fun(a,

b),

c);

cout<<x<<end1;

return0;

其运行结果是

【9】

。8.

在C++语言中,每个类都有一个隐含的指针叫

【10】

指针。该指针指向

【11】

。9.

经常和一个运算符连用,构成一个运算符函数名的C++关键词是

【12】

。10.

若有以下程序:

#include<iostream>

usingnamespacestd;

template<classT>

Tmin(Tx,Ty)

if(x<y)

returnx;

else

returny;

intmain()

intn1=2,n2=10;

doubled1=1.5;d2=5.6;

cout<<min(n1,n2)<<",";

cout<<min(d2,d2)<<end1;

return0;

程序运行后的输出结果是

【13】

。11.

以下程序运行后的输出结果是

【14】

#include<iostream>

#include<string>

usingnamespacestd;

classY;

classX

intx;

char*strx;

public:

X(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论