C++编程课后习题及答案解析

需积分: 10 3 下载量 176 浏览量 更新于2024-11-13 收藏 118KB DOC 举报
"C++课后习题答案,涵盖从第一章到第三章的C++编程练习" 这篇摘要提供的是一份C++编程的课后习题答案集,主要涉及C++的基础知识,包括选择题和程序设计题目。以下是根据题目内容解析的一些C++知识点: 1. **源文件扩展名**:C++源程序文件通常使用`.cpp`或`.cc`作为扩展名,而`.exe`是编译后的可执行文件扩展名,`.obj`是编译中间文件的扩展名。 2. **C程序书写规范**:C程序书写格式相对自由,允许一个语句跨多行,注释可以在程序的任何地方,并且可以包含在多个源文件中。 3. **标识符命名规则**:C++中的标识符可以由字母、数字和下划线组成,且不能以数字开头。选项A和B中包含非法字符,C选项中的`txtDR.com`不符合标识符规则,而`case_001`是合法的。 4. **字符常量**:字符常量通常用单引号包围,如`'C'`。选项D使用双引号表示字符串常量,不是字符常量。`'\\xDD'`代表十六进制的字符,`'\\012'`是八进制的换行符,都是合法的。 5. **赋值表达式**:选项A的`x=y==5;`是正确的,它会将`y`与5比较的结果赋给`x`;B选项中`n%2.5`是非法的,因为 `%` 运算符不能用于浮点数;C选项`x+n=i;`试图赋值给一个表达式,这是不允许的;D选项`x=5=4+1;`等价于`x=5`, 不符合C++语法规则。 6. **函数与指针**:函数可以返回地址值,即指针。改变函数形参的值不会影响实参,因为它们之间通常是按值传递。可以给指针变量赋`NULL`值,但不能直接赋整数作为地址值,除非该整数是有效的内存地址。 7. **输入输出**:在C++中,`scanf`函数用于从标准输入读取数据。选项A和B尝试直接对未初始化的数组`a`,`b`,`c`进行输入,这是错误的。C选项正确,因为它通过指针`p`读取`c`的值。D选项错误,因为`&p`是`p`的地址,而不是`c`的地址。 8. **格式化输入**:`scanf`的格式字符串`%2d%f%s`表示读取两个整数、一个浮点数和一个字符串。输入`55566777abc`后,`y`会接收第二个整数,即`66`,因此`y`的值是`66.0`。 9. **do...while循环**:do...while循环至少会执行一次,即使条件一开始就不满足。因此,`i`初始化为0,第一次循环后`i`变为1,打印出0,然后循环结束,`printf`输出`i`的当前值1,所以输出结果是`0,1`。 10. **do...while循环和递减操作**:在do...while循环中,`x`先被递减再检查条件,当`x`为1时,`--x`使其变为0,`!x`为真,循环结束。因此,程序不会输出任何内容。 这些题目涵盖了C++的基本语法,包括变量、类型、运算符、输入输出、控制结构(循环)以及函数的使用。通过解答这些习题,学习者可以巩固和加深对C++基础知识的理解。