钱能c++程序设计教程第二版第三章答案.docx

上传人:b****6 文档编号:3727112 上传时间:2022-11-24 格式:DOCX 页数:13 大小:17.52KB
下载 相关 举报
钱能c++程序设计教程第二版第三章答案.docx_第1页
第1页 / 共13页
钱能c++程序设计教程第二版第三章答案.docx_第2页
第2页 / 共13页
钱能c++程序设计教程第二版第三章答案.docx_第3页
第3页 / 共13页
钱能c++程序设计教程第二版第三章答案.docx_第4页
第4页 / 共13页
钱能c++程序设计教程第二版第三章答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

钱能c++程序设计教程第二版第三章答案.docx

《钱能c++程序设计教程第二版第三章答案.docx》由会员分享,可在线阅读,更多相关《钱能c++程序设计教程第二版第三章答案.docx(13页珍藏版)》请在冰豆网上搜索。

钱能c++程序设计教程第二版第三章答案.docx

钱能c++程序设计教程第二版第三章答案

读研需要c++,以前只学过C,根据网评,找了国内的钱能老师写的《c++程序设计教程(第二版)》,书上的例子比较不错,但是在网上一直没有下到完整的包括例子和习题的解答,于是我就突发奇想,一方面也是督促自己学习C++,想把书上和习题上的所有编程题目的答案都写出来,可以在VS2010上运行,供正在学习C++的同学参考。

现在看到第二章,以后会经常的更新答案,我也是新手,可能在编程风格和思路上有待提高,也有一些题目不知道该如何下手,路过的朋友知道的可以告诉我,我的邮箱是guosheng-14@,可以督促我继续写以后的答案。

实在VS2010上运行的,vc++6.0可能在头文件上有所区别。

第三章

第一部分

//3.3.2—浮点数表示

#include

usingnamespacestd;

intmain()

{

floatf=19.2F;

cout<

unsignedint*p=reinterpret_cast(&f);

for(inti=31;i>=0;i--)

cout<<(*p>>i&1)<<(i==31||i==23?

"-":

"");

cout<

}

 

//3.4.2—字符操作函数相关

#include

usingnamespacestd;

intmain()

{

char*s1="Hello";

char*s2="123";

chara[20];

strcpy(a,s1);

cout<<(strcmp(a,s1)==0?

"":

"not")<<"equal."<

cout<

cout<

cout<

cout<<(strstr(a,"ell")?

"":

"not")<<"find."<

cout<<(strchr(a,'c')?

"":

"not")<<"find"<

}

//3.4.3string函数相关

#include

#include

usingnamespacestd;

intmain()

{

stringa,s1="hello",s2="123";

a=s1;

cout<<(a==s1?

"":

"not")<<"equal."<

cout<

reverse(a.begin(),a.end());

cout<

cout<

cout<<(a.find("ell")?

"":

"not")<<"find"<

cout<<(a.find('c')?

"":

"not")<<"find"<

}

//3.4.5string流+文件流

#include

#include

#include

usingnamespacestd;

intmain()

{

ifstreamfin("original.txt");

for(strings;getline(fin,s);)

{

inta,sum=0;

for(istringstreamsin(s);sin>>a;sum+=a);

cout<

}

}

 

//3.5.2--sizeof()

#include

usingnamespacestd;

intmain()

{

inta[]={1,15,8,3,8,48,2,64,5};

for(inti=0;i

cout<<""<

cout<

}

//3.5.3--初始化

#include

usingnamespacestd;

intarray1[5]={1,2,3};

intarray2[5];

intmain()

{

intarray3[5]={2};

intarray4[5];

cout<<"array1:

";

for(inti=0;i

cout<

cout<

cout<<"array2:

";

for(inti=0;i

cout<

cout<

cout<<"array3:

";

for(inti=0;i

cout<

cout<

cout<<"array4:

";

for(inti=0;i

cout<

cout<

}

//3.5.4—二维数组

#include

usingnamespacestd;

intmain()

{

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

intb[2][3]={{1,2},4};

cout<<"array1:

"<

for(inti=0;i

{

cout<<"";

for(intj=0;j

cout<

cout<

}

cout<<"================================="<

cout<<"array2:

"<

for(inti=0;i

{

cout<<"";

for(intj=0;j

cout<

cout<

}

cout<<"================================="<

}

 

//3.6.2—文件流+向量

#include

#include

#include

usingnamespacestd;

intmain()

{

ifstreamfin("original.txt");

vectorva;

for(inta;fin>>a;)

va.push_back(a);

ints=0;

for(vector:

:

iteratorp1=va.begin();p1

{

for(vector:

:

iteratorp2=p1+1;p2

if((*p1)==(*p2))

s++;

}

cout<

}

 

//3.6.3二维向量

#include

#include

#include

#include

usingnamespacestd;

typedefvector>matrix;

matrixinput();

voidsort(matrix&a);

voidprint(matrix&a);

intmain()

{

matrixa=input();

sort(a);

print(a);

}

matrixinput()

{

matrixa;

ifstreamin("aa.txt");

for(strings;getline(in,s);)

{

vectorb;

istringstreamsin(s);

for(intt;sin>>t;)b.push_back(t);

a.push_back(b);

}

returna;

}

voidsort(matrix&a)

{

for(inti=0;i

{

for(intj=i;j

{

if(a[i].size()>a[j].size())

a[i].swap(a[j]);

}

}

}

voidprint(matrix&a)

{

for(inti=0;i

{

for(intj=0;j

cout<

cout<

}

}

 

//3.7.2指针类型

#include

usingnamespacestd;

intmain()

{

floatf=34.5;

int*p=reinterpret_cast(&f);

cout<<"float:

"<

cout<<&f<<"=>"<

cout<<"======================"<

cout<<"int:

"<

cout<"<<*p<

cout<<"======================="<

}

 

//3.7.3数组与指针

#include

usingnamespacestd;

intmain()

{

inta[6];

for(inti=0;i<6;i++)a[i]=i*2;

for(int*p=a;p

cout<

}

 

//3.7.5引用

#include

usingnamespacestd;

intmain()

{

inta=5;

int&alias=a;

cout<<&a<<""<

cout<<&alias<<""<

intb=8;

alias=8;

cout<<&alias<<""<

}

 

第二部分

//1--二t进?

制?

码?

#include

usingnamespacestd;

intmain()

{

intf=-1234567;

cout<

unsignedint*p=reinterpret_cast(&f);

for(inti=31;i>=0;i--)

cout<<(*p>>i&1)<<(i==31||i==23?

"-":

"");

cout<

}

 

//2—字节,位长

#include

usingnamespacestd;

intmain()

{

cout<<"longint:

"<

cout<<"int:

"<

cout<<"char:

"<

cout<<"bool:

"<

cout<<"longdouble:

"<

cout<<"double:

"<

cout<<"float:

"<

}

 

//3—均方差

#include

#include

#include

usingnamespacestd;

intmain()

{

inta[]={6,3,7,1,4,8,2,9,11,5};

vectorv(a,a+10);

for(vector:

:

iteratori=v.begin();i

cout<

doubleeverage=0,sum=0;

for(inti=0;i

everage=sum/double(v.size());

cout<<"eve:

"<

doubleitem=0;

for(inti=0;i

{

item+=pow(v[i]-everage,2.0);

}

cout<<"s="<

}

 

//4—加班+文件流

#include

#include

#include

#include

usingnamespacestd;

intmain()

{

ifstreamin("aa.txt");

intdays=0;

for(strings;getline(in,s);)

{

if(s.find("25")

{

cout<

"还是个加班日哦":

"")<

}

}

}

 

//5—字符加密

//我没有看懂“在32(‘’)~122(‘’)之间做模运算”是什么意思,只做了加数字部分的加密,求解答

#include

#include

usingnamespacestd;

intmain()

{

inta[7]={4,9,6,2,8,7,3},i=0;

for(charch;(ch=cin.get())!

='\n';)

{

ch+=a[(i++)/7];

cout<

}

cout<

}

 

//6—运行结果

#include

usingnamespacestd;

intmain()

{

intsum[5]={0};

intiArray[]={1,4,2,7,13,21,48,16,30};

intsize=sizeof(iArray)/sizeof(*iArray);

int*iPtr=iArray;

for(intn=0;n

sum[3]+=iPtr[n];

for(intn=0;n

sum[2]+=*(iPtr+n);

for(intn=0;n

sum[1]+=*iPtr++;

for(intn=0;n

sum[0]+=iArray[n];

for(intn=0;n

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

cout<

}

//7—修改成

#include

usingnamespacestd;

voidmyswap(int&a,int&b);

intmain()

{

inta=16,b=48;

int&aa=a,&bb=b;

cout<<"a="<

myswap(aa,bb);

cout<<"afterbeingswapped:

"<

cout<<"a="<

}

voidmyswap(int&a,int&b)

{

intitem;

item=a;

a=b;

b=item;

}

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

当前位置:首页 > 高中教育 > 语文

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

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