C++编程练习与解析:常见试题解答

需积分: 9 2 下载量 56 浏览量 更新于2024-07-28 收藏 303KB DOC 举报
"C++复习题库,包括各种C++习题,涵盖标识符规则、运算符优先级、逻辑表达式、字符串处理、循环结构、条件判断、函数调用及参数传递、数组作为函数参数等多个知识点。" 1. **标识符规则**:在C++中,标识符用于命名变量、函数等,不能是关键字。题目中提到的`switch`, `file`, `break`, `do`都是C++的关键字,不能作为自定义标识符。 2. **运算符优先级**:运算符 `%` (取模) 的优先级最低,其次是 `=` (赋值),接着是 `<=` (小于等于),最后是 `+` (加法)。 3. **逻辑运算符**:逻辑运算符 `||` 的特点是短路运算,如果左侧已经能确定整个表达式的真假,则不会计算右侧。所以`m=a==b`的结果为0,由于逻辑或运算,`m`最终为0,`n=c==d`的结果也为0,因此`n`也为0。 4. **字符串长度**:C++中的字符串长度不包括结束符`\0`,所以`"vm\x43\\\np\102qu"`的长度是9。 5. **复合赋值运算**:`a+=a-=a*a`首先执行`a-=a*a`,即`a = a - (a * a)`,然后执行`a +=`的结果,最终`a`的值为-24。 6. **do-while循环**:该循环会先执行一次,然后检查条件,由于`!x`对-1取反为0,满足while条件,但第二次执行`x=x*x`后,`x`变为1,不满足条件,循环结束,因此执行一次。 7. **for循环**:for循环可以用于循环次数不确定的情况,先判断表达式再执行循环体,可以用`break`跳出循环,循环体可以包含多条语句,需用大括号括起。 8. **do-while循环和条件表达式**:条件表达式`1<=x<=2`不合法,应写为`(1<=x)&&(x<=2)`,循环会先输出`#`,然后进入条件判断,此时`x`为2,不满足条件,循环结束,输出`#`。 9. **标准库函数**:用户可以直接调用标准库函数,不需要重新定义,且可以通过`#include`包含库函数。 10. **参数传递**:实参可以是常量、变量或表达式,但形参不能是常量,形参和实参类型和个数必须匹配。 11. **数组作为函数参数**:数组名作为参数实际上是传数组首地址,主调函数和被调函数共享同一段存储单元,形参数组长度通常不能省略,除非用指针代替数组。 这些习题涵盖了C++的基础知识,包括语法、逻辑运算、流程控制、字符串处理、函数调用以及参数传递等,是学习和复习C++的重要资料。通过解答这些习题,可以巩固和提升C++编程技能。