四川省计算机二级C与C++机试题参考答案1824次.docx
《四川省计算机二级C与C++机试题参考答案1824次.docx》由会员分享,可在线阅读,更多相关《四川省计算机二级C与C++机试题参考答案1824次.docx(48页珍藏版)》请在冰豆网上搜索。
![四川省计算机二级C与C++机试题参考答案1824次.docx](https://file1.bdocx.com/fileroot1/2023-1/10/c6ad103d-b9d1-4866-a860-8d44b3c60674/c6ad103d-b9d1-4866-a860-8d44b3c606741.gif)
四川省计算机二级C与C++机试题参考答案1824次
四川省普通高等学校计算机应用知识和能力
第十八次等级考试
二级(C语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
#include
intfun(intm);/*去掉分号(;)*/
{intsum,n=0,j,yes;/*改为sum=0*/
while((m>=2)&&(n<10)/*改为(n<10))*/
{yes=0;/*改为yes=1*/
for(j=2;j<=m/2;j++)
if(m%j==0)
{yes=0;
break;
}
if(yes=1)/*改为yes==1*/
{sum+=m;n++;
m--;
}
}
return;/*改为returnsum*/
}
main()
{intm;
clrscr();
scanf("%d",m);/*改为&m*/
printf("%d\n",fun(m));
}
评分标准:
每改对一处得5分,运行结果正确得5分。
二、编写程序(程序文件取名为test1-2.c)(60分)
评分标准:
1.文件打开与关闭正确10分2.文件读写正确10分
3.函数及函数调用正确20分4.屏幕上显示结果正确10分
5.Test1-2.txt中结果正确10分
参考程序:
#include
#include
#defineM10
inta[M][M]={0};
fm(inta[][M],intm)
{intj,k;
for(j=0;jfor(k=0;ka[j][k]=(k+1)*(j+1);
}
main()
{inti,j,n;
FILE*fp;
fp=fopen("test1-2.txt","w");
clrscr();
printf("Entern:
");
scanf("%d",&n);
fm(a,n);
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);
fprintf(fp,"%4d",a[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第十九次等级考试
二级(C和C++语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
voidfun(longs,longt)/*改为long*t*/
{longs1=10;
*t=s%10;
while(s>o);/*改为while(s>0)*/
{s=s/100;
t=s%10*s1+t;/*改为*t=s%10*s1+*t*/
s1=s1*100;/*改为s1=s1*10*/
}
}
voidmain()
{longs,t;
printf("\nPleaseenterintegers:
");
scanf("%ld",&s);
if(s>0)
{fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
elseprintf("svalueerror.\n");
}
评分标准:
每改对一处得6分,第二处有两个错误,结果正确得10分。
二、编写程序(程序文件取名为test1-2.c)(60分)
评分标准:
1.文件打开、关闭正确10分2.屏幕结果输出正确5分
3.文件结果输出正确5分4.数据输入方法正确5分
5.排号正确5分6.数据初始化正确5分
7.数据处理正确20分8.找出结果正确5分
参考程序:
#include
#definenmax50
voidmain()
{inti,k,m,n,num[nmax],*p;
FILE*fp;
printf("Pleaseenterthen:
");
scanf("%d",&n);
p=num;
for(i=0;i*(p+i)=i+1;
i=0;k=0;m=0;
while(m{if(*(p+i)!
=0)
k++;
if(k==5)
{*(p+i)=0;
k=0;m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
fp=fopen("test1-2.dat","w");
printf("%dnumberisalastont.\n",*p);
fprintf(fp,"%dnumberisalastont.\n",*p);
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第十九次等级考试
二级(C和C++语言)上机考试试卷(第二套)参考答案
一、程序调试题(文件名为test2-1.c)(40分)
#include
#include
voidfun(char*s,char*t1,char*t2,char*w)
{char*p,*r,*place;
strcpy(w,s);
place=NULL;
while(*w)
{p=w;r=t1;
while(r)/*改为*r*/
if(*r=*p)/*改为*r==*p*/
{r++;p++;}
elsecontinue;/*改为break*/
if(*r=='0')/*改为'\0'*/
place=w;
w++;
}
if(place!
=NULL)
{r=t2;
while(&r)/*改为*r*/
*place=*r,place++,r++;
}
}
main()
{chars[100],t1[100],t2[100],w[100];
printf("\nPleaseenterstrings:
");
scanf("%s",s);
printf("\nPleaseentersubstringt1:
");
scanf("%s",t1);
printf("\nPleaseentersubstringt2:
");
scanf("%s",t2);
if(strlen(t1)==strlen(t2))
{fun(s,t1,t2,w);
printf("\nTheresultis:
%s\n",w);
}
elseprintf("Error:
strlen(t1)!
=strlen(t2)\n");
}
评分标准:
每改对一处得6分,结果正确得10分。
二、编写程序(程序文件取名为test2-2.c)(60分)
评分标准:
1.文件打开、关闭正确10分2.屏幕结果输出正确5分
3.文件结果输出正确5分4.数据输入方法正确5分
5.函数调用和函数参数定义方法正确10分6.下标为奇数位置的判断正确10分
7.字母转换正确10分8.命令行参数使用正确5分
参考程序:
#include
voidfun(char*st)
{char*p=st;
inti=0;
while(*p)
{if((i%2)&&(*p>='a'&&*p<='z'))*p-=32;
p++;i++;
}
}
voidmain(intargc,char*argv[])
{chartt[51];
FILE*wf;
if(argc!
=2)
{printf("\nToofewparameter!
\n");
exit(0);
}
wf=fopen(argv[1],"w");
printf("Pleaseenterancharachterstringwithin50characters:
\n");
gets(tt);
fun(tt);
puts(tt);
fprintf(wf,"t=%s",tt);
fclose(wf);
}
四川省普通高等学校计算机应用知识和能力
第十九次等级考试
二级(C和C++语言)上机考试试卷(第三套)参考答案
一、程序调试题(文件名为test3-1.c)(40分)
#include"stdio.h"
#include"string.h"
char*insert(char*s1,char*s2)
{intlen1,len2;
charp,q;/*改为*p,*q*/
len1=strlen(s1);
len2=strlen(s2);
q=s1;
p=s1+len1;/*改为len1-1*/
while(*s1!
='\0'||*s1!
=*s2)/*改为&&*/
*s1++;/*改为*s1++*/
if(*s1!
='\0')
for(;p>=s1;p++)/*改为p--*/
*(p+len2)=*p;
while(*s2)
*s1++=*s2++;
*(q+len1+len2)='\0';
returnp;/*改为returnq*/
}
voidmain()
{charstr1[100],str2[100],*add;
printf("Inputastring:
\n");
gets(str1);
printf("\nInputthestringdoyouwanttoinsert:
\n");
gets(str2);
add=insert(str1,str2);
printf("outputis:
%s\n",add);
}
评分标准:
每改对一处得5分,结果正确得10分。
二、编写程序(程序文件取名为test3-2.c)(60分)
评分标准:
1.字符串输入正确5分2.函数及函数调用正确10分
3.替换位置定义正确10分4.字符串替换正确15分
5.屏幕上显示结果正确5分6.文件打开、关闭正确5分
7.文件写入正确5分8.返回结果正确5分
参考程序:
#include
#include
char*strrep(char*s1,char*s2,intn)
{char*p,*q;
p=s1+n;
q=s2;
while(*q)*p++=*q++;
*p='\0';
returns1;
}
main()
{chara[100],b[100],*str;
intn,len;
FILE*fp;
fp=fopen("test3-2.dat","w");
printf("Inputstringaandb:
\n");
gets(a);
gets(b);
len=strlen(a);
printf("Inputnumber:
");
scanf("%d",&n);
if((n>=0)&&(n<=len))
{str=strrep(a,b,n);
printf("Outputis:
%s\n",str);
fprintf(fp,"Outputis:
%s\n",str);
}
else
{printf("nvalueiserror.\n");
fprintf(fp,"nvalueiserror.\n");
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十次等级考试
二级(C和C++语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
intlen_max(char*strp)
{intmax=0,len=0;
while(strp!
='\0')
{while((*strp>='A'&&*strp<='Z')&&(*strp>='a'&&*strp<='z'))/*改为||*/
{len++;/*增加一行语句:
strp++;*/
}
if(lenmax*/
len=0;
strp++;
}
return;/*改为returnmax*/
}
voidmain()
{charstr[100];
intmaxlen;
printf("Inputasentence:
\n");
gets(str);
maxlen=len_max(&str);/*改为str*/
printf("maxlen=%d\n",maxlen);
}
二、编写程序(程序文件取名为test1-2.c)(60分)
评分标准:
1.文件打开、关闭正确2.屏幕结果输出正确
3.文件结果输出正确4.函数定义、形参书写正确
5.正确定义实参二维数组,并能正确调用creat函数6.函数中对二维数组的处理正确
参考程序:
#include
voidcreat(inta[10][10],intn)
{inti,j;
for(i=0;ifor(j=0;j<=i;j++)
a[i][j]=i*4+j*2+1;
}
main()
{inta[10][10],m,i,j;
FILE*fp;
fp=fopen("test1-2.dat","w");
printf("Inputm(1~10):
");
scanf("%d",&m);
creat(a,m);
for(i=0;i{for(j=0;j<=i;j++)
{printf("%5d",a[i][j]);
fprintf(fp,"%5d",a[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十次等级考试
二级(C与C++语言)上机考试试卷(第二套)参考答案
一、程序调试题(文件名为test2-1.c)(40分)
#include
voidfun(intm,chars)/*改为*s*/
{intk,i=10;
while(m!
=0)
{k=m/i;/*改为m%i*/
*s=k+"0";/*改为'0'*/
s++;
m=(m-k)/i;
}
/*增加一行内容:
*s='\0';*/
}
voidmain()
{intx,i;
chars[10];
scanf("%d",&x);
if(x>0)
{fun(x,s);
for(i=0;s;i++)/*改为s[i]*/
printf("%c*",s[i]);
}
elseprintf("xvalueerror\n");
}
二、编写程序(程序文件取名为test2-2.c)(60分)
评分标准:
1.文件打开和关闭正确2.串的读入正确
3.串的排序正确4.文件位置指针定位正确
5.屏幕输出和文件输出正确6.程序结构合理
参考程序:
#include
#include
main()
{charstr[3][80],string[80];
inti,j,k;
FILE*fp;
fp=fopen("test2-2.txt","r+");
for(i=0;i<3;i++)
fgets(str[i],80,fp);
printf("Thestrings:
\n");
for(i=0;i<3;i++)
printf("%s",str[i]);
for(i=0;i<2;i++)
{k=i;
for(j=i+1;j<3;j++)
if(strcmp(str[k],str[j])>0)k=j;
if(k!
=i)
{strcpy(string,str[k]);
strcpy(str[k],str[i]);
strcpy(str[i],string);
}
}
printf("Sortedresult:
\n");
fseek(fp,0,2);
for(i=0;i<3;i++)
{printf("%s",str[i]);
fprintf(fp,"%s",str[i]);
}
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十次等级考试
二级(C与C++语言)上机考试试卷(第三套)参考答案
一、程序调试题(文件名为test3-1.c)(40分)
#include
#defineM2
#defineN3
#defineP2
voidfun(inta[M][N],b[N][P],c[M][P])/*改为intb[N][P],intc[M][P]*/
{inti,j,k;
for(i=0;i<=P;i++)/*改为i
for(j=0;j
{c[i][j]=0;
for(k=0;kc[i][j]=a[i][k]*b[k][j];/*改为+=*/
}
}
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2]={{1,2},{3,4},{5,6}};
intc[2][2],i,j;
fun(*a,*b,*c);/*改为fun(a,b,c)*/
for(i=0;i<2;i++)
{for(j=0;j<2;j++)
printf("%d",c[i][j]);
printf("\n");
}
}
二、编写程序(程序文件取名为test3-2.c)(60分)
评分标准:
1.文件打开和关闭正确2.函数定义、调用和参数使用正确
3.屏幕输出和文件输出正确4.递归调用方法正确
5.命令行参数使用正确6.程序结构合理
参考程序:
#include
intfun(intn)
{intf;
if(n<1)return0;
elseif(n==1)f=1;
elsef=fun(n-1)+n;
returnf;
}
main(intargc,char*argv[])
{intsum,n;
FILE*fp;
if(argc!
=2)
{printf("Error!
\n");
exit(0);
}
fp=fopen(argv[1],"w");
printf("Inputn:
");
scanf("%d",&n);
sum=fun(n);
printf("1+2+...+%d=%d\n",n,sum);
fprintf(fp,"1+2+...+%d=%d\n",n,sum);
fclose(fp);
}
四川省普通高等学校计算机应用知识和能力
第二十一次等级考试
二级(C与C++语言)上机考试试卷(第一套)参考答案
一、程序调试题(文件名为test1-1.c)(40分)
#include
#include
char*fun(charstr)/*改为*str*/
{inti;
for(i=0;str;i++)/*改为str[i]*/
if(('a'<=str[i])||(str[i]<='z'))/*改为&&*/
str[i]+=32;/*改为-=*/
return*str;/*改为str*/
}
main()
{
charstr[81];
printf("\nPleaseenterastring:
");
gets(str[81]);/*改为str*/
printf("\nTheresultstringis:
\n%s",fun(str));
}
评分标准:
每改对1处得5分,结果正确得10分。
二、编写程序(程序文件取名为test1-2.c)(60分)
评分标准:
1.被调函数编写正确20分2.文件打开、数据读入正确和定位正确10分
3.函数调用正确5分4.屏幕输出和文件输出正确20分
5.程序结构合理5分
参考程序:
#include
#include
intprime(inta[],intn)
{inti,j,k=0,flag=0;
for(i=0;i{for(j=2;jif(a[i]%j==0)
{flag=0;
break;
}
elseflag=1;
if(flag)
a[k++]=a[i];
}
returnk;
}
main()
{intn,i,a[10];
FILE*fp;
f