C++第六章课后习题Word文件下载.docx

上传人:b****3 文档编号:16053351 上传时间:2022-11-18 格式:DOCX 页数:24 大小:420.11KB
下载 相关 举报
C++第六章课后习题Word文件下载.docx_第1页
第1页 / 共24页
C++第六章课后习题Word文件下载.docx_第2页
第2页 / 共24页
C++第六章课后习题Word文件下载.docx_第3页
第3页 / 共24页
C++第六章课后习题Word文件下载.docx_第4页
第4页 / 共24页
C++第六章课后习题Word文件下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C++第六章课后习题Word文件下载.docx

《C++第六章课后习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++第六章课后习题Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。

C++第六章课后习题Word文件下载.docx

指针是一种数据类型,具有指针类型的变量称为指针变量。

指针变量存放的是另外一个对象的地址,这个地址中的值就是另一个对象的类容。

6-8声明一个int型指针,用new语句为其分配包含10个元素的地址空间。

intpInteger=newint[10];

6-9在字符串”Hello,world!

”中结束符是什么?

\0

6-10声明一个有5个元素的int型数组,在程序中提示用户输入元素值,最后再在屏幕上显示出来。

#include<

iostream>

usingnamespacestd;

intmain(){

intmyArray[5];

inti;

for(i=0;

i<

5;

i++)

{

cout<

<

"

ValueformyArray["

]:

;

cin>

>

myArray[i];

}

:

myArray[i]<

endl;

return0;

}

6-11引用和指针有何区别?

何时只能使用指针而不能使用引用?

引用是一个别名,不能为NULL值,不能被重新分配;

指针是一个存放地址的变量。

当需要对变量重新赋以另外的地址或赋值为NULL时只能使用指针。

6-12声明下列指针:

float类型变量的指针pfloat,char类型的指针pstr、structCustomer型的指针pcus。

float*pfloat;

Char*pstr;

Structcustomer*pcus;

6-13给定float类型的指针fp,写出显示fp所指向的值的输出流语句。

cout<

”Value==”<

*fp;

6-14在程序中声明一个double类型变量的指针,分别显示指针占了多少字节和指针所指的变量占了多少字节。

double*counter;

\nSizeofpointer=="

sizeof(counter);

nSizeofaddressedvalue=="

sizeof(*counter);

return0;

}

6-15constint*p1和int*constp2的区别是什么?

constint*p1声明了一个指向整形常量的指针p1,因此不能通过指针p1来改变它所指向的整型值;

int*constp2声明了一个指针型常量,用于存放整形变量的地址,这个指针一旦初始化后,就不能被重新赋值。

6-16声明一个int型变量a,一个int型指针p,一个引用r,通过p把a的值改为10,通过r把a的值改为5

inta;

int*p=&

a;

int&

r=a;

*p=10;

r=5;

6-17下列程序有何问题,请仔细体会使用指针时应避免出现这个的问题。

#include<

intmain(){

int*p;

*p=9;

cout<

"

Thevalueatp:

<

*p;

指针p没有初始化,也就是没有指向某个确定的内存单元,它指向内存中的一个随机地址,给这个随机地址赋值是非常危险的。

6-18下列程序有何问题,请改正;

仔细体会使用指针时应避免出现的这个问题。

intfn1(){

int*p=newint(5);

return*p;

intmain(){

inta=fn1();

cout<

thevalueofais:

a;

int*fn1();

int*a=fn1();

cout<

deletea;

int*fn1(){

int*p=newint(5);

returnp;

6-19声明一个参数为int型,返回值为long型的函数指针;

声明类A的一个成员函数指针,其参数为int型,返回值long型。

long(*p_fn1)(int);

Long(A:

*p_fn2)(int);

6-20实现一个名为SimpleCircle的简单圆类,其数据成员int*itsRadius为一个指向其半径值的指针,存放其半径值。

设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。

classSimpleCircle

{

public:

SimpleCircle();

SimpleCircle(int);

SimpleCircle(constSimpleCircle&

);

~SimpleCircle(){}

voidsetRadius(int);

intgetRadius()const;

private:

int*itsRadius;

};

SimpleCircle:

SimpleCircle()

itsRadius=newint(5);

SimpleCircle(intRadius)

itsRadius=newint(Radius);

SimpleCircle(constSimpleCircle&

rhs)

intval=rhs.getRadius();

itsRadius=newint(val);

intSimpleCircle:

getRadius()const

return*itsRadius;

SimpleCircleCircleOne,CircleTwo(9);

CircleOne:

CircleOne.getRadius()<

CircleTwo:

CircleTwo.getRadius()<

6-21编写一个函数,统计一条英文句子中字母的个数,在主程序中实现输入输出。

cstdio>

intcount(char*str)

inti,num=0;

str[i];

if((str[i]>

='

a'

str[i]<

z'

)||(str[i]>

A'

Z'

))

num++;

returnnum;

chartext[100];

输入一个英语句子:

gets(text);

这个句子里有"

count(text)<

个字母。

6-22编写函数voidreverse(string&

s),用递归算法使字符串s倒序。

string>

stringreverse(string&

str){

if(str.length()>

1){

stringsub=str.substr(1,str.length()-2);

returnstr.substr(str.length()-1,1)+reverse(sub)+str.substr(0,1);

}else

returnstr;

stringstr;

输入一个字符串:

cin>

str;

原字符串为:

str<

倒序反转后为:

reverse(str)<

6-23设学生人数N=8,提示用户输入N个人的考试成绩,然后计算出他们的平均成绩并显示出来。

#defineN8

floatgrades[N];

floattotal,average;

N;

Entergrade#"

(i+1)<

grades[i];

total=0;

total+=grades[i];

average=total/N;

\nAveragegrade:

average<

6-24基于char*设计一个字符串类MyString,并且具有构造函数、析构函数、复制构造函数,重载运算符“+”、“=”、“+=”、“[]”,尽可能完善它,使之能满足各种需要。

(运算符重载功能为选做,参见第8章)

classMyString{

MyString();

MyString(constchar*const);

MyString(constMyString&

~MyString();

char&

operator[](unsignedshortoffset);

charoperator[](unsignedshortoffset)c

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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