high=mid-1;
elseif(m>=a[mid])/*改为m>a[mid]*/
low=mid+1;
elsereturn(mid);
}
return(-1);
}
main()
{
inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;
for(i=0;iprintf("%d",a[i]);
printf("Enterm:
");
scanf("%d",m);/*改为&m*/
k=fi(a[],m);/*改为a*/
if(k>0)printf("m=%d,index=%d\n",m,k);/*改为k>=0*/
elseprintf("Notbefound!
\n");
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test2-2.c)(60分)
评分标准:
1.被调函数编写正确20分2.文件打开、数据读入正确15分
3.函数调用正确5分4.屏幕输出及结果正确15分
5.程序结构合理5分
参考程序:
#include
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{inti,j,min;
for(j=0;j{min=tt[0];
for(i=0;iif(tt[i][j]min=tt[i][j];
pp[j]=min;
}
}
main()
{intt[M][N];
intp[N],i,j,k;
FILE*fp;
fp=fopen("test2-2.dat","r");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
fscanf(fp,"%d",&t[i][j]);
fclose(fp);
printf("Theoriginaldatais:
\n");
for(i=0;i{for(j=0;jprintf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:
\n");
for(k=0;kprintf("%4d",p[k]);
printf("\n");
}
四川省普通高等学校计剪机应用知识和能力
第二十一次等级考试
二级(C与C++语言)上机考试试卷(第三套)参考答案
一、程序调试题(文件名为test3-1.c)(40分)
#include
voidmain()
{
inti,k;/*改为k=0*/
chara[80],b[80],*p;
p=*a;/*改为p=a*/
gets(p);
while(!
*p)/*改为*p*/
{
for(i=1;i<3&&*p!
='\0';p++,k++,i++)/*改为i<=3*/
b[k]=*p;
if(i==4){b[k]='';k++;}/*改为''*/
}
b[k]='\0';
puts(*b);/*改为b*/
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test4-2.c)(60分)
评分标准:
1.被调函数编写正确20分2.文件打开、数据写入正确10分
3.函数调用正确10分4.屏幕输出正确10分
5.m输入正确5分6.程序结构合理5分
参考程序:
#include
intcreate(inta[],intm)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%3==0||i%7==0)
a[j++]=i;
return(j);
}
main()
{inta[80],m;
inti,n;
FILE*fp;
if((fp=fopen("test3-2.dat","w"))==NULL)
{printf("Can'topenthefile.\n");
exit(0);
}
printf("Inputm:
\n");
scanf("%d",&m);
n=creat(a,m);
printf("n=%d\n",n);
fprintf("fp,"n=%d\n",n);
for(i=0;i{printf("%4d",a[i]);
fprintf(fp,"%4d",a[i]);
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十一次等级考试
二级(C与C++语言)上机考试试卷(第四套)参考答案
一、程序调试题(文件名为test4-1.c)(40分)
#include
main()
{
charstr[81],c;
inti,j,n;/*改为n=0*/
printf("\nEnterastring:
");
gets(str[81]);/*改为str*/
printf("\nEnteracharacter:
");
getchar(c);/*改为c=getchar()*/
for(i=j=0;str[i];i++)
if(str[i]!
=c)
str[j]=str[i];/*改为j++*/
else
n;/*改为n++*/
str[j]=;/*改为str[j]='\0'*/
printf("\nSTR=%s,N=%d\n",str,n);
getchar();
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test4-2.c)(60分)
评分标准:
1.输入数据正确5分2.被调函数编写正确20分
3.文件操作及数据写入正确15分4.函数调用正确5分
5.屏幕输出及结果正确10分6.程序结构合理5分
参考程序:
#include
#include
voidfun(char*s,char*t)
{inti,j=0,n;
n=strlen(s);
for(i=0;iif(!
(i%2==0&&s[i]%2!
=0))
t[j++]=s[i];
t[j]='\0';
}
main()
{chars[100],t[100];
FILE*fp;
printf("Pleaseenterastring:
\n");
gets(s);
fun(s,t);
fp=fopen("test4-2.txt","w");
printf("%s\n%s\n",s,t);
fprintf(fp,"%s\n%s\n",s,t);
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十二次等级考试
二级(C与C++语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
#include
charmove(char*str,intr)/*改为*move*/
{chart;
inti,len;/*改为k*/
len=strlen(str);
for(k=0;k<=r;k++)/*改为k{t=*str;
strcpy(str+1,str);/*改为strcpy(str+1,str)*/
str[len-1]=t;
}
return*str;/*改为str*/
}
voidmain()
{chars[81];
intm;
printf("\nPleaseenterastring:
\n");
gets(s);
do
{printf("\nPleaseenterm:
");
scanf("%d",m);/*改为&m*/
if(m>strlen(s))
printf("\nDataerror!
!
\n");
}while(m>strlen(s));
printf("\nResult:
%s\n",move(s,m));
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test1-2.c)(60分)
评分标准:
1.被调函数编写正确25分2.文件打开、数据读出正确10分
3.函数调用正确10分4.屏幕输出正确10分
5.程序结构合理5分
参考程序:
#include
sort(chara[],charb[])
{
charc;
inti,j=0;
for(i=1;ib[j++]=a[i];
b[j]='\0';
for(i=1;ifor(j=0;jif(b[j]>b[j+1])
{c=b[j];b[j]=b[j+1];b[j+1]=c;}
}
main()
{
FILE*in;
chara[128],b[65];
in=fopen("test1-2.in","r");
fgets(a,128,in);
fclose(in);
sort(a,b);
puts(b);
}
四川省普通高等学校计算机应用知识和能力
第二十二次等级考试
二级(C与C++语言)上机考试试卷(第二套)参考答案
一、程序调试题(文件名为test2-1.c)(40分)
#include
main()
{
floata[][10],min;/*改为a[10][10]*/
inti,j;
intinvert();/*改为float*/
for(i=0;i<10;i++)
for(j=0;j<10;j++)
a[i][j]=i+j;
for(i=0;i<10;i++)
{
min=invert(a,10);/*改为a[i]*/
printf("a[%d]min=%f\n",i,min);
}
}
floatinvert(float*a,n)/*改为intn*/
{
inti;
floatmin;
min=*(a+0);
for(i=1;i{
if(min<*(a+i))/*改为>*/
min=(a+i);/*改为*(a+i)*/
}
returnmin;
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test2-2.c)(60分)
评分标准:
1.被调函数编写正确15分2.文件打开、数据写入正确15分
3.函数调用正确10分4.屏幕输出正确10分
5.程序结构合理10分
参考程序:
#include
intselect(inta)
{if(!
(a%3)&&!
(a%5))return1;
elsereturn0;
}
main()
{inti,k=0;
FILE*fp;
if((fp=fopen("test2-2.dat","wb"))==NULL)
{printf("cannotopenthefile\n");
exit(0);
}
for(i=3;i<400;i++)
if(select(i))
{k=k+1;
printf("%10d",i);
fprintf(fp,"%10d",i);
if(k%5==0)
{printf("\n");
fprintf(fp,"\n");
}
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十二次等级考试
二级(C与C++语言)上机考试试卷(第三套)参考答案
一、程序调试题(文件名为test3-1.c)(40分)
#include
intfun(floats,intn,float*aver)/*改为*s*/
{floatave,t=0.0;
intcount,k,i;/*改为count=0*/
for(k=0;kt=s[k];/*改为+=*/
ave=t/n;
for(i=0;iif(s[i]>ave)count++;/*改为<*/
*aver=&ave;/*改为ave*/
returncount;
}
main()
{floats[30],aver;
intm,i;
printf("\nPleaseentern(<30):
");
scanf("%d",&m);
printf("\nPleaseenter%dmark:
\n",m);
for(i=0;iscanf("%f",s+i);
printf("\nThenumberofstudents:
%d\n",fun(s,m,aver));/*改为&aver*/
printf("Ave=%f\n",aver);
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test3-2.c)(60分)
评分标准:
1.被调函数编写正确20分2.文件操作和读数据正确15分
3.函数调用正确10分4.屏幕输出正确10分
5.程序结构合理5分
参考程序:
#include
#include
#defineM10
voidfun(int*s)
{inti,j,t;
for(i=1;ifor(j=i+1;jif(s[i]>s[j])
{t=s[i];
s[i]=s[j];
s[j]=t;
}
}
intinput(ints[])
{FILE*fp;
inti;
if((fp=fopen("test3-2.in","r"))==NULL)
{printf("cannotopenfile\n");
return(0);
}
for(i=0;ifscanf(fp,"%d",&s[i]);
fclose(fp);
return
(1);
}
main()
{ints[M];
inti;
if(input(s))
{fun(s);
printf("\n");
for(i=0;iprintf("%d",s[i]);
}
}
四川省普通高等学校计算机应用知识和能力
第二十三次等级考试
二级(C与C++语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
#include/*改为:
math.h*/
main()
{
charstr[100],*p=str,help[15];
staticlongintnum[50];
inti=0,k=0,m,sign=0;
printf("\ninputthestring:
");
scanf("%s",p);
do
{if(*p>=0&&*p<=9)/*改为:
*p>=’0’&&*p<=’9’或*p>=48&&*p<=57*/
{sign=1;
help[k++]=*p;
}
elseif(sign=1)/*改为:
==*/
{intn=0;
while(--k>=0)
num[i]+=(help[k]-48)*((longint)pow(n++,10));/*改为:
pow(10,n++)*/
i++;
k=0;
sign=0;
}
else/*改为:
else;*/
p++;
}while(*(p-1)!
='\0');
for(m=0;m
printf("%d,",num[m]);/*改为:
%ld(即长整型格式输出)*/
}
评分标准:
每改对一处得6分,结果正确得4分
二、编程题(程序文件取名为test1-2.c)(60分)
评分标准:
1.被调函数fun编写正确20分2.文件打开和关闭正确10分
3.函数调用正确5分4.屏幕输出和文件输出正确15分
5.输出格式正确5分6.程序结构合理5分
参考程序:
#include
#defineM1000
intfun(int*a)
{intm,k=0;
for(m=1;m<=M;m++)
if((m%7==0&&m%11!
=0)||(m%7!
=0&&m%11==0))
a[k++]=m;
returnk;
}
main()
{inta[M],n,k;
FILE*fp;
clrscr();/*清屏函数*/
fp=fopen("test1-2.dat","w");
n=fun(a);
printf("%d\n",n);
fprintf(fp,"%d\n",n);
for(k=0;k{printf("%5d",a[k]);
fprintf(fp,"%5d",a[k]);
if((k+1)%10==0)
{printf("\n");
fprintf(fp,"\n");
}
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十三次等级考试
二级(C与C++语言)上机考试试卷(第二套)参考答案
一、程序调试题(文件名为test2-1.c)(40分)
#include
#defineN80
voidfun(int*s,int*t,intk)/*改为*k*/
{
inti,m;