这份试卷是针对2007级学生的一次《面向过程程序设计(C语言)》闭卷考试,主要测试学生对C语言的基本概念、语法和编程能力。试题包括选择题和其它类型的题目,涵盖的内容广泛,涉及变量定义、运算符优先级、表达式求值、条件判断、循环控制、数组操作、函数调用等多个方面。
1. 题目1考察了运算符的优先级和结合性,正确的表达式是D. `y=float(i)`,其它选项要么违反了运算符优先级,要么不符合C语言语法。
2. 题目2的表达式 `(a=3*5,a*5),a+5` 的值是B. `80`,因为逗号运算符从左到右计算,先计算左边的表达式,然后是右边的。
3. 题目3的`printf`语句考察了前置自增和后置自减运算符,输出应该是A. `11, 10`,先自增`i`,再输出。
4. 题目4的程序根据输入`x`的值决定执行if分支还是else分支,如果输入6,输出7;如果输入4,输出4,所以答案是A. `7 和 5`。
5. 题目5正确初始化二维数组的语句是B. `int a[][3]={{1,2,3},{4,5,6}};`,其他选项要么数组大小不匹配,要么未完全初始化。
6. 题目6表示逻辑关系的C语言表达式是D. `a <= 0 || a >= 10`,使用了逻辑或`||`。
7. 题目7的输出是B. `1 4 7`,数组元素按行优先顺序存储,`x[i][2-1]`对应数组第二列的元素。
8. 题目8关于`for`循环的描述,D. 是正确的,`for`循环体可以包含多条语句,需要用花括号括起来。
9. 题目9的程序中,`if`嵌套结构的条件判断和执行顺序导致`z`保持初始值,输出D. `0`。
10. 题目10的`fread`函数调用中,`buffer`代表C. 一个指针,指向要读入数据的存放地址。
11. 题目11的数组初始化理解,B. 是正确的,将5个初值赋给了`a[0]`至`a[4]`。
12. 题目12的程序段将字符串中的每个字符转换为其大写字母形式(ASCII码减去32),但不包括'u',因此输出不包含'u'后的字符,答案可能是不完整的,但根据题目描述,应是A. `LANGUAGE`。
这些题目覆盖了C语言的基础知识,对于学习者来说,理解和解答这些问题有助于巩固他们的编程基础。在实际编程中,熟练掌握这些基本概念和规则是非常重要的,因为它们构成了编写高效、正确程序的基础。