二级C语言上机题库及答案.docx
- 文档编号:17831765
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:28
- 大小:247.10KB
二级C语言上机题库及答案.docx
《二级C语言上机题库及答案.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库及答案.docx(28页珍藏版)》请在冰点文库上搜索。
二级C语言上机题库及答案
第一套题
上机填空:
#include<>
doublefun(doublee)
{inti,k;doubles,t,x;
s=0;k=1;i=2;
/**********found**********/
x=__1__/4;
/**********found**********/
while(x__2__e)
{s=s+k*x;
k=k*(-1);
t=2*i;
/**********found**********/
x=__3__/(t*t);
i++;
}
returns;
}
main()
{doublee=1e-3;
printf("\nTheresultis:
%f\n",fun(e));
第一处答案:
第二处答案:
>
第三处答案:
(2*i+1)或(t+1)
上机改错题:
#include<>
/************found************/
voidfun(intn)
{inta,b,c,k;doubles;
s=;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));
}
第一处改错:
将:
voidfun(intn)改成doublefun(intn)
第二处改错:
s=s+(Double)a/b;改成s=s+(double)a/b;
第二套题
上机填空题
#include<>
doublefun(intn)
{inti;doubles,t;
/**********found**********/
s=__1__;
/**********found**********/
for(i=1;i<=__2__;i++)
{t=*i;
/**********found**********/
s=s+*i-1)**i+1)/__3__;
}
returns;
}
main()
{intn=-1;
while(n<0)
{printf("Pleaseinput(n>0):
");scanf("%d",&n);}
printf("\nTheresultis:
%f\n",fun(n));
第一处空答案:
0
第一处空答案:
n
第三处空答案:
(t*t)
改错题
#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));
}
第一处错误:
for(i=0,str[i],i++)改成for(i=0;str[i];i++)
第二处错误:
If(substr[k+1]=='\0')改成if(substr[k+1]=='\0')即是将”If”改成”if”
第三套题
填空题
#include<>
voidfun(char*s,int*t)
{inti,n;
n=0;
/**********found**********/
for(i=0;___1___!
=0;i++)
/**********found**********/
if(s[i]>='0'&&s[i]<=___2___)n++;
/**********found**********/
___3___;
}
main()
{chars[80]="abcdef35adgh3kjsdf7";
intt;
printf("\nTheoriginalstringis:
%s\n",s);
fun(s,&t);
printf("\nTheresultis:
%d\n",t);
}
第一空:
s[i]第二空:
’9’第三空:
*t=n
改错题:
#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);
}
第一处改错:
将t=x;x=y;改成t=*x;*x=y;
第二处改错:
将return(y)改成return(t)
第四套题:
填空题
#include<>
#defineN9
intfun(inta[],intn)
{inti,j;
j=0;
for(i=0;i /**********found**********/ if(a[i]%2==___1___) { /**********found**********/ a[j]=a[i];___2___; } /**********found**********/ return___3___; } main() {intb[N]={9,1,4,2,3,6,5,8,7},i,n; printf("\nTheoriginaldata: \n"); for(i=0;i printf("\n"); n=fun(b,N); printf("\nThenumberofodd: %d\n",n); printf("\nTheoddnumber: \n"); for(i=0;i printf("\n"); } 第一处1第二处: j++第三处: j 改错题 #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); } 第一处错误: t=a;b=a;a=t;改成t=a;a=b;b=t; 第二处错误: return(a)改成returnb或return(b); 求最大公约数算法一样采纳辗转相除法。 辗转相除法的算法为: 第一将m除以n(m>n)得余数r,再用余数r去除原先的除数,取得新的余数,重复此进程直到余数为0时停止,现在的除数确实是m和n的最大公约数。 第五套题: 填空题: #include<> unsignedlongfun(unsignedlongn) {unsignedlongx=0;intt; while(n) {t=n%10; /**********found**********/ if(t%2==____1____) /**********found**********/ x=____2____+t; /**********found**********/ n=____3____; } returnx; } main() {unsignedlongn=-1; while(n>||n<0) {printf("Pleaseinput(0 ");scanf("%ld",&n);} printf("\nTheresultis: %ld\n",fun(n)); } 第一空: 0第二空: x*10第三空: n/10 改错题: #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); } 第一处错误: 将t=0改成*t=0; 第二处错误: 将d%2==0改成d%2! =0 第六套题: #include<> #defineN9 voidfun(inta[],intn) {inti,j,max,min,px,pn,t; for(i=0;i { /**********found**********/ max=min=___1___; px=pn=i; for(j=i+1;j /**********found**********/ if(max<___2___) {max=a[j];px=j;} /**********found**********/ if(min>___3___) {min=a[j];pn=j;} } if(pn! =i) {t=a[i];a[i]=min;a[pn]=t; if(px==i)px=pn; } if(px! =i+1) {t=a[i+1];a[i+1]=max;a[px]=t;} } } main() {intb[N]={9,1,4,2,3,6,5,8,7},i; printf("\nTheoriginaldata: \n"); for(i=0;i printf("\n"); fun(b,N); printf("\nThedataaftermoving: \n"); for(i=0;i printf("\n"); } 第一处空: a[i]; 第二处空: a[j] 第三处空: a[j] 改错题: #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); } 第一处错误: 将switch(g);改成switch(g),即是去掉“;” 第二处错误: 将case1;case2: return1;改成case1: case2: return1;即是将case1后“;”改成“: ” 第七套题: 填空题 #include<> /**********found**********/ ___1___fun(charch) { /**********found**********/ if(ch>='0'&&___2___) /**********found**********/ return'9'-(ch-___3___); returnch; } main() {charc1,c2; printf("\nTheresult: \n"); c1='2';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); c1='8';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); c1='a';c2=fun(c1); printf("c1=%cc2=%c\n",c1,c2); } 第一空: char 第二空: ch>=’9’ 第三空: ’0’ 改错题: #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"); } 第一处: 将b[k]=p;改成b[k]=*p; 第二处: 将b[k++]="";改成b[k++]=’’; 第8套题 填空题 #include<> #include<> #defineM5 #defineN20 intfun(char(*ss)[N],int*n) {inti,k=0,len=N; /**********found**********/ for(i=0;i<___1___;i++) {len=strlen(ss[i]); if(i==0)*n=len; /**********found**********/ if(len___2___*n) {*n=len; k=i; } } /**********found**********/ return(___3___); } main() {charss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing"}; intn,k,i; printf("\nTheoriginalstringsare: \n"); for(i=0;i k=fun(ss,&n); printf("\nThelengthofshorteststringis: %d\n",n); printf("\nTheshorteststringis: %s\n",ss[k]); } 第一空: M 第二空: < 第三空: K 改错题: #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)); } 第一处错误: 将“||”改成“&&” 第二处错误: 将tt[i]+=32;改成tt[i]-=32; 第9套题: 填空题: #include<> voidfun(char*s) {inti,j=0,k=0;chart1[80],t2[80]; for(i=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9') { /**********found**********/ t2[j]=s[i];___1___; } elset1[k++]=s[i]; t2[j]=0;t1[k]=0; /**********found**********/ for(i=0;i /**********found**********/ for(i=0;i<___3___;i++)s[k+i]=t2[i]; } main() {chars[80]="ba3a54j7sd567sdffs"; printf("\nTheoriginalstringis: %s\n",s); fun(s); printf("\nTheresultis: %s\n",s); } 第一处空: j++ 第二处空: a[i]=t1[i]; 第三处空: j 改错题 #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]); } 第一处错误: for(j=i+1,j<6,j++)改成for(j=i+1;j<6;j++) 第二处错误: *(pstr+i)=pstr+j;改成*(pstr+i)=*(pstr+j); 第10套题 填空题 typedefstructlist {intdata; structlist*next; }SLIST; voidfun(SLIST*h,intx) {SLIST*p,*q,*s; s=(SLIST*)malloc(sizeof(SLIST)); /**********found**********/ s->data=___1___; q=h; p=h->next; while(p! =NULL&&x>p->data){ /**********found**********/ q=___2___; p=p->next; } s->next=p; /**********found**********/ q->next=___3___; } SLIST*creatlist(int*a) {SLIST*h,*p,*q;inti; h=p=(SLIST*)malloc(sizeof(SLIST)); for(i=0;i {q=(SLIST*)malloc(sizeof(SLIST)); q->data=a[i];p->next=q;p=q; } p->next=0; retu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 上机 题库 答案