3月份上机授课内容.doc

上传人:飞****2 文档编号:61375487 上传时间:2022-11-21 格式:DOC 页数:18 大小:555KB
返回 下载 相关 举报
3月份上机授课内容.doc_第1页
第1页 / 共18页
3月份上机授课内容.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《3月份上机授课内容.doc》由会员分享,可在线阅读,更多相关《3月份上机授课内容.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一:填空题(30分)程序填空题有如下特点:每个空下面均有一个注释“/*found*/”,这个注释不能更改和删除【1】 每个空均有类似于“_1_”的标记,答案填写在这个标记的地方,填完后要将这个标记删除。【2】 不要改变程序的其他任何地方,切忌不得增行或删行【3】 除了在类似于“_1_”标记的地方填答案外,不要动程序任何地方【4】 程序填空的答案可能有多个,你只要填写一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。【5】 非常重要的是,一定要记得保存 如果忘了保存就不能得分【6】 做题的过程中可以运行程序,根据程序的运行结果来验证自

2、己的答案是否正确。但这对程序填空题来说并不是必须的,甚至有的程序根本就运行不出来。程序没有main函数【在以前的考试中遇到过,可能是系统升级出现的BUG】,而且,即使运行结果正确也不一定能完全保证你答案一定正确,但绝大部分情况下运行正确的时候答案也正确,当然,如果运行结果错误,你的答案肯定有错误的地方。二:改错题(30分)程序改错题有如下特点: 【1】 每个题目均有若干个注释“/*found*/”,这个注释不能更改和删除【2】 每个注释紧接着的下一行就是程序需要改错的地方。也就是说,整个程序都只有这些标记下的一行需要改错,其他的任何地方均不可能出现错误。【3】 不要改变程序的其他任何地方,切忌

3、不得增行或删行【4】 除了在需要改错和能改错的地方地方改错外,不要动程序任何地方【5】 程序的改错方法可能有多个,你只要改成一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。【6】 非常重要的是,一定要记得保存 否则就不能得分三:程序编写题(40分)程序编写题有如下特点: 【1】 每个题目均有一个函数要编写。【2】 编写完后程序一定要编译、链接和运行,否则不能得分。【3】 程序编写题不管你如何编写,只要能得出正确结果,即可得分,而且是得满分。【4】 程序编写题的得分情况大部分是0分或满分40分【5】 做完程序编写题,一定要运行程序,

4、根据程序的运行结果来检验自己的答案是否正确,但如果碰到程序本身就不能运行:程序没有main函数【在以前的考试中遇到过,可能是系统升级出现的BUG】,考生这时需向监考老师反映,一般可以重新抽提。如何运行?(无论是填空题,改错题,还是编程题,运行的方法都是一样的)编译:compile【ctrl+F7】(可查错)链接:build【F7】执行:execute【ctrl+F5】程序执行完以后,也就是点击!的时候,屏幕上会自动出现一个的黑色的对话框,这个黑色对话框里面的内容就是程序输出的结果。当屏幕最后出现这句话:press any key to continue,并且黑色对话框里面的内容和题目意思完全一

5、样的时候,这道程序才算完全正确,否则是错误的。二级C语言上机编程题技巧一、技巧的原理首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出:在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到ou

6、t.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。二、使用技巧的条件当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件:1、 编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面含有in.dat文件。2、 编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如本题:它让我们实现实型数据保留两位小数,并对

7、第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。三、步骤确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步:1、 建立out.dat文件上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成

8、了out.dat文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。)2、 修改答案这一步至关重要,因此也要特别注意。首先将in.dat文件和out.dat文件用写字板程序打开。我们就可以看见in.dat文件内的数据了。这个时候就对应程序功能的要求按照程序中要求的格式将结果自己写入out.dat文件中。那么以什么样的格式写入out.dat文件呢?这就需要看编程题程序中的这一段程序:前面已经分析过了,这里要写入答案的格式就是这段程序中的fprintf语句中第二个参数中要求的

9、。如本题:fprintf(wf,“ %fn”,fun(a);加黑的位置就要求输入到文件中的数据以%f的形式输出,并且换行。这里强调的是双引号里若有别的文字要照原样输出,一点都不能改变,否则不能得分。题目的要求是:那么这个题的答案应该是:很多同学以为这个答案是正确的。其实是错误的。这里要强调之前跟大家强调过的一个问题。fprintf语句中fprintf(wf,“ %fn”,fun(a);要求输入到文件中的数据以%f的形式输出,并且换行。大家注意到每输出一个数据应该换行。题目中的举例也是我们的这个答案,那哪里出错了呢?错在格式上:%f要求以实型数据进行输出,并且保留6位有效数字。所以答案应该是:所

10、以最重要的一点就是要看清楚fprintf语句的格式要求。(大家可以自己做一下第3套题的编程题:里面除了格式说明项所有字符都要一字不差的原样写入到我们的out.dat文件中,包括空格的个数等等呢个。建议这种大家可以将格式要求的那一行用复制的方式拷贝过来,然后将%s %d位置写上正确答案。)如果跟fprintf语句要求的格式不一致那么这个题大家就得不了分。所以需要同学们多加练习,注意其中的细节。在我们公司的网站上模拟上机时可以点击右上角的评分。这样大家在练习这种方法的时候就可以看到自己修改的结果是否正确。 四、结语 这种技巧的难点就是对fprintf语句中格式的观察。要保证我们写在out.dat文

11、件中数据的格式与要求的格式一字不差。这需要同学们的多次练习才能自己掌握要诀。当然,如果大家能够自己编写正确的程序就没有必要使用这种技巧了。祝大家考试顺利通过!填空题参考答案1: 01、double 02、f1 03、f22: 01、struct student 02、n-1 03、ai.name,aj.name3: 01、0 02、xi/N 03、j+4: 01、k 02、N 03、aki5: 01、0 02、s+ 03、ctod(a)+ctod(b)6: 01、0 02、n 03、(t*t)7: 01、j 02、0 03、i+8: 01、N 02、k 03、ssi9: 01、a 02、b.n

12、ame 03、scorei10:01、M 02、N 03、011:01、t,s 02、si 03、012:01、j 02、k 03、p13:01、999 02、t/10 03、x14:01、48 02、s+ 03、sum15:01、h-next 02、p-next 03、=16:01、struct student * 02、a-scorei 03、a17:01、s/N 02、j+ 03、-118:01、n+ 02、0 03、s+19:01、N 02、i 03、-120:01、a0i 02、sno 02、-name 03、&t24:01、xi/N 02、j+ 03、i+25:01、0 02、i+

13、 03、2.*i26:01、N 02、i 03、i+127:01、double 02、f1 03、f228:01、FILE * 02、fclose(fp) 03、fp29:01、1 02、2*i 03、(-1)30:01、filename 02、SEEK_END 03、&n31:01、*av 02、i 03、xj32:01、FILE * 02、fp 03、ch33:01、struct student 02、a.name 03、a.scorei34:01、i 02、psi 03、tp35:01、si 02、k 03、036:01、3. 02、 03、(2*i+1)37:01、10 02、0 03

14、、x38:01、0 02、x 03、t+39:01、0 02、| 03、140:01、k 02、N-1 03、temp41:01、N 02、break 03、n42:01、p-next 02、q 03、p-next43:01、h-next 02、p=0 03、r44:01、0 02、10*x 03、n/1045:01、N 02、substr 03、046:01、1 02、s 03、i*1047:01、rb 02、sj.sno 03、fwrite48:01、*s 02、1 03、kn49:01、*s 02、s+ 03、n50:01、NODE * 02、q 03、r改错题参考答案1: 01、cha

15、r *fun(char *s,char *t) 02、ss+; 03 tt+;2: 01、q=p+i; 02、while(qp)3: 01、double fun(int m) 02、for(i=100;i tj + 1 )5: 01、void fun ( char *s, int *a, int *b ) 02、+(*a); 03、+(*b);6: 01、for(i=0;stri;i+) 02、if(substrk+1=0)7: 01、for(i=2;i=i)12:01、while(i0)14:01、if (k%13 = 0) | (k%17 = 0) 02、15:01、p=h-next; 0

16、2、p=p-next;16:01、char *fun( char (*sq)M ) 02、return sp;17:01、#include stdio.h 02、upfst(char *p)18:01、t+=sk; 02、*aver=ave;19:01、a2=k/10; 02、return i;20:01、int fun(int *x,int *y) 02、t=*x;*x=*y;*y=t;21:01、double fun (int n) 02、c=a;a+=b;b=c;22:01、n=strlen( aa ) ; 02、ch=aai; 23:01、double fun(double a,dou

17、ble x0) 02、if(fabs(x1-x0)0.00001)24:01、numk=0; 02、switch(*s)25:01、void fun (char *s, char *t) 02、t2*d = 0;26:01、aai=m%k; 02、printf(%d,aai-1);27:01、p=h-next; 02、p=p-next;28:01、t=(STU *)calloc(sizeof(STU),m); 02、tk=bj;29:01、k+; 02、if(m=k)30:01、p=(NODE *)malloc(sizeof(NODE); 02、return h;31:01、float fun

18、(int n) 02、for (i=2; i=xa)50:01、if(i%2 | si%2=0) 02、tj=0;编程题参考答案1、void fun(char *w, int m)char aN;int i;for(i=0;i=0;m-,i-) wi=am;2、int fun( STREC *a,STREC *b,int l, int h )int i,j=0;for(i=0;i=l & ai.s=h)bj=ai;j+; return j;3、fun( STU a, STU *s ) int i; *s=a0; for(i=1;iN;i+) if(ai.ss) *s=ai; 4、void fu

19、n( char *ss ) int i=1; while(ssi-1 & ssi) if(ssi=a & ssi=z) ssi+=A-a; i+=2; 5、float fun ( float h )long i=h*1000;if(i%10=eps)s+=c;a*=i;b*=2*i+1;c=a/b;i+;return s*2;7、int fun(int score, int m, int below)int i,j=0,s=0; for(i=0;im;i+) s+=scorei; s/=m; for(i=0;im;i+)if(scorei0;j-) ai=*; i+; 10、void fun(

20、 char *a, int n )int i=0,j=0;while(ai)if(ai!=*)j=i;break;i+;if(jn)while(ai) ai-j+n=ai; i+;ai-j+n=0;11、void fun ( int x, int pp, int *n ) int i; *n=0; for(i=1;i=x;i+=2) if(x%i=0) pp*n=i; (*n)+; 12、void fun(char *s, char t) int i=0,j=0; while(si) if(i%2!=0 | si%2=0) tj=si; j+; i+; tj=0;13、void fun(int

21、 a, int b, long *c) *c=a/10*100+a%10+b/10*10+b%10*1000;14、double fun( int n)int i; double s=0;for(i=1;in;i+)if(i%3=0 & i%7=0) s+=i; return sqrt(s);15、void fun(int (*s)10, int *b, int *n, int mm, int nn) int i,j; *n=0; for(i=0;imm;i+) for(j=0;jnn;j+) b*n=sij; (*n)+; 16、int fun( STREC a )int i,j;STREC

22、 b;for(i=0;iN-1;i+) for(j=i+1;jN;j+) if(ai.saj.s) b=ai;ai=aj;aj=b;17、double fun ( int wN ) double s=0; int i; for(i=0;iN;i+) s+=w0i+wN-1i+wi0+wiN-1; s-=w00+w0N-1+wN-10+wN-1N-1; return s/(N*4-4);18、int fun(int *s, int t, int *k) int i; *k=0; for(i=0;is*k) *k=i;19、void fun( char *a )int i=0,j=0; while

23、(ai) if(ai!=*) j=0; else j+; i+; ai-j=0;20、int fun(int lim, int aaMAX) int i,j,k=0; for(i=2;i=lim;i+) for(j=2;ji;j+) if(i%j=0) break; if(j=i) aak=i; k+; return k;21、void fun(int m, int k, int xx) int i,j=m+1,n=0; while(nk) for(i=2;inext;while(p)if(as) a=p-s;p=p-next;return a;23、double fun( STREC *a,

24、 STREC *b, int *n )int i; double s=0; for(i=0;iN;i+) s+=ai.s; s/=N; *n=0; for(i=0;is) b*n=ai; (*n)+; return s;24、int fun ( int aMN ) int i,s=0; for(i=0;iN;i+) s+=a0i+aM-1i; for(i=1;iM-1;i+) s+=ai0+aiN-1; return s;25、void fun(char *s, char t) int i=0,j=0; while(si) if(i%2=1 & si%2=1) tj=si; j+; tj=0;

25、26、fun(char(*a)81,int num,char *max) int i,j,k=strlen(a0); *max=a0; for(i=1;inum;i+) j=strlen(ai); if(kj) k=j; *max=ai; 27、int fun(char *str) int i,j=0; while(strj) j+; for(i=0;i=j/2) return 1; else return 0;28、int fun(int a, int n) int i,j=0; for(i=1;in;i+) if(ai!=aj) j+; aj=ai; return j+1;29、void

26、fun(int a, int n , int *max, int *d ) int i; *d=0; for(i=1;ia*d) *d=i; *max=a*d;30、int fun( char *s) int i=0,j=0,f=1; while(si) if(siz) if(f) j+; f=0; else f=1; i+; return j+1;31、int fun ( int aN, int m ) int i,j; for(i=0;iN;i+) for(j=i;jN;j+) aij*=m;32、void fun(char (*s)N, char *b) int i,j,k=0; for

27、(i=0;iN;i+) for(j=0;jM;j+) bk=sji; k+; 33、int fun( STREC *a, STREC *b ) int i,j=0,s=a0.s; for(i=1;iN;i+) if(ai.ss) s=ai.s; for(i=0;iN;i+) if(ai.s=s) bj=ai; j+; return j;34、double fun(double x , int n) int i; double a=1,b=1,s=1; for(i=1;i=n;i+) a*=x; b*=i; s+=a/b; return s;35、void fun(char *s, char t

28、) int i=0,j=0; while(si) if(si%2=0) tj=si; j+; i+; tj=0;36、fun (int aM) int i,s=a00; for(i=0;is) s=a0i; if(a1is) s=a1i; return s;37、long fun ( char *p) long i,s=0; if(p0=-) i=1; while(pi) s=s*10+pi-0; i+; s*=-1; else i=0; while(pi) s=s*10+pi-0; i+; return s;38、void fun(int a, int b, long *c) *c=a/10

29、*100+a%10+b/10*1000+b%10*10;39、int fun(char *str) int i,k=0; char *p=str,s81; while(*p) if(*p!= ) sk+=*p; p+; for(i=0;ik;i+) stri=si; stri=0;40、void fun(char p1, char p2) char *p,*q; p=p1; q=p2; while(*p) p+; while(*q) *p+=*q+; *p=0;41、int fun(int array33) int i,j,t; for(i=0;i3;i+) for(j=0;ji;j+) t=

30、arrayij;arrayij=arrayji;arrayji=t;42、void fun(int *w, int p, int n) int i,aN; for(i=0;i=p;i+) ai=wi; for(i=0;in-(p+1);i+) wi=wi+(p+1); for(i=0;i=p;i+) wn-(p+1)+i=ai;43、void fun(char aMN, char *b) int i,k=0; char *p; for(i=0;iM;i+) p=ai; while(*p) bk+=*p+; bk=0;44、void fun(int a, int b, long *c) *c=a

31、/10*10+a%10*1000+b/10+b%10*100;45、void fun( char *a, int n,int h,int e ) int i; for(i=0;in-h-e;i+) ai=ai+h; ai=0;46、void fun(int a, int b, long *c) *c=a/10*1000+a%10*10+b/10+b%10*100;47、void fun( int *a, int *b) int i,k; for(i=0;iM;i+) bi=0; for(i=0;i=10) b10+; else bk+; 48、double fun( int n ) int i; double s; for(i=1;i=n;i+) s+=1.0/(i*(i+1); return s;49、float fun(int m, int n) int i; float m1=1.0,n1=1.0,k=1.0; for(i=1;i=m;i+) m1*=i; for(i=1;i=n;i+) n1*=i; for(i=1;i=m-n;i+) k*=i; return

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com