【高级语言程序设计试题知识点详解】
1. **保留字**:C 语言保留字是具有特殊含义的关键字,不能作为变量或函数名使用。例如,`auto`、`else`和`FILE`都是C语言的保留字,但`define`是预处理指令,不是保留字。题中提到的`Else`应为`else`,表示条件分支。
2. **常数**:C语言中的常数包括整型、浮点型和字符型等。题中指出`1E0`和`1E0.0`是正确的浮点常数形式,而`e0`、`1e`不是合法的常数。
3. **逻辑运算符**:在C语言中,`||`表示逻辑或,如果左侧为真,则不评估右侧;如果左侧为假,则评估右侧。题中`n=0 || (n=1) || (n=2) || (n=3)`的结果为真,因为`n`最终被赋值为1,因此`n`的值是1。
4. **逻辑与和位运算**:`&&`是逻辑与,`&`是按位与。`2&5`的结果为0,因为按位与操作后,结果中只保留了双方都为1的位,其余为0。
5. **循环结构**:`do-while`循环是先执行循环体,后判断条件的循环结构。
6. **输入字符串**:在C语言中,使用`gets()`函数可以接收用户输入的包含空格的字符串,因此`gets(str);`是正确的输入语句。
7. **指针函数**:在函数定义前加上`*`表示返回值为指针类型,所以`float*fun(){...}`定义了一个返回`float`指针的函数。
8. **指针运算**:`b=*p++`等价于`b=*(p++)`,它们都是先取指针`p`指向的值,然后使指针`p`增加1。
9. **sizeof运算符**:`sizeof`是C语言中的一个运算符,用于计算数据类型或变量的大小。
10. **数组和指针**:`int a[10], *p=a;`定义了数组`a`和指向`a`首元素的指针`p`。`*(a+5)`等价于`a[5]`,表示访问数组的第6个元素。
11. **typedef应用**:`typedef char *PT;`定义了一个新类型名`PT`,代表字符型指针。所以`PT q[5];`定义了一个字符型指针数组`q`。
12. **二维数组初始化**:正确初始化二维数组的方式是`int a[3][3] = {{1,2,3},{4,5,6}};`,这将创建一个3x3的数组并填充初始值。
13. **递归调用**:函数的递归调用是指函数在其定义内部调用自身。
14. **结构体成员访问**:使用箭头运算符`->`可以访问结构体成员,因此`p->a`是正确的结构体成员引用方式。
15. **文件操作模式**:"rb+"表示以读写模式打开二进制文件。
16. **方程有实根条件**:方程`ax^2+bx+c=0`有实根的条件是判别式`b^2 - 4ac >= 0`。
17. **嵌套循环输出**:这个嵌套循环会输出5行“ABC”。
18. **结构化程序设计结构**:包括顺序结构、选择结构、循环结构和函数调用结构。
19. **条件运算符**:`a>=b?a:b`是条件运算符,当`a>=b`时,输出`a`的值,否则输出`b`的值。在给定条件下,输出结果是`1`。
20. **NULL值**:在C语言中,`NULL`通常表示空指针,其值为0或`(void*)0`。
21. **逗号运算符**:`t=10+(x=3,y=5,x-y)`中,`x=3`赋值后,`y=5`赋值,然后进行`x-y`计算,最后结果是5,因此`t`的值为15。
22. **存储类型符**:C语言的存储类型符还有`register`,用于声明变量存储在寄存器中。
23. **字符串长度**:`strlen(s)`计算字符串`s`的长度,不包括结束的空字符`\0`,所以输出结果是5。
24. **字符串输出**:`"China\0Beijing"`是一个包含两个字符串的字符数组,`\0`是字符串结束标志,因此输出结果是`China`。
25. **模运算**:`a%=b+c;`等同于`a=a%(b+c);`,在给定条件下,`a`的值将变为`8%2+3`,即7。
以上是高等教育自学考试高级语言程序设计试题涉及的知识点,包括保留字、常量、逻辑运算、循环结构、字符串处理、指针操作、数组、结构体、递归、文件操作以及各种运算符和表达式的使用。