C语言程序改错题.pdf
《C语言程序改错题.pdf》由会员分享,可在线阅读,更多相关《C语言程序改错题.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 a 第 1 题 【程序改错】功能:先将在字符串 s 中的字符按逆序存放到 t 串中,然后把 s 中的 字符按正序连接到 t 串的后面。例如:当 s 中的字符串为:“ABCDE”时,则 t 中的字符串应为:“EDCBAABCDE”。-*/#include#include#include void fun(char*s,char*t)/*FOUND*/int i;sl=strlen(s);for(i=0;isl;i+)/*FOUND*/ti=ssl-i;for(i=0;isl;i+)tsl+i=si;/*FOUND*/t2*sl=0;main()char s100,t100;printf(nPl
2、ease enter string s:);scanf(%s,s);fun(s,t);printf(The result is:%sn,t);答案:1).int i,sl;2).ti=ssl-i-1;a 3).t2*sl=0;或 t2*sl=0;第 2 题 【程序改错】功能:求出以下分数序列的前 n 项之和。和值通过函数值返回 main 函数。2/1+3/2+5/3+8/5+13/8+21/13 例如:若 n=5,则应输出:8.391667。-*/#include#include /*FOUND*/fun(int n)int a,b,c,k;double s;s=0.0;a=2;b=1;for
3、(k=1;k=n;k+)/*FOUND*/s=(double)a/b;c=a;a=a+b;b=c;/*FOUND*/return c;main()int n=5;printf(nThe value of function is:%lfn,fun(n);答案:a 1).double fun(int n)2).s=s+(double)a/b;或 s+=(double)a/b;或 s+=a/(double)b;或 s=s+a/(double)b;3).return s;第 3 题 【程序改错】功能:读入一个整数 m(5m20),函数 getarr 调用函数 rnd 获 得 m 个随机整数,函数 so
4、rtpb 将这 m 个随机整数从小到大排序。例如:若输入整数 7,则应输出:3 10 17 28 32 36 47。-*/#include conio.h#include sortpb(int n,int*a)/*FOUND*/int i,j,p,t for(j=0;j n-1;j+)p=j;for(i=j+1;i aj)p=i;/*FOUND*/if(p=j)t=aj;aj=ap;ap=t;double rnd()a static t=29,c=217,m=1024,r=0;r=(r*t+c)%m;return(double)r/m);getarr(int n,int*x)int i;for
5、(i=1;i=n;i+,x+)*x=(int)(50*rnd();putarr(int n,int*z)int i;for(i=1;i ai)p=i;3).if(p!=j)a 第 4 题【程序改错】-功能:以下程序能求出 1*1+2*2+.+n*n=1000 中满足条件的 最大的 n。-*/#include#include string.h main()int n,s;/*FOUND*/s=n=0;/*FOUND*/while(s1000)+n;s+=n*n;/*FOUND*/printf(n=%dn,&n-1);答案:1).s=n=0;2).while(s=1000)3).printf(n=
6、%dn,n-1);第 5 题 【程序改错】-功能:求出 a 所指数组中最大数和次最大数(规定最大数和次最大 数不在 a0和 a1中),依次和 a0、a1中的数对调。例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、11、7、0、3、6、9、10、5、8。-*/a#include#include#define N 20 void fun(int*a,int n)int k,m1,m2,max1,max2,t;max1=max2=-32768;m1=m2=0;for(k=0;k max1)max2=max1;m2=m1;max1=ak;m1=k;/*FOUND
7、*/else if(akmax1)max2=ak;m2=k;/*FOUND*/t=a0;am1=a0;am1=t;/*FOUND*/t=a1;am2=a1;am2=t;main()int bN=7,10,12,0,3,6,9,11,5,8,n=10,i;for(i=0;in;i+)printf(%d,bi);printf(n);fun(b,n);for(i=0;imax2)2).t=a0;a0=am1;am1=t;3).t=a1;a1=am2;am2=t;第 6 题 【程序改错】-功能:读入一个整数 k(2k10000),打印它的所有质因子(即 所有为素数的因子)。例如:若输入整数:2310,
8、则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。-*/#include conio.h#include /*FOUND*/isPrime(integer n)int i,m;m=1;for(i=2;i n;i+)/*FOUND*/if(n%i)m=0;break;/*FOUND*/return n;a main()int j,k;printf(nPlease enter an integer number between 2 and 10000:);scanf(%d,&k);printf(nnThe prime factor(s)of%d is(are):,k)
9、;for(j=2;j=k;j+)if(!(k%j)&(IsPrime(j)printf(n%4d,j);printf(n);答案:1).IsPrime(int n)2).if(!(n%i)3).return m;第 7 题 【程序改错】-功能:为一维数组输入 10 个整数;将其中最小的数与第一个数 对换,将最大的数与最后一个数对换,输出数组元素。-*/#include main()int a10;void input();void output();void max_min();input(a,10);max_min(a,10);output(a,10);void input(int*arr,
10、int n)a int*p,i;p=arr;printf(please enter 10 integers:n);for(i=0;in;i+)/*FOUND*/scanf(%d,p);void max_min(int*arr,int n)int*min,*max,*p,t;min=max=arr;for(p=arr+1;parr+n;p+)/*FOUND*/if(*p*max)max=p;else if(*p*min)min=p;t=*arr;*arr=*min;*min=t;/*FOUND*/if(max=arr)max=min;t=*(arr+n-1);*(arr+n-1)=*max;*m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错
限制150内