C语言综合练习:涵盖选择题、指针与运算符应用

需积分: 9 2 下载量 170 浏览量 更新于2024-07-20 收藏 155KB DOC 举报
C语言综合练习是一份针对C语言学习者的练习材料,旨在帮助学生巩固和提升C语言的基础理论和实践能力。练习分为三个部分:选择题、问答及简述题和程序设计题。 1. 在选择题中,第一题涉及指针的赋值。题目要求实现图示中的存储结构,即指针p1指向变量a,p2指向变量b,需要交换它们所指向的值。选项A `*p1=*p2` 实现了值的交换,因为`*`操作符解引用后,再进行赋值,符合要求;选项B `p1=p2` 仅交换了指针本身,而不是它们所指向的值;选项C和D语法错误,不能实现预期效果。 2. 第二题考察指针的概念,变量的指针实际上是指向该变量内存地址的,因此答案是b)地址。 3. 关于运算符的优先级,题目考查`&`(取地址运算符)、`->`(成员访问运算符)和`&&`(逻辑与运算符)。由于运算符的结合方向是从左到右,通常取地址运算符`&`的优先级高于其他,所以正确的顺序是A)。 4. 第四个题目是一个文件I/O操作的例子。程序首先将整数20和30写入名为'd1.dat'的文件,然后读取并打印出同一文件中的两个整数。由于初始值`i=20`和`j=30`,写入文件的顺序不变,因此读取的也是这两个值,答案是A)2030。 5. 第五题测试指针变量的理解。在`int str[12], *p=str;`中,`*p`表示`p`指向的元素,即数组`str`的第一个元素,所以A选项错误。`&p`返回的是`p`的地址,不是`str`,排除B。`*p`的值是`str[0]`,不是`&str`,排除C。正确答案是D,表示`p`的值为`str`的地址。 6. 第六题测试对指针概念的掌握。`a`是变量,`point`是`a`的地址,`*&a`是`a`的地址,`*point`是`point`所指向的值(即`a`),`&*point`是`*point`的地址。因此,正确的地址选项是选项D。 7. 最后一道题目涉及输入输出操作和文件处理。题目要求用户输入输入文件名和输出文件名,但没有提供完整的输出功能描述,因此不能确定具体的功能描述是否正确,这需要根据实际的程序功能来判断。 这份C语言综合练习覆盖了指针操作、运算符优先级、文件I/O、数组和指针的理解等多个重要知识点,适合用于期末复习时检验和巩固C语言基础知识。通过解答这些问题,不仅可以提升编程技能,还能加深对C语言理论的理解。