C++语言程序设计教程课后习题答案.docx

上传人:b****1 文档编号:959104 上传时间:2023-04-30 格式:DOCX 页数:64 大小:110.71KB
下载 相关 举报
C++语言程序设计教程课后习题答案.docx_第1页
第1页 / 共64页
C++语言程序设计教程课后习题答案.docx_第2页
第2页 / 共64页
C++语言程序设计教程课后习题答案.docx_第3页
第3页 / 共64页
C++语言程序设计教程课后习题答案.docx_第4页
第4页 / 共64页
C++语言程序设计教程课后习题答案.docx_第5页
第5页 / 共64页
C++语言程序设计教程课后习题答案.docx_第6页
第6页 / 共64页
C++语言程序设计教程课后习题答案.docx_第7页
第7页 / 共64页
C++语言程序设计教程课后习题答案.docx_第8页
第8页 / 共64页
C++语言程序设计教程课后习题答案.docx_第9页
第9页 / 共64页
C++语言程序设计教程课后习题答案.docx_第10页
第10页 / 共64页
C++语言程序设计教程课后习题答案.docx_第11页
第11页 / 共64页
C++语言程序设计教程课后习题答案.docx_第12页
第12页 / 共64页
C++语言程序设计教程课后习题答案.docx_第13页
第13页 / 共64页
C++语言程序设计教程课后习题答案.docx_第14页
第14页 / 共64页
C++语言程序设计教程课后习题答案.docx_第15页
第15页 / 共64页
C++语言程序设计教程课后习题答案.docx_第16页
第16页 / 共64页
C++语言程序设计教程课后习题答案.docx_第17页
第17页 / 共64页
C++语言程序设计教程课后习题答案.docx_第18页
第18页 / 共64页
C++语言程序设计教程课后习题答案.docx_第19页
第19页 / 共64页
C++语言程序设计教程课后习题答案.docx_第20页
第20页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++语言程序设计教程课后习题答案.docx

《C++语言程序设计教程课后习题答案.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计教程课后习题答案.docx(64页珍藏版)》请在冰点文库上搜索。

C++语言程序设计教程课后习题答案.docx

C++语言程序设计教程课后习题答案

C++语言程序设计教程课后习题答案(2011-03-0917:

24:

22)

标签:

杂谈分类:

学习

第1章C卄语言概述

练习题1

判断题

XI.C++语言和C语言都是面向对彖的程序设计语言。

V2.面向对象方法具有封装性、继承性和多态性。

J3.C语言是C卄语言的一个子集。

C++语言继承了C语言。

X4.C卄语言程序与C语言程序一样都是函数串。

X5.C++语言支持封装性和继承性,不支持多态性。

J6.C++语言比C语言对数据类型要求更加严格了。

V7.C++语言对C语言进行了一次改进,使得编程更加方便了。

X8.C卄源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。

V9.编译C卄源程序时,出现了警告错(Wammg)也可以生成可执行文件。

V10.C卄语言程序的实现也要经过编辑、编译连接和运行3个步骤。

单选题

1.下列关于面向对彖概念的描述中,错误的是(C)。

A.面向对象方法比面向过程方法更加先进

B.面向对象方法中使用了一些面向过程方法中没有的概念

C.面向对象方法替代了结构化程序设计方法

D.面向对象程序设计方法要使用面向对彖的程序设计语言

2.卞列各种高级语言中,不是面向对彖的程序设计语言是(D)。

A.C++E・Java

C・VBD・C

3.下列关于类的描述中,错误的是(A)。

A.类就是C语言中的结构类型

B.类是创建对彖的模板

C.类是抽象数据类型的实现

D.类是具有共同行为的若干对彖的统一描述体

4.下列关于对象的描述中,错误的是(C)。

A.对象是类的一个实例

B.对象是属性和行为的封装体

C.对象就是C语言中的结构变量

D.对象是现实世界中客观存在的某种实体

5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C)。

A.提取符是对右移运算符(>>)重载得到的

B.插入符是对左移运算符(《)重载得到的

C.提取符和插入符都是双目运算符,它们要求有两个操作数

D.提取符和插入符在输入/输出语句中不可以连用

填空题

1.C卄语言具有面向对象方法中要求的三大特性:

封装性、继承性和多态性。

2.C卄程序中,有且仅有一个主函数。

3.C卄程序是由类和函数组成的。

4.C卄源程序的扩展名是cpp。

cout

5.使用插入符进行标准输出文件输出时,使用的输出流对彖名是上机调试下列程序,并分析输出结果

1.

^includeo

voidmain()

{

intij;

cout«MEnterij:

H;

ciii»i»j;

cout«,,i=M«i«;«,j=H«j«endl;cout<

}

假定,输入数据如卞:

Enterxy:

5V91

答:

i=5,j=9

i4j=14,i*j=45

2.

^includeo

mtmax(mt.mt);

voidmain()

{

inta.b,c;

a=5;

b=8;

c=max(a,b);cout«Mniax(,,«a«7«b«M)=,,«c«endl;

}

mtmax(iiitx.iiity)

{

returnx>yx:

v;

}

答:

max(5$)=8

^includeo

voidfl0,£2();

voidmain()

{

cout«M在北京・\1T;

fio;

f20;

cout«M再见・\1T;

}

^includeo

voidfl0

cout«"在上海All";

}

^includeo

voidf2Q

{cout«n在广州An";

}

答:

在北京。

在上海。

在广卅。

再见。

编译卜•列程序,修改所出现的错误,获得正确结呆

1.

mam()

{

cout«MInmam().\nH

}

答:

修改后如下:

#includeo

voidmain()

{

cout«HInmam().\nn;

}

2.

#includeo

voidMAIN()

{

ciii»a;

intb=a+a;cout«Mb=«b«\iiH;

}

答:

修改后如下:

#includeo

voidmain()

{

iiita;

ciii»a;

intb=a+a;

cout«Hb=>,«b«,\nH;

}

#includeovoidniam()

mtij;

1=5;

mtk=i+j;

COUT«Hi+j=n«k«endl;

}

答:

#iiicludeo

voidmain()

{

intij;

J=10;

1=5;

intk=i+j;

cout«,,i+j=,'«k«endl;

}

通过对题中3个程序的修改,回答下列问题

1.从题中第1题程序的修改中,总结出编程应该注意哪些问题。

答:

C++程序要包含,main。

函数前应加类型说明符void。

2.C卄程序中所出现的变量是否必须先说明后使用?

在函数体内说明变量时是否都要放在函数体的开头?

答:

C++程序中所出现的变屋必须先说明后使用。

在函数体内说明变量时不一定要放在函数体的开头。

3.使用cout和插入符(<<)输出字符串常量时应注意什么?

答:

可输出一个字符串常量,也可输出多个字符串常量。

每输出一个字符串常量要使用一次插入符(《)。

4.程序中定义过的变量,但没有赋值,也没有默认值,这时能否使用?

答:

不能使用。

因为它的值不确定。

5.一个程序编译通过并已生成执行文件,运行后并获得输出结果,这一结果是否一定正确?

答:

不一定正确。

可能还有算法错。

第2章变量和表达式及数组

练习题2

判断题

V1.C++语言的合法字符集与C语言的完全相同。

X2.标识符规定大小写字母没有区别。

X3.C卄程序中,不得使用没有定义或说明的变量。

V4.变量的存储类指出了变量的作用域和寿命。

V5.变量的数据类型指出了变量在内存中存放的字节数。

X6.定义变量时,变量的存储类说明符不得省略。

X7.自动类变屋与内部静态类变量的作用域和寿命都是相同的。

X8.自动类变量可以定义在函数体外,这时应加说明符autoo

X9.外部类变量与外部静态类变量的作用域是相同的。

X10.变量被定义后是否有默认值与存储类无关,与数据类型有关。

V11.C卄程序中,通常使用const来定义符号常量,定义时必须指出类型。

X12.变量被定义或说明后,它一定具有有意义的值。

x13.字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用单撇号。

X14.所有变量的可见性和存在性都是一致的。

V15.变量在它的作用域内一定是可见的,又是存在的。

V16.C卄语言中除了包含C语言的所有运算符外,还规定自身的若干个运算符。

V17.增1和减1运算符以及赋值运算符都具有副作用。

X18.增1和减1运算符不仅可以作用在变量上,也可以作用在表达式上。

X19.关系运算符可以用来比较两个字符的人小,也可以比较两个字符串的大小。

X20.移位运算符在移位操作中,无论左移还是右移,对移出的空位一律补0。

X21.变量的类型高低是指它被存放在内存的地址值大小。

X22.使用sizeof运算符可以求得某种类型和某个变量在内存中占的字节数,不能求得某个表达式的类型在内存中所占的字节数。

J23.在C卄语言中,非保值转换应用强制类型转换。

V24.表达式中各操作数计算顺序取决于运算符的优先级和结合性。

V25.在C卄程序中,变量值是可以改变的,变量的地址值是不能改变的。

J26.数组中所有元素的类型都是相同的。

X27.定义数组时必须对数组进行初始化。

V2&数组某维的大小可以用常量表达式,不可用变量名。

X29.定义一个数组没有对它进行初始化,则该数组的元素值都是无意义的。

V30.用来给数组进行初始化的初始值表内的数据项的个数必须小于等于数组元素个数。

X31.在定义一个数组时,对其部分元素进行了初始化,没有初始化的元素的值都是无意义的。

J32.数组被初始化时是判越界的。

X33.字符数组就是字符串。

J34.使用prmtf()函数输出显示字符串时使用格式符%s,输出显示字符时使用%c或%血

X35.给数组元素赋值时只可用常量表达式。

单选题

1.下列变量名中,非法的是(C)。

A・A25E・Mv_car

C・My-sti-D・abc

2.下列常量中,十六进制mt型常量是(A)。

A.0x5fE・x2a

D・7a

B.”y”

C.046

3.下列常量中,不是字符常量的是(B)。

A.3

4.

D・'\7‘

A.

C.

5.

A.

B.

C.

在函数体内定义了下述变量ma的存储类为(Diiita;

寄存器类

静态类

卞列关于变量存储类的描述中,错误的是(C

任何变量定义后都具有一个确定的存储类变量的存储类确定了变量的作用域和寿命

定义变量时没有存储类说明符者一律为自动类

)o

)o

B.外部类

D・自动类

 

D・

6.

A.

E・

C・

D・

7.

A.

C・

8.

A.

C・

9.

A.

C・

内部静态类变量和外部静态类变量的存储类说明符都是static下列关于变量数据类型的描述中,错误的是(A定义变量时int型数据类型可以省略

变量的数据类型可以决定该变量占内存的字节数变量的数据类型是可以被强制的变量的数据类型是有高低之分的长双精度浮点型常量的后缀是(C)。

U

L

卞列运算符中,不能用于浮点数操作的是(

-H-

*=

下列运算符中,优先级最高的是(A)。

*(双目)

»

)o

BF

D・无

)o

B.

II

优先级最低的是(B)o

B.+

D・&

(双目)

D・%=

10.下列运算符中,

A.==

c.I

11・已知:

inta(3);

A.a%2=0

C・(a・2)++

12.已知:

intb(5),

A.b="a”

C.b%

13.卜•列关于类型转换的描述中,错误的是(类型转换运算符是(<类型〉)类型转换运算符是单目运算符类型转换运算符通常用于保值转换中类型转换运算符作用于表达式左边

下列表达式中,错误的是(

下列表达式中,正确的是

)。

B.

D.

)。

E・?

:

D・2

a—+2

a»=2

E・++(b-l)

D.b=3,b+1,

)o

b+2

A.

B.

C.

D.

14.下列表达式中,其值为0的是(A)。

A.5/10

C.2>4?

0:

1

15.下列表达式中,其值不为逻辑值的是(A

A.算术表达式

C.逗号表达式

16.

A.

B.

C.

D.

17.

E・!

0

D・2&&2||0

下列关于数组概念的描述中,错误的是(数组中所有元素类型是相同的数组定义后,它的元素个数是可以改变的数组在定义时可以被初始化,也可以不被初始化数组元素的个数与定义时的每维人小有关下列关于数组维数的描述中,错误的是(C)。

E.关系表达式

D•逻辑表达式)。

A.定义数组时必须将每维的大小都明确指出

B.二维数组是指该数组的维数为2

C.数组的维数可以使用常量表达式

 

D.数组元素个数等于该数组的各维人小的乘枳

18.下列关于数组下标的描述中,错误的是(B)。

A.C++语言中数组元素的下标是从0开始的

B.数组元素下标是一个整常型表达式

C.数组元素可以用下标来表示

D.数组元素的某维下标值应小于该维的人小值

19.下列关于初始值表的描述中,错误的是(C)。

A.数组可以使用初始值表进行初始化

B.初始值表是用一对花括号扌舌起的若干个数据项组成的

C.初始值表中数据项的个数必须与该数组的元素个数相等

D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值

20.下列关于字符数组的描述中,错误的是(D)。

A.字符数组中的每一个元素都是字符

B.字符数组可以使用初始值表进行初始化

C.字符数组可以存放字符串

D.字符数组就是字符串

21.下列关于字符串的描述中,错误的是(C)。

A.一维字符数组可以存放一个字符串

B.二维字符数组可以存放多个字符串

C.可以使用一个字符串给二维字符数组赋值

D.可以用一个字符串给二维字符数组初始化

22.已知:

inta[5]={l,2,3,4};下列数组元素值为2的数组元素是(B)。

A.a[0]B.a[l]

C.a[2]D.a[3]

23.已知:

mtab[][3]={{l,5,6},{3},{0,2}};数组元素ab[l][l]的值为(A)。

A.0B.1

C.2

24.已知:

chais[]="abcd";输出显示字符'c,的表达式是(

A・s

C・s[2]D・s[3]

25.已知:

charss[][6]={,,while,\Mfbrf\"else11,"break11};输出显示"leak"字符串的表达式是

(B)o

A・ss[3]E・ss[3]+l

C・ss+3D・ss[3][l]

填空题

1.c卄语言中,基本数据类型包含有整型、浮点型、字符型、空值型和布尔型。

2.变量的存储类可分为自动类、寄存器类、外邹类和静态存储类。

3.浮点型常量可分为单精度、双精度和长双精度浮点型常量。

4.结合性从右至左的运算符有单目运算符、双目运算符和赋值运算符。

5.条件表达式是由三目运算符组成的,该表达式的类型是由冒号左边和右边两个操作数中类型高的操作数类型决定的。

6.己知:

doubledd[][3]={{,,},{,},{}};这里dd是一个二维数组的数组名,该数组共

有9个元素,每个元素的类型是doubleo数组元素dd[O][O]的值是,

dd[l][l]的值是,数组元素dd[2][2]的值是0。

7.己知:

charss[][6]={nwliileH,,,break,\,rfbrn,frelseH};字符数组ss是二维数组,它的第1维人小应该是4。

使用cout和《输出字符串”for”时,对应的表达式是ss+2。

使用cout和《输出字符串”break”的子串”reak”时,对应的表达式是ss[l]+l。

使用cout和《输出字符串else中的字符<时,对应的表达式是ss[3][2]。

分析下列程序

1.

#mcludeo

voidniaiii()

{

inta、b;

cout«MEnterab:

ciii»b»a;

intd=a-b;

cout«Hd=n«d«endl;

}

假定输入为5和8o

答:

d=3

2.

#mcludeo

voidmain()

{

constiiitA=8;

constcharCH='k:

constdoubleD=;

cout«MA=H«A«endl;

cout«HCH+2=H«chai(CH+2)«endl;cout«'=H««endl;

}

答:

A=8

CH=2=m

3.

#mcludeo

iiita=9;

voidniaiii()

{

intb=5;

cout«Ma-rb=H«a+b«endl;

staticiiitc;

cout«Mc+a=M«c+a«endl;

constlongintd=8;

cout<

}

答:

a+b=14

c+a=9

a+d-b=12

4.

#includeo

voidmain()

{

inta=3;

cliarb=rm,;cout«,,a=H«a«V«nb=H«b«endl;

{

iiita=5;

b=b:

cout«Ha=n«a«V«Hb=,,«b«endl;

}cout«,,a=,,«a«,;«,'b=,,«b«endl;

}

答:

a=5,b=m

a=3,b=n

a=3,b=n

5.

#includeo

voidmain()

{

cout«6%4*5/3+3«endl;cout«(10&38)<

cout«^4«endl;

}

答:

6

10

21

-5

6.

#includeo

voidmain()

{

inta=5;

cout«long(&a)«7«sizeof(a)«7«sizeof(int)«endl;doubleb=;

cout«sizeof«7«sizeof(b)«7«sizeof«endl:

}

答:

<地址值>,4,4

4887.

^includeAv

voidmailo

huaH39T5"

courAA(avb+a=Hb—2)AA・\A(a一Hb+a八HbAcclldrcharCH5courAA(CALk・AAxA!

cTh+2)AACndr

flosT;

courAA(—f

莎0.1

10

^includeAv

voidmailo

一一芽Ljk

lHlilkH5;

匸<&<&++J<&p?

——k;

cour«A'Ax4ACAAkAfd「

Itr

 

co三・・e/V/・,」・//-

〒5-〒5R?

R?

*K

courAAAA・\5jAA・\AkAACndr莎5>5

5>5

5>5

9・

^includeAv

voidmam()

inti(5)

courAA(li•i*=jAAcndrr

1H5J&

宁:

5);

COU试AA'AxAAACndr

1H5J&

cour«o+=i*丄!

5AACHdr

m:

40

13.7

23

 

10.

#includeo

mta=8;

voidmain()

{

mtb=6;

doubled=;

d+=a+b;

cout«d«endl;

cout«(a=Lb=2,d=,a+b+d)«endl;cout«(a<0a:

b<0a++:

b++)«endl;

}

答:

2

11・

#includeo

voidmain()

{

intm0[3]={9,8,7,6,5,4,3,2,l},s=0;

for(mti=0;i<3;i++)

s+=m[i][i];

cout«s«endl;

}

答:

15

12.

#includeo

voidmain()

{

chars[]=Mbhv543kpni345H;

fbr(iiiti=0;s[i]!

-\0';i-H-)

{

if(s[i]>=,ar&&s[i]v=Z)

continue;

cout«s[i];

}

cout«endl;

}

答:

543345

13・

#includeo

voidmain()

intb[]={5,・3,4丄・8,9,0,10};

mti=0j;fbr(j=i;i<8;i++)

if(b[i]>b[j])

cout«j«7«b|j]«endl;

}

答:

7,10

14.

#includeo

voidmain()

{

mta[][3]={12,3,4,5,6,7,8,9};

mtsl(0),s2(0);

for(mti=0;i<3;i++)

for(mt尸0;j<3;j++){if(】!

=j)

sl+=a[i]|j];if(i+j==l)

s2+=a[i]|j];

}

cout«nsl=,,«sl«7«,,s2=,,«s2«endl;}

答:

sl=30,s2=6

15・

#includeo

voidmain()

{

chars[]=¥%#”;

for(mti=0;i<3;i++)

{

for(mtj=0:

j

for(mtk=0;k<3;k++)cout«s[k];

cout«endl;

}

fbr(i=2;i>0;i~)

{

for(mtj=0;j

for(mtk=0;k<3;k++)cout«s[k];

cout«endl;

}

答:

#%#

#%#

#%#

#%#

#%#

编程题

1.已知:

mta=3,b=5:

编程计算下列两个代数式的值,并比较它们是否相等。

(a+b)2

a2+2ab+b2

答:

编程如卜:

#iiiclude<>

voidmain()

{

mta=3,b=5;

mtdl=(a+b)*(a+b);

intd2=a*a+2*a*b+b*b;cout«Hdl=n«dl«endl«nd2=H«d2«endl;

}

从结果中可以看出dl和62值是相等的。

2.已知:

mtx=5;编程求卞列代数式的值。

f(x)=3x3+2x2+5x+2

答:

编程如下:

#includeo

voidmain()

{

iiitx=5;

iiitf=3*x*x*x+2*x*x4-5*x+2;

cout«f«endl;

}

3.从键盘上输入两个double型数,编程输出其中最小者。

答:

编程如下:

#includeo

voidmain()

{

doublea.b;

cout«"请输入两个double型数:

”;

cin»a»b;

cout«'输入的两个数中较小的是";

if(a<=b)

cout«a«endl;

else

cout«b«endl;

}

4.华氏温度转换成摄氏温度的计算公式如下:

C=(F-32)*5/9

其中,C表示摄氏温度,F表示华氏温度。

从键盘上输入一摄氏温度,编程输出对应的华氏温度。

答:

编程如下:

#includeo

voidmain()

{

doublec,f;

cout«"请输入一个摄氏温度值:

”;

cin»c;

f=*c+;

cout«"摄氏温度为”《c«”华氏温度为,,«f«endl;

}

5.从键盘上输入5个浮点数,输出它们的和以及平均值。

答:

编程如下:

#includeo

voidmain()

{

doublea,b,c,d.e;

cout«"请输入5个double型数:

”;

cin»a»b»c»d»e;

doublef=a-rb+c+d+e;

cout«"输入的5个数的和是yvfx”平均值是yVf7«eiidl;

}

6.将字符串T2345”,逆向输出为”54321”。

答:

编程如下:

#includeo

voidmain()

{

chara[]=,,12345";

cout«a[4]«a[3]«a[2]«a[1]«a[0]«endl;

}

简单回答下述问题

1.C卄语言中注释符

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2