C++基础习题解答:变量作用域、宏与结构应用

版权申诉
0 下载量 18 浏览量 更新于2024-06-27 收藏 38KB DOCX 举报
本资源是一份C++编程入门章节的习题答案文档,涵盖了C++语言的一些基础概念和编程技巧。以下是对各小题的详细解析: 1-1 题目涉及的是局部变量和全局变量的作用范围以及优先级。在第一个程序中,函数`max()`内部的`int x`是局部变量,其值不会影响到全局变量`int x = 3`。因此,`max()`函数返回的是局部变量`x`的值(3),而不是全局变量(1)。所以输出结果是`max=3`。第二个程序展示了外部变量`a`的使用,`decrement()`函数通过`a += 10`改变`a`的值,循环体外的`a`会递减,输出从100到150。 1-2 宏定义`AREA(R)`用于计算圆的面积,但如果在计算前没有确保`R`是有效的半径值,比如传入非数字或负数,就会导致错误的结果。例如,如果`R`被设置为字符串,那么计算会出错。 1-3 宏`CUBE(X)`定义了一个立方运算,但在`int volume = CUBE(height++)`这行,`height++`在立方运算之前执行,会导致每次递增后再计算体积,不是原高度的三次方。这可能导致结果不准确。 1-4 使用条件编译指令`#if`,当`#define MAX 100`时,`#if MAX > 99`判断条件成立,因此这部分代码会被编译并执行,输出"This part is compiled."。如果没有定义`MAX`或者定义的值小于等于99,则这部分代码不会被执行。 1-5 反转数组元素的指针问题要求在原地操作,可以使用双指针技巧,一个指向数组起始位置,另一个指向末尾,逐个交换元素,直到两者相遇,这样既没有使用额外的存储空间,也保持了原数组。 1-6 利用结构体`Student`来存储学生信息,包括姓名、学号和成绩,通过输入10个学生的数据,可以遍历结构体数组,计算每个学生的平均成绩并输出。 1-7 该题要求根据输入的0-6的整数输出对应的英文星期缩写,例如,输入1对应Monday。 1-8 在C++中,由于词法作用域的规定,主函数`main()`外部声明的同名变量不会覆盖内部的变量。在主函数内外分别声明的同名整型变量,外部变量可以在整个程序范围内访问,而内部变量仅限于`main()`函数内部。因此,两者的值在`main()`函数内部是独立的。 这些习题旨在帮助学习者理解C++的基本语法、变量作用域、宏、条件编译、指针操作、结构体以及数据输入输出等核心概念。通过解答这些问题,可以加深对C++编程的理解和实践能力。
2023-02-27 上传