• C++Primer第五版——习题答案详解(三)



    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html

    第4章 表达式


    练习4.10

    while(cin>>i&&i!=42)
    

    练习4.11

    a>b && b>c && c>d
    

    练习4.12
    <的优先级大于!=,所以先判断j<k,返回bool类型,再比较返回值和i是否相等

    练习4.13
    i=3 d=3
    i=3 d=3.5

    练习4.14
    非法、if判断为真

    练习4.15
    非法,指针指向的是地址,不能赋值,把pi改为*pi

    练习4.19
    a.指针ptr不为空,且所指的值不为0
    b.判断ival和ival的值是否为0,执行完if后ival才加1
    c.判断vec[ival]是否小于等于vec[ival],同上

    练习4.20
    a.合法,对iter解引用,再自增
    b.不合法,*iter为字符串,不能自增
    c.不合法,没有empty()成员
    d.合法,iter所指向的值是否为空
    e.不合法,字符串不能自增
    f.合法,先判断是否为空再自增

    练习4.21

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    int main() {
    	vector<int> vec = { 1,2,3,4,5,6,7 };
    	for (auto i = 0;i < vec.size();i++) {
    		vec[i] = vec[i] % 2 ? vec[i] * 2 : vec[i];
    	}
    	for (auto i : vec) {
    		cout << i << " ";
    	}
    	system("pause");
    	return 0;
    }
    

    练习4.22
    if语句更合适,层次分明。

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    int main() {
    	int grade;
    	while (cin >> grade) {
    		string finalgrade = (grade >= 90) ? "high pass" : (grade >= 75) ? "pass" : (grade >= 60) ? "low pass" : "fail";
    		cout << finalgrade << endl;
    	}
    	system("pause");
    	return 0;
    }
    
    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    int main() {
    	int grade;
    	while (cin >> grade) {
    		if (grade >= 90) cout << "high pass" << endl;
    		else if (grade >= 75) cout << "pass" << endl;
    		else if (grade >= 60)cout << "low pass" << endl;
    		else cout << "fail" << endl;
    	}
    	system("pause");
    	return 0;
    }
    

    练习4.23
    改为

    string p1 = s + (s[s.size() - 1] == 's') ? "" : "s";
    

    练习4.29
    前者为整个数组所占空间的大小除以每个元素所占空间大小40/4=10;
    后者为指针所占大小除以每个元素所占空间大小4/4=1;

    练习4.30
    a.(sizeof x) +y
    b.sizeof(p->mem[i])
    c.(sizeof a) <b
    d.sizeof(f())

    练习4.31
    后置版本需要将值先保存下来后再自增。


    不断学习中,欢迎交流!

  • 相关阅读:
    修改浏览器滚动条样式
    js实现无缝轮播
    JS (canvas) 两个小球碰撞
    js里div随着鼠标一起移动
    js的动态加载、缓存、更新以及复用
    js阻止事件冒泡的两种方法
    核心DOM和html DOM的区别
    JavaScript 事件流、事件处理程序及事件对象总结
    css3 实现飞入由小变大
    简单手写js轮播
  • 原文地址:https://www.cnblogs.com/Mered1th/p/10489395.html
Copyright © 2020-2023  润新知