收藏 分销(赏)

C语言程序改错题.doc

上传人:w****g 文档编号:2008346 上传时间:2024-05-13 格式:DOC 页数:46 大小:147.50KB 下载积分:12 金币
下载 相关 举报
C语言程序改错题.doc_第1页
第1页 / 共46页
C语言程序改错题.doc_第2页
第2页 / 共46页


点击查看更多>>
资源描述
【第1题】 给定程序MODI1.C中函数fun的功能是:将长整数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为87654时,t中的数为:864. #include <conio.h> #include <stdio.h> Void fun (long s, long *t) {int d ; long sL=1 *t=0 While (s>0) {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(); 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; i<m; 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 1 t=1- 2x2 - 3x3 …… - mxm 例如若m=5 则应输出 :0.536389 double fun (int m ) {double y=1.0; Int i /**********FOUND*********/ for (i=2;i<m;i- -) 答案For (i=2;i<m;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; do {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 i float f1=1,f2=1,f3; /**********FOUND*********/ printf(“%8d”,f1); 答案 printf(“%8f”,f1); /**********FOUND*********/ for(i=1:i<=20;i++) 答案 for(i=1:i<20;i++) {f3=f1+f2; /**********FOUND*********/ f2=f1; 答案 f1=f2; /**********FOUND*********/ f3=f2; 答案 f2=f2 printf(“%8.0f”,f1);…………………………………………………………. 【第6题】 题目:以下程序的功能是统计400~499这些数中“4”这个数字出现的次数, 判断一个数有几位4用函数fun实现。 #include<stdio.h> int fun (int x) {int fun (int x) {int y,k=0; /**********FOUND*********/ while (x= =0) 答案 while (x!=0) {y=x%10; /**********FOUND*********/ if(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=%d\n”,k); } 【第7题】 题目:用起泡法对10个整数从小到大排序。 void sort (int x[],int n) {int i,j,k,t; for(i=0;i<n-1;i++) /**********FOUND*********/ for(j=0;j<n-i;j++) 答案for(j=0;j<n-1-i;j++) /**********FOUND*********/ if(x[i]>x[i+1]) 答案if(x[j]>x[j+1]) {t=x[j];x[j]=x[j+1];x[j+1]=t;} ……… ……….. ………….. ………… ………………….. /**********FOUND*********/ scanf(“%d”,a[i]); 答案scanf(“%d”,&a[i]); /**********FOUND*********/ sort (n,a); 答案sort (a,n); printf(out…………………………………………………………….. 【第8题】 题目:将s所指字符的反序和正序进行连接形成一个新串放在t所指的数组中。例如当s所指的字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。 #include<conio.h> #include<stdio.h> #include<string.h> /**********FOUND*********/ void fun (char s , char t) 答案 void fun (char s[], char t[]) {int i, d; /**********FOUND*********/ d=len(s); 答案d=strlen (s); /**********FOUND*********/ for(i=1;i<d;i++) 答案 for (i=0;i<d;i++) t[i]=s………. ………………… ……………………. /**********FOUND*********/ t[2*d]=”/0” 答案t[2*d]=”\0” main()………………….. …. ………………………………………………………………………………….. 【第9题】 题目:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。 #include< stdio.h> #include<string.h> void 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) ……………… … ……………. ………………………….. ……………………………………………….. ………………………………………… /**********FOUND*********/ strcat(str1[0],star2[0],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*********/ scanf("%ld",n); 答案:scanf("%ld",&n); /*********FOUND*********/ printf("\n%ld\n",fun(long n)); 答案:printf("\n%ld\n'',fun(n)); } 【第11题】 题目:函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。 π =1- 1 + 1 - 1 + .......... 4 3 5 7 /*********FOUND*********/ #include "stdio.h" 答案:#include"math.h"或#include <math.h> fun() { int i=1; /*********FOUND*********/ int s=0,t=1,p=1; 答案:float s=0,t=1,p=1; /*********FOUND*********/ While(fabs(t))<=le-4) 答案:while(fabs(t)>le-4) { s=s+t; p=-p; i=i+2; t=p/i; } /*********FOUND*********/ printf("pi=%d\n",s*4); 答案:printf("pi=%f\n",s*4); } main() { fun(); } 【第12题】 题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分,avg代表平均分。 main() { int i; /*********FOUND*********/ float a[8],min,max,avg; 答案: float a[10],min,max,avg; printf("input 10 score:"); for(i=0;i<=9;i++) { printf("input a score of student:"); /*********FOUND*********/ Scanf("%f",a); 答案:scanf("%f",&a[i]); } /*********FOUND*********/ max=min=avg=a[1]; 答案:max=min=avg=a[0]; for(i=1;i<=9;i++) { /*********FOUND*********/ if(min<a[i]) 答案:if(min>a[i]) min=a[i]; if(max<a[i]) max=a[i]; avg=avg+a[i]; } avg=avg/10; printf("max:%f\nmin:%f\navg:%f\n",max,min,avg); } 【第13题】 题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。 例如原矩阵为: 1 2 3 4 5 6 7 8 9 则转置后的矩阵为: 1 4 7 2 5 8 3 6 9 fun(int a[3][3],int n) { int i,j,t; for(i=0;i<n;i++) for(j=0;j<n;j++) /*********FOUND*********/ scanf("%d",a[i][j]); 答案:scanf("%d",&a[i][j]); for(i=0;i<n;i++); .............. for(i=o;i,;i++) /***********************FOUND********************/ for(j=0;j<n;j++) 答案: for(j=0;j<i;j++) { /***********************FOUND********************/ a[i][j]=t; 答案:t = a[i][j]; /***********************FOUND********************/ t=a[j][i]; 答案: a[j][i] =t; /***********************FOUND********************/ …….. 【第14题】 题目:奖数组元素逆顺序存放。如数组元素为1,2,3,4,5,则逆序存放后数组元素的值为5,4,3,2,1. void inv(int x[],int n) {int i ,j,t,m=(n-1)/2; /***********************FOUND********************/ for(i=o;i<m;i++) 答案:for(i=o;i<=m;i++) /***********************FOUND********************/ x[j]=x[i]; 答案:x[i]=x[j]; x[j]=t ……… /***********************FOUND********************/ void inv(int a[10],10) 答案:inv(a,10); …….. for (i=0;i<10;i++) /***********************FOUND********************/ printf(“%3f”,a[i]); 答案:printf(“%3d”,a[i]); 【第15题】 题目:函数fun的功能是:根据以下公式求n值,并作为函数值返回,例如,给制定精度的变量eps输入0.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 9 double fun(double eps) {double s,t; int n=1; s=0.0; t=1; /***********************FOUND********************/ while(t<=eps): 答案:while(t>eps); { s+=t; /***********************FOUND********************/ t=n/(2*n+1)*t 答案:t=t*n/(2*n+1)*t n++; } /***********************FOUND********************/ return s; 答案:return 2*s; } main() ………. 【第16题】 题目:给定程序MOD11.C中函数fun的功能是:极炫正整数num的个位数字之积。例如,若输入:252,则输出应该是20…….. #include<stdio.h> #include<conio.h> long<long.num> /***********************FOUND********************/ {long k=1 答案:{long k=1; do {k*=num%10; /***********************FOUND********************/ num\=10; 答案:num/=10; /***********************FOUND********************/ }while(!num); 答案:}while(num); return(k); …….. 【第17题】 题目:用“起泡法”对输入的十个字符排序后按从大到小的次序输出 #define N 10 #include <stdio.h> #include <string.h> main( ) {int i; char str[N]; for(i=0;i<N;i++) /***********************FOUND********************/ scanf(“%c”,str[i]); 答案:scanf(“%c”,&str[i]); /***********************FOUND********************/ sort(str[N]); 答案:sort(str); for(i=0;i<N;i++); printf(“%c”,str[i]); printf(“\n”); } sort(char str[N]) 【第18题】 题目:以下程序输出前六行杨辉三角形,既 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …………………. ………………….. mian() { static int a[6][6]; int i,j,k; /***********FOUND***************/ for(i=1;i<=6;i++) 答案 for(i=0;i<6;;i++) { for(k=0;k<10-2*i;k++) Printf(“ ”); for(j=0;j<=I;j++) { /***********FOUND****************/ If(j==0&&j==i) 答案 if(j==||j=i) a[i][j]=1; else /************FOUND***************/ a[i][j]=a[j-1][j-1]+a[i][j-1]; a[i][j]=a[i-1][j-1]+a[i-1]a[j]; printf(“ ”); printf(“%-3d”,a[i][j]); } /*************FOUND**************/ Printf(“\t”); } } 【第19题】 题目:给定程序MODI1.C中函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y=7.936238。 #include<conio.h> #include<math.h> /****************FOUND****************/ double fun (double*a,*b) 答案 double fun(double*a,double*b) { double 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=%f\n”,y); getch(); } 【第20题】 题目:将一个字符串中的大写字母转换成小写字母。例如:+输入aSdFG输出为asdfg。 #include<stdio.h> /***************FOUND*************/ bool fun(char *c) 答案 char fun(char *c) {if(*c<’Z’&&*c>=’A’) *c-=’A’-‘a’; /***************FOUND*************/ Fun=c; 答案 return*c;或 return (*c); } Mian() /***************FOUND************/ char s[81].*p=s; 答案 {char s[81].*p=s; gets(s); while(*p) {*p=fun(p); /***************FOUND***********/ Puts(*p); 答案putchar(*p);或printf(“%c”,*p); P++; } putchar(‘\n’); } 【第21题】 题目:在主题函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是;计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素的值一次为39,-47,21,2,-8,15,0.则程序的运行结果为19.250000 double fun (int s[]) { /*************FOUND***********/ int sum=0.0; 答案 double sum=0.0; int c=0,i=0; /*************FOUND***********/ while(s[i] =0) 答案 while(s[i]!=0)或while(s[i]) {if (s[i]>0) {sum+=s[i];c++;} i++; } /*************FOUND***********/ sum\=c 答案 sum/=c;或 sum=sum/c; /*************FOUND***********/ return c; 答案 return sum或 return (sum); } mian() {int x[1000];int i=0; do {scanf("%d",&x[i]);} while(x[i++]!=0); pintf("%f\n",fun(x)); } 【第22题】 题目:给定程序MODI1.C中函数fun的功能是:求广义斐波那契级数的第n项。广义斐波那契级数的前n项为:1,1,1,3,5,9,17,31,......,项值通过函数值返回mian()函数。例如,若n=15,则应输出:The value is:2209. #include <conio.h> #include <stdio.h> long fun(int n) { long a=1,b=1,c=1,d=1,k; ******************FOUND******************* for(k=4;k<n;k++) 答案:for(k=4;k<=n;k++) {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: %ld\n”fun(n)); } 【第23题】 题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。 main() { int i a[10],min,k=0; printf(“\n please input array 10 elements\n”); for(i=0;i<10;i++) *****************FOUND******************** scanf(“%d”,a[i]); 答案:scanf(“%d”,&a[i]); for(i=0;i<10;i++) Printf(“%d”,a[i]); min=a[0]; *****************FOUND******************** for(i=3;i<10;i++) 答案:for(i=1;i<10;i++) *****************FOUND******************** if(a[i]>min) { min=a[i]; k=i; } *****************FOUND******************** a[k]=a[i]; a[0]=min; printf(“\n after eschange:\n”); for(i=0;i<10;i++) printf(“%d”,a[i]); printf(“\nk=%d\n”,k,min); 【24题】 题目:下列程序中,函数fun的功能是:找出一个大于给定整数m的最小的素数,并作为函数值返回 #include<conio.h> #include<stdio.h> int fun(int m) *****************FOUND******************** {int i;k; 答案{ int i,k; for(i=m+1;;i++) {for(k=2;k<i;k++) *****************FOUND******************** if(i%k!=0) 答案:if(i%k==0) break; *****************FOUND******************** if(k=i) 答案:if(k==i) 或 if(k>=i) return(i); } } main() { int n; clrscr(); printf(“\n please enter n:”); scanf(“%d”,&n); printf(“%d\n”,fun(n)); } 【25题】 题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。 main() { int i; float t,s=0; float fac(int n); *****************FOUND******************** for(i=1;i<10;i++) 答案:for(i=1;i<=10;i++) *****************FOUND******************** s=fac(i); 答案: s=s+fac(i);或s+=fac(i); s=fac(i); printf(“%f\n”,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 <stdio.h> main() { int n; float fun(); printf(“please input a number:”); *****************FOUND******************** print(“%d”,n): 答案: scanf(“%d”,&n); printf(“%10.6f\n”,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+1\t; 答案: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=&arr[0]
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服