【C程序设计复习资料08】中的知识点涵盖了C语言的基础语法和编程概念,以下是详细的解释:
1. **函数结构**:C语言中的函数通常由声明部分(声明变量和类型)和执行部分(代码块)组成。
2. **符号常量**:使用`#define`关键字定义,例如`#define PI 3.14159`,创建了一个名为PI的符号常量,其值为3.14159。
3. **条件运算符**:`max = x > y ? x : y`是三元运算符,用于根据条件x是否大于y来决定max的值。
4. **逻辑运算符**:`98 && 8 && 31 & 1`中,`&&`是逻辑与运算符,`&`是按位与运算符。由于98, 8和31都是非零数值,表达式的值为1(最后一个操作数的值)。
5. **类型转换**:`(int)(20 + 2.5 * 3 + 6 + 5.3)`将浮点数转换为整数,结果是38。
6. **格式化输出**:`printf("%5.3f\n", 123456.12345)`会输出123456.123,按照指定的宽度和小数位数。
7. **算术运算**:`k *= i + j`等价于`k = k * (i + j)`,若i=10, j=20, 则k的值为900。
8. **数组初始化**:`a[20] = {6, 12, 18, 24}`定义了一个20长度的整数数组,并初始化了前四个元素。
9. **程序结构**:结构化程序设计的三大结构是顺序结构(逐行执行),选择结构(if-else),循环结构(while, for)。
10. **if-else配对**:C语言的else总是与其最近未配对的if配对。
11. **无符号整型范围**:对于2字节的`unsigned int`,取值范围是0到2^16-1,即0到65535。
12. **逻辑运算**:表达式`!(b>c)+(b!=a)||(a+b)&&(b<c)`的结果取决于b, c的值,无法给出具体答案。
13. **指针运算**:`a+2`指向数组中的第三个元素,对于`int a[3] = {120, 212, 320}`,其值为320的地址。
14. **指针和解引用**:`*p = *p + 15`后,若`x`的初始值为233,`x`的值将变为248。
15. **循环计算**:执行`for (s=0, j=5; j<=25; j=j+5) s=s+j`后,变量`s`的值为75,因为它是5、10、15和20的和。
16. **形式参数**:形式参数的作用域仅限于所在函数内部。
17. **宏定义**:`#define PR 80`和`#define PP PR+403`后,`a=PP*20`将使`a`的值为9660。
18. **位运算**:`x%= (n += 3)`中,若`x`=15, `n`=2,运算后`x`的值为0,因为`n`变为5,`x`除以5的余数为0。
19. **文件操作**:C语言中,`fopen()`用于打开文件,`fclose()`用于关闭文件,`fseek()`用于文件的随机访问。
**选择题解析**:
1. C语言的简单数据类型包括整型、实型(浮点型)和字符型,选项B正确。
2. `%`运算符要求其操作数为整型,选项A正确。
3. 表达式`x>=y>=z`在C语言中应写作`(x>=y)&&(y>=z)`,选项A正确。
4. C语言中的字符数组不能整体赋值,选项C描述错误。
5. `printf("%d\n", z=(x%y,x/y))`的输出结果是3,因为`x%y`的值为1,然后`x/y`的值为3,赋值给z,所以打印3,选项D正确。
6. `printf("%d %d\n", x--, --y);`的输出是10 9,因为先递减`y`再打印,然后递减`x`,选项D正确。
7. C语言程序总是从`main()`函数开始执行,选项C正确。
8. 给定的代码片段没有完整显示,但看起来是`for`循环,`a`的值取决于循环终止条件,题目没有提供足够的信息确定`a`的值。
9. 该程序段没有完整显示,无法确定输出结果。
以上是复习资料中的主要知识点,它们涵盖了C语言的基本语法、逻辑运算、数据类型、数组、函数、循环控制、宏定义和文件操作等方面的内容。理解和掌握这些知识点对于学习C语言至关重要。