1、32次机试试题 参考答案32-1套 参考答案:一、程序调试题(文件名为 test1-1.c)( 40 分 )#include void fun(char *s,char *t,char p) /* 改为:char *p */ int i,j,k=0; for(i=0;si!=0;i+) for(j=0;tj!=0;j+) if(si=ti) /* 改为:tj */ pk=si; k+; break; pk-1=0; /* 改为:pk */void main() FILE *fp; char s80,t80,p80; if(fp=fopen(test1-1.txt,r)=NULL) /* 改为:
2、w */ printf(Cannot open the file.n); exit(0); gets(s); gets(t); fun(s,t,p); printf(Result:n); puts(p); fputc(p,fp); /* 改为:fputs */ fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test1-2.c)(60分)评分标准:1.fun函数编写40分: 2. main函数编写20分:1)函数定义、形参书写正确(10分) 1)正确定义变量,并能正确的输入输出 (10分)2)求最大公约数正确 (20分) 2)能正确调用fun函数(10分)3)返回值
3、正确 (10分) 参考程序:#include int fun(int x,int y) int t; while(y!=0) t=x%y; x=y; y=t; return x;void main() int a,b,c,d; printf(Input 3 numbers:n); scanf(%d%d%d,&a,&b,&c); d=fun(a,fun(b,c); printf(Result=%dn,d);32-2套 参考答案:一、程序调试题(文件名为 test2-1.c)( 40 分 )#include #include #include #define N 80char insert(cha
4、r str,int i,char ch) /* 改为:char *str */ int j,len; len=strlen(str); if(ilen) /* 改为:i=i;j+) /* 改为:j- */ strj+1=strj; stri=ch; strlen=0; /* 改为:len+1 */ else i=len; stri=ch; strlen+1=0; void main() char str81,ch; int i; FILE *fp; fp=fopen(test1-2.dat,r); /* 改为:w */ if(fp=NULL) printf(file can not open!
5、n); exit(0); printf(Input a string:); gets(str); printf(Input insert position and character:); scanf(%d,%c,&i,&ch); insert(str,i,ch); printf(%sn,str); fprintf(fp,%sn,str); fclose(fp); 评分标准:每改对一处得8分二、编程题(程序文件取名为 test2-2.c)(60分)评分标准:1.fun函数编写40分: 2. main函数编写20分:1)函数定义、形参书写正确(10分) 1)能正确定义变量,并能正确的输入输出(1
6、0分)2)求平均值正确 (10分) 2)能正确调用fun函数(10分)3)正确将大于平均值的整数放入数组b中(10分)4)返回值正确(10分)参考程序:#include # define N 10int fun(int *a,int *b) int i,j; double sum=0,aver; for(i=0;iN;i+) sum=sum+ai; aver=sum/N; for(i=0,j=0;iaver) bj+=ai; return j;void main() int aN,bN,i,k; for(i=0;i10;i+) scanf(%d,&ai); k=fun(a,b); for(i=
7、0;ik;i+) printf(%5d,bi);32-3套 参考答案:一、程序调试题(文件名为 test3-1.c)( 40 分 )# include # define M 10# define N 80void main() int max,lin,i=0,aM; char strMN; int fun(char MN,int *); FILE *fp; if(fp=fopen(test3-1.dat,r)=null) /* 改为:NULL */ printf(Cannot open file.n); exit(0); while(!feof(fp) gets(stri+,N,fp); /*
8、 改为:fgets */ fclose(fp); fun(str,a); /* 改为:max=fun(str,a) */ printf(max=%dn,max);int fun(char strN,int a) int i,j=0,max; for(i=0;iM;i+) while(strij) j+; ai=i; /* 改为:ai=j */ j=0; max=a0; for(i=1;imax) max=ai; return; /* 改为:return max */评分标准:每改对一处得8分二、编程题(程序文件取名为 test3-2.c)(60分)评分标准:1fun函数编写35分: 2main
9、函数编写25分:1) 函数定义、形参书写正确(10分) 1) 正确定义变量,并能正确的输入输出(15分)2) 查找方法正确 (15分) 2) 能正确调用fun函数(10分)3)返回值正确(10分)参考程序:#include # define N 10int search(int *r,int k) int t; for(t=0;tN;t+) if(k=rt) return t; return -1;void main() int a30,s; int i,k; printf(Enter %d numbers: ,N); for(i=0;iN;i+) scanf(%d,&ai); printf(
10、Find what: ); scanf(%d,&s); k=search(a,s); if(k=-1) printf(Searching failed!n); else printf(Position is %d.n,k+1); 32-4套 参考答案:一、程序调试题(文件名为 test4-1.c)( 40 分 )#define N 20# include int fun(char s) /* 改为:char *s */ int i,t=0; for(i=0;si!=0;i+) if(si=0|si=9) /* 改为:& */ t=t*10+si; /* 改为:t=t*10+si- 0 */ r
11、eturn t;void main() char s20; int t; file *fp; /* 改为:FILE */ if(fp=fopen(test4-1.dat,w)=NULL) printf(Cannot open file!n); exit(0); gets(s); t=fun(s); printf(t=%dn,t); fprintf(t=%dn,t); /* 改为:fp, t=%dn,t */ fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test4-2.c)(60分)评分标准:1fun函数编写40分: 2main函数编写20分:1) 函数定义、形参
12、书写正确(10分) 1) 正确定义变量,并能正确的输入输出(10分)2) 排序方法正确(30分) 2) 能正确调用sort函数(10分)参考程序:# include # include # define N 80void sort(char *r) int a,b,t,len; len=strlen(r); for(a=1;alen;a+) for(b=0;blen-a;b+) if(rbrb+1) t=rb; rb=rb+1; rb+1=t; void main() char strN; printf(Enter a string: ); scanf(%s,str); sort(str);
13、printf(Result is: %sn,str);32-5套 参考答案:一、程序调试题(文件名为 test5-1.c)( 40 分 )# include # define N 10int fun(int *a,int c) int i,j,k=0; for(i=0;iN;i+) for(j=2;j=*(a+i)/2;j+) if(*(a+i)/j=0) break; /* 改为:*(a+i)%j */ if(j*(a+i)/2 */ ck=a+i; /* 改为:*(a+i) */ k+; return k;void main() int aN,cN,cnt,i; FILE *fp; fp=
14、fopen(test5-1.dat,r); /* 改为:test5-1.dat */ if(fp=NULL) printf(Can not open file!n); exit(0); for(i=0;iN;i+) fscanf(%d,a+i,fp); /* 改为:fp,%d,a+i */ cnt=fun(a,c); printf(amount: %4dn,cnt); printf(prime number: ); for(i=0;icnt;i+) printf(%4d,ci);评分标准:每改对一处得8分二、编程题(程序文件取名为 test5-2.c)(60分)评分标准:1fun函数编写40分
15、: 2main函数编写20分:1) 函数定义、形参书写正确(10分) 1) 正确定义变量,二维数组初始化正确(5分)2) 转置方法正确(30分) 2) 能正确输出(10分) 3)能正确调用函数(5分)参考程序:# include # define N 4void convert(int aN) int i,j,t; for(j=0;jN;j+) for(i=j+1;iN;i+) t=aij; aij=aji; aji=t; void main() int i,j; int aNN=1,2,3,4,3,4,5,6,5,6,6,7,7,8,9,0; printf(Before convert:n)
16、; for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); convert(a); printf(After convert:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); 32-6套 参考答案:一、程序调试题(文件名为 test6-1.c)( 40 分 )# define N 80# include int fun(char p,int a) /* 改为:char *p */ int i=0,j=0,flag=0,val=0,d; while(p+i)!=0
17、) /* 改为:*(p+i) */ if(*(p+i)9) /* 改为:| */ if(flag) aj+=val; flag=val=0; else d=*(p+i)-48; val=val+10+d; /* 改为:*10 */ flag=1; i+; if(*(p+i)=0&flag) aj+=val; return j;void main() char strN; int aN,n,i; FILE *fp; if(fp=fopen(test6-1.dat,r)=NULL) printf(Cannot open the file!n); exit(0); fgets(fp,str,N-1)
18、; /* 改为:str,N-1,fp */ fclose(fp); n=fun(str,a); for(i=0;in;i+) printf(%dn,ai); printf(nsum to %d data.n,n);评分标准:每改对一处得8分二、编程题(程序文件取名为 test6-2.c)(60分)评分标准:1fun函数编写40分: 2main函数编写20分:1) 函数定义、形参书写正确(10分) 1) 定义变量、数组和输入正确(10分)2) 输出结果正确(30分) 2) 能正确调用函数(10分)参考程序:# include # define N 4void fun(int a) int i,j,k,m; for(i=N;i0;i-) k=aN-1; for(j=N-1;j0;j-) aj=aj-1; a0=k; for(m=0;mN;m+) printf(%3d,am); printf(n); void main() int i,aN; printf(Enter %d number: ,N); for(i=0;iN;i+) scanf(%d,&ai); fun(a);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1