摘要:
#include using namespace std;int main(){ const size_t s=5;//定义数组长度; int ai[]={0,2,4,6,8};//初始数组; cout<<"原始数组:"<<endl; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//输出检验原始数组; cout<<*pb<<"\t"; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//将数组原始值改为0; *pb=0; cout<<endl; cout<<"把元素设 阅读全文
摘要:
//编写代码修改指针的值,再重写代码修改指针指向的对象的值。#include using namespace std;int main(){ int i=10; int j=12; int *p=&i; //修改指针的值 cout<<"未修改前指针p的值:"<<*p<<"未修改指针p前p所指对象的值:"<<i<<endl; p=&j; cout<<"修改后指针p的值:"<<*p<<"修改指针p后指针p所指对象的值:"<<i<<endl; //修改指针指向的对象的值 /*cou 阅读全文
摘要:
//编写程序定义一个有10个int型元素的数组,并以其在数组中的位置作为各元素的初值。#include using namespace std;int main(){ const size_t s=10;//定义数组长度; int a[s];//定义整型数组a; for (size_t i=0;i!=s;i++)//给数组a赋值; a[i]=i+1; for (int j=0;j!=i;j++)//输出数组a的各个元素值; cout<< "数组a有"<<i<<"个元素,其中第"<<j+1<<"个元素值为:"<<a[j] 阅读全文
摘要:
#include #include using namespace std;int main(){ //定义迭代器; vector v1; vector v2; vector::size_type s=10; int j; int i=0; //向迭代器V1写入数据; cout>j; v1.push_back(j); } //向迭代器v2写入数据; cout>j; v2.push_back(j); } //比较迭代器v1与v2是否相等; for(vector::iterator it1=v1.begin(),it2=v2.begin();it1!=v1.end(),it2!=v 阅读全文
摘要:
#include using namespace std;int main(){ int a1[]={2,4,6,8,10,12,14,16,18,20,22,24,26}; const size_t s=13; int a2[s]; /*for (size_t k=0;k!=s ;k++ ) { cout<<a2[k]<<"\t"; if ((k+1)%5==0) cout<<endl; }*///考查数组a2的初始情况; for (size_t i=0;i!=s;i++) a2[i]=a1[i];//实现复制; for (int j=0;j!=s;j 阅读全文
摘要:
#include #include using namespace std;int main(){ int i; vector v; vector v1; cout>i) v.push_back(i); for (vector::size_type ix=0;ix!=v.size();ix++) v1.push_back(v[ix]);//实现复制; for(int j=0;j!=v1.size();j++)//检验复制是否成功; { cout<<v1[j]<<"\t"; if((j+1)%5==0) cout<<endl; } return 阅读全文
摘要:
1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;6.会用Visual C++,并不说明你会C++;7.学class并不难,template、STL、g 阅读全文
摘要:
习题5.1在下列表达式中,加入适当的圆括号以标明其计算顺序。编译该表达式并输出其值,从而检查你的回答是否正确。12 / 3 * 4 + 5 * 15 + 24 % 4 / 2【解答】加入如下所示的圆括号以标明该表达式的计算顺序: (((12 / 3) * 4) + (5 * 15)) + ((24 % 4) / 2)习题5.2计算下列表达式的值,并指出哪些结果值依赖于机器?-30 * 3 + 21 / 5-30 + 3 * 21 / 530 / 3 * 21 % 5-30 / 3 * 21 % 4【解答】各表达式的值分别为-86、-18、0、-2。其中,最后一个表达式的结果值依赖于机器,因为该 阅读全文
摘要:
习题4.1假设get_size是一个没有参数并返回int值的函数,下列哪些定义是非法的?为什么?unsigned buf_size = 1024(a) int ia[buf_size];(b) int ia[get_size()];(c) int ia[4*7-14];(d) char st[11] = "fundamental" ;【解答】(a)非法,buf_size是一个变量,不能用于定义数组的维数(维长度)。(b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数(维长度)。(d)非法,存放字符串"fundamental"的数组必须有12个元素,st只有11个元 阅读全文
摘要:
习题3.1用适当的using声明,而不用std::前缀,访问标准库中的名字,重新编写2.3节的程序,计算一给定数的给定次幂的结果。【解答】#include using std::cin;using std::cout;int main(){ // 局部对象 int base, exponent; long result=1; // 读入底数和指数 cout > base >> exponent; if (exponent 0) { // 计算底数的指数次方 for (int cnt = 1; cnt #include using namespace std;int main 阅读全文
摘要:
习题2.1int、long和short类型之间有什么差别?【解答】它们的最小存储空间不同,分别为16位、32位和16位。一般而言,short类型为半个机器字(word)长,int类型为一个机器字长,而long类型为一个或两个机器字长(在32位机器中,int类型和long类型的字长通常是相同的)。因此,它们的表示范围不同。习题2.2unsigned和signed类型有什么差别?【解答】前者为无符号类型,只能表示大于或等于0的数。后者为带符号类型,可以表示正数、负数和0。习题2.3如果在某机器上short类型占16位,那么可以赋给short类型的最大数是什么?unsigned short类型的最大 阅读全文
摘要:
习题1.1查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。【解答】一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。习题1.2修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运 阅读全文