收藏 分销(赏)

C语言程序改错题.doc

上传人:w****g 文档编号:2008346 上传时间:2024-05-13 格式:DOC 页数:46 大小:147.50KB
下载 相关 举报
C语言程序改错题.doc_第1页
第1页 / 共46页
C语言程序改错题.doc_第2页
第2页 / 共46页
C语言程序改错题.doc_第3页
第3页 / 共46页
C语言程序改错题.doc_第4页
第4页 / 共46页
C语言程序改错题.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、【第1题】给定程序MODI1.C中函数fun的功能是:将长整数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87654时,t中的数为:864.#include #include Void fun (long s, long *t)int d ; long sL=1*t=0While (s0)d=s%10/*FOUND*/if (d%2=0) 答案 if(d%2= =0)/*FOUND*/*t=d*sl+t; 答案 *t=d*sl+*t;sl*=10/*FOUND*/s=10; 答案 s/=10 ;main()long s, t;clrscr(

2、);printf (“nplease enters:”).【第2题】题目:编写函数fun其功能是:根据整型参m,计算如下公式的值:Y=1+1/3+1/5+1/7+.+1/(2m-3)include “stdio.h”double fun (int m)/*FOUND*/double y=1 答案double y=1; int i/*FOUND*/for (i=1; im; i+) 答案 for (i=1; i=m; i+)/*FOUND*/ y+1.0/2i-3) 答案 y+=1.0/2*i-3)return(y).【第3题】题目函数fun的功能是:根据整形参m的值,计算如下公式的值。 1 1

3、 1 t=1- 2x2 - 3x3 - mxm 例如若m=5 则应输出 :0.536389double fun (int m )double y=1.0;Int i /*FOUND*/ for (i=2;im;i- -) 答案For (i=2;im;i+)/*FOUND*/y-=1/(i*i); 答案y-=1.0/(i*i);/*FOUND*/return m; 答案 return y; main()【第4题】题目:编写一个函数,判断一个数字是否在一个正整数中,若在则函数返回值为1,否则函数返回值为0.输入输出由主函数完成。Int fun ( int m,int n )int k, z=0;d

4、o k=m%10/*FOUND*/if (n=k ) z=1; 答案 if (n= =k ) z=1;/*FOUND*/n=m/10 答案 m=m/10 /*FOUND*/ while (m= =0); 答案 while (m! =0); /*FOUND*/return(m); 答案 return(z); mian()【第5题】题目:函数fun的功能是:输出fabonacci 数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20.fun ()int ifloat f1=1,f2=1,f3;/*FOUND*/printf(“%8d”,f1); 答案 prin

5、tf(“%8f”,f1);/*FOUND*/for(i=1:i=20;i+) 答案 for(i=1:i20;i+) f3=f1+f2;/*FOUND*/f2=f1; 答案 f1=f2; /*FOUND*/f3=f2; 答案 f2=f2printf(“%8.0f”,f1);.【第6题】题目:以下程序的功能是统计400499这些数中“4”这个数字出现的次数,判断一个数有几位4用函数fun实现。#includeint fun (int x)int fun (int x)int y,k=0;/*FOUND*/ while (x= =0) 答案 while (x!=0)y=x%10;/*FOUND*/i

6、f(y=4 ) k+; 答案if(y= =4 ) k+;x=x/10;/*FOUND*/return(y); 答案 return(k)main()int i,k=0;for(i=400;i=499;i+)/*FOUND*/k=fun(i); 答案k=k+fun(i);prinktf(“number=%dn”,k);【第7题】题目:用起泡法对10个整数从小到大排序。void sort (int x,int n)int i,j,k,t;for(i=0;in-1;i+)/*FOUND*/for(j=0;jn-i;j+) 答案for(j=0;jxi+1) 答案if(xjxj+1)t=xj;xj=xj+

7、1;xj+1=t;./*FOUND*/scanf(“%d”,ai); 答案scanf(“%d”,&ai); /*FOUND*/sort (n,a); 答案sort (a,n);printf(out.【第8题】题目:将s所指字符的反序和正序进行连接形成一个新串放在t所指的数组中。例如当s所指的字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。#include#include#include/*FOUND*/void fun (char s , char t) 答案 void fun (char s, char t)int i, d;/*FOUND*/d=len(s); 答案

8、d=strlen (s); /*FOUND*/for(i=1;id;i+) 答案 for (i=0;id;i+)ti=s./*FOUND*/t2*d=”/0” 答案t2*d=”0”main().【第9题】题目:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。#include#includevoid strcopy(char*str1,char*str2,int m)/*FOUND*/char p1,p2; 答案char *p1,*p2; int i,j; /*FOUND*/p1=str1+m; 答案p1=str1+m-1;/*FOUND*/if(*p1); 答案while(*p1)

9、./*FOUND*/strcat(str10,star20,m); 答案 strcopy(str1,str2,m);. .【第10题】题目:函数fun的 功能是:计算正整数mun的各位的数字之积。例如,输入252,则输出应该是20。Long fun (long num)/*FOUND*/long k; 答案:long k=1;do k*=num%10;/*FOUND*/ num=10; 答案:num/=10;或num=num/10; while(num); return k;main() long n; printf(nPlease enter a number:);/*FOUND*/ sca

10、nf(%ld,n); 答案:scanf(%ld,&n);/*FOUND*/ printf(n%ldn,fun(long n); 答案:printf(n%ldn,fun(n);【第11题】题目:函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 =1- 1 + 1 - 1 + . 4 3 5 7 /*FOUND*/#include stdio.h 答案:#includemath.h或#include fun() int i=1;/*FOUND*/ int s=0,t=1,p=1; 答案:float s=0,t=1,p=1;/*FOUND*/ While(

11、fabs(t)le-4) s=s+t;p=-p;i=i+2;t=p/i;/*FOUND*/ printf(pi=%dn,s*4); 答案:printf(pi=%fn,s*4); main() fun();【第12题】题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。main() int i;/*FOUND*/ float a8,min,max,avg; 答案: float a10,min,max,avg; printf(input 10 score:); for(i=0;i=9;i+) printf(input

12、a score of student:);/*FOUND*/ Scanf(%f,a); 答案:scanf(%f,&ai);/*FOUND*/ max=min=avg=a1; 答案:max=min=avg=a0; for(i=1;i=9;i+) /*FOUND*/ if(minai) min=ai;if(maxai) max=ai;avg=avg+ai; avg=avg/10; printf(max:%fnmin:%fnavg:%fn,max,min,avg);【第13题】题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。 例如原矩阵为: 1 2 3 4 5 6 7 8 9 则转置后

13、的矩阵为: 1 4 7 2 5 8 3 6 9fun(int a33,int n) int i,j,t; for(i=0;in;i+) for(j=0;jn;j+)/*FOUND*/ scanf(%d,aij); 答案:scanf(%d,&aij); for(i=0;in;i+);.for(i=o;i,;i+)/*FOUND*/for(j=0;jn;j+) 答案: for(j=0;ji;j+)/*FOUND*/aij=t; 答案:t = aij;/*FOUND*/t=aji; 答案: aji =t;/*FOUND*/.【第14题】题目:奖数组元素逆顺序存放。如数组元素为1,2,3,4,5,则逆

14、序存放后数组元素的值为5,4,3,2,1.void inv(int x,int n)int i ,j,t,m=(n-1)/2;/*FOUND*/for(i=o;im;i+) 答案:for(i=o;i=m;i+)/*FOUND*/xj=xi; 答案:xi=xj; xj=t/*FOUND*/void inv(int a10,10) 答案:inv(a,10);.for (i=0;i10;i+)/*FOUND*/ printf(“%3f”,ai); 答案:printf(“%3d”,ai); 【第15题】题目:函数fun的功能是:根据以下公式求n值,并作为函数值返回,例如,给制定精度的变量eps输入0.

15、0005时,应当输出Pi=3.140578. 1 1 2 1 2 3 1 2 3 4 = 1+ + x + x x + x x + + 2 3 3 5 3 5 7 3 5 7 9double fun(double eps)double s,t; int n=1;s=0.0;t=1;/*FOUND*/while(teps);s+=t;/*FOUND*/t=n/(2*n+1)*t 答案:t=t*n/(2*n+1)*tn+;/*FOUND*/return s; 答案:return 2*s;main().【第16题】题目:给定程序MOD11.C中函数fun的功能是:极炫正整数num的个位数字之积。例如

16、,若输入:252,则输出应该是20.#include#includelong/*FOUND*/long k=1 答案:long k=1;dok*=num%10;/*FOUND*/ num=10; 答案:num/=10;/*FOUND*/while(!num); 答案:while(num);return(k);.【第17题】题目:用“起泡法”对输入的十个字符排序后按从大到小的次序输出#define N 10 #include #include main( )int i;char strN;for(i=0;iN;i+)/*FOUND*/ scanf(“%c”,stri); 答案:scanf(“%c

17、”,&stri); /*FOUND*/sort(strN); 答案:sort(str);for(i=0;iN;i+); printf(“%c”,stri); printf(“n”);sort(char strN)【第18题】题目:以下程序输出前六行杨辉三角形,既 111 1 2 1 1 3 3 1 1 4 6 4 1 . .mian() static int a66;int i,j,k;/*FOUND*/ for(i=1;i=6;i+) 答案 for(i=0;i6;i+) for(k=0;k10-2*i;k+) Printf(“ ”); for(j=0;j=I;j+) /*FOUND*/ If

18、(j=0&j=i) 答案 if(j=|j=i) aij=1; else/*FOUND*/ aij=aj-1j-1+aij-1; aij=ai-1j-1+ai-1aj; printf(“ ”); printf(“%-3d”,aij); /*FOUND*/ Printf(“t”); 【第19题】题目:给定程序MODI1.C中函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y=7.936238。#include#include/*FOUND*/double fun (double*a,*b) 答案 double fun(double*a,double*b) d

19、ouble c;/*FOUND*/ c=sqr(a)+sqr(b); 答案 c=sqrt(*a)+sqrt(*b);/*FOUND*/ Return a; 答案 return c;或return(c);mian() double a,b,y; clrscr(); printf (“Enter a&b:”); scanf (“%lf%lf”,&a,&b);y=fun(&a,&b,);printf(“y=%fn”,y); getch();【第20题】题目:将一个字符串中的大写字母转换成小写字母。例如:+输入aSdFG输出为asdfg。#include/*FOUND*/bool fun(char *

20、c) 答案 char fun(char *c)if(*c=A) *c-=A-a;/*FOUND*/ Fun=c; 答案 return*c;或 return (*c);Mian()/*FOUND*/ char s81.*p=s; 答案 char s81.*p=s; gets(s); while(*p) *p=fun(p);/*FOUND*/ Puts(*p); 答案putchar(*p);或printf(“%c”,*p); P+; putchar(n);【第21题】题目:在主题函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是;计算数组元素中

21、值为正数的平均值(不包括0)。例如,数组中元素的值一次为39,-47,21,2,-8,15,0.则程序的运行结果为19.250000double fun (int s)/*FOUND*/ int sum=0.0; 答案 double sum=0.0; int c=0,i=0;/*FOUND*/ while(si =0) 答案 while(si!=0)或while(si) if (si0) sum+=si;c+; i+; /*FOUND*/ sum=c 答案 sum/=c;或 sum=sum/c;/*FOUND*/ return c; 答案 return sum或 return (sum);mi

22、an()int x1000;int i=0; do scanf(%d,&xi); while(xi+!=0); pintf(%fn,fun(x);【第22题】题目:给定程序MODI1.C中函数fun的功能是:求广义斐波那契级数的第n项。广义斐波那契级数的前n项为:1,1,1,3,5,9,17,31,.,项值通过函数值返回mian()函数。例如,若n=15,则应输出:The value is:2209.#include #include long fun(int n) long a=1,b=1,c=1,d=1,k;*FOUND* for(k=4;kn;k+) 答案:for(k=4;k=n;k+)

23、d=a+b+c;*FOUND* a=b;b=c;c=d 答案:a=b;b=c;c=d;*FOUND* Return k; return d;main() int n=15; clrscr(); printf(“the value is: %ldn”fun(n);【第23题】题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。main() int i a10,min,k=0; printf(“n please input array 10 elementsn”); for(i=0;i10;i+)*FOUND*scanf(“%d”,ai); 答案

24、:scanf(“%d”,&ai);for(i=0;i10;i+) Printf(“%d”,ai);min=a0;*FOUND*for(i=3;i10;i+) 答案:for(i=1;imin) min=ai; k=i; *FOUND*ak=ai;a0=min;printf(“n after eschange:n”);for(i=0;i10;i+) printf(“%d”,ai);printf(“nk=%dn”,k,min);【24题】题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回#include#includeint fun(int m)*FOUND*

25、int i;k; 答案 int i,k; for(i=m+1;i+)for(k=2;k=i)return(i);main() int n;clrscr();printf(“n please enter n:”);scanf(“%d”,&n);printf(“%dn”,fun(n);【25题】题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。main() int i;float t,s=0;float fac(int n);*FOUND*for(i=1;i10;i+) 答案:for(i=1;i=10;i+)*FOUND*s=fac(i); 答案: s=s+fac(i);或s+=fa

26、c(i);s=fac(i);printf(“%fn”,s);float fac(int n)*FOUND* int y=1; 答案: float y=1; int i; for(i=1;i=n;i+) y=y*i;*FOUND*return; 答案: return y;或return(y);【26题】题目:以下程序的功能是求如下表达式: S=1+#include main() int n; float fun(); printf(“please input a number:”);*FOUND*print(“%d”,n): 答案: scanf(“%d”,&n);printf(“%10.6fn”

27、,fun(n);*FOUND*fun(int n) 答案:float fun(int n) int i,j,t; float s;s=0;*FOUND*while(i=1;i=n;i+) 答案: for(i=1;i=n;i+) t=0;for(j=1;j=i;j+)t=t+j;*FOUND*s=s+1t; 答案:s+=1.0/t或s=s+1.0/t; return s;【第27题】题目:用指针作函数参数,编程序求一堆数组中的最大和最小的元素值。#define N 10/*FOUND*/Void maxmin(int arr ,int *pr1, *pt2, n) Void maxmin(int arr ,int *pt1,int *pt2,int n)int 1:/*FOUND*/*pt1=*pt2=&arr0

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服