第2章上书面作业及其答案.docx

上传人:b****4 文档编号:12384312 上传时间:2023-04-18 格式:DOCX 页数:23 大小:26.05KB
下载 相关 举报
第2章上书面作业及其答案.docx_第1页
第1页 / 共23页
第2章上书面作业及其答案.docx_第2页
第2页 / 共23页
第2章上书面作业及其答案.docx_第3页
第3页 / 共23页
第2章上书面作业及其答案.docx_第4页
第4页 / 共23页
第2章上书面作业及其答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第2章上书面作业及其答案.docx

《第2章上书面作业及其答案.docx》由会员分享,可在线阅读,更多相关《第2章上书面作业及其答案.docx(23页珍藏版)》请在冰豆网上搜索。

第2章上书面作业及其答案.docx

第2章上书面作业及其答案

第2章(上)书面作业及其答案

一、单选题

1、在一个C++程序中,main函数的位置(C)。

(A)必须在程序的开头(B)必须在程序的后面

(C)可以在程序的任何地方(D)必须在其它函数中间

2、C++程序中的语句必须以(B)结束。

(A)冒号(B)分号(C)空格(D)花括号

3、在下列八进制整型常量的表示中,(B)是正确的。

(A)0a0(B)015(C)080(D)0x10

4、在下列十六进制整型常量的表示中,(C)是错误的。

(A)0x11(B)0xaf(C)0xg(D)0x1f

5、下列正确的字符常量为(D)

(A)”a”(B)’\81’(C)a(D)’\101’

6、在下列运算符中,(D)优先级最低。

(A)!

(B)&&(C)!

=(D)?

:

7、设i=1,j=2,则表达式i+++j的值为(C)。

(A)1(B)2(C)3(D)4

8、已知i=0,j=1,k=2,则逻辑表达式

++i||--j&&++k

的值为(B)。

(A)0(B)1(C)2(D)3

9、设a=1,b=2,c=3,d=4,则条件表达式a

a:

c

c:

d的值为(A)。

(A)1(B)2(C)3(D)4

10、逗号表达式

(x=4*5,x*5),x+25

的值为(D)。

(A)125(B)20(C)100(D)45

11、C++语言是以(B)语言为基础逐渐发展演变而成的一种程序设计语言。

(A)Pascal(B)C(C)B(D)Simula67

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

(A)C++是C语言的超集

(B)C++对C语言进行了扩充

(C)C++包含C语言的全部语法特征

(D)C++与C语言都是面向对象的程序设计语言

13、面向对象程序设计思想的主要特征中不包括(B)。

(A)继承性(B)功能分解,逐步求精

(C)封装性和信息隐藏(D)多态性

14、在下列关于C++与C语言关系的描述中,正确的是(D)。

(A)关键字是用户为程序中各种需要命名的“元素”所起的名字

(B)关键字是对程序中的数据进行操作的一类单词

(C)关键字是在程序中起分割内容和界定范围作用的一类单词

(D)关键字是C++中预先定义并实现一定功能的一类单词

15、在下列字符串中,可以用作C++标识符的是(A)。

(A)_123(B)foo~bar

(C)case(D)3var

16、在下列C++标点符号中,表示一条预处理命令开始的是(A)。

(A)#(B);(C)//(D){

17、每个C++程序都必须有且仅有一个(C)。

(A)函数(B)预处理命令(C)主函数(D)语句

18、在下列C++标点符号中,表示复合语句结束的标记符是(C)。

(A)#(B)//(C)}(D);

19、下列不正确的选项是(D)。

(A)C++语言是一种面向对象的程序设计语言,它支持面向对象思想中的3个主要特征

(B)标点符号是在程序中起分割内容和界定范围作用的一类单词

(C)iostream是一个标准的头文件,定义了一些输入/输出流对象

(D)类与类之间不可以进行通信和联络

20、在下列关于C++语言发展的说法中,错误的是(C)。

(A)C++语言起源于C语言

(B)C++语言最初被称为“带类的C”

(C)在1980年C++被命名

(D)在1983年C++被命名

(完)

第2章(下)书面作业及其答案

1、已知inti,x,y;在下列选项中错误的是(C)。

(A)if(x&&y)i++;

(B)if(x=y)i--;

(C)if(xy)i--;

(D)if(x+y)i++;

-1x<0

2、设有函数关系为y=0x=0,下面选项中能正确表示上述关系为(C)。

1x>0

(A)y=1;

if(x>=0)

if(x==0)y=0;

elsey=-1;

(B)y=-1;

if(x!

=0)

if(x>0)y=1;

elsey=0;

(C)if(x<=0)

if(x<0)y=-1;

elsey=0;

elsey=1;

(D)y=-1;

if(x<=0)

if(x<0)y=-1;

elsey=1;

3、假设i=2,执行下列语句后i的值为(B)。

switch(i){

case1:

i++;

case2:

i--;

case3:

++i;break;

case4:

--i;

default:

i++;

}

(A)1(B)2(C)3(D)4

4、已知inti=0,x=0;下面while语句执行时循环次数为(D)。

while(!

x&&i<3){x++;i++;}

(A)4(B)3(C)2(D)1

5、已知inti=3;下面do_while语句执行时循环次数为(B)。

do{i--;cout<

=1);

(A)1(B)2(C)3(D)无限

6、下面for语句执行时,循环次数为(B)。

for(inti=0,j=5;i=j;){

cout<

i++;j--;

}

(A)0(B)5(C)10(D)无限

7、以下为死循环的程序段是(A)。

(A)for(intx=0;x<3;x--){x++;}

(B)intk=0;

do{++k;}while(k>=0);

(C)inta=5;while(a){a--;}

(D)inti=3;for(;i;i--);

8、以下程序段的结果是(C)。

intm=0,n=0;

if(++m||++n)

cout<

(A)0,0(B)1,1(C)1,0(D)0,1

9、以下程序段的结果是(B)。

intm=0,n=0;

if(++m&&++n)

cout<

(A)0,0(B)1,1(C)1,0(D)0,1

10、以下程序段的结果是(C)。

intm=0,n=0;

if(m++&&n++)

m++;

cout<

(A)0,0(B)1,1(C)1,0(D)2,1

11、下列选项中属于C++语句的是(A)。

(A);(B)a=17(C)i+5(D)cout<<‘\n’

12、已知:

inta,b;

下列switch语句中,(D)是正确的。

(A)switch(a)(B)switch(a+b)

{{

casea:

a++;break;case1:

a+b;break;

caseb:

b++;break;case1:

a-b;

}}

(C)switch(a*a)(D)switch(a/10+b)

{{

case1,2:

++a;case5:

a/5;break;

case3,4:

++b;default:

a+b;

}}

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

#include

usingnamespacestd;

intmain()

{

inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

cout<

return0;

}

(A)0(B)1(C)2(D)3

14、下列for语句的循环次数为(B)。

for(inti=0,x=0;!

x&&i<=5;i++);

(A)5次(B)6次(C)7次(D)无穷次

15、下列语句段将输出字符‘*’的个数为(B)。

inti=100;

while

(1)

{

i--;

if(i==0)break;

cout<<‘*’;

}

(A)98个(B)99个(C)100个(D)101个

16、下面程序的输出结果是(D)。

#include

usingnamespacestd;

intmain()

{

ints;

for(intk=2;k<6;k+=2)

{

s=1;

for(intj=k;j<6;j++)s+=j;

}

cout<

return0;

}

(A)9(B)1(C)11(D)10

17、下面程序的输出结果是(B)。

#include

usingnamespacestd;

intmain()

{

intn=10;

while(n>7)

{

n--;

cout<

}

cout<

return0;

}

(A)10,9,8,(B)9,8,7,(C)10,9,8,7,(D)9,8,7,6,

18、下列关于do…while语句的叙述正确的是(D)。

(A)do…while语句所构成的循环不能用其他语言构成的循环来代替。

(B)do…while语句所构成的循环只能用break语言跳出。

(C)do…while语句所构成的循环只有在while后面的表达式非零时才结束。

(D)do…while语句所构成的循环只有在while后面的表达式为零时才结束。

19、下面程序的输出结果是(D)。

#include

usingnamespacestd;

intmain()

{

intx;

for(inti=1;i<=100;i++)

{

x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

cout<

}

cout<

return0;

}

(A)39,81,(B)42,84,(C)26,68,(D)28,70,

20、下列关于break语句的叙述不正确的是(C)。

(A)break语句可用在循环体中,它将使执行流程跳出本层循环体。

(B)break语句可用在switch语句中,它将使执行流程跳出当前switch语句。

(C)break语句可用在if语句中,它将使执行流程跳出当前if语句。

(D)break语句在一层循坏体中可以出现多次。

(完)

第3章书面作业及其答案

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

(A)void(B)任意(C)int(D)无

2、在函数说明时,下列(D)项是不必要的。

(A)函数的类型(B)函数参数类型和名字

(C)函数名字(D)返回值表达式

3、C++语言中规定函数的返回值的类型是由(D)。

(A)return语句中的表达式类型所决定

(B)调用该函数时的主调用函数类型所决定

(C)调用该函数时系统临时决定

(D)在定义该函数时所指定的函数类型所决定

4、在函数的返回值类型与返回值表达式的类型的描述中,错误的是(B)。

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

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

(C)函数返回值表达式类型与返回值类型不同时,函数返回值表达式类型应转换成返回值类型

(D)函数返回值类型决定了返回值表达式的类型

5、在一个被调用函数中,关于return语句使用的描述,错误的是(D)。

(A)被调用函数中可以不用return语句

(B)被调用函数中可以使用多个return语句

(C)被调用函数中,如果有返回值,就一定要有return语句

(D)被调用函数中,一个return语句可返回多个值给调用函数

6、若有以下函数调用语句:

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

在此函数调用语句中,实参的个数是(A)。

(A)3(B)4(C)5(D)6

7、下列(D)的调用方式是引用调用。

(A)形参是指针,实参是地址值

(B)形参和实参都是变量

(C)形参是数组名,实参是数组名

(D)形参是引用,实参是变量

8、在值调用中,要求(C)。

(A)形参和实参类型任意,个数相等

(B)实参和形参类型都完全一致,个数相等

(C)实参和形参对应的类型一致,个数相等

(D)实参和形参对应的类型一致,个数任意

9、在C++中,关于下列设置参数默认值的描述中,正确的是(C)。

(A)不允许设置参数的默认值

(B)设置参数默认值只能在定义函数时设置

(C)设置参数默认值时,应该是先设置右边的再设置左边的

(D)设置参数默认值时,应该全部参数都设置

10、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。

(A)内联函数(B)重载函数(C)递归调用(D)嵌套调用

第4章书面作业及其答案

注意:

本作业共有14个问题15个答案,其中有一道题中只有一个括号(),但是这个括号内需要从四个选项中选择两项。

1、关于类和对象不正确的说法是(C)。

(A)类是一种类型,它封装了数据和操作(B)对象是类的实例

(C)一个类的对象只有一个(D)一个对象必属于某个类

2、在类定义的外部,可以被访问的成员有(C)。

(A)所有类成员(B)private或protected的类成员

(C)public的类成员(D)public或private的类成员

3、声明一个类的对象时,系统自动调用(B);撤销对象时,系统自动调用(C)。

(A)成员函数(B)构造函数(C)析构函数(D)拷贝构造函数

4、下面对构造函数的不正确描述是(B)。

(A)系统可以提供默认的构造函数

(B)构造函数可以有参数,所以也可以有返回值

(C)构造函数可以重载

(D)构造函数可以设置默认参数

5、有以下类的说明,请指出错误的地方(AB)。

classCSample{

inta=2.5;(A)

CSample();(B)

public:

CSample(intval);(C)

~CSample();(D)

};

6、有关类的说法不正确的是(D)。

(A)类是一种用户自定义的数据类型

(B)只有类中的成员函数才能存取类中的私有数据

(C)在类中,如果不做特别说明,所有的数据均为私有类型

(D)在类中,如果不做特别说明,所有的成员函数均为公有类型

7、有关构造函数的说法不正确的是(D)。

(A)构造函数名字和类的名字一样

(B)构造函数在定义类的对象时自动执行

(C)构造函数无任何函数类型

(D)构造函数有且只有一个

8、有关析构函数的说法不正确的是(C)。

(A)析构函数有且只有一个

(B)析构函数无任何函数类型

(C)析构函数和构造函数一样可以有形参

(D)析构函数的作用是在对象被撤销时收回先前分配的内存空间

9、通常拷贝构造函数的参数是(C)。

(A)某个对象名

(B)某个对象的成员名

(C)某个对象的引用名

(D)某个对象的指针名

10、在类的定义形式中,数据成员、成员函数和(A)组成了类定义体。

(A)成员的访问控制信息(B)公有类型

(C)私有类型(D)保护类型

11、在下列关键字中,用以说明类中公有成员的是(A)。

(A)public(B)private

(C)protected(D)friend

12、(D)不是构造函数的特征。

(A)构造函数的函数名与类名相同

(B)构造函数可以重载

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

(D)构造函数必须指定类型说明

13、(A)是析构函数的特征。

(A)一个类中只能定义一个析构函数

(B)析构函数名与类名不同

(C)析构函数的定义只能在类体内

(D)析构函数可以有一个或多个参数

第5章书面作业及其答案

1、下列存储类标识符中,(C)的可见性与存在性不一致。

(A)外部类(B)自动类(C)内部静态类(D)寄存器类

2、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。

(A)内联函数(B)重载函数(C)递归调用(D)嵌套调用

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

#include

usingnamespacestd;

intfunc(inta,intb);

intmain(){

intk=4,m=1,p;

p=func(k,m);

cout<

p=func(k,m);

cout<

return0;

}

intfunc(inta,intb){

staticintm,i=2;

i+=m+1;

m=i+a+b;

returnm;

}

(A)8,17(B)8,16(C)8,20(D)8,8

4、下面选项中,不是类的成员函数为(C)。

(A)构造函数(B)析构函数(C)友元函数(D)拷贝构造函数

5、下面关于友元的描述中,错误的是(D)。

(A)友元函数可以访问该类的私有数据成员

(B)一个类的友元类中的成员函数都是这个类的友元函数

(C)友元可以提高程序的运行效率

(D)类与类之间的友元关系可以继承

6、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用(A)提供对全局变量的访问。

(A)作用域运算符(B)extern关键字(C)重载(D)引用

7、对于常成员函数,在下列描述中,正确的是(C)。

(A)常成员函数只能修改常数据成员(B)常成员函数只能修改一般数据成员

(C)常成员函数不能修改任何数据成员(D)常成员函数只能通过常对象调用

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

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

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

(C)类的不同对象有不同的静态数据成员值

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

9、友元访问类的对象的成员时使用(D)。

(A)类的成员名(B)this指针指向成员名

(C)“类名:

:

成员名”的形式(D)“对象名.成员名”的形式

10、下列程序输出的结果是(B)。

#include

usingnamespacestd;

voidfun();

intmain()

{

for(inti=1;i<3;i++)

fun();

return0;

}

voidfun()

{

staticintn=10;

n++;

cout<<"n="<

}

(A)n=11(B)n=11(C)n=10(D)n=10

n=11n=12n=11n=10

第6章书面作业及其答案

1、以下对一维数组a的正确定义是(C)。

(A)intn=5,a[n];(B)inta(5);

(C)constintn=5;inta[n];(D)intn;cout<

2、下列数组定义语句中,不合法的是(A)。

(A)inta[3]={0,1,2,3};(B)inta[]={0,1,2};

(C)inta[3]={0,1,2};(D)inta[3]={0};

3、已知inta[]={0,1,2,3,4,5,6,7,8,9}和*p=a,则不能表示数组a中元素的式子是(C)。

(A)*a(B)*p(C)a(D)a[p-a]

4、已知inta[]={0,2,4,6,8,10}和*p=a,值不等于0的表达式是(D)。

(A)*(p++)(B)*a(C)*(p--)(D)*(--p)

5、以下不能对二维数组a进行正确初始化的语句是(C)。

(A)inta[2][3]={0};

(B)inta[][3]={{0,1},{0}};

(C)inta[2][3]={{0,1},{2,3},{4,5}};

(D)inta[][3]={0,1,2,3,4,5};

6、已知inta[][3]={{0,1},{2,3,4},{5,6},{7}},则a[2][1]的值是(C)。

(A)0(B)2(C)6(D)7

7、在inta=3,*p=&a;中,*p的值是(D)。

(A)变量a的地址值(B)无意义(C)变量p的地址值(D)3

8、对于int*pa[5];的描述,(D)是正确的。

(A)pa是一个指向数组的指针,所指向的数组是5个int型元素

(B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量

(C)pa[5]表示某个数组的第5个元素的值

(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针

9、指针可以用来表示数组元素,下列表达式中(A)是错误的。

已知:

inta[3][7];

(A)*(a+1)[5](B)*(*a+3)(C)*(*(a+1))(D)*(&a[0][0

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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