【知识点详解】
1. 文件操作:
- 二进制文件读写:在给定的程序中,使用了`fopen()`函数以"wb"模式创建一个名为"myfile5.dat"的二进制文件,用于存储结构体数组`STYPE`的数据。`fwrite()`函数用于将结构体数组的每个元素写入文件,而`fclose()`用于关闭文件。在`check()`函数中,使用"rb"模式打开文件,然后使用`fread()`读取数据并显示在屏幕上。
2. 结构体:
- 定义结构体`STYPE`包含三个成员:`int num`,`char name[10]`和`char tel[10]`,分别代表编号、姓名和电话号码。
- 结构体数组`s[10]`在`main()`函数中初始化,然后传递给`fun()`函数进行写入文件的操作。
3. 错误检查与处理:
- 在文件操作中,通过`if((fp=fopen(...))==NULL)`检查文件是否成功打开,如果失败则返回错误信息或退出程序。
4. 字符串处理:
- `fun()`函数用于字符串的重组,错误出现在两个循环中。第一个循环`for(i=0; i<=sl; i++)`应该改为`for(i = 0 ; i < sl ; i++)`以避免超出数组边界。第二个错误是字符串结束符`\0`的设置,应该在`t[2*sl]`处设置,即`t[2*sl] = 0;`。
5. 数组与指针:
- 结构体数组`s[10]`和`t[100]`的使用展示了数组作为参数传递给函数的方法,同时`char *s`和`char *t`作为字符串指针用于处理字符串。
6. 整数操作:
- `fun(int a, int b, long *c)`函数中,将两个整数`a`和`b`合并成一个整数`c`。通过整数除法和取模运算实现,如`a/10`和`a%10`。
7. 主函数`main()`:
- 主函数通常用于初始化、调用其他函数和处理用户输入输出。
- 示例程序中的`main()`调用了`fun()`函数,并根据其返回值输出成功或失败的信息。
8. 函数调用:
- 题目中的`NONO()`函数虽然没有具体实现,但可以理解为一个用于读取输入文件、调用其他函数(如`fun()`)并写入输出文件的辅助函数。
9. 文件路径:
- 使用绝对路径`"C:\\WEXAM\\24990001\\in.dat"`和`"C:\\WEXAM\\24990001\\out.dat"`指定输入和输出文件,这在实际编程中是常见的做法,特别是在处理批处理任务时。
总结:
这个C语言题目涉及到的知识点包括文件操作(读写二进制文件)、结构体、错误处理、字符串处理、数组与指针的运用、整数操作以及函数调用等。这些是C语言编程的基础,对于计算机二级考试及日常编程工作至关重要。