广东工业大学2009年C语言考试B卷试题及解析

需积分: 10 11 下载量 20 浏览量 更新于2024-09-12 收藏 75KB DOC 举报
本资源是一份广东工业大学2009年的C语言考试B卷,由该校教师编撰,适用于C语言程序设计课程。考试满分100分,时间安排在2009年5月6日,星期三。试卷包括了多项选择题、概念理解和代码实践部分,旨在考察学生的C语言基础知识。 1. **开始执行点** - C语言程序的执行起点是名为`main`的函数,这是C语言标准规定的程序入口点,选项C是正确答案。 2. **基本数据类型** - 在提供的选项中,数组不属于基本数据类型,因为数组是由基本数据类型元素组成的复合数据类型,所以选项B是错误的。 3. **合法标识符** - `_file`不符合C语言的标识符命名规则,因为它可能包含非法的下划线开头,而NAME、x123和case都是合法的标识符,选项A是错误的。 4. **函数嵌套** - C语言中,函数定义是可以嵌套的,但函数调用同样可以嵌套,因此选项D是正确的。这意味着函数可以在另一个函数内部定义并被调用。 5. **字符串和字符** - 字符串的长度可以任意,但选项C表述错误;字符'A'和'a'在ASCII编码中代表相同数值,但大小写不同,选项A错误;字符可以参与算术运算,选项B正确。 6. **字符串长度计算** - `strlen` 函数返回字符串的长度(不包括结束符),在给定的字符串中,有9个非空字符和一个换行符,所以结果是10,选项B是正确答案。 7. **存储类说明** - `auto` 和 `register` 都是动态存储类别,会在使用时为变量分配存储空间,选项B正确。 8. **输入语句** - `scanf` 用于读取浮点数时,逗号分隔多个数值是允许的,选项B是正确的输入形式。 9. **表达式语法** - 对于除法运算,选项C `X/Y*1/Z` 是错误的,因为`1`不需要放在除法表达式中,正确的写法是 `X/Y/Z`。 10. **字符输出** - 程序中`x` 被初始化为字符 'f',通过加减ASCII码得到其他字符,`'A'+(x-'a')` 表达式计算后输出字符 'F',所以选项I是 `F`。 11. **数组初始化** - 对于数组,选项描述的是字符数组,其中 `b[]` 后缺少结束符,完整的初始化应为 `char b[] = "abcde";`,但完整性并未在题目中给出。 这份试卷涵盖了C语言的基础知识,如控制结构、数据类型、函数、字符处理、字符串操作以及输入输出等,适合用于检验学生的理论掌握程度和编程技能。