C语言在线考试题目及答案解析

4星 · 超过85%的资源 需积分: 3 3 下载量 110 浏览量 更新于2024-07-30 收藏 82KB DOC 举报
本资源是一份针对中国石油大学C语言课程的综合复习资料,包含了12道选择题,旨在帮助学生准备网络考试。以下详细解析了每一道题目涉及的知识点: 1. 题目涉及字符型数据在内存中的存储格式,C语言中字符型(char)数据通常以ASCII码形式存储,对应选项D。 2. 二进制转十进制时,47的二进制表示为1000011,转换后为十六进制的2f,但在C语言中,需要前缀0x,所以正确答案是B)02f。 3. 表达式`x%=(n%2)`首先计算n除以2的余数(n%2),然后取x除以这个余数的余数。因为n=5时,n%2=1,x=12,x%1的结果是0,所以最终结果是A)0。 4. 定义了字符数组`str`,其中`p=str`是一个指向数组首元素的指针。`p+20`指向数组的结束位置,strlen计算字符串长度不包括结束符,因此输出结果是空指针的长度,即0,选项C。 5. 函数`fun(int*p)`的返回值是通过指针`p`传递的值,因为`*p`表示指针所指向的值,所以答案是B)形参p所指存储单元中的值。 6. C语言中,函数的返回值类型由函数的定义决定,选项D是正确的,即定义函数时所指定的函数类型。 7. 调用函数时需要与定义时的参数类型相匹配,且void函数不能直接接收或返回值。正确选项是C),因为`fun(10,12.5)`调用了void类型的函数,并传入了正确的参数。 8. A)是正确的数组初始化方式,B)不正确,字符串赋值需要使用双引号,C)是错误的,字符串赋值应使用单引号,D)正确,指针str可以用来保存字符串。 9. `ps`指向`s`数组,`ps+3`、`s[3]`、`ps[3]`都是指向数组元素'g'的,而`ps+=3`表示将指针移动三个位置,`*ps`也指向'g',但选项D中`*ps`单独使用时不合法,因为没有加上自增运算符,所以选项D不能代表字符g。 10. 比较两个字符串应该使用strcmp函数,因为它会比较字符串内容并返回一个整数值,选项B正确。 11. 循环条件`i==0`永远不会满足,因为初始i为2,因此循环条件永远不成立,所以是无限次,选项A。 12. C语言中的数组大小是固定的,数组元素的类型必须相同,选项B是正确的。 这份资料涵盖了C语言的基础语法、数据类型、运算符、函数、指针以及数组等重要概念,对于准备考试的学生来说是非常有价值的参考资料。