程序改错.docx
- 文档编号:18290450
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:117
- 大小:74.16KB
程序改错.docx
《程序改错.docx》由会员分享,可在线阅读,更多相关《程序改错.docx(117页珍藏版)》请在冰点文库上搜索。
程序改错
1.给定程序modi.c中函数fun的功能是:
首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。
转换后的小写字母作为函数值返回。
例如,若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序
的结构!
#include
#include
charfun(charc)
{if(c>='A'&&c<='Z')
/**************found**************/
c=tolower(c);
if(c>='a'&&c<='u')
/**************found**************/
c=c+5;
elseif(c>='v'&&c<='z')
c=c-21;
returnc;
}
main()
{charc1,c2;
printf("\nEnteraletter(A-Z):
");c1=getchar();
if(isupper(c1))
{c2=fun(c1);
printf("\n\nTheletter\'%c\'changeto\'%c\'\n",c1,c2);
}
elseprintf("\nEnter(A-Z)!
\n");
}
2.给定程序modi.c中函数fun的功能是:
从整数10到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
规定,函数中a1放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
fun(int*b)
{intk,a1,a2,i=0;
for(k=10;k<=55;k++)
{
/************found************/
a2=k/10;
a1=k-a2*10;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{b[i]=k;i++;}
}
/************found************/
returni;
}
main()
{inta[100],k,m;
m=fun(a);
printf("Theresultis:
\n");
for(k=0;k } 3.给定程序modi.c中函数fun的功能是: 计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数。 并计算该值的个位、十位、百位上数字之和作为函数值返回。 例如,7的5次方是16807,其低3位数的和值是15。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include intfun(intn,int*value) {intd,s,i; /**************found**************/ d=1;s=0; for(i=1;i<=5;i++)d=d*n; *value=d; for(i=1;i<=3;i++) {s=s+d%10; /**************found**************/ d=d/10; } returns; } main() {intn,sum,v; do {printf("\nEntern(2 ");scanf("%d",&n);} while(n<=2||n>=8); sum=fun(n,&v); printf("\n\nTheresult: \nvalue=%dsum=%d\n\n",v,sum); } 4.给定程序modi.c中函数fun的功能是: 根据整型形参m,计算如下公式的值。 例如,若m中的值为: 5,则应输出: 1.463611。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include doublefun(intm) {doubley=1.0; inti; /**************found**************/ for(i=2;i<=m;i++) /**************found**************/ y+=1.0/(i*i); return(y); } main() {intn=5; printf("\nTheresultis%lf\n",fun(n)); } 5.给定程序MODI1.C中函数fun的功能是: 根据整型形参n,计算如下公式的值。 例如,若n=10,则应输出: 0.617978。 请改正程序中的语法错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include /************found************/ doublefun(intn) {doubleA=1;inti; /************found************/ for(i=2;i<=n;i++) A=1.0/(1+A); returnA; } main() {intn; system("cls"); printf("\nPleaseentern: "); scanf("%d",&n); printf("A%d=%f\n",n,fun(n)); } 6.给定程序modi.c中,函数fun的功能是: 先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 例如,当s中的字符串为: "ABCDE"时, 则t中的字符串应为: "ABCDEEDCBA"。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include #include voidfun(char*s,char*t) {inti,sl; sl=strlen(s); /************found************/ for(i=0;i t[i]=s[i]; for(i=0;i t[sl+i]=s[sl-i-1]; /************found************/ t[2*sl]='\0'; } main() {chars[100],t[100]; system("cls"); printf("\nPleaseenterstrings: ");scanf("%s",s); fun(s,t); printf("Theresultis: %s\n",t); 7.给定程序modi.c中,函数fun的功能是: 将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include voidfun(intm,intk) { intaa[20],i; for(i=0;m;i++) { /************found************/ aa[i]=m%k; m/=k; } /************found************/ for(i=i-1;i>=0;i--) printf("%d",aa[i]); } main() { intb,n; system("cls"); printf("\nPleaseenteranumberandabase: \n"); scanf("%d%d",&n,&b); fun(n,b); printf("\n"); } 8.给定程序modi.c中函数fun的功能是: 将s所指字符串中最后一次出现的、t1所指子串替换成t2所指子串,所形成的新串放在w所指的数组中。 在此处,要求t1和t2所指字符串的长度相同。 例如,当s所指字符串中的内容为: "abcdabfabc",t1所指子串中的内容为: "ab",t2所指子串中的内容为: "99"时,结果,在w所指的数组中的内容应为: "abcdabf99c"。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include #include intfun(char*s,char*t1,char*t2,char*w) { inti;char*p,*r,*a; strcpy(w,s); /************found************/ while(*w) {p=w;r=t1; while(*r) /************found************/ if(*r==*p) {r++;p++;} elsebreak; if(*r=='\0')a=w; w++; } r=t2; while(*r){*a=*r;a++;r++;} } main() { chars[100],t1[100],t2[100],w[100]; system("cls"); printf("\nPleaseenterstringS: ");scanf("%s",s); printf("\nPleaseentersubstringt1: ");scanf("%s",t1); printf("\nPleaseentersubstringt2: ");scanf("%s",t2); if(strlen(t1)==strlen(t2)) {fun(s,t1,t2,w); printf("\nTheresultis: %s\n",w); } elseprintf("\nError: strlen(t1)! =strlen(t2)\n"); } 9.给定程序modi.c中函数fun的功能是: 依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #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]; /**********found**********/ s[j]=‘\0’; } main() {charitem[80]; system("cls"); printf("\nEnterastring: ");gets(item); printf("\n\nThestringis: \"%s\"\n",item); fun(item); printf("\n\nThestringofchangingis: \"%s\"\n",item); } 10.给定程序modi.c中fun函数的功能是: 求出以下分数序列的前n项之和。 和值通过函数值返回main()函数。 例如,若n=5,则应输出: 8.391667。 请改正函数fun中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include /**************found**************/ doublefun(n) intn; {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; } return(s); } main() {intn=5; system("cls"); printf("\nThevalueoffunctionis: %lf\n",fun(n)); } 11.例如a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3 其值是: 296298 a和n是fun函数的形参,表达式的值作为函数值传回main函数。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include longfun(inta,intn) {intj; /**************found**************/ longs=0,t=0; for(j=0;j t=t*10+a; s=t; for(j=1;j /**************found**************/ t=t/10; s=s-t; } return(s); } main() {inta,n; system("cls"); printf("\nPleaseenteraandn: "); scanf("%d%d",&a,&n); printf("Thevalueoffunctionis: %ld\n",fun(a,n)); } 12.给定程序modi.c中,函数fun的功能是: 给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实际个数。 例如,n=8时输入: 193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763所得平均值为: 195.838745,在平均值以上的实数个数应为: 5 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include intfun(floatx[],intn) /************found************/ {intj,c=0;floatxa=0.0; for(j=0;j xa+=x[j]/n; printf("ave=%f\n",xa); for(j=0;j /************found************/ if(x[j]>=xa) c++; returnc; } main() {floatx[100]={193.199f,195.673f,195.757f,196.051f,196.092f,196.596f,196.579f,196.763f}; system("cls"); printf("%d\n",fun(x,8)); } 13.给定程序modi.c中,函数fun的功能是: 用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止: 例如,程序运行后,输入0.0001,则程序输出3.1414。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include floatfun(floatnum) {ints; floatn,t,pi; t=1;pi=0;n=1;s=1; /************found************/ while((fabs(t))=num) { pi=pi+t; n=n+2; s=-s; /************found************/ t=s*1/n; } pi=pi*4; returnpi; } main() {floatn1,n2; system("cls"); printf("Enterafloatnumber: "); scanf("%f",&n1); n2=fun(n1); printf("%6.4f\n",n2); } 14.例如,在调用fun函数之前给字符串a输入: ABCDEFGHIJK 调用函数之后,字符串b中的内容则为: ABCDEFGHIJK 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include voidfun(char*p,char*b) {inti,k=0; while(*p) {i=1; /************found************/ while(i<4&&*p) {b[k]=*p; k++;p++;i++; } if(*p) { /************found************/ b[k++]=''; } } b[k]='\0'; } main() {chara[80],b[80]; printf("Enterastring: ");gets(a); printf("Theoriginalstring: ");puts(a); fun(a,b); printf("\nThestringafterinsertspace: ");puts(b);printf("\n\n"); } 15.给定程序modi.c中函数fun的功能是: 根据输入的三个边长(整型值),判断能否构成三角形: 构成的是等边三角形,还是等腰三角形。 若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include intfun(inta,intb,intc) {if(a+b>c&&b+c>a&&a+c>b){ if(a==b&&b==c) /**************found**************/ return3; elseif(a==b||b==c||a==c) return2; /**************found**************/ elsereturn1; } elsereturn0; } main() {inta,b,c,shape; printf("\nInputa,b,c: ");scanf("%d%d%d",&a,&b,&c); printf("\na=%d,b=%d,c=%d\n",a,b,c); shape=fun(a,b,c); printf("\n\nTheshape: %d\n",shape); } 16.给定程序modi.c中,函数fun的功能是: 计算并输出下列级数的前N项之和 ,直到 大于q为止,q的值通过形参传入。 例如,若q的值为: 50.0,则函数值为: 49.394948。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include doublefun(doubleq) { intn;doubles,t; n=2; s=2.0; while(s<=q) { t=s; /************found************/ s=s+(n+1.)/n; n++; } printf("n=%d\n",n); /************found************/ returnt; } main() { system("cls"); printf("%f\n",fun(50)); } 17.在主函数中从键盘输入若干个数放入数组中,输入0结束输入并放在最后一个元素中。 给定程序modi.c中函数fun的功能是: 计算数组元素中值为正数的平均值(不包括0)。 例如: 数组中元素中的值依次为: 39,-4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 改错
![提示](https://static.bingdoc.com/images/bang_tan.gif)