C++习题第05章 构造数据类型.docx

上传人:b****6 文档编号:6175776 上传时间:2023-01-04 格式:DOCX 页数:16 大小:19.99KB
下载 相关 举报
C++习题第05章 构造数据类型.docx_第1页
第1页 / 共16页
C++习题第05章 构造数据类型.docx_第2页
第2页 / 共16页
C++习题第05章 构造数据类型.docx_第3页
第3页 / 共16页
C++习题第05章 构造数据类型.docx_第4页
第4页 / 共16页
C++习题第05章 构造数据类型.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C++习题第05章 构造数据类型.docx

《C++习题第05章 构造数据类型.docx》由会员分享,可在线阅读,更多相关《C++习题第05章 构造数据类型.docx(16页珍藏版)》请在冰豆网上搜索。

C++习题第05章 构造数据类型.docx

C++习题第05章构造数据类型

第05章构造数据类型

1.选择题

(1)已知P是一个指向结构体类型A的指针,a是结构体类型A的一个变量,如果要给a变量的成员赋值为5,()是正确的。

(A)a.m=5(B)p->m=5(C)(*p).m=5(D)A.m=5

(2)下列关于数组的描述错误的是()

(A)数组的下标是从0开始的

(B)数组名是一个常量指针

(C)数组的每一个元素都是同一类型的

(D)数组元素只能赋初值,而不能在定义后赋值

(3)若有程序段如下:

(A)inta[4]={4,10},*p

(B)P=a;

则输出*(++P)的值为

(A)10(B)4(C)0(D)不定

(4).下列程序的输出结果是(B)

#include

StructA

{inta,b,c;};

Voidmain()

{structAs[2]={{1,2,3},{4,5,6}};

Intt;

T=s[0].a+s[1].b;

Cout<

}

A)5B)6C)7D)8

(5)有如下定义:

Structdata

{intyear,month,day;};

Structstudent

{charname[20];

Charsex;

Structdatabirthday;

}stu;

对结构体变量stu的出生年份进行赋值时,下面正确的是(C)

A)year=1990B)stu.birthday=1990

C)stu..birthday.year=1990;D)stu.year=1990;

2.判断题

(1)给定一个数组,可以通过直接使用数组名显示它的所有元素。

(2)如果在多维数组声明中包含了3对方括号,则后面两对方括号中必须填入常整数值。

(3)可以通过引用来传递一个变量的地址。

(4)不可以对指针变量使用加号。

(5)在将一个数组地址赋给指针变量前必须对数组值进行初始化。

3.读程序写结果

(1)

#include

voidmain()

{

inta=10,*p=&a,**q=&p,b=15;

cout<<(++**q*b-++(*p))<

}

(2)

#include

voidmain()

{

inta[]={2,4,6,8,10};

int*p=a;

inti;

cout<<(*p)++<<*(p++)<

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

cout<

}

(3)

#include

enumGROUP

{A,B,C=10,D=20,E};

unioncomm

{unsignedintx[2];

unsignedshortc;

};

voidmain()

{

unioncommy;

y.x[0]=0x1FFFF;

y.x[1]=0x61;

cout<

}

(4)

#include

structdata

{

intx;

inty;

};

voidmain()

{

data*p;

datamydata[2]={8,5,9,3};

cout<<(mydata[0].x+mydata[0].y)/mydata[1].y<

p=mydata;

(p++)->y=p->y+10;

p->x=p->x-5;

cout<

}

(5)

#include

voidprint(char*);

voidmain()

{

charstr[]={"4096"};

print(str);

cout<

}

voidprint(char*s)

{

char*s1=s;

if(*s1=='\0')return;

while(*s1)

s1++;

cout<<*(--s1);

*s1='\0';

print(s);

}

(6)

#include

int&func(intn,intx[]);

voidmain()

{

inti;

ints[]={5,4,3,2,1};

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

func(i,s)=i;

for(i=4;i>=0;i--)

cout<

}

int&func(intn,intx[])

{

returnx[n];

}

4.编程题

习题参考答案

第1章C++语言概述

1.填空题

(1)函数说明,函数体

(2)声明区,主程序区,函数定义区

(3)多态性

(4)namespace,using

(5)std

(6)cin,>>

(7)//

(8)对数据的操作

2.判断题

(1)对

(2)错(3)错(4)错(5)错

3.改错题

(1)没有函数体,应改为

voidmain(){};

(2)语句没有分号,应改为

usingnamespacemyspace;

(3)cout和操作符<<共同完成输出的功能,应改为

cout<<"Inputyourname:

";

(4)应改为

#include

4.简答题(略)

5.编程题(略)

第2章基本数据类型、运算符与表达式

1.选择题

(1)B

(2)D(3)B(4)D(5)B

2.简答题

(1)(a)、(c)(e)、(f)、(g)、(h)、(i)

(2)(a)、(g)、(i)、(j)

(3)

(a)5.5

(b)0

(c)20

(d)0,0

(e)1

(f)1,2

(g)3

(h)-40

(i)2

(j)3

(k)s1>='0'&&s1<='9'

(l)N!

=0

3.读程序写结果

(1)0,15

(2)(1、1、1),(-1、-1、-1)

(3)

(a)a*a+2*a*b+b*b

(b)4.0/3.0*3.1415926*R*R*R

(c)5.0/9.0*(F-32)

(d)b>=a&&b<=c

(4)

36

41

43

(5)

x=1

4.编程题(略)

第3章C++的控制语句

1.选择题

(1)B

(2)A(3)A(4)C(5)A

2.判断题

(1)错

(2)对(3)对(4)错(5)错

3.读程序写结果

(1)

1

22

333

4444

55555

(2)

1

121

12321

1234321

123454321

(3)

j的值为0;

i的值为2;

4.编程题(略)

第4章函数

1.填空题

(1)void

(2)静态全局变量,static

(3)函数重载

(4)inline

(5)递归函数

(6)宏定义命令,文件包含命令,条件编译命令

2.判断题

(1)错

(2)错(3)错(4)错(5)错

(6)对(7)错(8)错(9)对(10)对

3.读程序写结果

(1)

x=7,y=4

x=9,y=5

(2)

34.56

101

(3)

16

22

28

(4)

1215182124

(5)

2,1,4,1,3,2,1,

4.简答题(略)

5.编程题(略)

第5章构造数据类型

1.选择题

(1)C

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

2.判断题

(1)错

(2)对(3)对(4)错(5)错

3.读程序写结果

(1)

153

(2)

42

256810

(3)

65535,21

(4)

4

19

(5)

6904

(6)

4

3

2

1

0

4.编程题(略)

第6章类和对象

1.填空题

(1)类,对象,类

(2)数据成员,成员函数

(3)不能

(4)private,protected,public,private

(5)成员函数

(6)friend

(7)类名,作用域运算符

(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名

(9)构造,析构,构造,析构

(10)常量数据,引用数据

(11)全局,数据类型,所属的类

(12)常成员,只读

(13)成员,友元

(14)类数据成员,类成员函数

(15)this

(16)浅拷贝

2.选择题

(1)C

(2)C(3)B(4)C(5)B

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

(11)A(12)C(13)D(14)D(15)B

3.改错题

(1)man1.salary=1000.00;不能在类外访问类的私有成员

(2)floatr=0;和floatc=0;类本身是抽象的,不能在类的定义体中给其数据成员赋值

}后缺少分号“;”

(3)成员函数voidsetdata(floatx1,floaty1,floatr);没有实现

(4)构造函数名point()应与类名同名,为Point

没有头文件包含#include

4.读程序写结果题

(1)

x=0,y=0

x=100,y=200

(2)

x=100,y=200

x=1000,y=2000

t=3.14

(3)

Sta:

:

fun2()=10

s.fun2()=11

r.a=20

(4)

Constructor1called!

x=0

Constructor2called!

x=100

Destructorcalled!

Destructorcalled!

(5)

57

5.简答题(略)

6.编程题(略)

第7章继承和派生

1.填空题

(1)继承

(2)基类,派生类

(3)private,protected,public,private

(4)不可访问,保护,公有

(5)私有

(6)单

(一),多(重)

(7)赋值兼容规则

(8)静态,动态

(9)抽象类

2.选择题

(1)B

(2)A(3)B(4)C(5)B

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

(11)D(12)B

3.改错题

(1)本题的错误主要是数据成员的访问权限问题:

基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2=20;.a3=30;,y.a2=200;,y.a3=300;,y.b2=2000;和y.b3=3000;语句。

(2)本题的错误主要是成员函数的访问权限问题:

由于派生类Derived是基类Base的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。

对于类的不可访问和保护成员在类外是不能访问的,故main函数中的语句obj.funl();,obj.fun2();和obj.fun3();是错误的。

4.读程序写结果题

(1)

d=110

b=190

d=110

d=110

(2)

d=110

b=190

d=110

b=90

(3)

基类B1的构造函数被调用

基类B3的构造函数被调用

基类B2的构造函数被调用

派生类D的构造函数被调用

派生类D的析构函数被调用

基类B2的析构函数被调用

基类B3的析构函数被调用

基类B1的析构函数被调用

(4)

A

B

C

D

D

(5)

A

B

D

D

(6)

A

A

B

D

D

(7)

A

B

C

D

D

(8)

5

25

5.简答题(略)

6.编程题(略)

第8章运算符重载

1.填空题

(1)函数重载

(2)重载为类的成员函数,重载为类的友元函数

(3)Operator

(4)1,2

(5)友元

2.选择题

(1)B

(2)D(3)A(4)D(5)B

(6)C(7)C(8)C

3.简答题(略)

4.编程题(略)

第9章模板

1.填空题

(1)类模板,函数模板

(2)类,对象

(3)数据类型

(4)fun(5)

2.选择题

(1)C

(2)B(3)C(4)B(5)D

3.简答题(略)

4.编程题(略)

第10章文件

1.填空题

(1)FILE,stdio.h

(2)stdio.h,fopen,fclose

(3)顺序,随机

(4)cin,>>,cout,<<

(5)ios

(6)fstream,open,close

(7)文件指针的当前位置,文件开头,文件尾

2.选择题

(1)B

(2)B(3)A(4)D(5)B

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

3.简答题(略)

4.编程题(略)

第11章string类与标准模板库STL

1.填空题

(1)字符数组,string类

(2)string

(3)容器,迭代器,算法

(4)顺序,关联

(5)指针

(6)函数模板

2.简答题(略)

3.编程题(略)

第12章异常处理

1.填空题

(1)throw,try,catch

(2)多

(3)数据类型

(4)catch(…)

(5)相反

2.判断题

(1)错

(2)对(3)错(4)错(5)错

3.简答题(略)

4.编程题(略)

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

当前位置:首页 > 表格模板 > 合同协议

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

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