2021年河北省秦皇岛市全国计算机等级考试C++语言程序设计测试卷(含答案

2021年河北省秦皇岛市全国计算机等级考试C++语言程序设计测试卷(含答案


2024年4月29日发(作者:)

2021年河北省秦皇岛市全国计算机等级考

试C++语言程序设计测试卷(含答案)

学校:________ 班级:________ 姓名:________ 考号:________

一、1.选择题(10题)

1. 下面几种调试方法中,不适合调试大规模程序的是( )。

A.强行排错法 B.回溯法 C.原因排除法 D.静态调试

2. 下面对C++运算符的正确的描述是( )。

A.只有类成员运算符 B.只有友元运算符 C.只有非成员和非友元运算

符 D.上述三者都有

3. 有如下程序: #include<iostream.h> void main() { float x=2.0,y;

if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; cout<<y; } 该

程序的输出结果是

A.0 B.0.25 C.0.5 D.1.0

4. 在一个被调用函数中,关于return语句使用描述,( )是正确的。

A.函数返回值的类型是在定义函数时确定,在函数调用时是可能改变的

B.函数返回值的类型就是返回值表达式的值

C.函数返回值的类型决定了返回值表达式的类型

D.函数返回值的类型可以与返回值表达式的类型不一致

5. 下面关于运算符重载的描述错误的是

A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合

性和运算符的语法结构

B.不是所有的运算符都可以进行重载

C.运算符函数的调用必须使用关键字operator

D.在C++语言中不可通过运算符重载创造出新的运算符

6. 对下列二叉树进行中序遍历的结果是

XA YP XP PY

7.关于类和对象描述错误的是( )。

A.对象(Object)是现实世界中的客观事物,对象具有确定的属性

B.类是具有相同属性和行为的一组对象的集合

C.对象是类的抽象,类是对象的实例

D.类是对象的抽象,对象是类的实例

8. 使用静态数据成员的好处不包括

A.可以节省内存空间 B.是为了解决数据共享问题 C.可以直接用类名

来引用 D.可以提高运算速度

9. unsigned char c="41';printf("%d",c); 输出结果为( )。

A.A B.41 C.语法错 D.65

10. 下面关于C++语言变量的叙述错误的是

A.C++语言中变量分为auto、static、extern和register4种存储类型

B.自动变量和外部变量的作用域为整个程序

C.内部静态变量的作用域是定义它的函数

D.外部静态变量的作用域是定义它的文件

二、单选题(13题)

11.有下列程序:

#include

voidmain( )

{inta=S,b=1,t;

t=(a<<2)|b;printf("%d\n",t);

}

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

A.21 B.11 C.6 D.1

12.在深度为5的满二叉树中,叶子节点的个数为

A.A.32 B.31 C.16 D.15

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

#include class Loeation{

private:

int X,Y;

public: void init(int=0,int=0);

void valueX(int val){X=val;} int valueX{returnx;}

void valueY(int val){Y=val;} int valueY{return Y;}};

void Location::init(int initX,int initY) {X=initX;

Y=initY4}

void main(X

{Location A,B;

X(5);

cout<

Y(4);

eout<

}

A.5 0 6 4 B.0 0 6 4 C.5 0 6 2 D.0 0 6 2

14.有如下程序段:

int i=5;

while (int i=0){

cout<<'*'; i--;

}

运行时输出"*"的个数是_________。

A.0 B.1 C.5 D.无穷

15.已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是

“intv1,v2;”,下列调用语句中,正确的是( )。

A.f(v1,v2) B.t(v1,&v2) C.f(&v1,v2) D.f(&v1,&v2);

16.在软件开发中,需求分析阶段产生的主要文档是()。

A.软件集成测试计划 B.软件详细设计说明书 C.用户手册 D.软件需求

规格说明书

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

#include

ClassA

{

public:A( ){cout<<"1";}

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

};

ClassB:public:A

{

public:

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

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

};

Voidmain( )

{

Bb;

}

A.1234 B.1324 C.1342 D.3142

18. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为()。

A. 内联函数 B. 重载函数 C. 递归函数 D. 函数模板

19.下面关于虚函数的描述,错误的是( )。

A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

D.基类中说明的纯虚函数在其任何派生类中都必须实现

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

A.有一个以上根结点的数据结构不一定是非线性结构

B.只有一个根结点的数据结构不一定是线性结构

C.循环链表是非线性结构

D.双向链表是非线性结构

21.下列数据结构中,按先进后出原则组织数据的是( )

A.线性链表 B.栈 C.循环链表 D.顺序表

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

#included

usingnamespacestd;

intmain()

{

chara[]="Hell0,Test";

char*p=a;

while(*p)

{

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

cout<

elsecout<<*P;

p++;

}

return0;

}

,test ,Test ,TEST ,tEST

23. 阅读下面程序:#include <iostream.h>fun (int a, int b){int

c;c=a+b;return c;}void main(){int x=6, y=7, z=8, r;r=fun( (x--, y++, x+y), z-

-);cout<<r<<end1;}则该程序的输出结果是( )。

A.11 B.20 C.21 D.31

三、2.填空题(12题)

24. 源程序文档化要求程序应加注释。注释一般分为序言性注释和【 】

25. 纯虚函数的声明总是以______结束。

26. 下面程序的运行结果是【 】和【 】。

#include<iostream.h>

#define N 10

#define s( x ) x*x

#define f( x ) ( x*x )

void main( )

{int i1,i2;

i1=1000/s(N);i2=1000/f(N);

cout <<i 1 << " " << i2;

}

27. 定义在类内部的函数被类默认为【 】,在类外部每次调用该函数时,

定义的函数代码会在调用函数位置展开。

28. 在一个C++程序中,每个变量都必须遵循【 】的原则。

29. 表达式operator++(x,int)其可以表示为______。

30. 以下程序的输出结果是【 】。

#include<iostream.h>

void main( )

}

int a=0;

a+=(a=8) ;

cout<<a;

}

31. C++中将两个字符串连接起来组成一个字符串的函数是______。

32. 下列程序的输出结果是______。

#include<iostream>

using namespace std;

Class Test{

public:

Test(){cnt++;}

~Test(){cnt--;}

static int Count(){return cnt;}

private:

static int cnt;

};

int Test::cnt=0;

int main()

{

cout<<Test::Count()<<"";

Test t1,t2;

Test*pT3=new Test;

Test*pT4=new Test;

cout<<Test::Count()<<"";

delete pT4;

delete pT3;

cout<<Test::Count()<<end1;

return 0;

}

33. Jackson方法是一种面向______的结构化方法。

34. 虚函数必须是类的【 】。

35. 以下程序的执行结果为______。

#include<iostream.h>

class A

{public:A(){cout<<“a”;}

~A(){cout<<“b”;}};

class B:public A

{public:

B(){cout<<“c”;)

~B(){cout<<“d”;}};

void main()

{B b;}

四、程序改错题(10题)

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

要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可

能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出

到屏幕中。

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结

构,错误的语句在//******error******的下面。

试题程序:

#include

voidmain

{

inti=0;

charstr[120];

cout<<"Enterastringendwith?."<

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

cin.getline(str,120);

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

while(str)

{

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

if(str[i])=a)

str[i]=str[i]-a+A;

i++;

}

cout<

return;

}

37.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序

运行时有错误,请改正错误,使程序正常运行,并且要求最后一个

catch必须抛出执行的任何异常。

程序异常,输出信息为

error

O

ERROR

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结

构,错误的语句在//******error******的下面。

试题程序:

#include

intmain

{

try

{

throw("error");

}

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

catch(chars)

{

cout<

}

try

{

throw((int)0);

}

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

catch

{

cout<

}

try

{

throw(O);

throw("error");

}

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

catch

{

cout<<"ERROR"<

}

return0;

}

38.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序

运行时有错误,请改正错误,使程序正常运行,并且要求最后一个

catch必须抛出执行的任何异常。

程序异常,输出信息为

error

O

ERROR

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结

构,错误的语句在//******error******的下面。

试题程序:

#include

intmain

{

try

{

throw("error");

}

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

catch(chars)

{

cout<

}

try

{

throw((int)0);

}

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

catch

{

cout<

}

try

{

throw(O);

throw("error");

}

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

catch

{

cout<<"ERROR"<

}

return0;

}

39.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序

运行时有错,请改正其中的错误,使程序正常运行,输出的结果为

Constructor,i=0,

Destructor

注意:错误的语句在//******error******的下面,修改该语句即

可。

试题程序:

#include(iostream.h)

classTC

{

inti;

public:

TC;

voiddisplay;

~TC;

};

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

TC:TC

{

cout<<"Constructor"<<",";

i=0;

)

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

TC:display

{

tout<<"i="<

}

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

TC:TC

{

COUI<<"Destructor"<

}

voidmain

{

TCa;

a.display;

}

40.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运

行有问题,请改正main函数中的错误,使程序的输出结果为:

number=1

number=10

number=100

注意:不要改动main函数,不能增加或删除行。也不能更改程序的结

构,错误的语句在//******error******的下面。

试题程序:

#include

classTC

{

public:

TC(inti)

{

number=i;

}

voidSetNumber(intm)

{

number=m;

}

intGetNumberconst

{

returnnumber;

}

voidPrintconst

{

cout<<"number="<

}

private:

intnumber;

};

voidmain

{

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

TCobjl;

objl.Print;

TCobj2(3);

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

objl.number=10;

//********error*‰******

TC.SetNumber(100);

objl.Print;

obj2.Print;

}

41.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程

序运行有问题,请改正main函数中的错误,使该程序的输出结果正

确。

程序输出:

8

8

注意:错误的语句在/********error********/的下面。修改该语句

即可,其他的语句不能修改。

试题程序:

#include(iostream.h>

classCO

{

public:

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

staticintn=0:

CO

{

n++:

}

~CO

{

n--:

}

}:

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

intCO::n;

voidmain

{

COobj;

COobj2[7];

CO*C=NULL:

c=&obj:

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

eout<

cout<

}

42.使用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;

}

43.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序

运行时有错。请改正程序中的错误,使程序输出的结果为

100

37

32

注意:错误的语句在//******error******的下面,修改该语句即

可。

试题程序:

#include

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

voidmain

{

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

intm=0142:

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

intn=0X27:

intq=32;

cout<<m<<endl;

cout<<n<<endl;

cout<<q<<endl;

return;

}

44.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运

行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果

为:

sizeof(S1)=5

sizeof(s2)=10

sizeof(s3)=1

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结

构,错误的语句在//******error******的下面。

(1)不能删除assert()语句。

(2)只能修改后面的数字。

提示:assert函数如果为假,则会产生一个中断异常。

试题程序:

#include

#include

voidmain()

{

char*s1="abc":

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

assert(sizeof(s1)==3):

cout<<"sizeof(s1)=5"<

chars2[10]="ab":

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

assert(sizeof(s2)==2);

cout<<"sizeof(s2)=10"<

chars3=23:

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

assert(sizeof(s3)==4);

cout<<"sizeof(s3)=1"<

return;

}

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

1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实

现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结

构,错误的语句在


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714395778a2438674.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信