C语言程序改错题Word格式文档下载.docx
- 文档编号:13786492
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:16
- 大小:96.73KB
C语言程序改错题Word格式文档下载.docx
《C语言程序改错题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序改错题Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
printf("
\nPleaseenterstrings:
"
);
scanf("
%s"
s);
fun(s,t);
Theresultis:
%s\n"
t);
}
答案:
1).inti,sl;
2).t[i]=s[sl-i-1];
3).t[2*sl]='
\0'
或t[2*sl]=0;
main
第2题【程序改错】功能:
求出以下分数序列的前n项之和。
和值通过函数值返回函数。
2/1+3/2+5/3+8/5+13/8+21/13……
若n=5,贝应输出:
8.391667。
********FOUND********
fun(intn)
inta,b,c,k;
doubles;
s=0.0;
a=2;
b=1;
for(k=1;
k<
=n;
k++){
s=(double)a/b;
c=a;
a=a+b;
b=c;
returnc;
main()
intn=5;
printf("
\nThevalueoffunctionis:
%lf\n"
fun(n));
1).doublefun(intn)
2).s=s+(double)a/b;
或s+=(double)a/b;
或s+=a/(double)b;
s=s+a/(double)b;
3).returns;
第3题【程序改错】
读入一个整数m(5<
me20),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。
若输入整数7,则应输出:
3101728323647。
*/#include"
conio.h"
sortpb(intn,int*a)
inti,j,p,t
for(j=0;
j<
n-1;
j++)
p=j;
for(i=j+1;
i<
n;
i++)
if(a[p]>
a[j])p=i;
if(p==j)
t=a[j];
a[j]=a[p];
a[p]=t;
doublernd()
statict=29,c=217,m=1024,r=0;
r=(r*t+c)%m;
return((double)r/m);
getarr(intn,int*x)
for(i=1;
i++,x++)*x=(int)(50*rnd());
putarr(intn,int*z)
i++,z++)
%4d"
*z);
if(!
(i%10))printf("
\n"
);
}printf("
intaa[20],n;
\nPleaseenteranintegernumberbetween5and20:
"
scanf("
%d"
&
n);
getarr(n,aa);
\n\nBeforesorting%dnumbers:
n);
putarr(n,aa);
sortpb(n,aa);
\nAftersorting%dnumbers:
1).inti,j,p,t;
2).if(a[p]>
a[i])p=i;
3).if(p!
=j)
第4题【程序改错】
以下程序能求出1*1+2*2++n*n<
=1000中满足条件的
最大的n。
*/
#include"
string.h"
main()
intn,s;
s==n=0;
while(s>
1000)
++n;
s+=n*n;
n=%d\n"
&
n-1);
1).s=n=0;
2).while(s<
=1000)
3).printf("
n-1);
第5题【程序改错】
求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调。
数组中原有的数:
7、10、12、0、3、6、9、11、5、8,
输出的结果为:
12、11、7、0、3、6、9、10、5、8。
#defineN20voidfun(int*a,intn)
intk,m1,m2,max1,max2,t;
max1=max2=-32768;
m1=m2=0;
for(k=0;
n;
k++)
if(a[k]>
max1)
max2=max1;
m2=m1;
max1=a[k];
m1=k;
elseif(a[k]>
max1){
max2=a[k];
m2=k;
t=a[0];
a[m1]=a[0];
a[m1]=t;
t=a[1];
a[m2]=a[1];
a[m2]=t;
intb[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;
for(i=0;
n;
%d"
b[i]);
printf("
fun(b,n);
for(i=0;
i++)printf("
}答案:
1).elseif(a[k]>
max2)
2).t=a[0];
a[0]=a[m1];
a[m1]=t;
3).t=a[1];
a[1]=a[m2];
第6题【程序改错】
读入一个整数k(2<
k<
10000),打印它的所有质因子(即所有为素数的因子)。
若输入整数:
2310,则应输出:
2、3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。
isPrime(integern){
inti,m;
m=1;
for(i=2;
i++)
if(n%i){
m=0;
break;
returnn;
intj,k;
\nPleaseenteranintegernumberbetween2and10000:
k);
\n\nTheprimefactor(s)of%dis(are):
k);
for(j=2;
=k;
if((!
(k%j))&
&
(IsPrime(j)))printf("
\n%4d"
j);
1).IsPrime(intn)
2).if(!
(n%i))
3).returnm;
第7题【程序改错】
为一维数组输入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;
pleaseenter10integers:
for(i=0;
i<
i++)
scanf("
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;
if(max=arr)max=min;
t=*(arr+n-1);
*(arr+n-1)=*max;
*max=t;
voidoutput(int*arr,intn){
Thechangedarrayis:
第8题【程序改错】
求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;
若未找到,则函数值为NULL。
当字符串中的内容为:
abcdabfabcdx"
,t中的内容为:
ab"
时,输出结果应是:
abcdx。
abd"
时,则程序输出
未找到信息:
notfound!
。
char*fun(char*s,char*t){
char*p,*r,*a;
a==NULL;
while(*s)
p=s;
r=t;
while(*r)
if(r==p)
r++;
p++;
}else
break;
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错