全国计算机二级C语言改错题.docx

上传人:b****4 文档编号:5598138 上传时间:2023-05-08 格式:DOCX 页数:104 大小:1.23MB
下载 相关 举报
全国计算机二级C语言改错题.docx_第1页
第1页 / 共104页
全国计算机二级C语言改错题.docx_第2页
第2页 / 共104页
全国计算机二级C语言改错题.docx_第3页
第3页 / 共104页
全国计算机二级C语言改错题.docx_第4页
第4页 / 共104页
全国计算机二级C语言改错题.docx_第5页
第5页 / 共104页
全国计算机二级C语言改错题.docx_第6页
第6页 / 共104页
全国计算机二级C语言改错题.docx_第7页
第7页 / 共104页
全国计算机二级C语言改错题.docx_第8页
第8页 / 共104页
全国计算机二级C语言改错题.docx_第9页
第9页 / 共104页
全国计算机二级C语言改错题.docx_第10页
第10页 / 共104页
全国计算机二级C语言改错题.docx_第11页
第11页 / 共104页
全国计算机二级C语言改错题.docx_第12页
第12页 / 共104页
全国计算机二级C语言改错题.docx_第13页
第13页 / 共104页
全国计算机二级C语言改错题.docx_第14页
第14页 / 共104页
全国计算机二级C语言改错题.docx_第15页
第15页 / 共104页
全国计算机二级C语言改错题.docx_第16页
第16页 / 共104页
全国计算机二级C语言改错题.docx_第17页
第17页 / 共104页
全国计算机二级C语言改错题.docx_第18页
第18页 / 共104页
全国计算机二级C语言改错题.docx_第19页
第19页 / 共104页
全国计算机二级C语言改错题.docx_第20页
第20页 / 共104页
亲,该文档总共104页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全国计算机二级C语言改错题.docx

《全国计算机二级C语言改错题.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言改错题.docx(104页珍藏版)》请在冰点文库上搜索。

全国计算机二级C语言改错题.docx

全国计算机二级C语言改错题

2011年9月上机改错题

1、

#include

#include

typedefstructaa

{intdata;

structaa*next;

}NODE;

intfun(NODE*h)

{intmax=-1;

NODE*p;

/***********found**********/

p=h;p=h->next;/*h指向的是头节点,题目要求不要头节点,那么我们从第2个结点开始*/

while(p)

{if(p->data>max)

max=p->data;

/***********found**********/

p=h->next;p=p->next;/*链表中的指针后移*/

}

returnmax;

}

outresult(ints,FILE*pf)

{fprintf(pf,"\nThemaxinlink:

%d\n",s);}

NODE*creatlink(intn,intm)

{NODE*h,*p,*s;

inti;

h=p=(NODE*)malloc(sizeof(NODE));h->data=9999;

for(i=1;i<=n;i++)

{s=(NODE*)malloc(sizeof(NODE));

s->data=rand()%m;s->next=p->next;

p->next=s;p=p->next;

}

p->next=NULL;

returnh;

}

outlink(NODE*h,FILE*pf)

{NODE*p;

p=h->next;

fprintf(pf,"\nTHELIST:

\n\nHEAD");

while(p)

{fprintf(pf,"->%d",p->data);p=p->next;}

fprintf(pf,"\n");

}

main()

{NODE*head;intm;

head=creatlink(12,100);

outlink(head,stdout);

m=fun(head);

printf("\nTHERESULT:

\n");outresult(m,stdout);

}

2、

#include

doublefun(intm)

{doubley=1.0;

inti;

/**************found**************/

for(i=2;i

/**************found**************/

y-=1/(i*i);y-=1.0/(i*i);/*i是整型等号右边都是整型,得到结果也是整型,我们想要的是实型所以,要求1改成1.0*/

return(y);

}

main()

{intn=5;

printf("\nTheresultis%lf\n",fun(n));

}

3

#include

#include

char*fun(chartt[])

{

inti;

for(i=0;tt[i];i++)

/**********found***********/

if(('a'<=tt[i])||(tt[i]<='z'))if(('a'<=tt[i])&&(tt[i]<='z'))/*很明显,这个地方是并且,用&&*/

/**********found***********/

tt[i]+=32;tt[i]-=32;/*小写变大写是减去32*/

return(tt);

}

main()

{

chartt[81];

printf("\nPleaseenterastring:

");

gets(tt);

printf("\nTheresultstringis:

\n%s",fun(tt));

}

4

#include

#include

floatfun(floatnum)

{ints;

floatn,t,pi;

t=1;pi=0;n=1;s=1;

/**************found**************/

while(t>=num)while(fabs(t)>=num)/*这里的t可能会是负数,所以要取绝对值用函数fabs()来实现*/

{

pi=pi+t;

n=n+2;

s=-s;

/**************found**************/

t=s%n;t=s/n;/*这里对应题目是除法*/

}

pi=pi*4;

returnpi;

}

main()

{floatn1,n2;

printf("Enterafloatnumber:

");

scanf("%f",&n1);

n2=fun(n1);

printf("%6.4f\n",n2);

}

5

#include

intfun(int*x,inty)

{

intt;

/**************found**************/

t=x;x=y;t=*x;*x=y;/*这里的x是指针变量,可以通过间址运算符*来运算,*x就是变量a*/

/**************found**************/

return(y);returnt;/*返回的值给变量b,应是原来a的内容,也就是*x的内容*/

}

main()

{

inta=3,b=8;

printf("%d%d\n",a,b);

b=fun(&a,b);

printf("%d%d\n",a,b);

}

6

#include

voidfun(longs,long*t)

{intd;

longsl=1;

/************found************/

t=0;*t=0;/*t是指针变量*/

while(s>0)

{d=s%10;

/************found************/

if(d%2==0)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);

}

7

#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);return(b);/*这里b存放的最大公约数*/

}

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);

}

8

#include

/**************found**************/

fun(intn)doublefun(intn)/*根据函数被使用的类型,或者返回值得到函数类型是double*/

{inta=2,b=1,c,k;

doubles=0.0;

for(k=1;k<=n;k++)

{s=s+1.0*a/b;

/**************found**************/

c=a;a+=b;b+=c;c=a;a+=b;b=c;/*根据题目要求来,看出来b=c*/

}

return(s);

}

main()

{intn=5;

printf("\nThevalueoffunctionis:

%lf\n",fun(n));

}

9

#include

#defineN10

intfindmid(inta,intb,intc)

{intt;

t=(a>b)?

(b>c?

b:

(a>c?

c:

a)):

((a>c)?

a:

((b>c)?

c:

b));

/**********found**********/

returnb;retrunt;/*算了好久,算出来的t,当然是返回t啦*/

}

voidfun(intx[])

{inti,a,b,c,t[N];

/**********found**********/

for(i=0;i

for(i=0;i

{a=t[i];b=t[i+1];c=t[i+2];

/**********found**********/

t[i+1]=findmid(a,b,c);x[i+1]=findmid(a,b,c);/*最终结果要放在x数组中*/

}

}

main()

{inti,x[N]={6,5,7,23,18,5,8,21,45,38};

for(i=0;i

printf("\n");

fun(x);

for(i=0;i

printf("\n");

}

10

#include

/************found************/

voidfun(longs,longt)voidfun(longs,long*t)/*这里的t是指针变量,应该定义的时候有**/

{longsl=10;

s/=10;

*t=s%10;

/************found************/

while(s<0)while(s>0)/*很明显,这里的条件不对嘛*/

{s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main()

{longs,t;

printf("\nPleaseenters:

");scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:

%ld\n",t);

}

11

#include

intfun(intm)

{intk=2;

while(k<=m&&(m%k))

/************found************/

k++k++;/*语句少了分号*/

/************found************/

if(m=k)if(m==k)/*这里是比较,不是赋值,要用==是两个等号*/

return1;

elsereturn0;

}

main()

{intn;

printf("\nPleaseentern:

");scanf("%d",&n);

if(fun(n))printf("YES\n");

elseprintf("NO!

\n");

}

12

#include

intfun(intm)

{inti,k;

for(i=m+1;;i++){

for(k=2;k

/**************found**************/

if(i%k!

=0)if(i%k==0)/*这里是能被整除的时候break*/

break;

/**************found**************/

if(k=i)/*内层的for循环的条件不是break结束也就是从来没有被整除过,最后得到的是素数*/

return(i);

}

}

voidmain()

{

intn;

n=fun(20);

printf("n=%d\n",n);

}

13

#include

intfun(doublex[],intn)

{

/************found************/

intj,c=0,doublexa=0.0;intj,c=0;doublexa=0.0;/*定义完一种类型之后,应该以分号结束*/

for(j=0;j

xa+=x[j]/n;

printf("ave=%f\n",xa);

for(j=0;j

/************found************/

if(x[j]=>xa)if(x[j]>=xa)/*大于等于的符号怎么写,一定看清楚了哦*/

c++;

returnc;

}

main()

{doublex[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};

printf("%d\n",fun(x,8));

}

14

#include

voidfun(char*s)

{inti,j;

for(i=0,j=0;s[i]!

='\0';i++)

if(s[i]>='0'&&s[i]<='9')

/**********found**********/

s[j]=s[i];s[j++]=s[i];/*s[j]被赋值了之后,j要++运算,以便s[j]是下一个元素*/

/**********found**********/

s[j]="\0";s[j]=’\0’;/*这里是字符0不是字符串0*/

}

main()

{charitem[80];

printf("\nEnterastring:

");gets(item);

printf("\n\nThestringis:

\"%s\"\n",item);

fun(item);

printf("\n\nThestringofchangingis:

\"%s\"\n",item);

}

15

#include

#include

#defineM10

inta[M][M]={0};

/**************found**************/

voidfun(int**a,intm)voidfun(inta[M][M],intm)/*这里定义变量能够接受具体二维数组a[M][M],如果不知道怎么定义,直接照抄数组原来的定义都可以*/

{intj,k;

for(j=0;j

for(k=0;k

/**************found**************/

a[j][k]=k*j;a[j][k]=(k+1)*(j+1);/*这里是根据题目要求,大家可以算出来第一个数字应该怎么得到*/

}

main()

{inti,j,n;

printf("Entern:

");scanf("%d",&n);

fun(a,n);

for(i=0;i

{for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

16

#include

longfun(intg)

{

/**********found**********/

switch(g);switch(g)/*switch()后面没有分号*/

{case0:

return0;

/**********found**********/

case1;case2:

return1;case1:

case2:

return1;/*case1后面应该冒号case之后必须有冒号*/

}

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);

}

17

#include

doublefun(doubleq)

{intn;doubles,t;

n=2;

s=2.0;

while(s<=q)

{

t=s;

/************found************/

s=s+(n+1)/n;s=s+(n+1.0)/n;/*这里的n是整形,(n+1)/n得到的结果也肯定是整形,而我们要得到实型/

n++;

}

printf("n=%d\n",n);

/************found************/

returns;returnt;/*如果是returns根据循环条件会多加了一项所以返回时加最后之前的t*/

}

main()

{

printf("%f\n",fun(50));

}

18

#include

intfun(intk)

{intm=0,mc=0;

while((k>=2)&&(mc<10))

{

/************found************/

if((k%13=0)||(k%17=0))if((k%13==0)||(k%17==0))/*这里是比较不是赋值,所以用两个连续的等号==*/

{m=m+k;mc++;}

k--;

}

returnm;

/************found************/

_____}/*函数体结束的时候用}结束*/

main()

{

printf("%d\n",fun(500));

}

19

#include

#defineN10

/************found************/

voidfun(inta[],intm)intfun(inta[],intm)/*根据主函数调用fun函数的,可以看到要求fun函数返回的是个int型*/

{intlow=0,high=N-1,mid;

while(low<=high)

{mid=(low+high)/2;

if(m

high=mid-1;

/************found************/

elseIf(m>a[mid])elseif(m>a[mid])/*这里的if是关键字,关键字必须全部小写*/

low=mid+1;

elsereturn(mid);

}

return(-1);

}

main()

{inti,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;

printf("a数组中的数据如下:

");

for(i=0;i

printf("Enterm:

");scanf("%d",&m);

k=fun(a,m);

if(k>=0)printf("m=%d,index=%d\n",m,k);

elseprintf("Notbefound!

\n");

}

20

#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++)for(j=i+1;j<6;j++)/*for循环里面必须是2个分号,这是格式,必须记牢*/

{

if(strcmp(*(pstr+i),*(pstr+j))>0)

{

p=*(pstr+i);

/**************found*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2