江苏计算机二级C语言2010年春笔试、上机真题与答案
需积分: 0 127 浏览量
更新于2012-12-17
收藏 66KB DOC 举报
【知识点详解】
1. **C语言的main函数位置**:C语言中,main函数可以放在源程序的任何位置,没有特定的要求。所以选项D“可以在其他函数之前或之后”是正确的。
2. **C语言关键字**:C语言的关键字是预定义的、具有特殊含义的标识符,不能作为变量名或函数名。`printf`和`include`是预处理器指令,`fun`不是关键字,而`default`是C语言的switch语句中的关键字。因此,选项D是正确的。
3. **算术运算的优先级和类型转换**:在C语言中,除法运算符`/`对于整数操作数会进行整数除法,结果也是整数。因此,`1/2`结果为0,然后`(a+b)`是7,所以`c=1/2*(a+b)`的结果是0。选项A是正确答案。
4. **指针和sizeof运算符**:`sizeof`运算符返回变量或类型所占的内存大小。对于指针,无论其指向什么类型,`sizeof`的结果通常是固定的,通常为4个字节(32位系统)或8个字节(64位系统)。因此,选项D是正确答案。
5. **赋值表达式合法性**:在C语言中,`=`, `++`, `--`等操作符有其特定的结合性和优先级。选项A的等号左边不是一个左值,不合法;选项B的绝对值符号`∣`不是C语言的一部分;选项D的`(a++)++`是错误的,因为自增操作符不能连续使用。只有选项C `a=b=0`是合法的,因为它从右向左赋值。
6. **字符串的修改**:在C语言中,字符串是字符数组。要修改字符串,需要使用数组的方式,不能直接赋值。`strcpy()`函数用于将一个字符串复制到另一个字符串,所以选项D是正确的。
7. **多维数组的引用**:在C语言中,多维数组的元素可以通过下标来访问。选项A和B是错误的,因为它们使用了加法操作而不是下标。选项C和D都是正确的,但是根据题目要求,我们需要找出错误的选项,所以答案是A。
8. **浮点数到整数的转换**:在C语言中,浮点数赋值给整型变量时会进行向下取整。因此,`n=x=3.89`后,`y`的值会被赋为3,选项C是正确答案。
9. **逻辑运算符和赋值运算符**:`||`逻辑或运算符的两边只要有一个非零值,结果就为1。因此,`a||(b-=a)`的结果是1,因为`a`不等于0。所以,`c`被赋值为1,`b`的值不变,仍然是15。选项C是正确答案。
10. **文件操作**:C语言中的文件可以按需进行顺序或随机存取。选项A错误;用`"r"`或`"r+"`打开文件,文件必须存在,选项B正确;写操作不会立即覆盖整个文件,而是从当前位置开始写入,选项C和D错误。
11. **基本概念填空**:
- 1. `pow(x, 1)`对应C语言表达式为`x`。
- 2. 字符`g`减去`'a'`再加上`'A'`,将小写字母转换为大写字母,结果是`G`的ASCII码。
- 3. 变量能存储-32768到32767的整数,说明它是一个16位的变量,占2个字节。
- 4. `a[3][2]`数组的指针`p=a[0]`,`*(p+4)`访问的是第2行第2列的元素,值为6。
- 5. 使用`scanf`输入整数,格式化字符串`"a=%d"`,正确的输入是`a=3`,包括`a=`。
12. **程序阅读与输出**:
- 6. 程序中`MAX`宏计算两个数较大者的两倍,`t=MAX(a+b,c+d)`计算的是`2*(a+b)`,因为`a+b>c+d`。所以`t`是10,输出为10。
- 7. 由于题目未提供完整代码,这部分无法给出具体答案,但通常`printf`会输出某个变量或表达式的值。
以上是对江苏计算机等级考试二级C语言2010年春笔试和上机真题中涉及的C语言知识点的详细解释。这些知识点涵盖了C语言的基本语法、运算符优先级、数组、字符串处理、指针、文件操作以及逻辑表达式等内容。