全国计算机二级C语言程序改错题(-100%全中必过).doc

上传人:豆**** 文档编号:34301970 上传时间:2022-08-16 格式:DOC 页数:70 大小:328.50KB
返回 下载 相关 举报
全国计算机二级C语言程序改错题(-100%全中必过).doc_第1页
第1页 / 共70页
全国计算机二级C语言程序改错题(-100%全中必过).doc_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《全国计算机二级C语言程序改错题(-100%全中必过).doc》由会员分享,可在线阅读,更多相关《全国计算机二级C语言程序改错题(-100%全中必过).doc(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流全国计算机二级C语言程序改错题(-100%全中必过)【精品文档】第 70 页目录题目一前N项和问题3题目二SS字符串问题4题目三 变量互换问题14题目三 变量互换问题25题目三 变量互换问题35题目四 最大公约数问题6题目五 长数变短数17题目五 长数变短数27题目五 长数变短数38题目五 长数变短数49题目五 长数变短数59题目五 长数变短数610题目五 长数变短数711题目五 长数变短数811题目五 长数变短数912题目六斐波拉契数列13题目七 链表114题目七 链表215题目七 链表316题目七 链表417题目八非素数问题19题目九 排序问题119

2、题目九 排序问题220题目九 排序问题321题目九 排序问题422题目九 排序问题523题目九 排序问题624题目九 排序问题625题目九 排序问题726题目十平均值问题126题目十平均值问题227题目十平均值问题328题目十平均值问题429题目十平均值问题530题目十一字符串连接130题目十一字符串连接231题目十一字符串连接332题目十一字符串连接432题目十二求和问题133题目十二求和问题234题目十二求和问题335题目十二求和问题436题目十二求和问题537题目十二求和问题637题目十二求和问题738题目十二求和问题839题目十二求和问题939题目十二求和问题1040题目十二求和问题1

3、141题目十二求和问题1242题目十二求和问题1342题目十二求和问题1443题目十二求和问题1544题目十二求和问题1644题目十二求和问题1745题目十二求和问题1845题目十二求和问题1946题目十三整数问题47题目十四字符串逆置48题目十五进制转换148题目十五进制转换249题目十六素数问题150题目十六素数问题250题目十六素数问题351题目十六素数问题452题目十六素数问题553题目十七删除字符串中指定项153题目十七删除字符串中指定项254题目十八最小公倍数问题55题目十九 字符串替换问题155题目十九 字符串替换问题256题目二十找最长字符串57题目二十一 数组问题158题目二

4、十一 数组问题259题目二十一 数组问题360题目二十二求平方根问题61题目二十三短字符串变长字符串161题目二十三短字符串变长字符串262题目二十三短字符串变长字符串363题目二十三短字符串变长字符串464题目二十四字符串s问题164题目二十四字符串s问题265题目二十四字符串s问题366题目二十五求方程的根67题目二十六求阶乘168题目二十六求阶乘269题目二十六求阶乘369题目二十七 方阵问题70题目二十八查找字符串中某元素的数目71题目二十九最大值问题172题目二十九最大值问题272题目二十九最大值问题373题目三十大小写转换174题目三十大小写转换275题目三十大小写转换376题目三

5、十一:计算数字位数的问题177题目三十一:计算数字位数的问题278题目三十一:计算数字位数的问题379题目三十一:计算数字位数的问题480题目三十二统计字母 数字个数问题181题目三十二统计字母 数字个数问题282题目三十二统计字母 数字个数问题383题目三十二统计字母 数字个数问题483题目三十三对角线问题84题目三十四 比较字符串大小85题目一前N项和问题下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。和值通过函数值返回。例如,若n5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。#include /*found*/void fun ( int n )

6、int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k = n; k+ ) /*found*/ s = s + (Double)a / b; c = a; a = a + b; b = c; return s;main( ) int n = 5;printf( nThe value of function is: %lfn, fun ( n ) );(1)double fun(int n)(2)s=s+(double)a/b;题目二SS字符串问题2.下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指

7、的字符串中出现的次数。例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。#include int fun (char *str,char *substr) int i,j,k,num=0;/*found*/ for(i = 0, stri, i+) for(j=i,k=0;substrk=strj;k+,j+)/*found*/ If(substrk+1=0) num+; break; return num;main() char str80,substr80; printf(Input a string:) ; gets(str);

8、 printf(Input a substring:) ; gets(substr); printf(%dn,fun(str,substr);(1)for(i=0;stri;i+)(2)if(substrk+1= 0)题目三 变量互换问题12. 下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。 #include int fun(int *x,int y) int t ;/*found*/ t = x ; x = y ;/*found*/ r

9、eturn(y) ;main() int a = 3, b = 8 ; printf(%d %dn, a, b) ; b = fun(&a, b) ; printf(%d %dn, a, b) ;(1)t = *x ; *x = y ;(2)return(t) ;或return t;题目三 变量互换问题21. 下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a65 b60。#include #include #include /*found*/void fun(int a,b) int t;/*found*/ t=b;b=a;a=t;void

10、main()int a,b; system(CLS); printf(Enter a, b: ); scanf(%d%d,&a,&b); fun(&a, &b); printf(a=%d b=%dn , a,b);(1)void fun(int *a,int *b)(2)t=*b; *b=*a; *a=t;题目三 变量互换问题32. 下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。#include /*found*/void fun(int x,int y) int t;/*found*/ t

11、=x;x=y;y=t;void main() int a,b; a=8; b=3; fun(&a, &b); printf(%d %dn , a,b);(1)void fun(int *x, int *y)(2)t=*x; *x=*y; *y=t;题目四 最大公约数问题2. 下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。#include int fun(int a,int b) int r,t; if(ab) /*found*/

12、 t=a; b=a; a=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(a);main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);(1)t=a;a=b;b=t;(2)return(b);或return b;题目五 长数变短数12

13、. 下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。#include void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; while ( s 0) d = s%10;/*found*/ if (d%2 = 0) *t = d * sl + *t;sl *= 10; s /= 10;main() long s, t; printf(nPlease enter s:); scanf(%ld, &s)

14、; fun(s, &t); printf(The result is: %ldn, t);(1)*t=0;(2)if(d%2!=0)或if(d%2=1)题目五 长数变短数22.下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数:8642。#include void fun (long s, long *t) int d; long sl=1; *t = 0; while ( s 0) d = s%10;/*found*/ if (d%2=0) *t=d* sl+ *t; sl

15、*= 10;/*found*/ s = 10;main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);(1)if(d%2=0)(2)s/=10;题目五 长数变短数32.下列下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为7654321时,t中的数为7531。#include /*found*/void fun (long s, long t)

16、long sl=10; *t = s % 10; while ( s 0) s = s/100; *t = s%10 * sl + *t;/*found*/sl = sl*100;main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);(1)void fun(long s,long *t)(2)sl=sl*10;题目五 长数变短数42. 下列给定程序中函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在

17、高位,低位仍在低位。例如,当s中的数为7654321时,t中的数为642。#include /*found*/void fun (long s, long t) long sl=10; s /= 10; *t = s % 10;/*found*/ while ( s 0)题目五 长数变短数51. 下列给定程序中,函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码值为偶数的字符依次放入字 符串t中。例如,字符串中的数据为AABBCCDDEEFF,则输出应当是ABBCDDEFF。#include #include #include #include #define N 80void

18、fun(char *s, char t) int i, j=0; for(i=0; i(int)strlen(s);i+)/*found*/ if(i%2 & si%2=0) tj+=si ;/*found*/ ti=0;void main() char sN, tN; system(CLS); printf(nPlease enter string s :); gets(s); fun(s,t); printf(nThe result is :%sn,t);(1)if(i%2|si%2=0) 或 if(i%2 !=0 | si%2=0) (2)tj=0; 或 tj=0;题目五 长数变短数61

19、. 下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。#include #include #include void fun(char *s)int i,j; for(i=0,j=0; si!= 0; i+) if(si= 0&si= 9)/*found*/ sj=si;/*found*/ sj=”0”;void main()char item80; system(CLS); printf(nEnter a string: );gets(item); printf(nnThe string is:%sn,item); fun(item); pr

20、intf(nnThe string of changing is :%sn,item);(1)sj+=si;(2)sj= 0;题目五 长数变短数72. 下列给定程序中,函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。#include long fun(int x, int y, long *p) int i; long t=1;/*found*/ for(i=1;iy;i+) t=t*x; *p=t;/*found*/ t=t/1000; return t;void main() long t, r; int x, y; printf(

21、nInput x and y: ); scanf(%1d%1d,&x,&y); t=fun(x,y,&r); printf(nnx=%d, y=%d,r=%ld, last=%ldnn ,x, y, r,t);(1)for(i=1;i=y;i+)(2)t=t%1000;题目五 长数变短数82. 给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。#include #include #define N 20int fun( int *b )/*found*/ int tN ,i, num for(i=0; i=10)/*found*/

22、 t+num=bi;/*found*/ for(i=0; inun; i+) bi=ti; return( num );main() int aN,i,num; printf(a数组中的数据 :n); for(i=0;iN ;i+) ai=rand()%21; printf(%4d,ai); printf(n); num=fun(a); for(i=0;inum ;i+) printf(%4d,ai); printf(n);(1)int tN ,i, num=0; (2)tnum+=bi;或tnum=bi; num+; (3)for(i=0; inum; i+)题目五 长数变短数92. 给定程

23、序MODI1.C中,fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。例如,有10个正整数如下:初始数列为:6 5 7 23 18 5 8 21 45 38 第1组数为:6 5 7 中值为:6 替换后的数列为:6 6 7 23 18 5 8 21 45 38 第2组数为:5 7 23 中值为:7 替换后的数列为:6 6 7 23 18 5 8 21 45 38第3组数为:7 23 18 中值为:18 替换后的数列为:6 6 7 18

24、 18 5 8 21 45 38第4组数为:23 18 5 中值为:18 替换后的数列为:6 6 7 18 18 5 8 21 45 38第5组数为:18 5 8 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38第6组数为:5 8 21 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38第7组数为:8 21 45 中值为:21 替换后的数列为:6 6 7 18 18 8 8 21 45 38第8组数为:21 45 38 中值为:38 替换后的数列为:6 6 7 18 18 8 8 21 38 38 最终结果为:6 6 7 18 18 8 8

25、 21 38 38 请改正程序中指定部位的错误,使它能得出正确的结果。#include #define N 10int findmid(int a, int b, int c) int t; t = (ab)?(bc?b:(ac?c:a):(ac)?a:(bc)?c:b);/*found*/ return b;void fun(int x) int i,a,b,c,tN;/*found*/ for(i=0;iN;i+) ti=xi for(i=0;iN-2;i+) a=ti;b=ti+1;c=ti+2;/*found*/ ti+1=findmid(a,b,c);main() int i, xN

26、=6,5,7,23,18,5,8,21,45,38; for(i=0; iN; i+) printf(%d ,xi); printf(n); fun(x); for(i=0; iN; i+) printf(%d ,xi); printf(n); 【参考答案】(1)return t; (2)for(i=0;iN;i+) ti=xi; (3)xi+1=findmid(a,b,c);题目六斐波拉契数列2. 下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、例如,若给n输入7,则该项的斐波拉契数值为13。#incl

27、ude long fun(int g)/*found*/ switch(g); case 0: return 0;/*found*/ case 1 ;case 2 : return 1 ; return( fun(g-1)+fun(g-2) );main() long fib; int n; printf(Input n: ); scanf(%d,&n); printf(n = %dn,n); fib=fun(n); printf(fib = %dnn,fib);(1)去掉分号(2)case 1:case 2:return 1;题目七 链表11. 例如,若给a输入字符串:ABCDEFGKHIJ

28、K,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。#include void fun(char *p, char *b) int i, k=0; while(*p) i=1; while( i=3 & *p ) /*found*/ bk=p; k+; p+; i+; if(*p)/*found*/ bk+= ; bk=0;main() char a80,b80; printf(Enter a string: ); gets(a); printf(The

29、 original string: ); puts(a); fun(a,b); printf(nThe string after insert space: ); puts(b); printf(nn);(1)bk=*p;(2)bk= ;k+;题目七 链表22. 下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m1的值。#include #include typedef struct aa int data; struct aa *next; NODE;NODE *Creatlink(int n, int m) NODE *h=NULL, *p, *

30、s; int i;/*found*/ p=(NODE )malloc(sizeof(NODE); h=p; p-next=NULL; for(i=1; idata=rand()%m; s-next=p-next; p-next=s; p=p-next;/*found*/ return p;outlink(NODE *h) NODE *p; p=h-next; printf(nnTHE LIST :nn HEAD ); while(p) printf(-%d ,p-data); p=p-next; printf(n);main() NODE *head; head=Creatlink(8,22)

31、; outlink(head);(1)p=(NODE *)malloc(sizeof(NODE);(2)return h;题目七 链表32. 下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。#include #include #include typedef struct aa int data; struct aa *next; NODE;int fun (NODE *h) int sum=0; NODE *p; p=h-next;/*found*/ while(p-next)

32、if(p-data%2=0) sum+=p-data;/*found*/ p=h-next; return sum;NODE *creatlink(int n) NODE *h,*p,*s; int i; h=p=(NODE*)malloc(sizeof(NODE); for(i=1;idata=rand()%16;s-next=p-next;p-next=s;p=p-next; p-next=NULL; return h;outlink(NODE *h) NODE *p; p=h-next; printf(nn The LIST :nn HEAD); while(p) printf(-%d,

33、p-data); p=p-next; printf(n);void main() NODE *head; int sum; system(CLS); head=creatlink(10); outlink(head); sum=fun(head); printf(nSUM=%d,sum); (1)while (p!=NULL)(2)p=p-next;题目七 链表42.下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。#include #include #include typ

34、edef struct aa int data; struct aa *next; NODE;fun (NODE *h) int max=-1; NODE *p;/*found*/ p=h; while(p) if(p-datamax) max=p-data;/*found*/ p=h-next; return max;outresult(int s, FILE *pf) fprintf(pf, nThe max in link :%dn,s);NODE *creatlink(int n, int m) NODE *h,*p,*s; int i; h=p=(NODE *)malloc(size

35、of(NODE); h-data=9999; for(i=1;idata=rand()%m; s-next=p-next; p-next=s; p=p-next; p-next=NULL; return h;outlink(NODE *h,FILE *pf) NODE *p; p=h-next; fprintf(pf, n The LIST :nn HEAD); while(p) fprintf(pf, -%d,p-data); p=p-next; fprintf(pf, n);main() NODE *head; int m; system(CLS); head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf(nThe RESULT :n); outresult(m,stdout);(1)p=h-next;(2)p=p-next;题目八非

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁