C++编程:课后习题与switch语句详解

需积分: 9 1 下载量 109 浏览量 更新于2024-09-12 收藏 77KB DOC 举报
在C++编程的学习过程中,文档中包含了西南交大相关课程的课后习题解答,重点涉及数组操作、控制结构和函数应用。以下是部分习题详解: 1. 第三章课后习题中的第一个问题是关于条件判断与赋值操作。程序通过比较两个输入的整数a和b,根据条件改变变量c的值。如果a小于b且b小于0,c减去5;否则,c加5。对于输入20,-10,由于b(-10)小于0,所以c会先减去5得到8;对于输入-10,20,b不小于0,因此c加上5得到13。 2. 第二题要求编写一个程序,根据输入的正整数x确定其位数。这可以通过取对数或除以10并取整来实现,但C++中可以直接用`int digits = log10(x) + 1`来计算,因为`log10`会给出以10为底的对数,然后加1得到位数。 3. 在switch语句的例子中,对于第一段代码,当i等于9时,i自增1;接着i变为10,再自增1;然后i为11,再次自增1,执行完这些情况后,由于没有break,i会在default情况下再自增1,最终结果是12(B选项)。 4. 第二段代码中,case 11之后添加了break语句,所以在执行到case 11时跳出循环,因此变量i的最终结果是12(B选项)。 5. 第三段代码中,switch的执行顺序是:先执行default,再检查每个case。由于i初始值为9,所以case 9和case 10都不会执行,只有case 11和default会执行,结果是12(B选项)。 6. 第四段代码中,由于i的初始值为13,default和case 9不会执行,而case 10和case 11执行后,i自增两次,共加2,最终结果是15,但由于default已经执行过一次,所以总结果是17(D选项)。 关于switch语句的判断题,第1题错误,switch语句中可以有break语句;第2题错误,default语句可以放在任何位置,只要在所有case语句之前或之后;第3题正确,C++的switch语句必须包含至少一个case或default;第4题中,合法的整型case是B(case 2),因为不需要使用双等号(==);第5题合法的字符型case是B(case '3'),字符需要用单引号括起来。 最后,提到的函数要求编写的程序是输入一个x值,输出对应的y值。题目中给出了一个不完整的函数开始,包括头文件引用和变量声明,但没有给出函数体。为了正确输出y值,需要明确y与x的关系,可能是通过公式或逻辑运算得出,具体实现依赖于y与x之间的函数关系。例如,如果y是x的平方,可以写成`y = x * x;`。程序中还需要包含合适的输入和输出语句,如`cin >> x`和`cout << y << endl;`。