《二级c语言程序改错有详解.pdf》由会员分享,可在线阅读,更多相关《二级c语言程序改错有详解.pdf(143页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、程序 改 错 共 1 3 7题第 1 题 题 号:1 5/*-【程序改错】功能:根据整型形参m的值,计算如下公式的值。1 1 1t =1-2 x2 3 x3 m xm例如:若 m=5,则应输出:0.53 63 89-*/#i n c l ud e d o ubl e f un(i n t m)(d o ubl e y=l.0;i n t i;/*FOUND*/f o r(i=2;i m;i 一)/*FOUND*/y-=l/(i*i);/*F0 UND*/r e t ur n m;)m a i n ()(i n t n=5;p r i n t f (/z n t h e r e s ul t
2、 i s%l f nz/,f un(n);)答案:1).f o r(i=2;i=i;i+)或 f o r(i=2;i m+l;i+)或f o r(i=2;i i;i+)或 f o r(i=2;l+m i;i+)2).y-=l.0/(i*i);或 y=y-1.0/(i*i);或 y-=l.0/(f l o a t)(i*i);或y=y-l.0/(f l o a t)(i*i);或 y=y-l.0/i/i;或 y=y-l.0/(f l o a t)i/(f l o a t)i;或y=y-l/(d o ubl e)(i*i);或 y-=l/(d o ubl e)(i*i);3).r e t ur n
3、 y;或 r e t ur n (y);或 r e t ur n(y);第 2 题 题 号:3 62/*-【程序改错】功能:删除字符串S中的所有空白字符(包括Ta b字符、回车符及换行符)。输 入 字 符 串 时 用 结 束 输 入。-*/t+i n c l ud e#i n c l ud e i n c l ud e f un (c h a r *p)(i n t i,t;c h a r c 80 ;/*FOUND*/f o r (i =1,t =0;p i ;i+)/*F0 UND*/i f(!i s s p a c e(p+i)c t+=p i ;/*FOUND*/c t =0;s t
4、r c p y(p,c);)m a i n()(c h a r c,s 80 ;i n t i=0;p r i n t f(i n p ut a s t r i n g:);c=g e t c h a r();wh i l e(c!=,#)(s i =c;i+;c=g e t c h a r ();s i =0;f un (s);p ut s(s);)答案:1).f o r (i =0,t =0;p i ;i+)2).i f(!i s s p a c e(*(p+i)c t+=p i ;3).c t=,0J;第3题 题 号:2 51/*-【程序改错】功能:用起泡法对连续输入的十个字符排序后按从
5、小到大的次序输出.#i n c l ud e t t i n c l ud e#d e f i n e N 1 0s o r t(c h a r s t r N)i n t i,j;c h a r t;f o r(j=l;jN;j+)/*FOUND*/f o r (i=0;i N-j;i-)/*FOUND*/i f (s t r i s t r i+1 )(t=s t r i ;s t r i =s t r i+l ;s t r i+l =t;m a i n()(i n t i;c h a r s t r N;f o r(i=0;i N;i+)/*FOUND*/s c a n f (“枇,s
6、t r i );/*F0 UND*/s o r t(s t r N);f o r(i=0;i N;i+)p r i n t f (/z%c/z,s t r i );p r i n t f(n);答案:1).f o r(i=0;i s t r i+l )或 i f(s t r i+l s t r i j)3).s c a n f (z/%cz/,&s t r i );4).s o r t (s t r);第4题题号:43 7/*-【程序改错】功能:输入字符序列,字 符 序 列 以 特 殊 字 符 结 束。程序从前向后依次读入字符,并翻译出新的字符输出。翻译的规则是:如果当前读入的字符是数字符,如
7、果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入的字符不是数字符,则输出该字符。输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。翻译直 至 当 前 读 入 的 字 符 为 字 符,结束翻译和输出。#i n c l ud e vo i d m a i n()(c h a r c h,n c h;i n t c o un t;i n t k;p r i n t f (,zEn t e r s t r i n g.n,z);s c a n f(c”,&c h);/*FOUND*/wh i l e(c h=,#,)(i f (c h=O&c h=9)(/*
8、FOUND*/c o un t=c h,O-1;s c a n f(%c,&n c h);f o r(k=0;k c o un t;k+)p r i n t f (z,%cz/,n c h);/*FOUND*/p r i n t f c h);p r i n t f C );s c a n f (c,&c h);p r i n t f (,,#n,/);)答案:1).wh i l e (c h !=,)2).c o un t=c h,O+1;3).p r i n t f (/z%cz,,c h);第5题题号:3 90/*-【程序改错】功能:输入一个字符串,过滤此串,滤掉字母字符,并统计新生成串
9、中包含的字符个数。例如:输入的字符串为a b2 3 4$d f 4,则输出为:Th e n e w s t r i n g i s 2 3 4$4Th e r e a r e 5 c h a r i n t h e n e w s t r i n g.。-*/t t i n c l ud e#i n c l ud e#d e f i n e N 80i n t f un(c h a r *p t r)(i n t i,j;/*FOUND*/f o r(i=0,j=O;*(p t r+i)!=0;i+)/*FOUND*/i f(*(p t r+i)z,|*(p t r+i)Z|*(p t r+i
10、)0?;i+)2).i f(*(p t r+i),z,|*(p t r+i),a&*(p t r+i)y 7:3).*(p t r+j)=*(p t r+i);*(p t r+i),A,)第6题 题 号:3 96/*-【程序改错】功能:将整型数组中所有小于0的元素放到所有大于0的元素的前面(要求只能扫描数组一次)。-*/#i n c l ud e#d e f i n e Ma x 1 0 0vo i d f un(i n t a ,i n t n)(/*FOUND*/i n t i=5;j=n-l,t e m p;wh i l e(i j)(wh i l e (a i =0)/*FOUND*/
11、j+;/*FOUND*/i f(i j)t e m p=a i ;a i =a j;a j=t e m p;vo i d m a i n ()s t a t i c a =l,-3,-1,3,2,4,-4,5,-5,-2),n=1 0,i;f un (a,n);f o r(i=0;i 1 0;i+)p r i n t f (%d ,a i );)答案:1).i n t i=0 ,j=n-l ,t e m p ;2).j;3).第7题 题 号:5/*-【程序改错】功能:求如下表达式:1 1 1S =1 +-+-+.+-1+2 1+2+3 1+2+3+.+n-*/#i n c l ud e m a
12、 i n()(i n t n;d o ubl e f un();p r i n t f (Z,P1 e a s e i n p ut a n um be r:z z);/*FOUND*/p r i n t (,z%d,z,n);p r i n t f (/z%1 0.6f n”,f un(n);/*FOUND*/f un(i n t n)int i,j,t;double s;s=0;/*FOUND*/while(i=l;i=n;i+);(t=0;for(j=l;j=i;j+)t=t+j;/*F0UND*/=s+l/t;)return s;)答案:1).scanf&n);2).double fu
13、n(int n)3).for(i=l;i=i;i+)或 for(i=l;ii;i+)4).s+=l.0/t;或 s=s+1.0/(float)t;或 s=s+1.0/t;或 s+=l.0/(float)t;或s+=l.0/(double)t;或 s=s+1.0/(double)t;第 8 题 题 号:387/*-【程序改错】功能:判断字符ch是否与s t r 所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。*/ttinclude#include include/*F0UND*/void fun(char str,char ch)while(*str&*str!=ch)s
14、tr+;/*F0UND*/if(*str=ch)s t r 0 =c h;/*FOUND*/s t r 1 =O;m a i n()c h a r s 81 ,c ;p r i n t f (n Pl e a s e e n t e r a s t r i n g:nz/);g e t s (s );p r i n t f (n Pl e a s e e n t e r t h e c h a r a c t e r t o s e a r c h :);c =g e t c h a r ();f un(s,c);p r i n t f(n Th e r e s ul t i s%s n,s)
15、;答案:1).vo i d f un(c h a r *s t r,c h a r c h )2).i f (*s t r =0)3).s t r l =0;第9题 题 号:40 1/*-【程序改错】功能:编写函数f un计算下列分段函数的值:x*x+x x0 且 xW-3f (x)=x*x+5x 0 x1 0 且 xW2 及 xW3x*x+x-l 其它-*/#i n c l ud e d o ubl e f un(f l o a t x)/*FOUND*/d o ubl e y/*FOUND*/i f (x=0&x1 0.0&x!=2.0&x!=3.0)y=x*x+5*x;e l s ey=
16、x*x+x-l;/*F0 UND*/r e t ur n x;)m a i n ()(d o ubl e f;f l o a t x;p r i n t f(i n p ut x二 );s c a n f&x);f=f un(x);p r i n t f (x=%f,f (x)=%f nz,,x,f);)答案:1).f l o a t y;2).i f (x0&x!=-3.0)3).r e t ur n y;第1 0题 题 号:43 5/*-【程序改错】功能:输入 n,计算 s=l+l+2+l+2+3+l+2+3+4+.+1+2+3+4+.+n-*/#i n c l ud e vo i d m
17、 a i n ()/*FOUND*/i n t i,s;p,n;p r i n t f(En t e r n:n);/*F0 UND*/s c a n f (%d ,n);/*F0 UND*/f o r(s=p=0,i=l;i n;i+)s+=p+=i;p r i n t f (Z/S=%d nz,,s);)答案:1).i n t i,s,p,n;2).s c a n f&n);3).f o r(s=p=0,i=l;i=n;i+)第1 1题 题 号:42 6/*-【程序改错】功能:80 9*?=80 0*?+9*?+1其中??代表的两位数,8*?的结果为两位数,9*?的结果为3位数。求?代表的
18、两位数,及80 9*?后的结果。i n c l ud e o ut p ut (l o n g b,l o n g i)(p r i n t f (/n%l d=80 0*%l d+9*%l d+l n/,b,i,i);p r i n t f(?代表的两位数:%d ,i);p r i n t f (n 80 9*?后的结果:%d”,b);g e t c h O;m a i n()(/*FOUND*/l o n g i n t a;b;i;a=80 9;/*FOUND*/f o r(i=1 0;i=l 0 0 0&b=l 0 0 0 0&8*i =1 0 0)o ut p ut (b,i);)答
19、案:1).l o n g i n t a ,b,i ;2).f o r(i=1 0;i 1 0 0;i+)或 f o r(i=1 0;i=99;i+)3).b=i*a +1 ;或 b=a*i +1 ;第 1 2 题 题 号:3 80/*-【程序改错】功能:输入两个双精度数,函数返回它们的平方和的平方根值。例如:输 入:22.936 和 14.121,输 出 为:y =26,934415。#in c lu d e#in c lu d e t t in c lu d e /*F O U N D*/d o u b le f u n (d o u b le *a,*b)(d o u b le c;/*
20、F 0U N D*/c =s q r(a*a +b*b);/*FOUND*/r e t u r n *c;)ma in ()(d o u b le a,b,y;p r in t f (En t e r a,b :);s c a n f r%lf%lfz,,&a,&b );y =f u n (&a,&b);p r in t f (y =%f n ,y );答案:1).d o u b le f u n (d o u b le *a,d o u b le *b)2).c =s q r t (*a *a +*b *b);3).r e t u r n c;第 13题 题 号:416/*-【程序改错】功能
21、:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。-*/#in c lu d e ma in ()(in t i=5;v o id p a l in (in t n);p r in t f(40:);p a lin(i);p r in t f(n);v o id p a l in(n)in t n;(/*FOUND*/in t n e x t;if(n=l)(/*FOUND*/n e x t!=g e t c ha r();p r in t f C n O);p u t c ha r(n e x t);)e ls en e x t=g e t c ha r();/*FOUND*/
22、p a lin(n);p u t c ha r(n e x t);答案:1).c ha r n e x t;2).n e x t=g e t c ha r ();3).p a lin (n-l);第 14题 题 号:257【程序改错】功能:编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如:假定输入的字符串为:a s d a s a s d f g a s d a s z x 67a s d mklo,字符串为:a s d,则应输出n=40-*/#in c lu d e#in c lu d e#in c lu d e in t f u n(c ha r *s t
23、r,c ha r *s u b s t r)(/*F O U N D*/u n s ig n e d in t i,n=0/*FOUND*/f o r(i=0;i=s t r le n(s t r);i+)if (s t r i=s u b s t r 0)&(s t r i+l=s u b s t r l)&(s t r i+2=s u b s t r 2)/*FOUND*/+i;r e t u r n n;)ma in()(c ha r s t r 81,s u b s t r 4;in t n;p r in t f (输入主字符串:);g e t s(s t r);p r in t f
24、(输入子字符串:);g e t s (s u b s t r);p u t s (s t r);p u t s (s u b s t r);n=f u n(s t r,s u b s t r);p r in t f (n二%d n ,n);)答案:1).u n s ig n e d in t i,n=0;2).f o r(i=0;i=s t r le n(s t r)-3;i+)或 f o r(i=0;is t r le n(s t r)-2;i+)3).n+;或 n+=l;或 n=n+l;或+n;第 15题 题 号:258/*-【程序改错】功能:在键盘上输入一个3 行 3 列矩阵的各个元素的
25、值(值为整数),后输出矩阵第一行与第三行元素之积,并在f u n ()函数中输出。-*/#in c lu d e in t f u n(in t a 3 3)(in t i,j,s u m;/*F O U N D*/s u m=0;/*F O U N D*/f o r (i=0;i3;i+)f o r(j=0;j3;j+)/*F O U N D*/s u m=*a i j;r e t u r n s u m;ma in ()(in t i,j,s,a 3 3;f o r(i=0;i3;i+)f o r(j=0;j3;j+)s c a n f&a i j);s=f u n(a);p r in l
26、f(S u n n%d n ,s);答案:1).s u m=l;2).f o r(i=0;i3;i+=2)或 f o r(i=0;i3;i=i+2)或 f o r(i=0;i3;i+,i+)3).s u m=s u m*a i j;或 s u m*=a i j;第16题 题 号:419/*-【程序改错】功能:一个5位数,判断它是不是回文数。即 12321是回文数,个位与万位相同,十位与千位相同。-*/#in c lu d e ma in()/*FOUND*/lo n g g e,s hi,q ia n;w a n,x;s c a n f (ld ,&x);/*F O U N D*/w a n=
27、x%10000;q ia n=x%10000/1000;s hi=x%100/10;g e=x%10;/*F O U N D*/if (g e-w a n|s hi-q ia n)p r in t f (z/t his n u mb e r is a hu iw e n n);e ls ep r in t f (z,t his n u mb e r is n o t a hu iw e n n);)答案:1).lo n g g e,s hi,q ia n,w a n,x;2).w a n=x/10000;3).if (g e=w a n&s hi=二 q ia n)或 if (s hi=q i
28、a n&g e=w a n)第17题 题 号:442/*-【程序改错】功能:写一个函数,求一个字符串的长度,在 ma in 函数中输入字符串,并输出其长度。-*/#in c lu d e#in c lu d e in t le n g t h(p)c ha r *p;(in t n;n=0;/*F O U N D*/w hile(*p=,0*)(n+;p+;r e t u r n n;ma in()(in t le n;/*FOUND*/c ha r *s t r 20;p r in t f (,zp le a s e in p u t a s t r in g:nz,);s c a n f(
29、%s,s t r);/*F O U N D*/le n-le n g t h(s t r);p r in t f (/zt he s t r in g ha s%d c ha r a c t e r s./z,le n);)答案:1).w hile(*p!=0*)或 w hile(*p)或 w hile(*p!=O)或 w hile(*p!=N U L L)2).c ha r s t r 20;3).le n=le n g t h(s t r);第18题 题 号:29/*-【程序改错】功能:将字符串s中最后一次出现的子字符串t l替换成字符串t 2,所形成的新串放在w所指的数组中,在此处,要求
30、t l和t 2所指字符串的长度相同。例 如:当s所指字符串中的内容为a b c d a b f a b c”,t l中的内容为a b”,t 2中的内容为99时,结果w所指数组中的内容应为a b c d a b f 99c 。-*/#in c lu d e#in c lu d e#in c lu d e v o id f u n (c ha r *s,c ha r *t l,c ha r *t 2,c ha r *w)(c ha r *p ,*r,*a;s t r c p y(w,s );/*F 0U N D*/w hile (w )(p =w;r =t l;w hile (*r )/*FOUN
31、D*/if (*r =*p )(r+;P+;e ls eb r e a k;/*F 0U N D*/if (*r =/O )a =w;w+;r =t 2;w hile (*r )(/*F O U N D*/a =*r;a+;r+;)ma in ()c ha r s 100,t l 100,t 2 100,w 100;p r in t f (n P le a s e e n t e r s t r in g S:);s c a n f (级s ,s);p r in t f (z z n P le a s e e n t e r s u b s t r in g t l:);s c a n f(%
32、s ,t l);p r in t f CAn P le a s e e n t e r s u b s t r in g t 2:);s c a n f(%s ,t 2);if (s t r le n(t l)=s t r le n(t 2)(f u n(s,t l,t 2,w);p r in t f (,z n T he r e s u lt is :%s n ,w);)e ls ep r in t f (z z n Er r o r :s t r le n(t l)!=s t r le n(t 2)n/z);)答案:1).w hile (*w)或 w hile (*w!=0)或 w hil
33、e (*w!=,0*)或 f o r (;*w;)或 f o r(;*w!=0;)2).if (*r =*p )3).if (*r =0)a =w;或 if (*r =0)a =w;4).*a=*r;第 19题 题 号:410/*-【程序改错】功能:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-*/#in c lu d e ma in()(c ha r c;in t le t t e r s=0,s p a c e=0,d ig it=O,o t he r s=0;p r in t f(p le a s e in p u t s o me c ha r a c t e r
34、 s、);/*F O U N D*/w hile(c=g e t c ha r()=n,)(/*FOUND*/if (c=,a&c=,A&c =O&c=a&c=A&c=Z)或 if(c=a I|c=A&c二 Z )或 if(c 二a I I c=A&c=,Z?)3).else if(c=,)第20题 题 号:20/*-【程序改错】功能:根据以下公式求五值,并作为函数值返回。例如:给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。n 1 1 2 1 2 3 1 2 3 4=1 +X-+X-X +-X-X-X 一+2 3353573579-*/#include double
35、 fun(double eps)(double s,t;int n=l;s=0.0;t=l;/*F0UND*/whi1e(t e p s)或 w hi1e(e p s =e p s)或 w hile(e p s e p s)或 w hile (e p s =e p s)或 w hile (e p s=t)2).t=t*n/(2*n+l);或 t=l.0*n/(2*n+l)*t;或 t=n/(2*n+l.0)*t;或 t=n/(2.0*n+l)*t;或 t=n/(2.0*n+l.0)*t;或 t=l.0*n/(2.0*n+l.0)*t;3).r e t u r n 2*s ;或 r e t u
36、r n (2*s);或 r e t u r n(2*s);或 r e t u r n (s*2);或r e t u r n (s*2);第21题 题 号:407【程序改错】功能:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上.5,然 后 除 以10的余数代替该位数字。再将新生成数据的第一位和第四位交换,第二位和第三位交换。例如:输入一个四位整数1234,则 结 果 为:9876o-*/#in c lu d e ma in()in t a,i,a a 4,t;p r in t f(输入一个四位整数:);/*FOUND*/s c a n f a)
37、;a a 0=a%10;/*FOUND*/a a l=a%100%10;a a 2=a%1000/100;a a 3=a/1000;/*FOUND*/f o r(i=0;i3;i+)a a i+=5;a a i%=10;)f o r (i=0;i=0;i-)p r in t f a a i);答案:1).s c a n f&a);2).a a l=a%100/10;3).f o r(i=0;i=3;i+)或 f o r(i=0;i4;i+)第 22题 题 号:28/*-【程序改错】功能:实现两个字符串的连接。例如:输入d f d f q e 和 12345时,则输出d f d f q e 12
38、345.-/#in c lu d e ma in ()c ha r s i 80,s 2 80;v o id s c a t (c ha r s i ,c ha r s 2 );g e t s (s i);g e t s(s 2);s c a t (s i,s 2);p u t s(s l);)v o id s c a t (c ha r s i ,c ha r s 2 )in t i=0,j=0;/*FOUND*/w hile(s l i=0)i+;/*FOUND*/w hile(s 2 j=0)(/*F O U N D*/s 2 j=s l i;i+;j+;)/*FOUND*/s 2 j=
39、(r ;)答案:1).w hile(s i i !=0)或 w hile(s l i)或 w hile(s i i !=0)2).w hile(s 2 j !=0)或 w hile(s 2 j)或 w hile(s 2 j !=0)3).s l i=s 2 j;4).s i i=0,;或*(s l+i)=0;或 s l i=O;第 23题 题 号:381/*-【程序改错】功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如:输入圆的半径值:19.527输出为:s =598.950017。-*/#in c lu d e#in c lu d e /*F 0U N D*
40、/d o u b le f u n (r)(d o u b le s;/*FOUND*/s=l/2*3.14159*r *r;/*FOUND*/r e t u r n r;)ma in()f lo a t x;p r in t f (En t e r x:);s c a n f (%f,&x);p r in t f (s =%f n ,f u n (x );)答案:1).f lo a t f u n(f lo a t r)或 d o u b le f u n(f lo a t r)或 d o u b le f u n(d o u b le r)2).s=l.0/2*3.14159*r *r;3
41、).r e t u r n s;第24题 题 号:6/*-【程序改错】功能:利用二维数组输出如图所示的图形。*-*/#inc l u de#inc l u de/*F 0U N D*/#define N=7m ain()(c har a N N ;int i,j,z;fo r(i=0;iN;i+)fo r(j=0;jN;j+)/*FOUND*/a i j =;z=0;fo r(i=0;i(N+l)/2;i+)fo r(j=z;jN-z;j+)a i j=*;z=z+l;)/*FOUND*/z=0;fo r(i=(N+l)/2;iN;i+)z=zT;fo r(j=z;jN-z;j+)fo r(i
42、=0;iN;i+)fo r(j=0;jN;j+)/*FOUND*/p r int f a i j);p r int f(n):)答案:1).t t define N 72).3).z=zT;或 z-;或 z=-l+z;4).p r int f C%c*,a i j);第 25 题 题号:38 2/*-【程序改错】功能:求两个形参的乘积和商数,并通过形参返回调用程序。例如:输入:61.8 2 和 12.65,输出为:c =7 8 2.023000d=4.8 8 695 7-*/#inc l u de#inc l u de/*F 0U N D*/v o id fu n(do u b l e a,b
43、,do u b l e*x,do u b l e*y)/*FOUND*/x=a*b;/*F O U N D*/y=a/b;)m ain()(do u b l e a,b,c,d;p r int f(E nt er a,b :);s c anf(断&a,&b );fu n(a,b,&c,&d);p r int f C c =%f d=%f n,c,d);)答案:1).v o l d fu n(do u b l e a,do u b l e b,do u b l e*x,do u b l e*y)2).*x=a*b;3).*y=a/b;第26题 题 号:413/*-【程序改错】功能:读取7个 数(
44、1-5 0)的整数值,每读取一个值,程序打印出该值个数的*。-*/#inc l u de m ain()(int i,a,n=l;/*F O U N D*/w hil e(n7)(do(s c anf&a);)/*F 0U N D*/w hil e(a5 0);/*F O U N D*/fo r(i=0;i=a;i+)p r int f(*);p r int f(n);n+;)答案:1).w hil e(n=7)或 w hil e(n8)2).w hil e(a5 0);或 w hil e(a5 0|al);3).fo r(i=l;i=a;i+)第27题 题 号:395/*-【程序改错】功能:
45、使数组左下三角元素中的值乘以n o-*/t t inc l u de#inc l u de t t inc l u de#define N 3v o id fu n(int a N ,int n)(/*FOUND*/int i;j;fo r(i=0;i N;i+)/*FOUND*/fo r(j=0;jN;j+)/*F 0U N D*/a im ain()int a N N ,n,i,j;p r int f(*T he ar r ay*n);fo r (i=0;i3;i+)fo r (j=0;j=5|nl );p r int fCn=%4d n,n);fu n(a,n);p r int f(*T
46、 H E R E S U L T *n);fo r (i=0;i3;i+)(fo r (j=0;j3;j+)p r int f(%4d,a i j);p r int f(n);答案:1).int i,j;2).fo r(j=0;j=i;j+)3).a i j*=n;第28题 题 号:445/*【程序改错】功能:一个已排好序的一维数组,输入一个数nu m b er,要求按原来排序的规律将它插入数组中.-*/#inc l u de m ain()(int a l l =l,4,6,9,13,16,19,28,40,100;int t em p i,t em p 2,nu m b er,end,i,
47、j;/*F 0U N D*/fo r(i=0;iend)/*FOIND*/a l l =nu m b er;el s e(fo r(i=0;i10;i+)(/*F(O D*/if(a i nu m b er)(t em p l=a i;a i=nu m b er;fo r(j=i+l;jl l;j+)t em p 2=a j;a j=t em p l;t em p l=t em p 2;)b r eak;)fo r(i=0;il l;i+)p r int f(z/%6d,z,a i);)答案:1).fo r(i=0;i10;i+)或 fo r(i=0;inu m b er)第 29题 题号:3
48、99/*-【程序改错】功能:编写函数fu n求 20以内所有5的倍数之积。-/inc l u de define N 20int fu n(int m)(/*FOUND*/int s=0,i;fo r(i=l;iN;i+)/*FOUND*/if(i%m=0)/*FOUND*/s=*i;r et u r n s;)m ain()(int s u m;s u m 二 fu n ;p r int f(z,%d 以内所有%(1 的倍数之积为:%d n,z,N,5,s u m);)答案:1).int s=l ,i;2).if(i%m=0)3).s=s*i;或 s=i*s;或 s*二 i;第 30题 题
49、号:17/*-【程序改错】功能:计算并输出k 以内最大的10个能被13或 17 整除的自然数之和。k 的值由主函数传入。例如:若 k 的值为5 00,则函数值为4622。-*/#inc l u de int fu n(int k)int m 二 0,m e二 0;/*F O U N D*/w hil e(k=2)I (m c 10)/*F O U N D*/if(k%13=0)|(k%17=0)(m=m+k;m c+;)/*F O U N D*/k+;/*FOUND*/r et u r n;)m ain()p r int f(%d n”,fu n(5 00);答案:1).w hil e(2=k
50、)&(m c=2)&(m c 10)或 w hil e(2=k)&(m c=2)&(m c=9)2).if(!(k%17!=0|k%13!=0)或 if(k%13=0|k%17=0)3).k一;或 k=k-l;或 k-=l;4).r et u r n m;或 r et u r n(m);第 31题 题 号:418/*-【程序改错】功能:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。-*/t t inc l u de m ain()(/*FOUND*/l o ng a,b,c,d,e,x,s c anf&x);a=x/10000;/*FOUND*/b=x/10000