齐大C语言程序改错Word格式.docx
- 文档编号:21788076
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:20.62KB
齐大C语言程序改错Word格式.docx
《齐大C语言程序改错Word格式.docx》由会员分享,可在线阅读,更多相关《齐大C语言程序改错Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
{inti=0,j=0;
while(s1[i]=='
\0'
)i++;
while(s1[i]!
='
)i++;
while(s2[j]=='
)while(s2[i]!
)
{/**********FOUND**********/
s2[j]=s1[i];
s1[i]=s2[j];
i++;
j++;
s2[j]='
;
s1[i]='
124.【程序改错】
输入一行字符,分别统计出其中英文字母、空
格、数字和其它字符的个数。
#include"
{charc;
intletters=0,space=0,digit=0,others=0;
printf("
pleaseinputsomecharacters\n"
while((c=getchar())=='
\n'
)while((c=getchar())!
{/**********FOUND**********/
if(c>
a'
&
z'
c>
A'
Z'
)
||c>
letters++;
elseif(c=!
'
'
)elseif(c=='
space++;
elseif(c>
0'
9'
digit++;
else
others++;
allinall:
char=%dspace=%ddigit=%dothers=%d\n"
letters,
space,digit,others);
364.【程序改错】
给定程序MODI1.C中函数fun的功能是:
计算正整数num的
各位上的数字之积。
例如,若输入:
252,则输出应该是:
20。
若
输入:
202,则输出应该是:
0。
#include<
stdio.h>
conio.h>
longfun(longnum)
{longk=1{longk=1;
do
{k*=num%10;
num\=10;
num/=10;
}while(!
num);
}while(num);
return(k);
main()
{longn;
clrscr();
\Pleaseenteranumber:
"
);
scanf("
%ld"
&
n);
\n%ld\n"
fun(n));
getch();
433.【程序改错】
编写一个函数,输入n为偶数时,调用函数求
1/2+1/4+...+1/n,当输入n为奇数时,调用函
数1/1+1/3+...+1/n(利用指针函数)
{floatpeven(),podd(),dcall();
floatsum;
intn;
while
(1)
scanf("
n);
n);
if(n>
1)
break;
if(n%2==0)
{printf("
Even="
sum=dcall(peven,n);
Odd="
sum=dcall(podd,n);
%f"
sum);
floatpeven(intn)
{floats;
inti;
s=0;
for(i=2;
=n;
i+=2)
s+=1%(float)i;
s+=1/(float)i;
return(s);
floatpodd(n)
s=1;
s=0;
for(i=1;
s+=1/(float)i;
floatdcall(fp,n)
float(*fp)();
s=(*fp)(n);
115(116).【程序改错】
下列程序中,函数fun的功能是:
在字符串str
中找出ASCII码值最大的字符,将其放在第一个
位置上,并将该字符前面的字符向后顺序移动。
调用fun函数之前给字符串输入:
ABCDeFGH,
调用后字符串中的内容为:
eABCDFGH。
#include<
fun(char*p)
{charmax,*q;
inti=0;
max=p[i];
while(p[i]!
=0)
{if(max<
p[i])
{max=p[i];
p=q+i;
q=p+i;
}
/**********FOUND**********/
while(q<
p)while(q>
p)
{q=*(q-1);
{*q=*(q-1);
q--;
p[0]=max;
{charstr[80];
Enterastring:
gets(str);
\nTheoriginalstring:
puts(str);
fun(str);
\nThestringaftermoving:
getch();
123.【程序改错】
有1、2、3、4个数字,能组成多少个互不相同
且无重复数字的三位数?
都是多少?
{inti,j,k;
)printf("
=5;
i++)for(i=1;
5;
for(j=1;
j<
j++)
for(k=1;
k<
k++)
if(i!
=k||i!
=j||j!
=k)if(i!
=k&
i!
=j&
j!
=k)
%d,%d,%d\n"
i,j,k);
}}
107.【程序改错】
以下程序的功能是求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
请改正程序中的错误,使程序能得到正确的运行结果。
{intn;
floatfun();
Pleaseinputanumber:
print("
n);
%10.6f\n"
fun(n));
fun(intn)floatfun(intn)
{inti,j,t;
floats;
s=0;
while(i=1;
i++);
for(i=1;
i++)
{t=0;
for(j=1;
=i;
t=t+j;
s=+1/t;
s+=1.0/t}
returns;
26.【程序改错】
找出大于m的最小素数,并将其作为
函数值返回。
math.h>
intfun(intm)
{inti,k;
for(i=m+1;
for(k=1;
i;
k++)for(k=2;
if(i%k!
=0)break;
if(i%k==0)break;
if(k<
i)if(i<
=k)
returnk;
returni;
}}
%d\n"
381.【程序改错】
给定程序MODI1.C的功能是:
删除w所指数组中下标
为k的元素中的值。
程序中,调用了getindex、arrout
和arrdel三个函数,getindex用以输入所删元素的下标,
函数中对输入的下标进行检查,若越界,则要求重新输入,
直到正确为止。
arrout用以输出数组中的数据,arrdel进
行所要求的删除操作。
conio.h"
#defineNUM10
arrout(intw,intm)arrout(intw[],intm)
{intk;
for(k=1;
k<
m;
k++)for(k=0;
k++)
printf("
%d"
w[k]);
printf("
w[k]);
printf("
}
arrdel(int*w,intn,intk)
{inti;
for(i=k;
i<
n-1;
i++)w[i]=w[i+1];
n--;
returnn;
getindex(intn)
{printf("
\nEntertheindex[0<
=i<
%d]:
"
n);
scanf("
i);
}while(i<
0||i>
n-1);
returni;
{intn,d,a[NUM]={21,22,23,24,25,26,27,28,29,30};
n=NUM;
clrscr();
Outputprimarydata:
arrout(a,n);
d=getindex(n);
n=arrdel(a,n,d);
Outputthedataafterdelete:
arrout(a,n);
122.【程序改错】
编写函数fun其功能是:
输入两个实数,按代数值由小到大输出它们,并在fun()
函数中输出。
(输出的数据都保留2位小数)
{fun();
fun()
floattfloatt;
floata,b;
%f%f"
a,&
b);
if(a<
b)if(a>
b)
{t=a;
a=b;
b=t;
%5.2f,%5.2f\n"
%5.2f,%5.2f\n"
a,b);
113.【程序改错】
请编写一个函数intfun(intx),它的功能
是:
判断整数x是否是同构数。
若是同购数,
函数返回1;
否则返回0。
所谓“同构数”是指这个数出现在它的平方数
的右边。
例如:
输入整数25,25的平方数是
625,25是625中右侧的数,所以25是同构数。
x的值由主函数从键盘读入,要求不大于1000。
intfun(intx)
intkintk;
k=x;
k=x*x;
if((k%10==x)&
(k%100==x)&
(k%1000==x))if((k%10==x)||(k%100==x)||”(k%1000==x))
return1;
else
return0;
{intx,y;
clrscr();
\nPleaseenteraintegernumbers:
x);
if(x>
1000){printf("
dataerror!
exit(0);
y=fun(x);
if(y)printf("
%dYES\n"
x);
elseprintf("
%dNO\n"
121.【程序改错】
编写程序,求矩阵(3行3列)与5的乘积
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
50010001500
200025003000
350040004500
intfun(intarray[3][3])
{/**********FOUND**********/
j;
inti,j;
3;
i++)for(i=0;
3;
for(j=0;
j<
j++)
array[i][j]=array[i][j]/5;
arrau[i][j]=array[i][j]*5}
{inti,j;
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;
i++)
{for(j=0;
j++)
%7d"
array[i][j]);
fun(array);
Convertedarray:
108.【程序改错】
将若干学生的档案存放在一个文件中,并显示其内容。
structstudent
{intnum;
charname[10];
intage;
};
structstudentstu[3]={{001,"
LiMei"
18},{002,"
JiHua"
19},{003,"
SunHao"
18}};
{structstudentp;
{structstudent*p;
cfilefp;
FILE*fp
inti;
if((fp=fopen("
stu_list"
"
wb"
))==NULL)
{printf("
cannotopenfile\n"
return;
for(*p=stu;
p<
stu+3;
p++)for(p=stu;
p++)
fwrite(p,sizeof(structstudent),1,fp);
fclose(fp);
fp=fopen("
rb"
No.Nameage\n"
for(i=1;
=3;
{fread(p,sizeof(structstudent),1,fp);
%4d%-10s%4d\n"
*p.num,p->
name,(*p).age);
109.【程序改错】
已知一个数列从第0项开始的前三项分别为0、0、1,以
后的各项都是其相邻的前三项的和。
下列给定程序中,
函数fun的功能是:
计算并输出该数列的前n项的平方根
之和sum,n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
请更改程序中的错误,使它能得出正确的结果。
math.h"
fun(intn)doublefun(intn)
{doublesum,s0,s1,s2,s;
intk;
sum=0.0;
sum=1.0;
if(n<
=2)sum=0.0;
s0=0.0;
s1=0.0;
s2=0.0;
s2=1.0;
for(k=4;
k>
n;
k++)for(k=4;
{s=s0+s1+s2;
sum+=sqrt(s);
s0=s1;
s1=s2;
s2=s;
returnsum;
%lf\n"
387.【程序改错】
统计字符串中各元音字母(即:
A、E、I、
O、U)的个数。
注意:
字母不分大、小写。
若输入:
THIsisaboot,则输
出应该是:
1、0、2、2、0。
fun(char*s,intnum[5])
{intk,i=5;
for(k=0;
k<
k++)
num[i]=0;
num[k]=0;
for(;
*s;
s++)
{i=-1;
switch(s)switch(*s)
{case'
:
case'
{i=0;
break;
case'
e'
E'
{i=1;
i'
I'
{i=2;
o'
O'
{i=3;
u'
U'
{i=4;
if(i<
0)if(i>
num[i]++;
}}
{chars1[81];
intnum1[5],i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错
![提示](https://static.bdocx.com/images/bang_tan.gif)