第4章放課後の練習

4.1,105

4.2(A)* Vec.begin()== *(vec.begin())。(B)vec.begin *()+ 1 == *(vec.begin()+ 1)

この欠陥は、彼らが起こるインパクトの発現の最終結果の評価の順序のみとなり、最終結果に影響を与えるかの評価のためであれば、4.3は、私はそれが(個人的な見解は参考のための標準的な答えではありません)許容だと思うので、自体はプログラマの責任である。この欠点を避けるため、コンパイラが使用されるどのような戦略は重要ではありません。

4.4、(((12/3)* 4)+(5 * 15))+((24%4)/ 2)== 91。

//p4_4.cpp

書式#include <iostreamの>
名前空間stdを使用。

メインint型()
{
    int型;
    A = 12月3日* 4 + 5 * 15 + 24%4/2
    裁判所未満<< "A =" << <<てendl;

    0を返します。
}
 
4.5
-86; B -18; C 0 D -2
 
4.6、BOOL is_even =(INUM%2 == 0)?真偽;
4.7、得られた式の評価結果は、最大値または最小値は、対応するタイプに格納することができる超え
 
4.8、またはその両方が論理的で、左から右に論理的、かつ:と左評価式の結果は、右の魚の発現を決定することができない場合にのみ評価場合
評価等価演算子オブジェクトの順序が提供されていません
 
4.9 、CPは再び非ヌルポインタであると判定されたヌル値決定ポイントを指し
 
4.10しばらく(CIN >> NUM!= 42)
 
4.11(A> B && B> C && C> D)
 
4.12第1の比較振幅JおよびK I、次いで等価の値の比較を返します
 
4.13 
(A)。D = 3.0; I = 3; (B).I = 3、D = 3.5。
 
4.14
(42 = I)が与えられている場合
(I = 42)は常に真である場合
 
4.15
パイはポインタです:DVAL = IVAL = * PI = 0;
 
4.16
。優先順位の低い(A)代入演算子IF((P = getPtr())!= 0)。
(B)==等しいか否かがチェックされるべきである;(Iの== 1024)場合。
 
4.17プリインクリメント演算子はオペランド自体を反転します。ポストインクリメントはインクリメントされないオペレータは、オブジェクトのコピーを返す前
 
4.18は、第1の出力を欠場し、終了アドレスを間接参照になります。
 
4.19
それがヌルポインタではなく、オブジェクトの値へのポインタポイントは0ではありません
B IVAL IVAL 0 1 0にインクリメントされていないされていない(-1 IVALが同じでも0に等しくもありません)
評価の対象順序は不確定であるため、Cの結果は、未定義です
 
より【IVAL <=最大[動物+ 1]。
++ IVAL;
 
4 0.20、
A)* ITER ++溶液に1つのITER ITER再び参照以来増加するため、正当
B)(* ITER)++、合法ではない、*文字列型のITER、文字列は演算子をインクリメントしません
C)* iter.empty()、* ITERは、文字列型であり、空でない()メンバ
D)iter->空()法的
E)++ * ITER、違法、
F)ITER ++ - >、空の()、正当ITERは、次にインクリメント空であるかどうかを確認します。
 
4.21
//p4_21.cpp -条件演算子の使用
の#include <iostreamの>
する#include <ベクトル>
使用して名前空間STDを、
int main()
{
 vector<int> ivec = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 for (auto i = ivec.cbegin(); i != ivec.cend(); ++i)
  cout << *i << " ";
 cout << endl;
 for (auto& c : ivec)
 {
  c = (c % 2 == 0) ? c : 2 * c;
 }
 for (auto i = ivec.cbegin(); i != ivec.cend(); ++i)
  cout << *i << " ";
 cout << endl;
 return 0;
}
 
4.22
finalgrade = (grade > 90) ? "high pass" : (grade > 75) ? "pass": (grade > 60) ? " low pass": "fail";
if(grade>90)
finalgrade = "high pass"
else if(grade > 75)
finalgrade = "pass"
else if(grade > 60)
finalgrade = "low pass"
else
finalgrade = "fail";
 
4.25
先按位取反,再左移6位
 
4.26
位置不够
 
4.27
3 7 true true
 
4.28
 
4.29
 
4.30
(sizeof x) + y;   sizeof( p->mem[i]);  (sizeof a) < b    sizeof(f())
 
4.31
对本例来说,前置和后置都不影响的,得到的结果都是一样的
vector<int>::size_type cnt = ivec.size();
 
for(vector<int>::size_type ix = 0;
ix != ivec.size(); ix++,cnt--)
ivec[ix] = cnt;
 
4.32
遍历数组
 
4.33
如果someValue 为真则执行++x,++y;如果someValue 为假执行--x,--y;
 
4.34
a.  if(fval) fval转换成bool值,非0为true;0 为false
b. dval = fval + ival; //ival转化为float类型与fval相加结果转换为double类型赋给dval;
c. dval + ival * cval //cval 提升为int类型和ival相乘结果转换为double 再与dval 相加
 
4.35
 
a.发生了:'a'提升为int类型与3相加再转化为char 类型赋值给cval
b 发生了: ival提升为float 与1.0相乘,ui转换为float类型再减去乘积
c 发生了: ui提升为float 乘积转换为double 
d 发生了:ival提升为float 与fval相加和再提升为double 与dval相加结果再转换为char 类型
 
4.36
i *=static_cast<int>(d);
4.37
(a) pv = const_cast<void *>(ps);//
(b) i = static_cast<int>(*pc)
(c) pv = static_cast<void *>(&d);
(d) pc = static_cast<char *>(pv)
 
4.38
将j/i的结果强制转换成double 类型初始化slope;
 
 
 

 

おすすめ

転載: www.cnblogs.com/xiaogaogao/p/11755633.html