【知识点详解】
1. **C语言基础知识**
- 在C语言中,`void main()`是主函数的标准形式,用于程序的入口点。
- `int i%2`用于判断变量i是否为奇数,因为偶数除以2的余数为0,奇数则不为0。
2. **变量与数据类型**
- `int i, b=1;`声明了两个变量,i是整型,b初始化为1。
- `double s;`声明了一个双精度浮点型变量s,用于存储计算结果。
3. **循环结构**
- `for(i=1;i<=20;i++)`是一个典型的for循环,用于迭代20次。
- `if(i%2)`用于区分奇数项和偶数项,当i为奇数时执行if内的语句,否则执行else内的语句。
4. **算术运算与表达式**
- `(double)i/(double)b`用于将两个整数转换为双精度浮点型进行除法运算,以避免整数除法导致的小数部分丢失。
5. **程序输出**
- `printf()`函数用于输出格式化的字符串,`"sum=%f\n"`用于输出浮点型变量的值,其中%f代表浮点数,\n是换行符。
6. **结构体与动态内存分配**
- `struct student`定义了一个结构体类型,包含姓名(name)、三门课程的成绩(a[])和平均成绩(v)。
- `malloc(n*sizeof(student))`用于动态分配n个结构体的内存空间。
7. **数组与指针**
- `s[i].a[j]`访问结构体中的数组元素,`s[i].v`访问结构体中的成员变量。
- `s+i->v`是结构体指针的解引用操作,等价于`s[i].v`。
8. **排序算法**
- `for(i=0;i for(j=i+1;j`是冒泡排序的基本结构,用于比较相邻元素并交换位置。
9. **文件操作**
- `FILE *fp`声明一个指向文件的指针,用于文件I/O操作。
- `fopen("res.txt","w")`打开文件res.txt,"w"表示写模式。
- `fclose(fp)`用于关闭文件。
10. **条件判断与循环**
- `while(x!=-1)`循环条件,当输入的x不等于-1时继续循环。
- `feof(fp)`检查文件结束标志,通常用于读取文件时判断是否到达文件末尾。
11. **文件写入**
- `fprintf(fp, "%d ", x)`将整数x写入文件,"%d"是整数格式化输出,空格用于分隔数字。
12. **输入输出函数**
- `scanf("%d", &x)`用于从标准输入读取整数到变量x。
- `scanf()`和`fprintf()`分别是C语言中的输入和输出函数,用于处理格式化的输入输出。
13. **数组与指针运算**
- `a[k][j]=j*n+k;`对二维数组赋值,体现了数组下标与指针的关系。
- `a[0][1]`访问二维数组的第一个元素的第二个元素。
14. **循环与变量更新**
- `for(k=0; k`循环遍历数组,`s += a[k][j]`累加数组元素到变量s。
这些知识点涵盖了C语言的基础语法、控制结构、数组、结构体、指针、文件操作、输入输出以及简单的算法实现。通过这些题目,考生可以复习和检验自己对C语言的理解和应用能力。