"高级语言程序设计复习题.pdf"
在高级语言程序设计中,涉及的知识点广泛且深入。这里我们从给定的题目中提取出一些关键概念和知识点:
1. 变量定义合理性:在编程中,变量的命名规则非常重要。选项A中的`&level`在某些语言中表示地址引用,而变量名不能以&开头;选项B的`if`是保留字,不能作为变量名;选项C的`name1`是一个合法的变量名;选项D的`static`也是保留字,通常用于定义静态变量。因此,合理的变量定义是C选项。
2. 表达式求值:表达式`3 / 5`在大多数语言中会进行整数除法,结果为0。所以选项A正确。
3. 字符型变量赋值:在C/C++中,`char`类型的变量可以被赋予整数值、ASCII码或单引号内的字符。选项B的`a="A"`是错误的,因为字符串赋值给`char`变量是不合法的。选项A、C和D都是正确的赋值方式。
4. 赋值表达式:`-k++`等价于`-(k+1)`,因为在后缀自增操作中,先使用当前值,然后增加1。
5. 循环结构:在嵌套循环中,内循环`for(j=0;j<4;j++)`会执行4次,外循环`for(i=5;i;i--)`会执行5次,因此总执行次数为20次。
6. 数组访问:数组`inta[3][2]`定义了一个3行2列的二维数组,初始化值为`{1,2,3,4,5,8}`。`a[2][1]`的值为8。
7. 指针操作:要使`p2`指向`p1`所指的变量`x`,应使用`p2 = p1`,因为指针是指向内存地址的,而`*`和`&`分别代表解引用和取地址操作。
8. 递归函数:给定的递归函数`f(n)`计算`1 + 2 + ... + n`。调用`f(4)`返回`1 + 2 + 3 + 4 = 10`。
9. 数组索引:数组`a`中,`p=&a[1]`意味着`p`指向了`a`的第二个元素。所以`p[2]`的值为`34`。
10. 冒泡排序:冒泡排序是一种简单的排序算法,第三趟排序后,最小的三个元素应该已经排序好。因此,第三趟排序后的状态可能是`432156`。
11. 变量定义:选项A的`int12`是非法的,因为变量名不能以数字开头;选项B、D的`if`和`for`是保留字,不能作为变量名;选项C的`&name`在某些语言中表示取地址,但此处不是合法的变量定义。
12. 浮点型除法:在大多数语言中,`x=10.0/4`将得到浮点型结果`2.5`。
13. ASCII码:字符`'c'`的ASCII码为99,`'c'+1`是下一个字符的ASCII码,即100,对应的字符为'd'。因此,`printf("%d,%c",'c','c'+1);`将输出`99,d`。
14. 表达式等价性:`i=j++`等价于`i=j; j=j+1;`,因此与`i=++j`不完全等价,`++j`是在赋值前先自增。
这些题目涵盖了变量定义、表达式求值、字符型变量处理、指针操作、递归函数、数组访问、循环控制、排序算法以及基本的C/C++语法等多个方面的知识,是学习高级语言程序设计时需要掌握的重点内容。