c++ primer 4.3节练习答案

练习4.8

优先级排序(从高到低) : 相等性运算符、逻辑与、逻辑或

练习4.9

cp是一个指向字符数组的指针,因为cp是指向字符数组,cp存储的是字符数组的地址,肯定不为空,故逻辑与左边的值为真,逻辑与右边*cp表示的是字符数组的首字符‘H’,也为真,故整个表达式的值为真。

练习4.10

 1 int main()
 2 {
 3     int i;  //好久不用vector和范围for循环,复习一下
 4     vector<int> num;
 5     while (cin >> i && i != 42)
 6     {
 7         num.push_back(i);
 8         for (auto c : num)
 9             cout << c;
10     }
11     system("pause");
12     return 0;
13 }

练习4.11

1 int main()
2 {
3     int a, b, c, d;
4     while (cin >> a >> b >> c >> d && a > b && b > c && c > d)
5         cout << a << ">" << b << ">" << c << ">" << d << endl;
6     system("pause");
7     return 0;
8 }

练习4.12

因为<的优先级要大于!=,所以表达式可写为i !=(j < k),j小于k的类型是布尔值,再与i进行相等性测试,转换为int型的0或1;与i比较后返回布尔类型。

时间: 2024-10-25 06:31:34

c++ primer 4.3节练习答案的相关文章

c++ primer 4.6节练习答案

练习4.20 a) 合法,解引用iter,先输出iter所指向的对象的值,再把iter所指的位置向前移动一: b) 不合法,*iter得到的是一个字符串,字符串不能自增: c)不合法,解引用的优先级低于点运算符,故empty()函数先与iter结合,iter是一个指向对象的指针,他是没有empty()函数的,应该是(*iter).empty(); d)合法,输出跟上面一题一样的值 e)合法,等价于++(*iter) f)合法,等价于((iter++)).empty().返回(iter).empt

c++ primer 4.8节练习答案

练习4.25 ~优先级大于<< 开始时    :0000000 00000000 00000000 01110001 按位取反:11111111 11111111 11111111 10001110 左移六位:11111111 11111111 11100011 10000000 练习4.26 unsigned int无法保证在任何一台机器上都拥有32位,所以无法保证quiz1能够储存所有同学的成绩 练习4.27 ul1 = 3 :00000000  00000000  00000000  0

c++ primer 4.7节练习答案

练习4.21 1 int main() 2 { 3 int num; 4 vector<int> a_num; 5 while (cin >> num) 6 a_num.push_back(num); 7 for (auto &c : a_num) 8 { 9 (c % 2 != 0) ? (c = c * 2) : (c = c); 10 } 11 for (auto it = a_num.begin(); it != a_num.end(); ++it) 12 cout

c++ primer 4.2节练习答案

练习4.4 (12 / 3 * 4) + (5 * 15) + (24 % 4 / 2) = 91 练习4.5 a. -86 b. -18 c. 0 d. -2 练习4.6 bool (a % 2 == 0) 真为偶数,假为奇数 练习4.7 溢出:当计算的结果超出该类型所能表示的范围时就会产生溢出 short short_value = 32767: short_value += 1; cout << "short_value: " << short_value

c++ primer 6.5.1节练习答案

练习6.40 a)正确 b)错误,一旦某个形参被赋予了默认值,他后面的所有形参都必须有默认值. 练习6.41 a)错误,ht没有默认实参,而a的实参列表里也没有给出实参: b)合法,调用init(24 ,10 ,' '): c)虽然合法,但是与程序猿的设计初衷不符,*会转换成十进制的数43,相当于调用init(14, 43, ' '): 练习6.42 1 string make_plural(size_t ctr, const string &word, const string &end

c++ primer 5.1.1节练习答案

练习5.20 1 int main() 2 { 3 vector<string> str; 4 string str1; 5 while (cin >> str1) 6 { 7 auto last = str.end(); 8 if (str.size() != 0 && str1 == (*(last-1))) 9 { 10 cout << str1 << endl; 11 break; 12 } 13 else 14 str.push_b

c++ primer 5.5.3节练习答案

练习5.22 1 int main() 2 { 3 int sz = get_size(); 4 while (sz <= 0) 5 { 6 sz = get_size(); 7 continue; 8 } 9 system("pause"); 10 return 0; 11 }

c++ primer 5.5.2节练习答案

练习5.21 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 #include <vector> 5 using namespace std; 6 int main() 7 { 8 vector<string> str; 9 string str1; 10 while (cin >> str1) 11 { 12 auto last = str.end()

c++ primer 6.5.2节练习答案

练习6.43 a)放在头文件,因为内联函数和constexpr函数一般写在头文件中 b)函数的定义一般写在源文件,而声明放在头文件 练习6.44 1 inline bool isShorter(const string &s1, const string &s2) 2 { 3 return s1.size() < s2.size(); 4 } 练习6.45 内联函数一般用于优化规模小.流程直接.频繁调用的函数. 练习6.46 不行,isShorter函数如果定义成constexpr函