C语言复习选择题集锦

需积分: 9 3 下载量 91 浏览量 更新于2024-07-31 收藏 135KB DOC 举报
"这是一份针对谭浩强版C语言的复习资料,包含了多项选择题,旨在帮助大一学生准备考试。题目涵盖了C语言的基本概念、逻辑表达式、指针操作、循环控制、函数调用以及数组的使用等核心知识点。" 详细知识点解释: 1. **逻辑表达式**:在C语言中,逻辑运算符`&&`表示逻辑与,`||`表示逻辑或,`!`表示逻辑非。选项A `(x>=y) && (y>=z)` 是正确的表示x≥y≥z的方式,因为`&&`运算符两边的条件都需要满足。 2. **指针操作**:指针变量可以用来存储内存地址。表达式`p+1`和`a+1`分别表示指针p和数组a向后移动一位,因此可以表示a[1]的地址。而`a++`和`++p`都是自增操作,会改变指针本身的值,不推荐在未声明的情况下使用,所以它们不能确保表示a[1]的地址。选项C和D是错误的。 3. **字符串比较**:在C语言中,字符串的比较通过`strcmp`函数进行。选项D `if(strcmp(s1,s2)>0)` 是正确的,因为它会比较两个字符串的字符序列,并返回正数表示`s1`大于`s2`。 4. **循环控制**:`continue`语句用于结束当前循环迭代,`break`语句用于完全跳出循环。选项A错误,因为`continue`只结束当前迭代;选项B正确,`break`只能在循环和`switch`语句中使用;选项C错误,因为它们作用不同;选项D错误,多层循环嵌套可以用`break`跳出。 5. **指针操作**:指针可以用来间接访问和修改变量的值。选项A、C和D都是合法的赋值语句,但选项B `ptr1=k;`是错误的,因为将整型变量k的值赋给指针ptr1,而不是地址。 6. **指针的含义**:变量的指针是指该变量的地址,选项B正确。 7. **循环条件**:`while(k=1)k--;`是一个无限循环,因为`k=1`是一个赋值语句,始终为真,使得循环无法终止。答案是A,无限次。 8. **函数的存储类型**:在C语言中,函数的隐含存储类型是`extern`,意味着函数的定义默认具有外部链接,可以在其他源文件中被调用。选项C正确。 9. **函数返回值类型**:函数返回值的类型是在定义函数时指定的,不是由return语句中的表达式类型决定。选项D正确。 10. **数组作为函数参数**:当数组名作为函数参数时,传递的是数组的首地址。选项A正确。 11. **数组和变量赋值**:执行`s[0]=k`后,数组`s`的第一个元素赋值为3。但是,`k=s[1]*10;`试图访问未初始化的`s[1]`,这将导致未定义的行为,因此变量k的值是不定的。答案是A。 以上就是这份C语言复习题中涉及的主要知识点的详细解释。掌握这些内容对于理解和编写C程序至关重要。