大学C语言改错试题Word格式文档下载.docx
《大学C语言改错试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大学C语言改错试题Word格式文档下载.docx(83页珍藏版)》请在冰豆网上搜索。
b=c-a;
}
returnmax;
main()
inta[N],i,max,p=0;
printf("
pleaseenter10integers:
\n"
);
for(i=0;
i<
N;
i++)
get("
%d"
a[i]);
m=fun(a,p,N);
max=%d,position=%d"
max,p);
--------------------------------------------------
『错误答案』:
1intfun(int*a,int*b,intn)
2*b=c-a;
3scanf("
&
a[i]);
4max=fun(a,&
p,N);
『TurboC——程序改错』
题目2:
为一维数组输入10个整数;
将其中最小的数与第一个数
对换,将最大的数与最后一个数对换;
输出数组元素。
-----------------------------------------------------*/
inta[10];
voidinput();
voidoutput();
voidmax_min();
input(a,10);
max_min(a,10);
output(a,10);
voidinput(int*arr,intn)
{int*p,i;
p=arr;
n;
sca("
p++);
voidmax_min(int*arr,intn)
{
int*min,*max,*p,t;
min=max=arr;
for(p=arr+1;
p<
arr+n;
p++)
if(*p>
*max)
*max=*p;
elseif(*p<
*min)min=p;
t=*arr;
*arr=*min;
*min=t;
case(max=arr)
max=min;
t=*(arr+n-1);
*(arr+n-1)=*max;
*max=t;
voidoutput(int*arr,intn)
int*p,i;
Thechangedarrayis:
while(i=0;
i++);
%3d"
*p++);
1scanf("
p++);
2max=p;
3if(max==arr)
4for(i=0;
i++)或for(i=0;
n>
i;
i++)或for(p=arr;
)
题目3:
用起泡法对10个整数从小到大排序。
voidsort(intx,intn)
inti,j,k,t;
n-1;
for(j=0;
j<
n-i;
j++)
if(x[i]>
x[i+1])
{t=x[j];
x[j]=x[j+1];
x[j+1]=t;
inti,n,a[100];
pleaseinputthelengthofthearray:
scanf("
n);
sort(n,a);
outputthesortedarray:
=n-1;
%5d"
1voidsort(int*x,intn)
2for(j=0;
n-1-i;
j++)或for(j=0;
n-1-i>
j;
n-(1+i);
n-(1+i)>
3if(x[j]>
x[j+1])或if(x[j+1]<
x[j])
4sort(a,n);
--------------------------------------------------------
题目4:
在一个已按升序排列的数组中插入一个数,插入后,数
组元素仍按升序排列。
#defineN11
inti,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};
pleaseenteranintegertoinsertinthearray:
number)
Theoriginalarray:
N-1;
for(i=N-1;
i>
=0;
i--)
if(number<
=a[i])
a[i]=a[i-1];
else
{a[i+1]=number;
exit;
a[0])a[0]=number;
Theresultarray:
}
number);
2for(i=N-2;
i--)或for(i=N-2;
0<
=i;
3a[i+1]=a[i];
4break;
题目5:
将一个字符串中第m个字符开始的全部字符复制成为另一
个字符串。
#include<
stdio.h>
voidstrcopy(char*str1,char*str2,intm)
{charp1,p2;
inti,j;
=str1+m;
p2=str2;
if(*p1);
*p2++=*p1++;
*p2='
\0'
;
inti,m;
char*p1,*p2,str1[80],str2[80];
p1=str1;
gets(p1);
m);
strcat(str1[0],str2[0],m);
puts(p1);
puts(p2);
1{char*p1,*p2;
或{char*p2,*p1;
2p1=str1+m-1;
或p1=-1+str1+m;
3while(*p1)
4strcopy(str1,str2,m);
题目6:
以下程序的功能是求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
请改正程序中的错误,使程序能得到正确的运行结果。
#include<
intn;
floatfun();
Pleaseinputanumber:
"
n);
%10.6f\n"
fun(n));
fun(intn)
inti,j,t;
floats;
s=0;
while(i=1;
=n;
t=0;
for(j=1;
t=t+j;
=s+1/t;
}
returns;
-----