二级C语言考试模拟.docx

上传人:b****5 文档编号:28118299 上传时间:2023-07-08 格式:DOCX 页数:31 大小:40.08KB
下载 相关 举报
二级C语言考试模拟.docx_第1页
第1页 / 共31页
二级C语言考试模拟.docx_第2页
第2页 / 共31页
二级C语言考试模拟.docx_第3页
第3页 / 共31页
二级C语言考试模拟.docx_第4页
第4页 / 共31页
二级C语言考试模拟.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

二级C语言考试模拟.docx

《二级C语言考试模拟.docx》由会员分享,可在线阅读,更多相关《二级C语言考试模拟.docx(31页珍藏版)》请在冰豆网上搜索。

二级C语言考试模拟.docx

二级C语言考试模拟

(考试时间120分钟,满分100分)

一、选择题(每小题1分,共40小题,共40分)

1.下列叙述正确的是(  )。

A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

2.下列叙述中正确的是(  )。

A.软件测试应该由程序开发者来完成

B.程序经调试后一般不需要再测试

C.软件维护只包括对程序代码的维护

D.以上三种说法都不对

3.源程序的文档化不包括(  )。

A.符号名的命名要有实际意义

B.正确的文档形式

C.良好的视觉组织

D.正确的程序注释

4.下列叙述中错误的是(  )。

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据的处理效率无关

C.数据的存储结构与数据的处理效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

5.下列叙述中正确的是(  )。

A.在模块化程序设计中,一个模块应该尽量多地包括与其他模块联系的信息

B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节

C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

6.设有如下三个关系表:

下列操作中正确的是(  )。

A.T=R∩S

B.T=R∪S

C.T=R×S

D.T=R/S

7.将E-R图转换到关系模式时,实体与联系都可以表示成(  )。

A.属性

B.关系

C.键

D.域

8.设有两个字符串p和q,求q在p中首次出现位置的运算称为(  )。

A.连接

B.模式匹配

C.求子串

D.求串长

9,在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )来实现。

A.调用语句

B.命令

C.中令

D.消息

10.设计数据库的存储结构属于(  )。

A.需求分析

B.概念设计

C.逻辑设计

D.物理设计

11.下列关于运行符重载的描述中,正确的是(  )。

A.运算符重载可以改变操作数的个数

B.运算符重载可以改变操作数的优先级

C.运算符重载可以改变运算符的结合性

D.运算符重载可以使运算符实现特殊功能

12.当需要将一个函数boolisnunlber(charc)声明为内联函数时,此内联函数的函数原型为(  )。

A.enumboolisnumber(charc);

B.defineboolisnumber(charc);

C.inlineboolisnumber(charc);

D.extemboolisnumber(charc);

13.有如下数组声明:

intnum[10】;,下标值引用错误的是(  )。

A.num[10]

B.num[5]

C.num[3]

D.num[0]

14.对于复制构造函数和赋值操作的关系,正确的是(  )。

A.复制构造函数和赋值操作是完全一样的操作

B.进行赋值操作时,会调用类的构造函数

C.当调用复制构造函数时,类的对象正在被建立并被初始化

D.复制构造函数和赋值操作不能在同一个类中被同时定义

15.有如下函数模板声明:

template

TMax(Ta,Tb){return(a>b)?

a:

b;}

下列对函数模板Max(  )的调用中错误的是(  )。

A.Max(3.5,4.5)

B.Max(3.5,4)

C.Max(35,4.5)

D.Max(3.5,4)

16.关于continue语句叙述不正确的是(  )。

A.continue语句用于循环体中,结束循环

B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断

C.continue可以用于if语句中

D.continue语句不能代替break语句

17.若有说明:

inta[3][4];则对a数组元素的非法引用是(  )。

A.a[0][2*1]

B.a[1][3]

C.a[4-2][0]

D.a[0][4]

18.下列关于虚函数与函数重载区别的叙述中不正确的是(  )。

A.函数说明形式上不同

B.函数允许非成员函数重载,虚函数只能是成员函数

C.函数重载的调用依据参数和类型的差别,虚函数则依据对象

D.函数重载的本体可以在类外定义,虚函数不可以

19.控制格式输入/输出的操作中,设置域宽的函数是(  )。

A.WS

B.oct

C.setfill(int)

D.setw(int)

20.继承机制的作用是(  )。

A.信息隐藏

B.数据封装

C.定义新类

D.数据抽象

21.下列关于this指针的叙述中,正确的是(  )。

A.任何与类相关的函数都有this指针

B.类的成员函数都有this指针

C.类的友元函数都有this指针

D.类的非静态成员函数才有this指针

22.下面关于C++流的叙述中,正确的是(  )。

A.cin是一个输入流对象

B.可以用ifstream定义一个输出流对象

C.执行语句序列char*y="PQMN";cout<

D.执行语句序列charx[80];cin.getline(x,80);时,若输入Happynewyear,则X中的字符串是“Happy”

23.有如下程序:

#included

usingnamespacestd;

classTestClass{

protected:

TestClass(  ){cout<<'X';}

TestClass(charc){cout<

classTestClassl:

publicTestClass{

public:

TestClassl(charc){cout<

intmain(  ){

TestClassld1('y');

return0;}

执行这个程序,屏幕上将显示输出(  )。

A.y

B.yx

C.xy

D.yy

24.下列虚基类的声明中正确的是(  )。

A.clasSvirtualB:

publicA

B.virtualclassB:

publicA

C.classB:

publieAvirtual

D.classB:

virtualpublicA

25.下列程序的执行结果是(  )。

#include

classSample

{

intx,y;

public:

Sample(){x=y=0;}

Sample(inta,intb){x=a;y=b;}

~Sample()

{

if(x==y)

cout<<"x=y"<

else

cout<<"x!

=y"<

}

voiddisp()

{

cout<<"x="<

};

voidmain()

{

Samples1(2,3);

s1.disp();

}

A.x=2,y=2

B.x=3,y=3

C.x=2,y=3

D.x=3,y=2

26.下面程序的运行结果为(  )。

#include

voidmain()

{

chara='3':

switch(a)

{

case'3':

cout<<"3";

case'2':

cout<<"2";break;

default:

cout<<"1";

}

}

A.3

B.321

C.31

D.32

27.有如下程序:

#inelude

usingnamespacestd;

classTest

{

public:

Test(){n+=2;}

~Test(){n-=3;}

staticintgetNum(){returnn;}

private:

staticintn;

};

intTest:

n=1;

intmain()

Test*P=newTest:

deleteP;

cout<<"n="<

getNum()<

return0;

}

执行后的输出结果是(  )。

A.n=0

B.n=1

C.n=2

D.n=3

28.若有以下程序:

#include

usingnamespacestd;

classBase

{public:

Base()

{x=0;}

intx;};

classDerivedl:

virtualpublicBase

{public:

Derivedl()

{x=10;}};

classDerived2:

virtua11publicBase

{public:

Derived2()

{x=20;}};

classDerived:

publicDerivedl,protectedDerived2{};intmain()

{Derivedobj;

cout<

return0;}

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

A.20

B.30

C.10

D.0

29.下列程序的输出结果是(  )。

#included

usingnamespacestd;

intmain()

{

chara[]="Hell0,Test";

char*p=a;

while(*p)

{

if(*p>='a'&&*p<='z')

cout<

elsecout<<*P;

p++;

}

return0;

}

A.hell0,testB.Hell0,Test

C.HELL0,TESTD.hELL0,tEST

30:

有如下程序:

#included

usingnamespacestd;

classTestClass

{

private:

intx,Y;

public:

TestClass(inti,intj)

{

x=i:

y=j;

}

voidprint()

{

cout<<"printl"<

}

voidprint()const

{

cout<<"print2"<

}

};

intmain()

{

constTestClassa(1,2);

a.print();

return0;

}

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

A.printl

B.print2

C.printlprint2

D.程序编译时出错

31.下面程序的运行结果是(  )。

#include

classbase{

protected:

inta;

public:

base(){cout<<"0";}

};

classbasel:

virtualbase{

public:

basel(){cout<<"1";}

};

classbase2:

virtualbase{

public:

base2(){cout<<"2";}

};

classderived:

publicbasel,publicbase2{

public:

derived(){cout<<"3";}

};

voidmain()

{

derivedobj;

cout<

}

A.0123

B.3120

C.0312

D.3012

32.下列程序的运行结果为(  )。

#include

template

classFF

{TTa1,a2,a3;

public:

FF(TTb1,TTb2,TTb3){a1=b1;a2=b2;a3=b3;}

TTSum(){returna1+a2+a3;}};

voidmain()

{FFx(int(1.1),2,3),y(int(4.2),5,6);

cout<

A.6.115.2

B.615

C.615.2

D.6.115

33.下面程序的运行结果为(  )。

#include

voidswap(int&a,intb)

{

inttemp;

temp=a++;

a=b:

b=temp:

}

voidmain()

{

inta=2,b=3;

swap(a,b);

cout<

}

A.2,3

B.3,2

C.2,2

D.3,3

34.以下程序的输出结果是(  )。

min(  )

{

inti=0,a=0;

while(i<20)

{

for(;;)

{

if((i%10)==0)break;

elsei--:

}

i+=11;a+=i;

}

cout<

}

A.21B.32

C.33D.11

35.有如下类声明:

classXA(

intX;

public:

XA(intn){x=n;}

};

classXB:

publicXA{

inty;

public:

XB(inta,intb);

];

在构造函数XB的下列定义中,正确的是(  )。

A.XB:

XB(inta,intb):

x(a),y(b){)

B.XB:

XB(inta,intb):

XA(a),y(b){)

C.XB:

XB(inta,intb):

x(a),XB(b)(}

D.XB:

XB(inta,intb):

XA(a),XB(b){)

36.有下列程序:

#include

voidmain()

{char*a[]={"abcd","ef","gh","ijk");inti;

for(i=0;i<4;i++)printf("%C",*a[i]);

}

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

A.aegi

B.dfhk

C.abcd

D.abcdefghijk

37.若已定义

inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;

则对数组元素不正确的引用是(  )。

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))

38.对于语句“cout<

(2)<<2;”的输出结果是(  )。

A.*********1*2

B.********12

C.*******1*2

D.12********

39.有以下程序:

#include

usingnamespacestd;

classA{

public:

A(){cout<<"A";}

};

classB{public:

B(){cout<<"B";}};

classC:

publicA{

Bb;

public:

C(){cout<<"C";}

};

intmain(){Cobj;return0;}

执行后的输出结果是(  )。

A.CBA

B.BAC

C.ACB

D.ABC

40.下列程序的运行结果是(  )。

#include

intx=5;

intfun(inta)

{

intc:

c=X*a:

returnC;

}

voidmain()

{

intx=3,a=4;

x=x+fun(a);

cout<<"x="<

}

A.x=15

B.x=17

C.x=23

D.x=25

二、程序改错题(18分)

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为

Number=7

Number=12

注意:

错误的语句在//******error******的下面,修改该语句即可。

试题程序:

#include

classTC

{

public:

//******error******

TC(inti):

Number=i

{

//******error******

returnNumber;

}

voidset(inti)

{

Number=i;

}

voiddisplay()

{

cout<<"Number="<

}

private:

intNumber;

};

voidmain()

{

//******error******

TC*p=newTC;

p->display();

p->set(12);

p->display();

return;

}

三、简单应用题(24分)

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。

阅读下列函数说明和代码,补充空出的代码。

函数sum(intn)用于计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。

注意:

不能修改程序的其他部分,只能补充sum函数。

试题程序:

#include

doublesum(intn)

{

}

voidmain()

{

cout<

cout<

cout<

return;

}

四、综合应用题(18分)

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,要求编写一个CMyShape类,含有求面积、周长等的纯虚函数,然后编写一个CRectangle类和CCircle类继承CMyShape,并实现求面积、周长的两个函数。

在main函数中测试得到下面的结果:

在CMyShape类构造函数内

在CCircle类构造函数内

在CMyShape类构造函数内

在CReetangle类构造函数内

myCircle:

Area=314.159Girth=62.8319

myRectangle:

Area=900Girth=120

具体要求如下:

(1)定义求面积的纯虚函数,请在注释1后添加适当的语句。

(2)定义求周长的纯虚函数,请在注释2后添加适当的语句。

(3)请在注释3和注释4后添加适当的语句。

注意:

除在指定位置添加语句之外,不要改动程序中的其他内容。

试题程序:

#include

#inelude

#definePI3.1415926

classCMyPoint

{

public:

intX,y;

CMyPoint(inttx,intty):

x(tx),y(ty){}

};

classCMyShape

{

public:

CMyShape(){cout{{"在CMyShape类构造函数内"

<

//********1********

//********2********

protected:

};

classCCircle:

publicCMyShape

{

public:

CCircle(CMyPointi,doublej):

CMyShape(),arc-

Center(i),radius(j)

{

cout<<"在CCircle类构造函数内"<

}

doubleGetArea()

{

returnPI*radius*radius:

}

doubleGetGirth()

{

return2*PI*radius:

}

private:

CMyPointarcCenter;

doubleradius;

};

classCRectangle:

publicCMyShape

{

public:

CRectangle(CMyPointIt,CMyPomtrb):

leftTop(it),

rightBottom(rb),CMyShape()

{

cout<<"在CRectangle类构造函数内"<

}

doubleGetArea()

{

intwidth=abs(rightBottom.X-leftTop.x);

intheight=abs(rightBottom.y-leftTop.y);

returnwidth*height:

}

doubleGetGirth()

{

intwidth=abs(rightBottom.x-leftTop.x);

intheight=abs(rightBottom.y-leftTop.y);

return2*(width+height):

}

private:

CMyPointleftTop,rightBottom;

};

voidmain()

{

CMyShape*myShape=NULL;

CCircle*myCircle=newCCircle(CMyPoint(5,5),10);

CRectangle*myRectangle=newCRectangle(CMy—Point(0,O),CMyPoint(30,30));

//********3********

cout<<"myCircle:

"<<"Area="<

//********4********

tout<<"myRectangle:

"<<"Area="<GetArea()<<"\t"<<"Girth="<GetGirth()<

}

全国计算机等级考试新版无纸化上机考试临考冲刺模拟实战(三)

一、选择题

1.下列叙述正确的是(  )。

A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

1.C。

【解析】算法的执行效率与数据的存储结构密切相关。

算法的空间复杂度是指算法执行过程中所需的存储空间。

2.D。

【解析】程序调试就是诊断和改正程序中的错误,由程序开发者完成。

软件测试是为了发现错误而执行程序的过程,它由专门的测试人员完成。

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。

3.B。

【解析】源程序的文档化主要包括三点:

①符号名应具有一定实际的含义,便于理解程序功能;②正确的程序注释;③良好的视觉组织,利用空格、空行、缩进等技巧使程序层次清晰。

4.B。

【解析】数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。

顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。

数据的存储结构与数据的处理效率密切相关。

5.C。

【解析】在模块化程序设计中.模块之间的联系可以通过程序的控制结构来实现。

在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。

在程序设计中,模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。

6.C。

【解析】关系代

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1