
浙江大学C语言模拟考题及答案1
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本资料包含了浙江大学针对C语言课程设置的模拟考试题目及其详细解答,适用于学习C语言编程的学生进行自我测试和复习。
【知识点详解】
1. **数组名的特性**:在C语言中,数组名实际上是一个指向数组首元素的常量指针,因此它不能被重新赋值。一旦定义后其地址是固定的,无法像普通变量那样改变。例如,`int arr[5]; arr = arr + 2;`这样的操作不可行。
2. **fclose函数的返回值**:在C语言中,当成功关闭一个文件时,fclose会返回0来表示操作顺利完成;如果发生错误,则通常会返回EOF(一般为负数)。
3. **逻辑判断的真假**:在C语言里,0代表逻辑假(false),非零则代表逻辑真(true)。例如,在if语句中,非零值被视为真条件而0视为假条件。
4. **double类型的数据精度**:尽管C中的double可以近似表示大部分实数,但并非所有数值都能精确表示。浮点数的准确度受限于硬件和IEEE 754标准,某些极端大小或特定有理数可能无法精确表达。
5. **break语句的应用场景**:用于中断循环(包括for, while, do-while)中的执行流程;在switch结构中也可以使用它来立即退出整个结构。不过,break不能直接跳出函数外部的代码段。
6. **函数定义的位置限制**:C语言不允许在一个函数内部再定义新的函数,只能在外围作用域或另一个函数之外进行定义。
7. **指针数组与数组指针的区别**:`int *p1[5]`表示一个包含五个整数指针的数组;而`(*p2)[5]`则代表指向含有五元素整型数组的单一指针。因此,尝试执行如`p1=p1+2;`这样的操作是不正确的。
8. **C语言源程序运行机制**:需要先编译成可执行文件才能在计算机上运行;未经此步骤直接运行源代码是不可能实现的。
9. **局部变量与全局变量的区别**:函数内定义的是局部变量,仅限于该函数内部使用;而全局变量在整个程序范围内可见并可以被访问到。
10. **实参和形参的关系**:在调用过程中,形参是预先设定好的接收值的占位符,不会分配存储空间。传递给它的实际数据称为实参,并且两者之间并不共享内存位置;形式参数通过复制方式获取实参与之对应的值。
【单选题解析】
1. 长整型输出应使用`%ld`格式控制符,正确选项为B。
2. `typedef int *INTEGER;`定义了类型名INTEGER相当于int指针。因此a是一个指向int的指针,答案是C。
3. C语言中字符串必须以空字符\0结尾。所以初始化时需确保添加末尾零值,选择C项正确。
4. 表达式`x=194/5;`执行整数除法运算结果为4(忽略小数部分),答案是A。
5. `if(b==0)m=l;n=2;`包含两个独立语句的复合结构。因此选项D最符合描述。
6. 结构体变量大小等于所有成员总和,选择A项正确。
7. 由于指针加法与数组下标访问操作不同,执行`p=a; p+i != a[i];`时两者不等价,答案是C。
8. 函数调用传入两个实参:`(exp1+exp2)` 和 `(exp3-exp4)`。正确选项为B。
9. `cc`是字符指针数组,每个元素指向字符串首地址。因此A项描述准确无误。
10. 程序中sum初始值未定义但通过for循环累加计算确定最终结果为15(即从1到5的和)。正确答案选A。
【填空题预设答案】
1. 表达式`(i=1,j=2,k=3, i&&j&k)`的结果是真,因为逻辑与运算符`&&`具有短路特性。
2. 连接两个字符串应使用函数strcat()。
全部评论 (0)


