去年研究过,考场上好像我也见到那个东西能用了,不过还是自己做的,其实很简单的,下面是我的一篇日志,希望对你有用
二级c的程序设计题作弊方法
网上碰到有二级c的作弊方法,提到了通过更改out.dat文件的内容,达到作弊的目的,自己也在二级c语言的模拟考试环境下测试过,可用,满分,24分就来了,至于真正的二级c考试,有人说能用,也有人说,不能用,只有试试就知道了,第一次考二级,也没试过,所以不知道是不是能用
#include <stdio.h>
void fun(char p1[], char p2[])
{
}
main()
{ char s1[80], s2[40] ;void NONO ();
printf("Enter s1 and s2:\n") ;
scanf("%s%s", s1, s2) ;
printf("s1=%s\n", s1) ;
printf("s2=%s\n", s2) ;
printf("Invoke fun(s1,s2):\n") ;
fun(s1, s2) ;
printf("After invoking:\n") ;
printf("%s\n", s1) ;
NONO() ;
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
FILE *rf, *wf ;
char s1[80], s2[40] ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s", s1) ;
fscanf(rf, "%s", s2) ;
fun(s1, s2) ;
fprintf(wf, "%s\n", s1) ;
}
fclose(rf) ;
fclose(wf) ;
}
这个程序的函数fun的功能是连接字符串si和s2的,直接看调试程序的最后一段,打开了两个数据流,然后从文件in.dat的那个流中,读出来了s1和s2字符串的内容,在调用了 fun函数,将s2连接到s1的后面,最后就是将连接好的s1输出到out.dat这个文件中
那么就是说,只要你的程序是正确的,那么,人家的测试程序最后会在out.dat写出一个特定的内容,因为in.dat是固定的
如果阅卷真的是仅仅检测out.dat 的内容,那么这种方法是可行的,这个程序是通过in.dat和out.dat来检测的,具体的换别的程序也是不一定的
找到自己的考试文件夹,一般会有提示的,进去之后,会看到in.dat文件,复制in.dat将其重新命名为out.dat文件
然后就是按照程序的思路更改文件的内容了
这个程序是连接字符串的 ,所以肯定是将in.dat的某些东西连接了在输出到out。dat里面去了
下面是in.dat文件的内容,要用记事本打开才行,打开方式更改
12345
67890
kjhjkhkjkl
kljkljkl
jkhjkhjkh
987689
kjhjkh
lmjnklj
sdsfsdfds
fsdfdsf
fsdfsdf
345234
423423
423423
7547dvgdf
5634
gdefgdf
tyerter
34563
565764
按照程序的设计思路,最后的程序测试阶段,是for循环十次,然后每次读取两行,连接成一个字符串之后再写入out。put
这么最后就是谢了10次,共有10行
那么,只需要把,12,连接一起,34,连接一起,这个程序的out.dat是下面这样字的,组后,阅卷,这道题是满分,当然是模拟软件
1234567890
kjhjkhkjklkljkljkl
jkhjkhjkh987689
kjhjkhlmjnklj
sdsfsdfdsfsdfdsf
fsdfsdf345234
423423423423
7547dvgdf5634
gdefgdftyerter
34563565764
这个方法在二级c不一定能用,但是多少会有点用,不过要能看懂最后测试程序的内容,依据程序的原理,新建或者改文件
还是有风险的,遇到变态老师就不好说了,实在不会做的时候或许能用这个方法 。
温馨提示:内容为网友见解,仅供参考