中山大学软件学院2011程序设计期末试题:C语言选择题

需积分: 0 1 下载量 113 浏览量 更新于2024-08-05 收藏 403KB PDF 举报
"中山大学软件学院2011级软件工程专业《SE-122程序设计I》期末试题(A卷),包含选择题,涉及C语言的变量命名规则、指针、数组、字符串、表达式及输入输出操作。" 这篇资料是关于C语言程序设计的一份考试试卷,主要测试学生对C语言基础知识的掌握程度。以下是根据题目内容提炼出的相关知识点: 1. **变量命名规则**: - 在C语言中,变量名不能以数字开头,所以选项(C)2F是无效的变量名。有效的变量名可以是字母、数字或下划线的组合,并且首字符不能是数字。因此,(A)M.Jordan由于包含了非法字符".",也是无效的。而(B)char是一个保留字,不能用作变量名。正确的变量名示例是(D)_b2c。 2. **指针与数组**: - 题目中的`inta[3]={3,2,5},*p=a,b=4;`定义了一个整型数组和一个指向数组首元素的指针`p`,以及一个整型变量`b`。`printf`语句涉及了指针运算、取模运算、自增运算以及条件运算符。在C语言中,指针可以用作表达式的部分,如`(*a+b)`,这会先解引用`a`,然后将结果与`b`相加。 3. **字符串和字符数组**: - `char *s="Programming"`定义了一个指向字符串常量的指针`s`。字符串在C语言中是字符数组,以空字符`\0`结束。选项(A)、(B)、(C)描述的是关于`s`的正确性质,而(D)错误地认为`s`存储了一个字符,实际上它存储的是字符串的首地址。 4. **指针和输入**: - 当需要通过指针读取变量的值时,应使用`&`操作符获取变量的地址。因此,正确读取`a`的值的方法是(B) `scanf("%d", a);`。选项(A)是将地址传递给`scanf`,选项(C)错误地对指针使用了`&`,选项(D)尝试解引用指针并传递给`scanf`,这是错误的,因为`scanf`需要地址作为参数。 5. **指针运算和表达式求值**: - 题目没有给出完整的表达式,但`*(*p+1)+3`涉及到指针解引用、自增运算以及加法。在C语言中,`*p+1`会先解引用`p`,然后加上1,得到下一个元素的地址,再解引用得到该位置的值。这个值与3相加,最终结果取决于原始指针`p`的初始位置。 以上知识点涵盖了C语言的基础,包括变量命名、指针、数组、字符串、输入输出和表达式求值。这些知识对于理解和编写C程序至关重要。