C++程序设计考试题库精简版.docx

上传人:b****8 文档编号:11445050 上传时间:2023-03-01 格式:DOCX 页数:141 大小:43.61KB
下载 相关 举报
C++程序设计考试题库精简版.docx_第1页
第1页 / 共141页
C++程序设计考试题库精简版.docx_第2页
第2页 / 共141页
C++程序设计考试题库精简版.docx_第3页
第3页 / 共141页
C++程序设计考试题库精简版.docx_第4页
第4页 / 共141页
C++程序设计考试题库精简版.docx_第5页
第5页 / 共141页
点击查看更多>>
下载资源
资源描述

C++程序设计考试题库精简版.docx

《C++程序设计考试题库精简版.docx》由会员分享,可在线阅读,更多相关《C++程序设计考试题库精简版.docx(141页珍藏版)》请在冰豆网上搜索。

C++程序设计考试题库精简版.docx

C++程序设计考试题库精简版

【章节】第1章C++基础知识

【知识点】

1、C++程序的构成与书写形式;

2、基本数据类型,常量、变量和表达式

3、C++的标准输入输出

【单选题】

1、在C++中,源程序变为可执行程序的正确顺序应该是()。

A.编辑、链接、编译、执行B.编辑、编译、链接、执行

C.编译、编辑、链接、执行

D.编译、链接、编辑、执行

答案:

B

2、要把高级语言编写的源程序转换为目标程序,需要使用()。

A.编辑程序

B.驱动程序

C.调试程序

D.编译程序

答案:

D

3、下列关于C++与C语言的关系描述中,错误的是()。

A.C语言是C++语言的一个子集

B.C++与C语言是兼容的

C.C++对C语言进行了一些改进

D.C++和C语言都是面向对象的

答案:

D

4、下面为使用面向对象语言的正确理由是()。

A.面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构

B.程序语句比面向过程语言简单

C.面向对象程序设计可以设计为自行修改错误

D.面向对象程序很容易概念化

答案:

D

5、以下选项中,合法的用户标识符是()。

A.long

B._2Test

C.3Dmax

D.A.dat

答案:

B

6、下列描述中正确的是()。

A.不是每个C++程序都必须包含预处理命令#include

B.C++程序必须有return语句

C.C++程序中的变量必须定义在主程序内部

D.C++程序中所使用的符号常量可以不进行定义

答案:

A

7、C++源程序文件的扩展名为()。

A..CPP

B..C

C..DLL

D..EXE

答案:

A

8、cout是I0流库预定义的()。

A.类

B.对象

C.包含文件

D.常量

答案:

B

9、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

答案:

D

10、下列选项中,()是不合法的标识符.

A.Program

B.Obj23

C.double

D.B_C_D

答案:

C

11、下列标识符中,不合法的用户标识符为()。

A.a~!

B._int

C.a_10

D.PAd

答案:

A

12、只能向终端输出一个字符的函数是()。

A.pringf函数

B.putchar函数

C.getchar函数

D.scanf函数

答案:

B

13、如果有整型量intx=5,执行情况x+=1.9后x的值为()。

A.6

B.7

C.结果不确定

D.表达式非法

答案:

A

14、已知a=5,b=3,表达式a+=a*=++b*3的值为()。

A.40

B.80

C.100

D.120

答案:

D

20、在C++语言中,自定义的标识符()。

A.能使用关键字并且不区分大小写

B.不能使用关键字并且不区分大小写

C.能使用关键字并且区分大小写

D.不能使用关键字并且区分大小写

答案:

D

32、C++语言程序的基本单位是()。

A.程序行

B.语句

C.函数

D.字符

答案:

B

37、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是()

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

答案:

D

38、下列符号属于c++语言用户标识符的是()。

A.DO

B.if

C.void

D.switch

答案:

A

39、任意一个类,析构函数的个数最多是()。

A.不限个数

B.1

C.2

D.3

答案:

B

【章节】第3章函数

【知识点】

1、C++函数的相关知识

2、函数定义与函数的调用

3、内联函数与函数重载

【单选题】

1、若有以下函数调用语句,在此函数调用语句中实参的个数是()。

fun(a+b,(y=10,y),fun(n,k,d));

A.3

B.4

C.5

D.6

答案:

A

2、以下程序的运行结果是()。

intmain()

{intk=4,m=1,p;

p=func(k,m);

cout<

p=func(k,m);

cout<

}

func(inta,intb)

{staticintm,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A.8,17

B.8,16

C.8,20

D.8,8

答案:

A

3.以下函数调用语句中,含有的实参个数是().

func(rec1,rec2+1,(rec3,rec4));

A.3

B.4

C.5

D.有语法错误

[答案]A

4.分析如下程序:

#include

intf(intb[],intn)

{inti,r=1;

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

r=r*b[i];

returnr;

}

voidmain(){

intx,a[]={2,3,4,5,6,7,8,9};

x=f(a,3);

cout<

}

上面程序的输出结果是()。

A.720

B.120

C.24

D.6

答案:

B

5、下列函数参数默认值定义错误的是()。

A.Fun(intx,inty=0)

B.Fun(intx=100)

C.Fun(intx=0,inty)

D.Fun(intx=f())(假定函数f()已经定义)

答案:

C

6、在函数定义前加上关键字“inline”表示该函数被定义为()。

A.重载函数

B.内联函数

C.成员函数

D.普通函数

答案:

B

7、一个函数功能不太复杂,但要求被频繁调用,选用()。

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

答案:

A

8、下面有关重载函数的说法中正确的是()。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

答案:

C

9、在C++语言中,对函数参数默认值描述正确的是()。

A.函数参数的默认值只能设定一个

B.一个函数的参数若有多个,则参数默认值的设定可以不连续

C.函数必须设定默认值

D.在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值

答案:

D

10、考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是

A.test(5);

B.test(5,8);

C.test(6,'#');

D.test(0,0,'*');

答案:

C

11、以下对C++函数的有关描述中,正确的是()。

A.C调用函数时,只能把实参的值传给形参,形参的值不能传递给实参

B.C++函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C++程序中有调用关系的所有函数必须放在同一源程序文件中

答案:

A

12、在C++语言中函数返回值的类型是由()决定的。

A.调用该函数时系统临时

B.return语句中的表达式类型

C.定义该函数时所指定的函数类型

D.调用该函数时的主调函数类型

答案:

C

13、以下程序的输出结果是()。

intfunc(inta,intb)

{returna+b;}

intmain()

{intx=6,y=7,z=8,r;

r=func(func(x,y),z--);

cout<

}

A.15

B.20

C.21

D.31

答案:

C

14、以下程序的输出结果是()。

voidfun(inta,intb,intc)

{a=456;b=567;c=678;}

intmain()

{intx=10,y=20,z=30;

fun(x,y,z);

cout<

}

A.30,20,10

B.10,20,30

C.456,567,678

D.678,567,456

答案:

A

15、C++语言中,形参与实参之间的数据传递方式是()。

A.只能按值传递

B.只能按地址传递

C.既可以按值传递也可以按地址传递

D.以上说法都不对

答案:

C

16、分析以下程序:

#include

voidfun(intnum){cout<

voidfun(charch){cout<<(ch+1)<

intmain(){

fun('A');

return0;

}

以上程序的输出结果是()。

A.65

B.66

C.A

D.B

答案:

B

17、一个函数为voidf(intx,chary=‘a’),另一个函数为voidf(int),则它们()。

A.不能在同一程序块中定义

B.可以在同一个程序块中定义并可重载

C.可以在同一个程序块中定义,但不可以重载

D.以上说法均不正确

答案:

A

18、函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是()。

A.Fun(20)

B.Fun(20+n)

C.Fun(n)

D.Fun(&n)

答案:

C

19、当一个函数无返回值时,函数的类型应为()。

A.任意

B.void

C.int

D.char

答案:

B

20、下列带缺省值参数的函数说明中,正确的说明是()。

A.intFun(intx,inty=2,intz=3);

B.intFun(intx=1,inty,intz=3);

C.intFun(intx,inty=2,intz);

D.intFun(intx=1,inty,intz=3);

答案:

A

21、下列函数参数默认值定义错误的是()。

A.Fun(intx,inty=0)

B.Fun(intx=100)

C.Fun(intx=0,inty)

D.Fun(intx=f())(假定函数f()已经定义)

答案:

C

22、在函数定义前加上关键字“inline”表示该函数被定义为()。

A.重载函数

B.内联函数

C.成员函数

D.普通函数

答案:

B

23、一个函数功能不太复杂,但要求被频繁调用,选用()。

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

答案:

A

24、下面有关重载函数的说法中正确的是()。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

答案:

C

25、在C++语言中,对函数参数默认值描述正确的是()。

A.函数参数的默认值只能设定一个

B.一个函数的参数若有多个,则参数默认值的设定可以不连续

C.函数必须设定默认值

D.在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值

答案:

D

26、考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是()。

A.test(5);

B.test(5,8);

C.test(6,'#');

D.test(0,0,'*');

答案:

C

27、以下对C++函数的有关描述中,正确的是()。

A.C调用函数时,只能把实参的值传给形参,形参的值不能传递给实参

B.C++函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C++程序中有调用关系的所有函数必须放在同一源程序文件中

答案:

A

28、在C++语言中函数返回值的类型是由()决定的。

A.调用该函数时系统临时

B.return语句中的表达式类型

C.定义该函数时所指定的函数类型

D.调用该函数时的主调函数类型

答案:

C

29、以下程序的输出结果是()。

intfunc(inta,intb)

{returna+b;}

intmain()

{intx=6,y=7,z=8,r;

r=func(func(x,y),z--);

cout<

}

A.15

B.20

C.21

D.31

答案:

C

30、以下程序的输出结果是()。

voidfun(inta,intb,intc)

{a=456;b=567;c=678;}

intmain()

{intx=10,y=20,z=30;

fun(x,y,z);

cout<

}

A.30,20,10

B.10,20,30

C.456,567,678

D.678,567,456

答案:

A

【章节】第7章类与对象

【知识点】

1、面向对象程序设计的基本概念

2、类定义、属性与行为、访问权限控制,对象的定义、使用

3、构造函数与析构函数

4、函数重载技术与运算符重载技术

5、友元

【单选题】

1、对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句(划线处)应该是()。

classMyClass

{

public:

MyClass(intx)

{

n=x;

}

voidSetValue(intn1)

{

n=n1;

}

private:

intn;

};

intf()

{

MyClass*ptr=newMyClass(45);

__________;

}

A.MyClass(50)

B.SetValue(50)

C.ptr->SetValue(50)

D.ptr->n=50

答案:

C

分值:

2

难度:

1

知识点:

评析:

2、类MyClass的定义如下:

classMyClass

{

public:

MyClass()

{

value=0;

}

setVariable(inti)

{

value=i;

}

private:

intvalue;

};

则以下各项对如下语句序列的描述中,正确的是()。

MyClass*p,my;p=&my;

A.语句”p=&my;”是把对象my赋值给指针变量p

B.语句”MyClass*p,my;”会调用两次类MyClass的构造函数

C.对语句”*p.SetVariable(5)”的调用是正确的

D.语句”p->SetVariable(5)”与语句”my.SetVariable(5)”等价

答案:

D

分值:

2

难度:

1

知识点:

评析:

3、下面类的定义,有()错误。

classMyClass{

inti=0;

public:

voidMyClass();~MyClass(intValue);};

A.1

B.2

C.3

D.4

答案:

C

分值:

2

难度:

1

知识点:

评析:

4、定义析构函数时,应该注意()。

A.其名与类名完全相同

B.返回类型是void类型

C.无形参,也不可重载

D.函数体中必须有delete语句。

答案:

C

分值:

2

难度:

1

知识点:

评析:

5、构造函数不具备的特征的是()。

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定返回类型

答案:

D

分值:

2

难度:

1

知识点:

评析:

6、类的析构函数是在()被自动调用的。

A.类创建时

B.创建对象时

C.删除对象时

D.不自动调用

答案:

C

分值:

2

难度:

1

知识点:

评析:

7、对于任何一个类,析构函数最多有()个。

A.0

B.1

C.2

D.4

答案:

B

分值:

2

难度:

2

知识点:

评析:

8、通常,拷贝构造函数的参数是()。

A.某个对象名

B.某个对象的引用名

C.某个对象的成员名

D.某个对象的指针名

答案:

B

分值:

2

难度:

1

知识点:

评析:

9、面向对象程序设计中的数据隐藏指的是()。

A.输入数据必须输入保密口令

B.数据经过加密处理

C.对象内部数据结构上建有防火墙

D.对象内部数据结构的不可访问性

答案:

D

分值:

2

难度:

1

知识点:

评析:

10、下列关于类的访问权限的描述中,错误的是().。

A.说明为公有的成员可以被程序中的任何代码访问

B.说明为私有的成员只能被类的成员和说明为友元类的成员函数访问

C.说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问

D.类的所有成员都可以被程序中的任何代码访问

答案:

D

分值:

2

难度:

1

知识点:

评析:

11、一个类的友元函数或友元类可以访问该类的()。

A.私有成员

B.保护成员

C.公有成员

D.所有成员

答案:

D

分值:

2

难度:

1

知识点:

评析:

12、下列关于成员函数特征的描述中,错误的是()。

A.成员函数一定是内联函数

B.成员函数可以重载

C.成员函数可以设置参数的默认值

D.成员函数可以是静态的

答案:

A

分值:

2

难度:

1

知识点:

评析:

13、下面对类中静态数据成员的描述中,正确的是()。

A.静态数据成员是类的所有对象共享的数据

B.类的每个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员

D.静态数据成员不能通过类的对象调用

答案:

A

分值:

2

难度:

1

知识点:

评析:

14、C中对于类中定义的成员,其默认的访问权限为()。

A.public

B.protected

C.private

D.static

答案:

C

分值:

2

难度:

1

知识点:

评析:

15、类的析构函数的作用是()。

A.作为类的一般成员函数

B.类的初始化

C.对象的初始化

D.对象扫尾处理

答案:

D

分值:

2

难度:

1

知识点:

评析:

16、若有一个MyClass类,则执行语句”MyClass,a,b

(2),*p;”后,自动调用该类的构造函数()次。

A.2

B.3

C.4

D.5

答案:

A

分值:

2

难度:

1

知识点:

评析:

17、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是()

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

答案:

D

分值:

2

难度:

1

知识点:

评析:

18、类MyClass的定义如下:

classMyClass

{

public:

Myclass(){}

MyClass(inti){value=newint(i);}

int*value;

};

若要对value赋值,则下面语句正确的是()。

A.MyClassmy;my.value=10;

B.MyClassmy;*my.value=10;

C.MyClassmy;my.*value=10;

D.MyClassmy(10);

答案:

D

分值:

2

难度:

1

知识点:

评析:

19、下面是对类MyClass的定义,对定义中语句描述正确的是()。

classMyClass

{

public:

voidMyClass(inta){X=a;}//①

intf(inta,intb)//②

{

X=a;

Y=b;

}

intf(inta,intb,intc=0)//③

{

X=a;

Y=b;

Z=c;

}

staticvoidg(){X=10;}//④

private:

intX,Y,Z;

};

A.语句①是类MyClass的构造函数定义

B.语句②是类和语句③实现类成员函数的重载

C.语句④实现对类成员变量X的更新操作

D.语句①、②、③和④都不正确

答案:

D

分值:

2

难度:

1

知识点:

评析:

20、类aClass的定义如下:

classaClass{public:

aClass(){}aClass(inti){value=newint(i);}int*value;}若要对类中的value

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

当前位置:首页 > 初中教育 > 语文

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

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