2008年江苏高校C语言二级考试试题与解析

需积分: 1 0 下载量 90 浏览量 更新于2024-09-16 收藏 48KB DOC 举报
"江苏c语言二级2008秋试卷与答案" 这篇摘要涉及的是2008年秋季江苏省高等学校非计算机专业学生的计算机基础知识和应用能力等级考试中的C语言程序设计部分。这部分考试包括选择题,考察了考生对C语言基础概念、语法、变量命名规则、数据类型、内存管理、指针操作、数组、结构体以及逻辑表达式的理解。 1. 在选择题中,题目指出编译时无法检测注释中的拼写错误(选项A错误),C语言程序的每一行可以包含多条语句(选项B错误),`main()`函数的位置并不强制要求在程序开始(选项C错误),而C程序确实可以由一个或多个函数构成(选项D正确)。 2. 变量命名规则中,选项B `switch` 是关键字,不能作为变量名;选项A `_float`、C `sum` 和D `_123` 都是合法的变量名。 3. 存储10的阶乘(10! = 3628800),由于int类型可能无法容纳这个值,因此需要使用long int(选项A)。 4. 对于指针操作,选项A `a=b=0;` 是错误的,因为不能同时赋值给两个指针;选项B `a=&c,b=a;` 是合法的,将b指向a所指的地址;选项C `&a=&b;` 错误,不能将指针的地址赋给指针本身;选项D `*b=*a;` 是正确的,将a所指的值赋给b所指的变量。 5. 数学表达式 `[pic]` 在C程序中表示为平方根,正确形式是 `(a/2)*b` 或 `a/(2*b)`,所以选项B `sqtr(a)/2/b` 是正确的。 6. 字符串操作中,程序段创建了一个字符串数组并指定了一个指针,`p+10` 将跳过前10个字符,输出 "Beijing" 的下一部分,即 "ing",所以选项A是正确输出。 7. 声明数组时,选项C `int a[3]=0;` 错误,因为未提供足够的初始值,应该写成 `int a[3]={0};` 或 `int a[3];`。 8. 结构体操作中,选项D `stu.h=p;` 错误,因为stu.h是一个结构体指针,而p是一个普通指针,类型不匹配。 9. 逻辑表达式中,选项A `!a&&!b&&c` 的值为0,因为a和b都为3,非0,所以逻辑与的结果为0。 10. 其他题目涉及了逻辑运算符、条件判断、结构体指针的使用等知识点,进一步检验了考生对C语言的理解和应用能力。 这些题目反映了C语言的基础知识,包括语法、数据类型、指针、数组、字符串、结构体以及逻辑表达式等方面,是学习C语言时需要掌握的重点内容。解答这些问题有助于考生巩固和提高C语言编程技能。