前言:自己做的,如果有错误,要提出来哟...
//4.1
105
//4.2
*(vec.begin());
*(vec.begin())+1;
//4.3
可以接受..利大于弊嘛..
//4.4
(((12/3)*4+(5*15))+((24%4)/2);
//4.5
-86
-18
0
-2
//4.6
%2即可。
//4.7
1000000000*1000000000 2^1000+1;1231556*413514
//4.8
略
//4.9
不是空指针,并且指向的不是空字符
//4.10
While(cin>>a)
{
If(a==42)
Break;
}
//4.11
a> b&&b>c&&c>d
//4.12
i!=(i<k)
//4.13
d=i=3
i=3,d=3.5
这道题很重要,看看,是从后往前来。
//4.14
第一个非法,第二个永远成立
//4.15
虽然可以给指针赋值0,但是不能连等!
//4.16
第一个打括号
第二个再加一个=
//4.17
i++比++i多了一个赋值过程
//4.18
第一个没有输出,并且可能输出未定义的部分,引发错误
//4.19
Ptr指针不为空指针且*ptr++为真
错,应该互换位置
错,没意义
//4.20
a 合法
b 合法
c (*iter).empty();
d 合法
e 合法
f 合法
//4.21
#include <iostream>
#include<vector>
using namespace std;
int main()
{
int i;
vector<int>ivec;
for(i=0;i<10;i++)
ivec.push_back(i);
vector<int>::iterator it=ivec.begin();
for(it=ivec.begin();it!=ivec.end();++it)
{
if(*it%2!=0)
*it=*it*2;
}
for(it=ivec.begin();it!=ivec.end();++it)
{
cout<<*it<<endl;
}
}
//4.22
#include <iostream>
#include<vector>
using namespace std;
int main()
{
vector<unsigned>grades;
unsigned i;
while(cin>>i)
grades.push_back(i);
for(vector<unsigned>::const_iterator grade=grades.begin();
grade!=grades.end();++grade)
{
string finalgrade=(*grade<60)?"fail":"pass";
finalgrade=(*grade>90)?"highpass":(*grade<60)?"fail":"pass";
cout<<*grade<<""+finalgrade<<endl;
}
}
//4.23
String p1=s+((s[s.size()-1]==’s’?””:”s”);
//4.24
先判断是否小于60,在判断是否大于90
//4.25 4.26 4.27不会
4.28
#include <iostream>
#include<vector>
using namespace std;
int main()
{
cout<<sizeof(char)<<endl;
cout<<sizeof(int)<<endl;
}
4.29
#include <iostream>
#include<vector>
using namespace std;
int main()
{
int x[10];
int *p;
cout<<sizeof(x)<<""<<sizeof(*x)<<endl;
cout<<sizeof(p)<<""<<sizeof(*p)<<endl;
}
4.30
Sizeof(x+y);
Sizeof(p->men[i])
Sizeof(a)<b
Sizeof(f())
4.31
略
/4.32
用指针和下标来操作数组的元素
//4.33
(someVal?++x),(++y,x),(-y)
//4.34
a:fval是否为0
b:求和赋值
c:先乘再加
//3.35
都可以
//4.36
int i*=static_case<int>(d)
//4.37
Pv=cosnt_casr<void*>(ps)
I=statuc_case<int>(*pc)
Pv=static_case<double *>(&d);
Pc=reinterpret_cast<char *>(pv);
//4.38
把j/i的值强制转换成double型,给slope