欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    四川省二级c语言29次机试试题及答案.doc

    • 资源ID:17530424       资源大小:160.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    四川省二级c语言29次机试试题及答案.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流四川省二级c语言29次机试试题及答案.精品文档.(第一套)(60分钟)一、程序调试题(40分)磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长<N。请改正程序中的错误 ,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include <stdio.h># include <string.h># define M 5# define N 20void fun(char (*ss)N) int i,j,k=0,n,m,len; for(i=0;i<M;i+) len=strlen(ssi); if(i=0) n=len; if(len<n) n=len; k=i; for(i=0;i<M;i+) if(i!=k) m=n;len=strlen(ss); for(j=len;j>=0;j-) ssim-=ssij; for(j=0;j<n+len;j+) ssij='*'void main() char ssMN; int i; FILE *fp; fp=fopen("test1-1.in","r"); if(fp=NULL) printf("File cannot open!n"); exit(0); for(i=0;i<M;i+) fscanf("%s",ssi); printf("nThe original strings are:n"); for(i=0;i<M;i+) printf("%sn",ssi); printf("n"); fun(ss); for(i=0;i<M;i+) printf("%sn",ssi); fclose(fp);二、编写程序test1-2.c(60分)程序的功能是:删除一个字符串中指定的字符。编写fun函数,其功能是删除一个字符串中指定的字符。假设字符串为:turbo c and borland c+,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c+。如果输入的字符在字符串中不存在,则字符串照原样输出。同一字母的大、小按不同字符处理。在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。(第二套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test2-1.c的C程序,其中函数fun的功能是:用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414 。请改正程序中的错误,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include <math.h># include <stdio.h>float fun(float num) int s; float n,t,pi; t=1;pi=0;n=1;s=1; while(t>=num) pi=pi+t; n=n+2; s=-s; t=s%n; pi=pi*4; return;main() float n1,n2; FILE *fp; fp=fopen("test2-1.out","r"); if(fp=NULL) printf("nFile cannot open!n"); exit(0); printf("Enter a float number:"); scanf("%f",&n1); n2=fun(); printf("%6.4fn",n2); fprintf(fp,"Result=%6.4fn",n2); fclose(fp);二、编写程序test2-2.c(60分)编写函数fun,其功能是:将形参指针a指向的字符顺序放入形指针c指向的字符串中,再把形参指针b指针的字符串逆序放入形参指针c指向的字符串中。注:不能使用字符串的复制和连接函数。例如:a指向的字符串为adcb,b指向的字符串为213,则字符串c中的内容为adcb312。(第三套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:将数组a中n个整数进行移动,大于等于0的数放在数组的前面,小于0的数放在后面。例如:数组中的数为:12 -34 56 -9 -10 25 9 -8 24 90,移动后的结果为:12 56 25 9 24 90 -34 -9 -10 -8在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。请改正程序中的错误,使其能得到正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include <stdio.h>void fun(int a,int n) int i,j=0,b20; for(i=0;i<n;i+) if(ai>=0) bj=ai; for(i=0;i<n;i+) if(ai>0) bj+=ai; for(i=0;i<n;i+) ai=bi;void main() int a10,i; char filename20; FILE *fp; printf("Input filename:"); scanf("%c",filename); if(fp=fopen(filename,"r")=NULL) printf("Cannot open the file.n"); exit(0); for(i=0;i<10;i+) fscanf(fp,"%d",ai); fun(a,10); for(i=0;i<10;i+) printf("%4d",a+i); fclose(fp);二、编写程序test3-2.c(60分)编写函数fun,函数fun的功能是:将字符串s最右边的n个字符赋值到新串t中,若n大于s的长度,则将s复制到t中。注:不能使用字符串的复制函数。例如:字符串s为abcdefgh,n=5,则字符串t为defgh 。main函数中输入一字符串s及n的值,调用fun函数并输出结果。(第四套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test4-4.c的C程序文件,其功能是:在main函数中随机生成一个N*N的二维数组,fun函数使该数组左下半三角元素中的值乘以n。例如n=3,当a数组中的值为:,运行程序后a数组的值就变为:在main函数中将运行结果输出到屏幕上和文件test4-4.out中。请改正程序中的错误,使它能得出正确结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include "stdio.h"# define N =3int fun(int aN,n) int i,j; for(i=0;i<N;i+) for(j=0;j<N;j+) if(i>=j) aij=*n;main() int aNN,n,i,j; FILE *fp; for(i=0;i<N;i+) for(j=0;j<N;j+) aij=rand()%10; printf("%4d",aji); printf("n"); do n=rand()%10; while(n<=3) printf("n=%4dn",n); fun(a,n); fp=fopen("test4-1.out","w"); if(fp=NULL) printf("nFile cannot open!n); exit(0); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",aij); fprintf(fp,"%4d",aij); printf("n"); fclose(fp);二、编写程序test4-2.c(60分)假定输入的字符串只包含字母和*号。请编写函数fun(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出字符串的长度,形参h给出字符串中前导*号的个数,形参e给出字符串中尾部*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容*A*BC*DEF*G*,删除后,字符串中的内容则应该是A* BC*DEF*G。(第五套)(60分钟)一、程序调试题(40分)给定程序test5-1.c,函数fun的功能是求两个形参的乘积和商,其结果存入形参指针所指的地址中,函数 io实现数据的输入和输出。假设输入文件test5-1.in有数据61.82和12.65,则两个数的乘积和商分别为782.02300和4.886957 。main函数调用函数 io 。请改正程序中的错误,使程序能得出正确结果。、注意:不得增行或删行,也不得更改程序结构。源程序如下:# include <stdio.h>void fun(double a,b,*x,*y) x=a*b; y=a/b;io() int i; double a,b,c,d; file *rf,*wf; rf=fopen("test5-1.in","r"); wf=fopen("test5-1.out","w"); fscanf(rf,"%lf%lf",&a,&b); fun(a,b,c,d); fprintf("c=%lfnn=%lfn",c,d); printf("c=%lfnn=%lfn",c,d); fclose(rf); fclose(wf);void main() double a,b,c,d; clrscr(); io();二、编写程序test5-2.c(60分)用函数调用方式编写程序。要求实现:在主函数中输入一个3×4的整型矩阵,调用函数covert对其进行转置并将结果存放在另一个二维数组中,最后在主函数中输出结果。 答案29-1套 参考答案:一、程序调试题(文件名为 test1-1.c)( 40 分 )# include <stdio.h># include <string.h># define M 5# define N 20void fun(char (*ss)N) int i,j,k=0,n,m,len; for(i=0;i<M;i+) len=strlen(ssi); if(i=0) n=len; /* 改为:i=0 */ if(len<n) /* 改为:len>n */ n=len; k=i; for(i=0;i<M;i+) if(i!=k) m=n;len=strlen(ss); /* 改为:ssi */ for(j=len;j>=0;j-) ssim-=ssij; for(j=0;j<n+len;j+) /* 改为:n-len */ ssij='*'void main() char ssMN; int i; FILE *fp; fp=fopen("test1-1.in","r"); if(fp=NULL) printf("File cannot open!n"); exit(0); for(i=0;i<M;i+) fscanf("%s",ssi); /* 改为:fp, "%s",ssi */ printf("nThe original strings are:n"); for(i=0;i<M;i+) printf("%sn",ssi); printf("n"); fun(ss); for(i=0;i<M;i+) printf("%sn",ssi); fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test1-2.c)(60分)评分标准:1. main函数30分 2. fun函数30分1)字符串和字符输入正确10分 1)删除字符方法正确10分2)函数调用参数传递正确10分2)指针使用正确 10分3)输出结果正确 10分3)si=010分参考程序:# include <stdio.h># define N 100int fun(char s,int c) char *p=s; int i; while(*p) if(*p!=c) si+=*p; p+; si=0; main() char strN,ch; printf("nEnter string:"); gets(str); printf("Entera char to be deleted:"); scanf("%c",&ch); fun(str,ch); printf("Result=%sn",str);29-2套 参考答案:一、程序调试题(文件名为 test2-1.c)( 40 分 )# include <math.h># include <stdio.h>float fun(float num) int s; float n,t,pi; t=1;pi=0;n=1;s=1; while ( t>=num ) /* 改为:fabs(t)>=num */ pi=pi+t; n=n+2; s=-s; t=s%n; /* 改为:s/n */ pi=pi*4; return; /* 改为:return pi */main() float n1,n2; FILE *fp; fp=fopen("test2-1.out","r");/* 改为:w */ if(fp=NULL) printf("nFile cannot open!n"); exit(0); printf("Enter a float number:"); scanf("%f",&n1); n2=fun();/* 改为:n2=fun(n1) */ printf("%6.4fn",n2); fprintf(fp,"Result=%6.4fn",n2); fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test2-2.c)(60分)评分标准:1. fun函数编写40分2. main函数20分1)函数定义、形参书写正确 10分 1)能正确字义数组,并能对字符串进2)能正确将字符数组a复制到字符数组c10分 行正确的输入和输出10分3)能正确将字符数组b复制到字符数组c10分 2)能正确调用fun函数10分4)ck=010分参考程序:# include <stdio.h># include <string.h>void fun(char *a,char *b,char *c) int i,j,k; for(i=0;ai!='0'i+) ci=ai; for(k=i,j=strlen(b)-1;j>=0;k+,j-) ck=bj; ck='0'void main() char a50,b50,c100; printf("Input string a:"); gets(a); printf("Input string b:"); gets(b); fun(a,b,c); printf("string c:%sn",c);29-3套 参考答案:一、程序调试题(文件名为 test3-1.c)( 40 分 )# include <stdio.h>void fun(int a,int n) int i,j=0,b20; for(i=0;i<n;i+) if(ai>=0) bj=ai;/* 改为:j+ */ for(i=0;i<n;i+) if(ai>0)/* 改为:< */ bj+=ai; for(i=0;i<n;i+) ai=bi;void main() int a10,i; char filename20; FILE *fp; printf("Input filename:"); scanf("%c",filename);/* 改为:%s */ if(fp=fopen(filename,"r")=NULL) printf("Cannot open the file.n"); exit(0); for(i=0;i<10;i+) fscanf(fp,"%d",ai);/* 改为:&ai */ fun(a,10); for(i=0;i<10;i+) printf("%4d",a+i);/* 改为:ai */ fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test3-2.c)(60分)评分标准:1fun函数编写40分:1) 函数定义、形参书写正确 10分2) 能正确处理n大于s的长度的情况 10分3) 能正确处理n小于s的长度的情况 10分4) tj=0 10分2main函数20分:1) 能正确定义数组,并能正确进行输入输出 10分2) 能正确调用函数 10分参考程序:# include <stdio.h># include <string.h>void fun(char *s,char *t,int n) int i,j,k; k=strlen(s); if(n>=k) for(i=0;si!='0'i+) ti=si; ti='0' else for(i=k-n,j=0;si!='0'i+,j+) tj=si; tj='0'void main() char s80,t80; int i,n; printf("Input string:"); gets(s); printf("Input n:"); scanf("%d",&n); fun(s,t,n); printf("Result:"); puts(t);29-4套 参考答案:一、程序调试题(文件名为 test4-1.c)( 40 分 )# include "stdio.h"# define N =3/* 改为: 3 */int fun(int aN,n)/* 改为:int n */ int i,j; for(i=0;i<N;i+) for(j=0;j<N;j+) if(i>=j) aij=*n;/* 改为:*= */main() int aNN,n,i,j; FILE *fp; for(i=0;i<N;i+) for(j=0;j<N;j+) aij=rand()%10; printf("%4d",aji);/* 改为:aij */ printf("n"); do n=rand()%10; while(n<=3)/* 改为:(n<=3); */ printf("n=%4dn",n); fun(a,n); fp=fopen("test4-1.out","w"); if(fp=NULL) printf("nFile cannot open!n); exit(0); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%4d",aij); fprintf(fp,"%4d",aij); printf("n"); fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test4-2.c)(60分)评分标准:1fun函数编写20分:1) 函数定义、形参书写正确 10分2) for循环书写正确 10分2main函数40分:1) 字符串输入和输出正确5分2) 字符串的长度计算准确 10分3) 字符串前导*号个数计算准确 10分4) 字符串尾部*号个数计算准确 10分5) 函数调用参数传递正确5分参考程序:# include <stdio.h>void fun(char *a,int n,int h ,int e) int i,j=0; for(i=h;i<n-e;i+) aj+=ai; aj='0'void main() char s81,*t,*f; int m=0,tn=0,fn=0; printf("Enter a string:n"); gets(s); t=f=s; while(*t) t+; m+; t-; while(*t='*') t-; tn+; while(*f='*') f+; fn+; fun(s,m,fn,tn); printf(The string after deleted:n); puts(s);29-5套 参考答案:一、程序调试题(文件名为 test5-1.c)( 40 分 )# include <stdio.h>void fun(double a,b,*x,*y)/* 改为:double b, double *x, double *y */ x=a*b; y=a/b;/* 改为:*x=a*b; *y=a/b; */io() int i; double a,b,c,d; file *rf,*wf;/* 改为:FILE */ rf=fopen("test5-1.in","r"); wf=fopen("test5-1.out","w"); fscanf(rf,"%lf%lf",&a,&b); fun(a,b,c,d);/* 改为:fun( a , b , &c , &d ) */ fprintf("c=%lfnn=%lfn",c,d);/* 改为:fprintf ( wf , "c=%lfnn=%lfn" , c , d ) ; */ printf("c=%lfnn=%lfn",c,d); fclose(rf); fclose(wf);void main() double a,b,c,d; clrscr(); io();评分标准:每改对一处得8分二、编程题(程序文件取名为 test5-2.c)(60分)评分标准:1convert函数25分1) 函数定义(参数)正确10分2) 转置正确 15分2main函数35分1) 二维数组定义正确5分2) 数据输入正确 10分3) 函数调用参数传递正确 10分4) 结果输出正确 10分参考程序:# include <stdio.h>void convert(int a4,int b3) int i,j; for(i=0;i<3;i+) for(j=0;j<4;j+) bji=aij; void main() int a34,b43; int i,j; for(i=0;i<3;i+) for(j=0;j<4;j+) scanf("%d",&aij); convert(a,b); for(i=0;i<4;i+) for(j=0;j<3;j+) printf("%5d",bij); printf("n");

    注意事项

    本文(四川省二级c语言29次机试试题及答案.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开