国家二级c语言上机考试分类程序改错.docx
- 文档编号:25049724
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:116
- 大小:494.50KB
国家二级c语言上机考试分类程序改错.docx
《国家二级c语言上机考试分类程序改错.docx》由会员分享,可在线阅读,更多相关《国家二级c语言上机考试分类程序改错.docx(116页珍藏版)》请在冰豆网上搜索。
国家二级c语言上机考试分类程序改错
改错
1
#include
/************found************/
voidfun(intn)
{inta,b,c,k;doubles;
s=0.0;a=2;b=1;
for(k=1;k<=n;k++){
/************found************/
s=s+(Double)a/b;
c=a;a=a+b;b=c;
}
returns;
}
main()
{intn=5;
printf("\nThevalueoffunctionis:
%lf\n",fun(n));
}
【参考答案】
(1)doublefun(intn)
(2)s=s+(double)a/b;
2
#include
intfun(char*str,char*substr)
{inti,j,k,num=0;
/************found************/
for(i=0,str[i],i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]=='\0')
{num++;
break;
}
returnnum;
}
main()
{
charstr[80],substr[80];
printf("Inputastring:
");
gets(str);
printf("Inputasubstring:
");
gets(substr);
printf("%d\n",fun(str,substr));
}
【参考答案】
(1)for(i=0;str[i];i++)
(2)if(substr[k+1]==′\0′)
3
#include
intfun(int*x,inty)
{
intt;
/**************found**************/
t=x;x=y;
/**************found**************/
return(y);
}
main()
{
inta=3,b=8;
printf("%d%d\n",a,b);
b=fun(&a,b);
printf("%d%d\n",a,b);
}
【参考答案】
(1)t=*x;*x=y;
(2)return(t);或returnt;
4
#include
intfun(inta,intb)
{intr,t;
if(a
/************found************/
t=a;b=a;a=t;
}
r=a%b;
while(r!
=0)
{a=b;b=r;r=a%b;}
/************found************/
return(a);
}
main()
{intnum1,num2,a;
printf("Inputnum1num2:
");scanf("%d%d",&num1,&num2);
printf("num1=%dnum2=%d\n\n",num1,num2);
a=fun(num1,num2);
printf("Themaximuncommondivisoris%d\n\n",a);
}
【参考答案】
(1)t=a;a=b;b=t;
(2)return(b);或returnb;
5、
#include
voidfun(longs,long*t)
{intd;
longsl=1;
/************found************/
t=0;
while(s>0)
{d=s%10;
/************found************/
if(d%2==0)
{*t=d*sl+*t;
sl*=10;
}
s/=10;
}
}
main()
{longs,t;
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
【参考答案】
(1)*t=0;
(2)if(d%2!
=0)或if(d%2==1)
6
#include
longfun(intg)
{
/**********found**********/
switch(g);
{case0:
return0;
/**********found**********/
case1;case2:
return1;
}
return(fun(g-1)+fun(g-2));
}
main()
{longfib;intn;
printf("Inputn:
");scanf("%d",&n);printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\n\n",fib);
}
【参考答案】
(1)去掉分号
(2)case1:
case2:
return1;
7
#include
voidfun(char*p,char*b)
{inti,k=0;
while(*p)
{i=1;
while(i<=3&&*p){
/**********found**********/
b[k]=p;
k++;p++;i++;
}
if(*p)
{
/**********found**********/
b[k++]="";
}
}
b[k]='\0';
}
main()
{chara[80],b[80];
printf("Enterastring:
");gets(a);
printf("Theoriginalstring:
");puts(a);
fun(a,b);
printf("\nThestringafterinsertspace:
");puts(b);printf("\n\n");
}
【参考答案】
(1)b[k]=*p;
(2)b[k]=′′;k++;
8
#include
#include
char*fun(chartt[])
{
inti;
for(i=0;tt[i];i++)
/**********found***********/
if(('a'<=tt[i])||(tt[i]<='z'))
/**********found***********/
tt[i]+=32;
return(tt);
}
main()
{
chartt[81];
printf("\nPleaseenterastring:
");
gets(tt);
printf("\nTheresultstringis:
\n%s",fun(tt));
}
【参考答案】
(1)if((tt[i]>=a′)&&(tt[i]<=′z′)
(2)tt[i]-=32;
9
#include
#include
#defineMAXLINE20
fun(char*pstr[6])
{inti,j;
char*p;
for(i=0;i<5;i++){
/**************found**************/
for(j=i+1,j<6,j++)
{
if(strcmp(*(pstr+i),*(pstr+j))>0)
{
p=*(pstr+i);
/**************found**************/
*(pstr+i)=pstr+j;
*(pstr+j)=p;
}
}
}
}
main()
{inti;
char*pstr[6],str[6][MAXLINE];
for(i=0;i<6;i++)pstr[i]=str[i];
printf("\nEnter6string(1stringateachline):
\n");
for(i=0;i<6;i++)scanf("%s",pstr[i]);
fun(pstr);
printf("Thestringsaftersorting:
\n");
for(i=0;i<6;i++)printf("%s\n",pstr[i]);
}
【参考答案】
(1)for(j=i+1;j<6;j++)
(2)*(pstr+i)=*(pstr+j);
10
#include
longfun(longnum)
{
/************found************/
longk;
do
{k*=num%10;
/************found************/
num\=10;
}while(num);
return(k);
}
main()
{longn;
printf("\nPleaseenteranumber:
");scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
【参考答案】
(1)longk=1;
(2)num/=10;
11
#include
voidfun(float*a,float*b,float*c)
{
/**********found**********/
float*k;
if(*a<*b)
{k=*a;*a=*b;*b=k;}
/**********found**********/
if(*a>*c)
{k=*c;*c=*a;*a=k;}
if(*b<*c)
{k=*b;*b=*c;*c=k;}
}
main()
{floata,b,c;
printf("Inputabc:
");scanf("%f%f%f",&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
fun(&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
}
【参考答案】
(1)floatk;
(2)if(*a<*c)
12
#include
longfun(inta,intn)
{intj;
/**************found**************/
longs=0,t=1;
for(j=0;j t=t*10+a; s=t; for(j=1;j /**************found**************/ t=t%10; s=s-t; } return(s); } main() {inta,n; printf("\nPleaseenteraandn: "); scanf("%d%d",&a,&n); printf("Thevalueoffunctionis: %ld\n",fun(a,n)); } 【参考答案】 (1)longs=0,t=0; (2)t=t/10; 13 #include longfun(inta,intn) {intj; /**************found**************/ longs=0,t=1; for(j=0;j t=t*10+a; s=t; for(j=1;j /**************found**************/ t=t%10; s=s-t; } return(s); } main() {inta,n; printf("\nPleaseenteraandn: "); scanf("%d%d",&a,&n); printf("Thevalueoffunctionis: %ld\n",fun(a,n)); } 【参考答案】 (1)longs=0,t=0; (2)t=t/10; 14 #include intfun(int*b) {intk,a1,a2,i=0; for(k=10;k<=55;k++){ /************found************/ a2=k/1O; a1=k-a2*10; if((k%3==0&&a2==5)||(k%3==0&&a1==5)) {b[i]=k;i++;} } /************found************/ returnk; } main() {inta[100],k,m; m=fun(a); printf("Theresultis: \n"); for(k=0;k } 【参考答案】 (1)a2=k/10; (2)returni; 15 #include /************found************/ voidfun(chara) {if(*a) {fun(a+1); /************found************/ printf("%c"*a); } } main() {chars[10]="abcd"; printf("处理前字符串=%s\n处理后字符串=",s); fun(s);printf("\n"); } 【参考答案】 (1)voidfun(char*a) (2)printf("%c",*a); 16 #include intfun(char*p) {intn; /**********found**********/ n=*P-'o'; p++; while(*p! =0){ /**********found**********/ n=n*8+*P-'o'; p++; } returnn; } main() {chars[6];inti;intn; printf("Enterastring(Ocataldigits): ");gets(s); if(strlen(s)>5){printf("Error: Stringtoolonger! \n\n");exit(0);} for(i=0;s[i];i++) if(s[i]<'0'||s[i]>'7') {printf("Error: %cnotisocataldigits! \n\n",s[i]);exit(0);} printf("Theoriginalstring: ");puts(s); n=fun(s); printf("\n%sisconveredtointegernumber: %d\n\n",s,n); } 【参考答案】 (1)n=*p-′0′; (2)n=n*8+*p-′0′; 17 #include voidfun(longs,long*t) {intd; longsl=1; *t=0; while(s>0) {d=s%10; /************found************/ if(d%2=0) {*t=d*sl+*t; sl*=10; } /************found************/ s\=10; } } main() {longs,t; printf("\nPleaseenters: ");scanf("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } 【参考答案】 (1)if(d%2==0) (2)s/=10; 18 #include #include intfun(inthigh) {intsum=0,n=0,j,yes; /************found************/ while((high>=2)&&(n<10) {yes=1; for(j=2;j<=high/2;j++) if(high%j==0){ /************found************/ yes=0;break } if(yes){sum+=high;n++;} high--; } returnsum; } main() { printf("%d\n",fun(100)); } 【参考答案】 (1)while((high>=2)&&(n<10)) (2)yes=0;break; 19 #include voidfun(char*s) {inti,j; for(i=j=0;s[i]! ='\0';i++) if(s[i]! ='c') /************found************/ s[j]=s[i]; /************found************/ s[i]=0; } main() {chars[80]; printf("Enterastring: ");gets(s); printf("Theoriginalstring: ");puts(s); fun(s); printf("Thestringafterdeleted: ");puts(s);printf("\n\n"); } 【参考答案】 (1)s[j++]=s[i];或{s[j]=s[i];j++;} (2)s[j]=′\0′; 20 #include /************found************/ voidfun(longs,longt) {longsl=10; *t=s%10; while(s>0) {s=s/100; *t=s%10*sl+*t; /************found************/ sl=sl*100; } } main() {longs,t; printf("\nPleaseenters: ");scanf("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } 【参考答案】 (1)voidfun(longs,long*t) (2)s1=s1*10; 21 #include #include #include #include /*************found**************/ f(doublex) { if(x==0.0||x==2.0) return0.0; elseif(x<0.0) return(x-1)/(x-2); else return(x+1)/(x-2); } doublefun(intn) { inti;doubles=0.0,y; for(i=-n;i<=n;i++) {y=f(1.0*i);s+=y;} /*************found**************/ returns } voidmain() {system("CLS"); printf("%f\n",fun(5)); } 【参考答案】 (1)doublef(doublex) (2)returns; 22 #include /************found************/ fun(intx,y,z) {intj,t,n,m; j=1; t=j%x; m=j%y; n=j%z; while(t! =0||m! =0||n! =0) {j=j+1; t=j%x; m=j%y; n=j%z; } /************found************/ returni; } main() {intx1,x2,x3,j; printf("Inputx1x2x3: ");scanf("%d%d%d",&x1,&x2,&x3); printf("x1=%d,x2=%d,x3=%d\n",x1,x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 二级 语言 上机 考试 分类 程序 改错