C++PRIMER第三章课后练习
来源:互联网 发布:全美测评软件系统 编辑:程序博客网 时间:2024/04/27 15:08
代码开头为减少字符省略了~
#include<iostream>
#include<string>
#include<vector>
using namespace std;
3.2
string s;
整行:getline(cin,s)
一个词:cin>>s;
3.3
输入运算符跳过开头的空白,直到遇到下一个空白为止;
getline函数全部读取,直到遇到分界符为止(丢弃分界符),比如换行符为分界符的时候读取整行,最后个换行符丢弃~~
3.4
int main()
{
string s1,s2;
cin>>s1>>s2;
if(s1==s2)
cout<<s1<<s2;
else if(s1>s2)
cout<<s1;
else
cout<<s2;
return 0;
}
int main()
{
string s1,s2;
cin>>s1>>s2;
if(s1.size()==s2.size())
cout<<s1<<s2;
else if(s1.size()>s2.size())
cout<<s1;
else
cout<<s2;
return 0;
}
3.5int main()
{
string s, result;
while (cin >> s)
result += s;//result+=s+" ";
cout << result;
return 0;
}
3.6
int main()
{
string s("C++");
for (char &c : s)
c = 'X';
cout << s;
return 0;
}
3.7
不会改变原始字符串什么.
3.8
a)string::size_type i=0;
while(s[i])
s[i++]='X';
b)
for(string::size_type i=0;s[i];++i)
s[i]='X';
感觉都还好...
3.9
不合法,s是空字符串,越界了
3.10
int main()
{
string s;
cin >> s;
for (char c : s)
if (!ispunct(c))
cout << c;
return 0;
}
3.11
合法,const char&,语句块里不允许修改C的值
3.12
a)正确,创建了元素为vector<int>的vector对象
b)错误,类型不匹配
c)正确,创建了包含10个"null"的vector对象
3.13
a)0个 b)10个0
c)10个42 d)一个元素10
e)2个元素,10和42 f)10个空字符串
g)10个"hi"
3.14
int main()
{
vector<int> vec;
int i;
while (cin >> i)
vec.push_back(i);
return 0;
}
3.15
int main()
{
vector<string> vec;
string s;
while (cin >> s)
vec.push_back(s);
return 0;
}
3.17
int main()
{
vector<string> vec;
string s;
while (cin >> s)
{
for (char&c : s)
c = toupper(c);
vec.push_back(s);
}
for (const string outs : vec)
cout << outs << endl;
return 0;
}
3.18
不合法,下标越界
vector<int> ivec;
ivec.push_back(42);
3.19
vector<int> vec1(10,42);
vector<int> vec2{42,42,42,42,42,42,42,42,42,42};
vector<int> vec3(vec1);
第一种最好,简单直接明了
3.20
int main()
{
vector<int> ivec;
int val;
for (int i = 0; i < 9; ++i)
{
cin >> val;
ivec.push_back(val);
}
for (int i = 0; i < 8; ++i)
cout << ivec[i] + ivec[i + 1] << ","; //第一段
cout << endl;
for (auto it1 = ivec.begin(), it2 = ivec.end()-1; it1 - it2 < 0; ++it1, --it2) //第二段
cout << *it1 + *it2 << ",";
return 0;
}
3.22
for(auto it=text.begin();it!=text.end()&&!it->empty();++it)
for(char &c:*it)
cout<<toupper(c);
3.23
int main()
{
vector<int> ivec{ 0,1,2,3,4,5,6,7,8,9 };
for (auto it = ivec.begin(); it != ivec.end(); ++it)
*it *= 2;
for (auto i : ivec)
cout << i << ",";
return 0;
}
3.26
迭代器相加没有意义
3.27
a)非法,数组维度必须是个常量表达式
b) 合法
c)非法
d)非法,没有空间存放空字符;
3.28
sa是10个空字符串;ia是10个0;sa2是10个空字符串,ia2是10个不确定的数;
3.29
不灵活,无法改变大小,并不能随意向数组中增加元素
3.30
越界,,<=改成<
3.31
int main()
{
int a[10];
for(int i=0;i<10;++i)
a[i]=i;
return 0;
}
3.33
在函数体内定义未初始化内置unsigned,值将不确定
3.34
令p1=p2;只要p1,p2合法且指向同一数组,这个程序永远合法
3.37
输出hello
3.38
指针指的是对象的地址,2个地址相加没有意义,指向哪里都不知道了
3.41
vector<int> vec(begin(a),end(a));
- C++PRIMER第三章课后练习
- c++primer第五版课后练习答案(第三章)
- C++PRIMER第十章课后练习
- C++ Primer Plus 第三章课后编程练习
- 第三章课后练习
- C++primer第八章课后变成练习的小问题
- c++primer第五版课后练习答案(第五章)
- c++primer第五版课后练习答案(第九章)
- c++primer第五版课后练习答案(第十章)
- c++primer第五版课后练习答案(第六章)
- C++Primer 中文版 第五版 第三章课后习题答案
- c++primer 课后练习解答网址
- C Primer Plus 第五版 课后练习
- C++Primer课后练习exe6.33
- 学习C++Primer第五版,课后练习。
- C++ PRIMER第五章课后练习
- C++ Primer第三章课后编程题
- C++ Primer Plus 课后习题 第三章
- 虚拟机linux挂载光盘显示:mount: you must specify the filesystem type
- struts2.0 上传文件
- codeforces contest 868 problem D(玄学)
- tensorflow(2)
- Hello World!
- C++PRIMER第三章课后练习
- BZOJ2330 差分约束之浅谈数学不等式拓扑逻辑顺序转化为图论中队列实现广度优先搜索的最长路之双端队列Bellman-Ford算法及入队次数判断自环
- #define宏定义和const及enum枚举的区别
- 1003. 我要通过!(20)
- 向Maillist投送邮件的注意事项
- pycharm最新专业版2017激活方法
- HDOJ2073 无限的路
- sqlalchemy创建表
- Hibernate中关联关系中常用的属性