大学计算机C语言程序设计(程序改错).pdf
《大学计算机C语言程序设计(程序改错).pdf》由会员分享,可在线阅读,更多相关《大学计算机C语言程序设计(程序改错).pdf(143页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、程序 改 错 共 137题第 1题 题 号:15/*-【程序改错】功能:根据整型形参m 的值,计算如下公式的值。1 1 1t=1-2x2 3x3 mxm例如:若 m=5,则应输出:0.536 389-*/#include double fun(int m)(double y=l.0;int i;/*FOUND*/for(i=2;im;i一)/*FOUND*/y-=l/(i*i);/*F0UND*/return m;)main()(int n=5;printf(/znthe result is%lfnz/,fun(n);)答案:1).for(i=2;i=i;i+)或 for(i=2;im+l
2、;i+)或for(i=2;ii;i+)或 for(i=2;l+mi;i+)2).y-=l.0/(i*i);或 y=y-1.0/(i*i);或 y-=l.0/(float)(i*i);或y=y-l.0/(float)(i*i);或 y=y-l.0/i/i;或 y=y-l.0/(float)i/(float)i;或y=y-l/(double)(i*i);或 y-=l/(double)(i*i);3).return y;或 return(y);或 return(y);第 2 题 题 号:36 2/*-【程序改错】功能:删除字符串S中的所有空白字符(包括Tab字符、回车符及换行符)。输 入 字 符 串
3、 时 用 结 束 输 入。-*/t+include#include include fun(char*p)(int i,t;char c8 0;/*FOUND*/fo r(i=1,t=0;pi;i+)/*F0UND*/if(!isspace(p+i)ct+=pi;/*FOUND*/ct=0;strcpy(p,c);)m ain()(char c,s8 0;int i=0;printf(input a string:);c=getchar();while(c!=,#)(si=c;i+;c=getchar();si=0;fun(s);puts(s);)答案:1).fo r(i=0,t=0;pi;i
4、+)2).if(!isspace(*(p+i)ct+=pi;3).ct=,0J;第3题 题 号:2 5 1/*-【程序改错】功能:用起泡法对连续输入的十个字符排序后按从小到大的次序输出.#include ttinclude#define N 1 0so rt(char strN)int i,j;char t;fo r(j=l;j N;j+)/*FOUND*/fo r(i=0;i N-j;i-)/*FOUND*/if(stri stri+1)(t=stri;stri=stri+l;stri+l=t;m ain()(int i;char strN;fo r(i=0;i N;i+)/*FOUND*/
5、scanf(“枇,stri);/*F0UND*/so rt(strN);fo r(i=0;i N;i+)printf(/z%c/z,str i);printf(n);答案:1).fo r(i=0;i stri+l)或 if(stri+l strij)3).scanf(z/%cz/,&stri);4).so rt(str);第4题题号:4 3 7/*-【程序改错】功能:输入字符序列,字 符 序 列 以 特 殊 字 符 结 束。程序从前向后依次读入字符,并翻译出新的字符输出。翻译的规则是:如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入
6、的字符不是数字符,则输出该字符。输出时,以上述一次翻译为一组,不同组间输出用一个空白字符隔开。翻译直 至 当 前 读 入 的 字 符 为 字 符,结束翻译和输出。#includevo id m ain()(char ch,nch;int co unt;int k;printf(/zE nter string.nz/);s c a n f&c h);/*FOUND*/while(ch=,#)(if(ch=0&ch O -1;scanf(%c,&nch);fo r(k=0;k co unt;k+)printf(%c,nch);else/*FOUND*/printf ch);printf();sca
7、nf(%c,&ch);printf(,,#n,/);)答案:1).while(ch!=,)2).co unt=ch,O +1;3).printf(/z%cz,,ch);第5题题号:3 90/*-【程序改错】功能:输入一个字符串,过滤此串,滤掉字母字符,并统计新生成串中包含的字符个数。例如:输入的字符串为ab2 3 4$df4,则输出为:The new string is 2 3 4$4There are 5 char in the new string.。-*/ttinclude#include#define N 8 0int fun(char*ptr)(int i,j;/*FOUND*/fo
8、 r(i=0,j=O;*(ptr+i)!=0;i+)/*FOUND*/if(*(ptr+i)z,|*(ptr+i)Z|*(ptr+i)0?;i+)2).if(*(ptr+i),z,|*(ptr+i),a&*(ptr+i)y 7:3).*(ptr+j)=*(ptr+i);*(ptr+i),A,)第6题 题 号:3 96/*-【程序改错】功能:将整型数组中所有小于0的元素放到所有大于0的元素的前面(要求只能扫描数组一次)。-*/#include#define Max 1 00vo id fun(int a,int n)(/*FOUND*/int i=5;j=n-l,tem p;while(i j)
9、(whi le(ai =0)/*FOUND*/j+;/*FOUND*/if(i j)tem p=ai;ai=aj;aj=tem p;vo id m ain()static a=l,-3,-1,3,2,4,-4,5,-5,-2),n=1 0,i;fun(a,n);fo r(i=0;i 1 0;i+)printf(d ,ai);)答案:1).int i=0,j=n-l,tem p;2).j;3).第7题 题 号:5/*-【程序改错】功能:求如下表达式:1 1 1S=1 +-+-+.+-1+2 1+2+3 1+2+3+.+n-*/#include m ain()(int n;do uble fun(
10、);printf(Z,P1 ease input a num ber:z z);/*FOUND*/print(,z%d,z,n);printf(/z%1 0.6fn”,fun(n);/*FOUND*/fun(int 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 fun(int n)3).for(i=l;i=i;i+)或 for(i=l;ii;i+)4).s+=l.0/t;或 s=s+
11、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)str+;/*F0UND*/if(*str=ch)str 0 =ch;/*FOUND*/str 1=O;m ain()ch
12、ar s 8 1,c;printf(nPlease enter a string:nz/);gets(s);printf(n Please enter the character to search:);c=getchar();fun(s,c);printf(nThe result is%sn,s);答案:1).vo id fun(char*str,char ch)2).if(*str=0)3).strl=0;第9题 题 号:4 01/*-【程序改错】功能:编写函数fun计算下列分段函数的值:x*x+x x 0 且 xW-3f(x)=x*x+5 x 0 x 1 0 且 xW2 及 xW3x*x
13、+x-l 其它-*/#include do uble fun(flo at x)/*FOUND*/do uble y/*FOUND*/if(x=0&x 1 0.0&x!=2.0&x!=3.0)y=x*x+5*x;elsey=x*x+x-l;/*F0UND*/return x;)m ain()(do uble f;flo at x;printf(input x二 );scanf&x);f=fun(x);printf(x=%f,f(x)=%fnz,,x,f);)答案:1).flo at y;2).i f(x 0&x!=-3.0)3).return y;第1 0题 题 号:4 3 5/*-【程序改错
14、】功能:输入 n,计算 s=l+l+2+l+2+3+l+2+3+4+.+1+2+3+4+.+n-*/#includevo id m ain()/*FOUND*/int i,s;p,n;printf(E nter n:n);/*F0UND*/scanf(%d,n);/*F0UND*/fo r(s=p=0,i=l;i n;i+)s+=p+=i;printf(Z/S=%dnz,,s);)答案:1).int i,s,p,n;2).scanf&n);3).fo r(s=p=0,i=l;i=n;i+)第1 1题 题 号:4 2 6/*-【程序改错】功能:8 09*?=8 00*?+9*?+1其中??代表的
15、两位数,8*?的结果为两位数,9*?的结果为3位数。求?代表的两位数,及8 09*?后的结果。include o utput(lo ng b,lo ng i)(printf(/n%ld=8 00*%ld+9*%ld+ln/,b,i,i);printf(?代表的两位数:%d,i);printf(n8 09*?后的结果:%d”,b);getchO;m ain()(/*FOUND*/lo ng int a;b;i;a=8 09;/*FOUND*/fo r(i=1 0;i=l000&b=l0000&8*i =1 00)o utput(b,i);)答案:1).lo ng int a,b,i;2).fo
16、r(i=1 0;i 1 00;i+)或 fo r(i=1 0;i=99;i+)3).b=i*a+1 ;或 b=a*i+1 ;第1 2题 题 号:3 8 0/*-【程序改错】功能:输入两个双精度数,函数返回它们的平方和的平方根值。例如:输入:2 2.93 6 和 1 4.1 2 1,输出为:y =2 6,93 4 4 1 5。-*/#include#include ttinclude/*FOUND*/do uble fun(do uble*a,*b)(do uble c;/*F0UND*/c=sqr(a*a+b*b);/*FOUND*/r e t u r n *c;)m ai n ()(d o
17、u b l e a,b,y;p r i n t f (z,E n t e r a,b :);s c an f (z,%l f%l fz,,&a,&b );y =f u n (&a,&b);p r i n t f (y =%f n,y );答案:1).d o u b l e f u n (d o u b l e *a,d o u b l e *b)2).c =s q r t (*a*+*b *b);3).r e t u r n c;第13题 题 号:4 16/*-【程序改错】功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。-*/#i n c l u d e m ai n ()
18、(i n t i=5;vo i d p al i n (i n t n);p r i n t f(4 0:);p al i n(i);p r i n t f(n);vo i d p al i n(n)i n t n;(/*FOUND*/i n t n e x t;i f(n =l)(/*FOUND*/n e x t!=g e t c h ar();p r i n t f C n O );p u t c h ar(n e x t);)e l s en e x t=g e t c h ar();/*FOUND*/p al i n(n);p u t c h ar(n e x t);答案:1).c h
19、 ar n e x t;2).n e x t=g e t c h ar ();3).p al i n (n-l);第 14题 题 号:257【程序改错】功能:编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。例如:假定输入的字符串为:as d as as d f g as d as zx 6 7 as d m k l o,字符串为:as d,则应输出n=4 0-*/#i n c l u d e#i n c l u d e#i n c l u d e i n t f u n(c h ar *s t r,c h ar *s u b s t r)(/*F O UN D*/u
20、 n s i g n e d i n t i,n=0/*FOUND*/f o r(i=0;i =s t r l e n(s t r);i+)i f (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;)m ai n()(c h ar s t r 8 1,s u b s t r 4;i n t n;p r i n t f (输入主字符串:);g e t s(s t r);p r i n t f (输入子字符串:);g e t s (s u b s
21、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 i n t f (n二%d n ,n);)答案:1).u n s i g n e d i n t i,n=0;2).f o r(i=0;i =s t r l e n(s t r)-3;i+)或 f o r(i=0;i s t r l e n(s t r)-2;i+)3).n+;或 n+=l;或 n=n+l;或+n;第 15 题 题 号:2 5 8/*-【程序改错】功能:在键盘上输入一个3 行 3 列矩阵的各个元素的值(值为整数),后输出矩阵第一行与
22、第三行元素之积,并在f u n ()函数中输出。-*/#i n c l u d e i n t f u n(i n t a3 3)(i n t i,j,s u m;/*F O UN D*/s u m=0;/*F O UN D*/f o r (i=0;i 3;i+)f o r(j=0;j 3;j+)/*F O UN D*/s u m=*ai j;r e t u r n s u m;m ai n ()(i n t i,j,s,a3 3;f o r(i=0;i 3;i+)f o r(j=0;j 3;j+)s c an f&ai j);s=f u n(a);p r i n l f(S u n n%d
23、n ,s);答案:1).s u m=l;2).f o r(i=0;i 3;i+=2)或 f o r(i=0;i 3;i=i+2)或 f o r(i=0;i 3;i+,i+)3).s u m=s u m*ai j;或 s u m*=ai j;第16题 题 号:419/*-【程序改错】功能:一 个5位数,判断它是不是回文数。即12 3 2 1是回文数,个位与万位相同,十位与千位相同。#i n c l u d e m ai n()/*FOUND*/l o n g g e,s h i,q i an;wan,x;s c an f (l d ,&x);/*F O UN D*/wan=x%10000;q i
24、 an=x%10000/1000;s h i=x%100/10;g e=x%10;/*F O UN D*/i f (g e-wan|s h i-q i an)p r i n t f (z/t h i s n u m b e r i s a h u i we n n);e l s ep r i n t f (z,t h i s n u m b e r i s n o t a h u i we n n);)答案:1).l o n g g e,s h i,q i an,wan,x;2).wan=x/10000;3).i f (g e=wan&s h i=二q i an)或 i f (s h i =q
25、 i an&g e=wan)第17题 题 号:442/*-【程序改错】功能:写一个函数,求一个字符串的长度,在m ai n函数中输入字符串,并输出其长度。-*/#i n c l u d e#i n c l u d e i n t l e n g t h(p)c h ar *p;(i n t n;n=0;/*F O UN D*/wh i l e(*p=,0*)(n+;p+;r e t u r n n;m ai n()(i n t l e n;/*FOUND*/c h ar *s t r 2 0;p r i n t f (,zp l e as e i n p u t a s t r i n g:n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 语言程序设计 程序 改错
限制150内