浙江大学2016年《程序设计专题》期末考试试卷

需积分: 0 0 下载量 145 浏览量 更新于2024-08-04 收藏 51KB DOCX 举报
"这份资源是浙江大学2015-2016学年春夏学期《程序设计专题》课程的期末考试试卷A卷。试卷包含了单选题,涉及到C语言编程中的预处理指令、函数参数传递、递归函数、函数指针、宏定义以及数据结构的应用。" 在这份试卷中,涉及的知识点包括: 1. **预处理指令**:在C语言中,`#include<stdio.h>`是一个预处理指令,它会在编译时将标准输入输出头文件`stdio.h`的内容插入到源代码的相应位置,以便使用其中定义的函数和数据类型。 2. **数组传参**:当把二维数组如`inta[10][20]`传入函数时,通常传入的是数组首元素的地址,即`inta[0]`。题目中可能有一个选择题考察了正确传递数组以计算平均值的代码段。 3. **递归函数**:递归函数是函数自身调用自身的一种方式,用于解决某些特定问题。题目可能有一道题考察了关于递归函数错误的说法,比如递归函数没有基线条件或者递归深度过深可能导致栈溢出等。 4. **函数指针**:函数`sort()`的原型是`void sort(int a[], int size)`,表示一个不返回任何值但接受整型数组和其大小的函数。题目中询问了一个函数`fun()`,它接受一个整型指针作为第一个参数,并能接受`sort()`函数的入口地址作为第二个参数。正确答案是`void fun(int *p, void (*q)(int a[], int size));`,表明`fun()`接收一个指向整型的指针和一个指向接受数组和大小的函数的指针。 5. **宏定义**:宏定义是C语言的预处理器功能,用于文本替换。题目中询问了如何定义一个宏`MAX`来求两个数的最大值。最合适的定义是`#define MAX(a, b) ((a) > (b) ? (a) : (b))`,这确保了在比较时不会因为优先级问题导致错误。 6. **数据类型与指针**:`typedef int *ptr;`定义了一个新的类型别名`ptr`,代表整型指针。接着声明了两个指针变量`p1`和`p2`。题目可能要求识别`p2`的类型。 7. **结构体与指针**:结构体`structscoretype`包含五门科目成绩,而`structstudent`包含学生姓名、准考证号码、排名和一个`structscoretype`类型的成员`s`。定义了结构体数组`s[100]`和指向结构体的指针`p`。题目可能要求访问结构体中的"数学Math"字段。 这份试卷全面测试了学生的C语言基础,包括预处理、函数、指针、数据结构和宏定义等核心概念的理解和应用能力。