32次机试试题 参考答案.docx

上传人:b****7 文档编号:8960840 上传时间:2023-02-02 格式:DOCX 页数:15 大小:17.54KB
下载 相关 举报
32次机试试题 参考答案.docx_第1页
第1页 / 共15页
32次机试试题 参考答案.docx_第2页
第2页 / 共15页
32次机试试题 参考答案.docx_第3页
第3页 / 共15页
32次机试试题 参考答案.docx_第4页
第4页 / 共15页
32次机试试题 参考答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

32次机试试题 参考答案.docx

《32次机试试题 参考答案.docx》由会员分享,可在线阅读,更多相关《32次机试试题 参考答案.docx(15页珍藏版)》请在冰豆网上搜索。

32次机试试题 参考答案.docx

32次机试试题参考答案

32-1套参考答案:

一、程序调试题(文件名为test1-1.c)(40分)

#include

voidfun(char*s,char*t,charp)/*改为:

char*p*/

{

inti,j,k=0;

for(i=0;s[i]!

='\0';i++)

{

for(j=0;t[j]!

='\0';j++)

if(s[i]==t[i])/*改为:

t[j]*/

{p[k]=s[i];

k++;

break;

}

}

p[k-1]='\0';/*改为:

p[k]*/

}

voidmain()

{

FILE*fp;

chars[80],t[80],p[80];

if((fp=fopen("test1-1.txt","r"))==NULL)/*改为:

w*/

{

printf("Cannotopenthefile.\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)返回值正确(10分)

参考程序:

#include

intfun(intx,inty)

{

intt;

while(y!

=0)

{

t=x%y;

x=y;

y=t;

}

returnx;

}

voidmain()

{

inta,b,c,d;

printf("Input3numbers:

\n");

scanf("%d%d%d",&a,&b,&c);

d=fun(a,fun(b,c));

printf("Result=%d\n",d);

}

32-2套参考答案:

一、程序调试题(文件名为test2-1.c)(40分)

#include

#include

#include

#defineN80

charinsert(charstr,inti,charch)/*改为:

char*str*/

{

intj,len;

len=strlen(str);

if(i>len)/*改为:

i

{

for(j=len-1;j>=i;j++)/*改为:

j--*/

str[j+1]=str[j];

str[i]=ch;

str[len]='\0';/*改为:

len+1*/

}

else

{

i=len;

str[i]=ch;

str[len+1]='\0';

}

}

voidmain()

{

charstr[81],ch;

inti;

FILE*fp;

fp=fopen("test1-2.dat","r");/*改为:

w*/

if(fp==NULL)

{

printf("filecannotopen!

\n");

exit(0);

}

printf("Inputastring:

");

gets(str);

printf("Inputinsertpositionandcharacter:

");

scanf("%d,%c",&i,&ch);

insert(str,i,ch);

printf("%s\n",str);

fprintf(fp,"%s\n",str);

fclose(fp);

}

评分标准:

每改对一处得8分

二、编程题(程序文件取名为test2-2.c)(60分)

评分标准:

1.fun函数编写40分:

2.main函数编写20分:

1)函数定义、形参书写正确(10分)1)能正确定义变量,并能正确的输入输出(10分)

2)求平均值正确(10分)2)能正确调用fun函数(10分)

3)正确将大于平均值的整数放入数组b中(10分)

4)返回值正确(10分)

参考程序:

#include

#defineN10

intfun(int*a,int*b)

{

inti,j;

doublesum=0,aver;

for(i=0;i

sum=sum+a[i];

aver=sum/N;

for(i=0,j=0;i

if(a[i]>aver)

b[j++]=a[i];

returnj;

}

voidmain()

{

inta[N],b[N],i,k;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

k=fun(a,b);

for(i=0;i

printf("%5d",b[i]);

}

32-3套参考答案:

一、程序调试题(文件名为test3-1.c)(40分)

#include

#defineM10

#defineN80

voidmain()

{

intmax,lin,i=0,a[M];

charstr[M][N];

intfun(char[M][N],int*);

FILE*fp;

if((fp=fopen("test3-1.dat","r"))==null)/*改为:

NULL*/

{

printf("Cannotopenfile.\n");

exit(0);

}

while(!

feof(fp))

gets(str[i++],N,fp);/*改为:

fgets*/

fclose(fp);

fun(str,a);/*改为:

max=fun(str,a)*/

printf("max=%d\n",max);

}

intfun(charstr[][N],inta[])

{

inti,j=0,max;

for(i=0;i

{

while(str[i][j])j++;

a[i]=i;/*改为:

a[i]=j*/

j=0;

}

max=a[0];

for(i=1;i

if(a[i]>max)

max=a[i];

return;/*改为:

returnmax*/

}

评分标准:

每改对一处得8分

二、编程题(程序文件取名为test3-2.c)(60分)

评分标准:

1.fun函数编写35分:

2.main函数编写25分:

1)函数定义、形参书写正确(10分)1)正确定义变量,并能正确的输入输出(15分)

2)查找方法正确(15分)2)能正确调用fun函数(10分)

3)返回值正确(10分)

参考程序:

#include

#defineN10

intsearch(int*r,intk)

{

intt;

for(t=0;t

if(k==r[t])

returnt;

return-1;

}

voidmain()

{

inta[30],s;

inti,k;

printf("Enter%dnumbers:

",N);

for(i=0;i

scanf("%d",&a[i]);

printf("Findwhat:

");

scanf("%d",&s);

k=search(a,s);

if(k==-1)

printf("Searchingfailed!

\n");

else

printf("Positionis%d.\n",k+1);

}

32-4套参考答案:

一、程序调试题(文件名为test4-1.c)(40分)

#defineN20

#include

intfun(chars)/*改为:

char*s*/

{

inti,t=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]>='0'||s[i]<='9')/*改为:

&&*/

t=t*10+s[i];/*改为:

t=t*10+s[i]-'0'*/

returnt;

}

voidmain()

{

chars[20];

intt;

file*fp;/*改为:

FILE*/

if((fp=fopen("test4-1.dat","w"))==NULL)

{

printf("Cannotopenfile!

\n");

exit(0);

}

gets(s);

t=fun(s);

printf("t=%d\n",t);

fprintf("t=%d\n",t);/*改为:

fp,"t=%d\n",t*/

fclose(fp);

}

评分标准:

每改对一处得8分

二、编程题(程序文件取名为test4-2.c)(60分)

评分标准:

1.fun函数编写40分:

2.main函数编写20分:

1)函数定义、形参书写正确(10分)1)正确定义变量,并能正确的输入输出(10分)

2)排序方法正确(30分)2)能正确调用sort函数(10分)

参考程序:

#include

#include

#defineN80

voidsort(char*r)

{

inta,b,t,len;

len=strlen(r);

for(a=1;a

for(b=0;b

if(r[b]

{

t=r[b];

r[b]=r[b+1];

r[b+1]=t;

}

}

voidmain()

{

charstr[N];

printf("Enterastring:

");

scanf("%s",str);

sort(str);

printf("Resultis:

%s\n",str);

}

32-5套参考答案:

一、程序调试题(文件名为test5-1.c)(40分)

#include

#defineN10

intfun(int*a,intc[])

{

inti,j,k=0;

for(i=0;i

{

for(j=2;j<=*(a+i)/2;j++)

if(*(a+i)/j==0)break;/*改为:

*(a+i)%j*/

if(j<*(a+i)/2)/*改为:

j>*(a+i)/2*/

{

c[k]=a+i;/*改为:

*(a+i)*/

k++;

}

}

returnk;

}

voidmain()

{

inta[N],c[N],cnt,i;

FILE*fp;

fp=fopen(test5-1.dat,"r");/*改为:

"test5-1.dat"*/

if(fp==NULL)

{

printf("Cannotopenfile!

\n");

exit(0);

}

for(i=0;i

fscanf("%d",a+i,fp);/*改为:

fp,"%d",a+i*/

cnt=fun(a,c);

printf("amount:

%4d\n",cnt);

printf("primenumber:

");

for(i=0;i

printf("%4d",c[i]);

}

评分标准:

每改对一处得8分

二、编程题(程序文件取名为test5-2.c)(60分)

评分标准:

1.fun函数编写40分:

2.main函数编写20分:

1)函数定义、形参书写正确(10分)1)正确定义变量,二维数组初始化正确(5分)

2)转置方法正确(30分)2)能正确输出(10分)

3)能正确调用函数(5分)

参考程序:

#include

#defineN4

voidconvert(inta[][N])

{

inti,j,t;

for(j=0;j

for(i=j+1;i

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

voidmain()

{

inti,j;

inta[N][N]={{1,2,3,4},{3,4,5,6},{5,6,6,7},{7,8,9,0}};

printf("Beforeconvert:

\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

convert(a);

printf("Afterconvert:

\n");

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

32-6套参考答案:

一、程序调试题(文件名为test6-1.c)(40分)

#defineN80

#include

intfun(charp,inta[])/*改为:

char*p*/

{

inti=0,j=0,flag=0,val=0,d;

while((p+i)!

='\0')/*改为:

*(p+i)*/

{

if(*(p+i)<'0'&&*(p+i)>'9')/*改为:

||*/

{

if(flag)

a[j++]=val;

flag=val=0;

}

else

{

d=*(p+i)-48;

val=val+10+d;/*改为:

*10*/

flag=1;

}

i++;

}

if(*(p+i)=='\0'&&flag)

a[j++]=val;

returnj;

}

voidmain()

{

charstr[N];

inta[N],n,i;

FILE*fp;

if((fp=fopen("test6-1.dat","r"))==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

fgets(fp,str,N-1);/*改为:

str,N-1,fp*/

fclose(fp);

n=fun(str,a);

for(i=0;i

printf("%d\n",a[i]);

printf("\nsumto%ddata.\n",n);

}

评分标准:

每改对一处得8分

二、编程题(程序文件取名为test6-2.c)(60分)

评分标准:

1.fun函数编写40分:

2.main函数编写20分:

1)函数定义、形参书写正确(10分)1)定义变量、数组和输入正确(10分)

2)输出结果正确(30分)2)能正确调用函数(10分)

参考程序:

#include

#defineN4

voidfun(inta[])

{

inti,j,k,m;

for(i=N;i>0;i--)

{

k=a[N-1];

for(j=N-1;j>0;j--)

a[j]=a[j-1];

a[0]=k;

for(m=0;m

printf("%3d",a[m]);

printf("\n");

}

}

voidmain()

{

inti,a[N];

printf("Enter%dnumber:

",N);

for(i=0;i

scanf("%d",&a[i]);

fun(a);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1