四川省二级c语言29次机试试题及答案.doc
《四川省二级c语言29次机试试题及答案.doc》由会员分享,可在线阅读,更多相关《四川省二级c语言29次机试试题及答案.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流四川省二级c语言29次机试试题及答案.精品文档.(第一套)(60分钟)一、程序调试题(40分)磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长N。请改正程序中的错误 ,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include # include # define M 5# define N 20void fun(char (*ss)N) int i,j,k=0,n
2、,m,len; for(i=0;iM;i+) len=strlen(ssi); if(i=0) n=len; if(lenn) n=len; k=i; for(i=0;i=0;j-) ssim-=ssij; for(j=0;jn+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;iM;i+) fscanf(%s,ssi); printf(nThe original strin
3、gs are:n); for(i=0;iM;i+) printf(%sn,ssi); printf(n); fun(ss); for(i=0;iM;i+) printf(%sn,ssi); fclose(fp);二、编写程序test1-2.c(60分)程序的功能是:删除一个字符串中指定的字符。编写fun函数,其功能是删除一个字符串中指定的字符。假设字符串为:turbo c and borland c+,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c+。如果输入的字符在字符串中不存在,则字符串照原样输出。同一字母的大、小按不同字符处理。在main函数中输入一个
4、字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。(第二套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test2-1.c的C程序,其中函数fun的功能是:用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414 。请改正程序中的错误,使程序能得出正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include # include float fun(float num) int s; float n,t,pi; t=1;pi=0;n=1;s=1; while(t=nu
5、m) 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,其功能
6、是:将形参指针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
7、在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。请改正程序中的错误,使其能得到正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include void fun(int a,int n) int i,j=0,b20; for(i=0;i=0) bj=ai; for(i=0;i0) bj+=ai; for(i=0;in;i+) ai=bi;void main() int a10,i; char filename20; FILE *fp; printf(Input filename:); scanf(%c,fi
8、lename); if(fp=fopen(filename,r)=NULL) printf(Cannot open the file.n); exit(0); for(i=0;i10;i+) fscanf(fp,%d,ai); fun(a,10); for(i=0;i10;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函
9、数中输入一字符串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=
10、0;iN;i+) for(j=0;j=j) aij=*n;main() int aNN,n,i,j; FILE *fp; for(i=0;iN;i+) for(j=0;jN;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;iN;i+) for(j=0;jN;j+) printf
11、(%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的
12、功能是求两个形参的乘积和商,其结果存入形参指针所指的地址中,函数 io实现数据的输入和输出。假设输入文件test5-1.in有数据61.82和12.65,则两个数的乘积和商分别为782.02300和4.886957 。main函数调用函数 io 。请改正程序中的错误,使程序能得出正确结果。、注意:不得增行或删行,也不得更改程序结构。源程序如下:# include 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(te
13、st5-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分)用函数调用方式编写程序。要求实现:在主函数中输入一个34的整型矩阵,调用函数covert对其进行转置并将结果存放在另一个二维数组中,最后在主函数中输出结果。 答案29-1套 参考答案:一、程序调试题(文件名为 tes
14、t1-1.c)( 40 分 )# include # include # define M 5# define N 20void fun(char (*ss)N) int i,j,k=0,n,m,len; for(i=0;iM;i+) len=strlen(ssi); if(i=0) n=len; /* 改为:i=0 */ if(lenn */ n=len; k=i; for(i=0;i=0;j-) ssim-=ssij; for(j=0;jn+len;j+) /* 改为:n-len */ ssij=*;void main() char ssMN; int i; FILE *fp; fp=fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川省 二级 语言 29 试试 答案
限制150内