2012 C语言程序设计期末试题(3学分).docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【C语言程序设计知识点】 1. **标识符**:C语言中的标识符是程序员自定义的变量、函数或常量的名称。它们必须以字母或下划线开头,后跟字母、数字或下划线。根据题目选项,A) `_1a` 是合法的标识符,而 B) `2a` 和 C) `do` 是非法的,因为它们不以字母或下划线开头。D) `a12` 也是一个合法的标识符。 2. **浮点数运算**:题目中提到温度转换公式 `C=5/9(F-32)`。在C语言中,正确的表达式是 B) `C=5*(F-32)/9`,因为除法操作的优先级高于乘法,需要使用括号来确保正确的计算顺序。 3. **数据输入**:用于读取浮点数的输入语句应该是 C) `scanf("%f",&x)`,这里的`&`符号用于获取变量`x`的内存地址,以便`scanf`函数能够将读取的值存储在`x`中。 4. **程序执行流程**:C语言程序从`main()`函数开始执行,并在`main()`函数结束时停止,所以正确答案是 A) `main()函数开始,直到main()函数结束`。 5. **字符型变量判断**:检查`char`型变量`c1`是否为数字,正确表达式是 B) `c1>=0&&c1<=9`,因为C语言中,字符型变量可以表示数字0-9,对应的ASCII码是48-57。 6. **循环与条件控制**:在给定的循环结构中,当`x`的值达到10时会跳出循环,如果`x`是奇数则会跳过当前循环体的剩余部分。因此,循环在`x`达到10时终止,`y`的最终值是 B) 6。 7. **数组赋值**:数组元素的赋值错误是 B) `scanf("%c",a[3])`,因为`%c`格式符用于读取单个字符,不适合读取`int`类型的值。 8. **数组作为参数**:当用数组名作为函数调用的实参时,传递的是 A) 数组首地址,即数组第一个元素的地址。 9. **数组初始化**:错误的数组元素赋值是 D) `a[3]=a+3`,因为这将`a[3]`赋值为指针,而不是整数值。 10. **二维数组初始化**:在初始化为`int a[2][3]={{1},{2,3}}`的二维数组中,`a[1][1]`的值是 C) 2。 11. **数组初始化**:对于初始化为`int b[10]={1,2,3,4}`的数组,说法 B) `b[1]的值为1`是正确的,而其他选项也是正确的,因为未初始化的数组元素默认为0,所以`b[8]`的值为0,`b[3]`的值为整数3。 12. **函数调用**:错误的说法是 D) `函数调用可以作为一个函数的形参`,因为在C语言中,函数的调用不能作为函数参数。 13. **递归与非递归**:错误的叙述是 C) `递归程序不可能用非递归算法实现`,实际上,任何递归程序都可以转化为非递归形式。 14. **全局变量作用域**:全局变量的作用域是 A) 本文件的全部范围,从定义该变量的位置开始到文件结束。 15. **源文件范围**:全局变量的作用范围限于 A) 本文件的全部范围。 16. **数组输出**:程序会按逆序输出数组`t`的最后一列,所以输出结果是 B) `357`。 17. **指针指向变量**:正确表示指针`p`指向`m`的语句是 B) `p=&m`,`p`现在指向`m`的内存地址。 18. **数组地址**:能正确表示数组`a`中某个元素地址的是 B) `p+2`,这里的`p`是一个指向数组首元素的指针,`p+2`指向数组第二个元素的地址。 19. **数组索引访问**:`*(a+a[3])`的值是 C) 8,因为`a[3]`是数组的第四个元素,其值为8,加法后指针指向第四个元素后面的元素,然后解引用得到其值。 20. **函数返回值类型**:函数返回值的类型在 C) 函数定义时决定,而不是在调用时动态决定,也不是由`return`语句中的表达式类型或调用函数的类型决定。 以上是C语言程序设计中涉及的关键知识点,包括标识符规则、运算符优先级、输入输出、程序执行流程、循环控制、数组操作、函数调用、指针操作以及变量的作用域等。这些知识点构成了C语言的基础,并在编程实践中广泛应用。
- 粉丝: 25
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助