份c语言上机题库答案.docx
《份c语言上机题库答案.docx》由会员分享,可在线阅读,更多相关《份c语言上机题库答案.docx(30页珍藏版)》请在冰豆网上搜索。
份c语言上机题库答案
一:
填空题(30分)
程序填空题有如下特点:
每个空下面均有一个注释“/*******found*******/”,这个注释不能更改和删除
【1】每个空均有类似于“__1__”的标记,答案填写在这个标记的地方,填完后要将这个标记删除。
【2】不要改变程序的其他任何地方,切忌不得增行或删行
【3】除了在类似于“__1__”标记的地方填答案外,不要动程序任何地方
【4】程序填空的答案可能有多个,你只要填写一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。
【5】非常重要的是,一定要记得保存
如果忘了保存就不能得分
【6】做题的过程中可以运行程序,根据程序的运行结果来验证自己的答案是否正确。
但这对程序填空题来说并不是必须的,甚至有的程序根本就运行不出来。
程序没有main函数【在以前的考试中遇到过,可能是系统升级出现的BUG】,而且,即使运行结果正确也不一定能完全保证你答案一定正确,但绝大部分情况下运行正确的时候答案也正确,当然,如果运行结果错误,你的答案肯定有错误的地方。
二:
改错题(30分)
程序改错题有如下特点:
【1】每个题目均有若干个注释“/*******found*******/”,这个注释不能更改和删除
【2】每个注释紧接着的下一行就是程序需要改错的地方。
也就是说,整个程序都只有这些标记下的一行需要改错,其他的任何地方均不可能出现错误。
【3】不要改变程序的其他任何地方,切忌不得增行或删行
【4】除了在需要改错和能改错的地方地方改错外,不要动程序任何地方
【5】程序的改错方法可能有多个,你只要改成一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。
【6】非常重要的是,一定要记得保存
否则就不能得分
三:
程序编写题(40分)
程序编写题有如下特点:
【1】每个题目均有一个函数要编写。
【2】编写完后程序一定要编译、链接和运行,否则不能得分。
【3】程序编写题不管你如何编写,只要能得出正确结果,即可得分,而且是得满分。
【4】程序编写题的得分情况大部分是0分或满分40分
【5】做完程序编写题,一定要运行程序,根据程序的运行结果来检验自己的答案是否正确,但如果碰到程序本身就不能运行:
程序没有main函数【在以前的考试中遇到过,可能是系统升级出现的BUG】,考生这时需向监考老师反映,一般可以重新抽提。
如何运行?
(无论是填空题,改错题,还是编程题,运行的方法都是一样的)
编译:
compile【ctrl+F7】
(可查错)
链接:
build【F7】
执行:
execute【ctrl+F5】
程序执行完以后,也就是点击!
的时候,屏幕上会自动出现一个的黑色的对话框,这个黑色对话框里面的内容就是程序输出的结果。
当屏幕最后出现这句话:
pressanykeytocontinue,
并且黑色对话框里面的内容和题目意思完全一样的时候,这道程序才算完全正确,否则是错误的。
填空题参考答案
1:
01、double02、f103、f2
2:
01、structstudent02、n-103、a[i].name,a[j].name
3:
01、002、x[i]/N03、j++
4:
01、k02、N03、a[k][i]
5:
01、'0'02、s++03、ctod(a)+ctod(b)
6:
01、002、n03、(t*t)
7:
01、j02、003、i++
8:
01、N02、k03、ss[i]
9:
01、a02、b.name03、score[i]
10:
01、[M]02、N03、0
11:
01、t,s02、s[i]03、0
12:
01、j02、k03、p
13:
01、99902、t/1003、x
14:
01、4802、s++03、sum
15:
01、h->next02、p->next03、>=
16:
01、structstudent*02、a->score[i]03、a
17:
01、s/N02、j++03、-1
18:
01、n++02、003、s++
19:
01、N02、i03、-1
20:
01、a[0][i]02、<03、x,y
21:
01、s02、--03、return0
22:
01、feof(fp)02、==sno03、sizeof(STU)
23:
01、->sno02、->name03、&t
24:
01、x[i]/N02、j++03、i++
25:
01、002、i++03、2.*i
26:
01、[N]02、i03、i+1
27:
01、double02、f103、f2
28:
01、FILE*02、fclose(fp)03、fp
29:
01、102、2*i03、(-1)
30:
01、filename02、SEEK_END03、&n
31:
01、*av02、i03、x[j]
32:
01、FILE*02、fp03、ch
33:
01、structstudent02、a.name03、a.score[i]
34:
01、i02、ps[i]03、tp
35:
01、s[i]02、k03、0
36:
01、3.02、>03、(2*i+1)
37:
01、1002、003、x
38:
01、002、x03、t++
39:
01、002、||03、1
40:
01、k02、N-103、temp
41:
01、N02、break03、n
42:
01、p->next02、q03、p->next
43:
01、h->next02、p==003、r
44:
01、002、10*x03、n/10
45:
01、N02、substr03、0
46:
01、102、s03、i*10
47:
01、"rb"02、>s[j].sno03、fwrite
48:
01、*s02、103、k[n]
49:
01、*s02、s++03、n
50:
01、NODE*02、q03、r
改错题参考答案
1:
01、char*fun(char*s,char*t)02、ss++;03tt++;
2:
01、q=p+i;02、while(q>p)
3:
01、doublefun(intm)02、for(i=100;i<=m;i+=100)
4:
01、for(i=strlen(t)-1;i;i--)02、if(t[j]>t[j+1])
5:
01、voidfun(char*s,int*a,int*b)02、++(*a);03、++(*b);
6:
01、for(i=0;str[i];i++)02、if(substr[k+1]==0)
7:
01、for(i=2;i<=m;i++)02、y-=1.0/i/i;
8:
01、intk=0;02、while(*p||*q)
9:
01、s[j++]=s[i];02、s[j]=0;
10:
01、t=1;02、return(2*s);
11:
01、if(i%k==0)02、if(k>=i)
12:
01、while(i13:
01、voidfun(longs,long*t)02、while(s>0)
14:
01、if((k%13==0)||(k%17==0))02、}
15:
01、p=h->next;02、p=p->next;
16:
01、char*fun(char(*sq)[M])02、returnsp;
17:
01、#include"stdio.h"02、upfst(char*p)
18:
01、t+=s[k];02、*aver=ave;
19:
01、a2=k/10;02、returni;
20:
01、intfun(int*x,int*y)02、t=*x;*x=*y;*y=t;
21:
01、doublefun(intn)02、c=a;a+=b;b=c;
22:
01、n=strlen(aa);02、ch=aa[i];
23:
01、doublefun(doublea,doublex0)02、if(fabs(x1-x0)>0.00001)
24:
01、num[k]=0;02、switch(*s)
25:
01、voidfun(char*s,char*t)02、t[2*d]=0;
26:
01、aa[i]=m%k;02、printf("%d",aa[i-1]);
27:
01、p=h->next;02、p=p->next;
28:
01、t=(STU*)calloc(sizeof(STU),m);02、t[k]=b[j];
29:
01、k++;02、if(m==k)
30:
01、p=(NODE*)malloc(sizeof(NODE));02、returnh;
31:
01、floatfun(intn)02、for(i=2;i<=n;i++)
32:
01、s[j++]=s[i];02、s[j]=0;
33:
01、if(p==n)return-1;02、a[i]=a[i+1];
34:
01、doublefun(intn)02、returnsum;
35:
01、while(*w)02、if(*r==*p)
36:
01、doublefun(intn)02、s=s+(double)a/b;
37:
01、if(n==0)02、result*=n--;
38:
01、inti,sl;02、t[i]=s[sl-i-1];
39:
01、t-=1.0/i;02、returnt;
40:
01、fun(inta[][M],intm)02、a[j][k]=(k+1)*(j+1);
41:
01、sum=0;02、scanf("%d",&a[i][j]);
42:
01、while(*s)02、s++;
43:
01、r=t;02、if(*r==0)
44:
01、*t=0;02、if(d%2!
=0)
45:
01、fun(intx,inty,intz)02、returnj;
46:
01、intfun(intn,intxx[][M])02、printf("%d",xx[i][j]);
47:
01、p=s;02、while(*p++);
48:
01、floatfun(intk)02、returns;
49:
01、intj,c=0;floatxa=0.;02、if(x[j]>=xa)
50:
01、if(i%2||s[i]%2==0)02、t[j]=0;
编程题参考答案
1、voidfun(char*w,intm)
{
chara[N];
inti;
for(i=0;iwhile(w[i]){w[i-m]=w[i];i++;}
i--;m--;
for(;m>=0;m--,i--)w[i]=a[m];
}
2、intfun(STREC*a,STREC*b,intl,inth)
{
inti,j=0;
for(i=0;i{
if(a[i].s>=l&&a[i].s<=h)
{
b[j]=a[i];
j++;
}
}
returnj;
}
3、fun(STUa[],STU*s)
{
inti;
*s=a[0];
for(i=1;i{
if(a[i].ss)
{
*s=a[i];
}
}
}
4、voidfun(char*ss)
{
inti=1;
while(ss[i-1]&&ss[i])
{
if(ss[i]>='a'&&ss[i]<='z')ss[i]+='A'-'a';
i+=2;
}
}
5、floatfun(floath)
{
longi=h*1000;
if(i%10<5)return(i/10)/100.0;
elsereturn(i/10+1)/100.0;
}
6、doublefun(doubleeps)
{
doublei=1,a=1,b=1,c=1,s=0;
while(c>=eps)
{
s+=c;
a*=i;
b*=2*i+1;
c=a/b;
i++;
}
returns*2;
}
7、intfun(intscore[],intm,intbelow[])
{
inti,j=0,s=0;
for(i=0;is/=m;
for(i=0;i{
if(score[i]
{
below[j]=score[i];
j++;
}
}
returnj;
}
8、voidfun(char*a)
{
inti=0,j=0;
while(a[i])
{
if(j==0&&a[i]!
='*')
{
j=i+1;
}
elseif(a[i]!
='*')
{
a[j]=a[i];
j++;
}
i++;
}
a[j]=0;
}
9、voidfun(char*a)
{
inti=0,j=0;
while(a[i])
{
if(a[i]!
='*')
{
j=i;
break;
}
i++;
}
while(a[i])
{
a[i-j]=a[i];
i++;
}
i-=j;
for(;j>0;j--)
{
a[i]='*';
i++;
}
}
10、voidfun(char*a,intn)
{
inti=0,j=0;
while(a[i])
{
if(a[i]!
='*')
{
j=i;
break;
}
i++;
}
if(j>n)
{
while(a[i])
{
a[i-j+n]=a[i];
i++;
}
a[i-j+n]=0;
}
}
11、voidfun(intx,intpp[],int*n)
{
inti;
*n=0;
for(i=1;i<=x;i+=2)
{
if(x%i==0)
{
pp[*n]=i;
(*n)++;
}
}
}
12、voidfun(char*s,chart[])
{
inti=0,j=0;
while(s[i])
{
if(i%2!
=0||s[i]%2==0)
{
t[j]=s[i];
j++;
}
i++;
}
t[j]=0;
}
13、voidfun(inta,intb,long*c)
{
*c=a/10*100+a%10+b/10*10+b%10*1000;
}
14、doublefun(intn)
{
inti;
doubles=0;
for(i=1;i{
if(i%3==0&&i%7==0)s+=i;
}
returnsqrt(s);
}
15、voidfun(int(*s)[10],int*b,int*n,intmm,intnn)
{
inti,j;
*n=0;
for(i=0;ifor(j=0;j{
b[*n]=s[i][j];
(*n)++;
}
}
16、intfun(STRECa[])
{
inti,j;
STRECb;
for(i=0;ifor(j=i+1;jif(a[i].s{b=a[i];a[i]=a[j];a[j]=b;}
}
17、doublefun(intw[][N])
{
doubles=0;
inti;
for(i=0;is+=w[0][i]+w[N-1][i]+w[i][0]+w[i][N-1];
s-=w[0][0]+w[0][N-1]+w[N-1][0]+w[N-1][N-1];
returns/(N*4-4);
}
18、intfun(int*s,intt,int*k)
{
inti;
*k=0;
for(i=0;iif(s[i]>s[*k])*k=i;
}
19、voidfun(char*a)
{
inti=0,j=0;
while(a[i])
{
if(a[i]!
='*')j=0;
elsej++;
i++;
}
a[i-j]=0;
}
20、intfun(intlim,intaa[MAX])
{
inti,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j
if(i%j==0)break;
if(j==i)
{
aa[k]=i;
k++;
}
}
returnk;
}
21、voidfun(intm,intk,intxx[])
{
inti,j=m+1,n=0;
while(n{
for(i=2;iif(j%i==0)break;
if(j==i)
{
xx[n]=i;
n++;
}
j++;
}
}
22、doublefun(STREC*h)
{
doublea=0;
STREC*p=h->next;
while(p)
{
if(as)a=p->s;
p=p->next;
}
returna;
}
23、doublefun(STREC*a,STREC*b,int*n)
{
inti;
doubles=0;
for(i=0;is+=a[i].s;
s/=N;
*n=0;
for(i=0;iif(a[i].s>s)
{
b[*n]=a[i];
(*n)++;
}
returns;
}
24、intfun(inta[M][N])
{
inti,s=0;
for(i=0;is+=a[0][i]+a[M-1][i];
for(i=1;is+=a[i][0]+a[i][N-1];
returns;
}
25、voidfun(char*s,chart[])
{
inti=0,j=0;
while(s[i])
{
if(i%2==1&&s[i]%2==1)
{
t[j]=s[i];
j++;
}
}
t[j]=0;
}
26、fun(char(*a)[81],intnum,char**max)
{
inti,j,k=strlen(a[0]);
*max=a[0];
for(i=1;i{
j=strlen(a[i]);
if(k{
k=j;
*max=a[i];
}
}
}
27、intfun(char*str)
{
inti,j=0;
while(str[j])j++;
for(i=0;i<=j/2;i++)
if(str[i]!
=str[j-i-1])break;
if(i>=j/2)return1;
elsereturn0;
}
28、intfun(inta[],intn)
{
inti,j=0;
for(i=1;i{
if(a[i]!
=a[j])
{
j++;
a[j]=a[i];
}
}
returnj+1;
}
29、voidfun(inta[],intn,int*max,int*d)
{
inti;
*d=0;
for(i=1;iif(a[i]>a[*d])*d=i;
*max=a[*d];
}
30、intfun(char*s)
{
inti=0,j=0,f=1;
while(s[i])
{
if(s[i]<'a'||s[i]>'z')
{
if(f)j++;
f=0;
}
else
f=1;
i++;
}
returnj+1;
}
31、intfun(inta[][N],intm)
{
inti,j;
for(i=0;ifor(j=i;ja[i][j]*=m;
}
32、voidfun(char(*s)[N],char*b)
{
inti,j,k=0;
for(i=0;ifor(j=0;j{
b[k]=s[j][i];
k++;
}
}
33、intfun(STREC*a,STREC*b)
{
inti,j=0,s=a[0].s;
for(i=1;iif(a[i].s
for(i=0;iif(a[i].s==s)
{
b[j]=a[i];
j++;
}
returnj;
}
34、doublefun(doublex,intn)
{
inti;
doublea=1,b=1,s=1;
for(i=1;i<=n;i++)
{
a*=x;
b*=i;
s+=a/b;
}
returns;
}
35、voidfun(char*s,chart[])
{
inti=0,j=0;
while(s[i])
{
if(s[i]%2==