C++语言程序设计

设Time是一个类,现有指针p的定义语句:const Time *p;则通过指针p不可以修改Time类对象的公有数据成员。

题目

设Time是一个类,现有指针p的定义语句:const Time *p;则通过指针p不可以修改Time类对象的公有数据成员。

参考答案和解析
正确答案:正确
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设p是指向一个类动态对象的指针变量,则执行"delete p;"语句时,将自动调用该类中的______函数。


正确答案:析构
析构

第2题:

要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A.const char *p=”ABCD”;

B.char const *p=”ABCD”;

C.char *const p=”ABCD”;

D.const char *const p=”ABCD”;


参考答案:D

第3题:

设已有定义: float x; 则以下对指针变量 p 进行定义且赋初值的语句中正确的是

A)float *p=1024;

B)int *p=(float)x;

C)float p=&x;

D)float *P=&x;


正确答案:D

 

第4题:

对下列语句正确的描述是( )。 const int*x; //(1) int*const X; //(2)

A.语句(1)的含义是指针变量x不能更改

B.语句(2)的含义是指针变量x所指向的不能更改

C.语句(2)的含义是指针变量x不能更改

D.语句(1)和(2)是相同含义的不同定义方式


正确答案:C

第5题:

设已有定义:floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是()。

A.int*p=(floatx)

B.floatp=&x

C.float*p=1024

D.float*P=&x


正确答案:D

第6题:

设函数f的原型是:char *f (const char*);,pf 是指向f 的指针,则pf 的定义是【 】。


正确答案:char(*p)(const char*)=f;
char(*p)(const char*)=f; 解析:如果要使指针指向函数,函数的原型应该改为上面的形式。

第7题:

使用VC6打开考生文件夹下的工程test33_3。此工程包含一个test33_3.cpp,其中定义了表示时间的类Time,但Time类定义并不完整。请按要求完成下列操作,将程序补充完整。

(1)定义类Time的私有数据成员hours、minutes和seconds,它们都是int型的数据,分别表示时间的小时、分和秒。请在注释“//**1**”之后添加适当的语句。

(2)完成类Time缺省构造函数的定义,该函数将数据成员hours、minutes和seconds的值初始化为0,请在注释“//** 2**”之后添加适当的语句。

(3)完成类Time带参构造函数的定义,该函数将数据成员hours、minutes和seconds的值分别初始化为参数h、m和s的值,请在注释“//**3**”之后添加适当的语句。

(4)完成类Time中运算符“+”的重载,注意小时、分和秒在相加时的进位问题。请在注释“//**4**”之后添加适当的语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

程序输出结果如下:

8:17:11

源程序文件test33_3.cpp清单如下:

include <iostream.h>

class Time

{

//** 1 **

public:

Time ( )

{

//** 2 **

seconds=0;

}

Time(int h, int m, int s)

{

//** 3 **

minutes=m;

seconds=s;

}

Time operator +(Time&);

void gettime();

};

Time Time::operator +(Time& time)

{

//** 4 **

s=time.seconds+seconds;

m=time.minutes+minutes+s/60;

h=time.hours+hours+m/60;

Time result(h,m%60,s%60);

return result;

}

void Time::gettime()

{

cout<<hours<<":"<<minutes<<":"<<seconds<<end1;

}

void main( )

{

Time t1(3,20,15),t2(4,56,56),t3;

t3=t1+t2;

t3.gettime();

}


正确答案:(1) int hoursminutesseconds; (2) hours=0; minutes=0; (3) hours=h; (4) int hms;
(1) int hours,minutes,seconds; (2) hours=0; minutes=0; (3) hours=h; (4) int h,m,s; 解析:本题主要考查考生对于类的构造函数和运算符重载的掌握。构造函数可以有一个或多个参数,所以构造函数是可以重载的。而在类Time运算符“+”重载时,特别要注意重载函数要返回的是Time型的值,而分和秒是逢60进1的,不是逢 100进1或者单独相加各自的部分。

第8题:

设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是( )。

A.float *p=1024;

B.int *p=(float x);

C.float p=&x;

D.float *P=&x;


正确答案:D

第9题:

对下列语句正确的描述是( )。 const int *x; int *const x;

A.语句1的含义是指针变量x不能更改

B.语句2的含义是指针变量x所指向的值不能更改

C.语句2的含义是指针变量x不能更改

D.语句1和语句2含义是相同的


正确答案:C
解析:语句1的含义是指针变量x所指向的地址的值不能更改。但是指针变量x的值可以进行修改。

第10题:

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。 A.定义语句中的*号是一个间址运算符S

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号只是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P


正确答案:C
doublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

更多相关问题