《计算机二级考试C语言上机程序改错题库.doc》由会员分享,可在线阅读,更多相关《计算机二级考试C语言上机程序改错题库.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!给定源程序:解题答案:/*found*/p=(NODE *)malloc(sizeof(NODE);/*found*/return h;2.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位 上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:时,t中的数为:7531。请改正程序
2、中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构解题答案:/*found*/void fun (long s, long *t)/*found*/sl=sl*10;*3.给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!解题答案:#include#includefun (int n, int *a)int i, j, p, t;for (j = 0; jp = j;/*found*/for(i=j+1;in;i+) /
3、*found*/p=i;*4.给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成新串, 并且覆盖原串。注意: 字符串的长度最长允许为79。请改正函数fun中指定部位的错误, 使它能得出正确的结果。注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!解题答案:/*found*/p=s;/*found*/while(*p+);*5.给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动mai
4、n函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/long k=1;/*found*/num/=10;*6.给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改 变字符串中的内容。例如,若字符串为abcd,则应输出:dcba。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/void fun(char *a)/*found*/printf(%c, *a);*7.给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请
5、修改程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行和删行,也不得更改程序的结构!解题答案:/*found*/p=j;/*found*/p=i;*8.给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用#结束输入。请改正程序中的错误,使它能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/for(i=0,t=0; pi; i+)/*found*/ct=0;*9.给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t 所
6、指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串; 若未找到,则函数值为NULL。例如,当字符串中的内容为:abcdabfabcdx,t中的内容为:ab时,输出结果应是:abcdx。当字符串中的内容为:abcdabfabcdx,t中的内容为:abd时,则程序输出未找到信息:not be found!。请改正程序中的错误,使它能得出正确的结果。解题答案:/*found*/a=NULL;/*found*/if(*r=*p)*10.给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。
7、在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:abcdabfab,t1所指子串中的内容为: ab,t2所指子串中的内容为:99时, 结果在w所指的数组中的内容应为: 99cd99f99。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/while(*r)/*found*/*a=*r; a+; r+;*11.给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。例如,当s所指字符串中的内容为:abcdabfab,t所指字符串
8、的内容为:ab,则函数返回整数3。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/r+; p+;/*found*/if(*r=0)*12.给定程序MODI1.C的功能是:读入一个整数k(2k10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/IsPrime(int n) /*定义函数*/*found
9、*/if(!(n%i)*13.给定程序MODI1.C中函数fun的功能是:求k!(k0)/*found*/else if(k=0)*14.给定程序MODI1.C中函数fun的功能是:将 m(1m10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如:把3个串:abc,CD,EF连接起来,结果是 abcCDEF。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found*/int k, q, i;/*found*/pti=strki;*15.给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。
10、 例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60 请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!解题答案:#include/*found*/void fun(int *a, int *b)/*found*/t=*b; *b=*a; *a=t;*16.给定程序MODI1.C中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数和a0中的数对调、次最大数和a1中的数对调。请改正程序中的错误,使它能得出正确的结果。解题答案:/*found*/m=i;/*found*/if(akam)m=k;*17.
11、给定程序MODI1.C中函数 fun 的功能是:判断ch中的字符是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后。请改正程序中的错误,使它能进行正确操作。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!解题答案:/*found* void fun(char *str, char ch)/*found*if(*str !=ch)if(*str !=ch)/*found*str1=0;str1=0;*18.给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出
12、正确的结果。注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构解题答案:/*found*/result*=n-;/*found*/return result;*19.给定程序MODI1.C中 fun 函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。例如, 若输入I am a student to take the examination., 则应输出 I aM A studenT tO takE thE examination.。 请修改程序中的错误之处, 使它能得出正确的结果。注意: 不要改动 main 函数,
13、不得删行, 也不得更改程序的结构!解题答案:/*found*/if(*p= )/*found*/*(p-1)=toupper(*(p-1);*20.改错题:给定程序MODI1.C中 fun 函数的功能是: 根据形参m,计算如下公式的值。1 1 1 1t = 1 + - +- + - + + -2 3 4 m解题答案:/*found*/t+=1.0/i;/*found*/return t;*21.给定程序MODI1.C中函数 fun 的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。例如,若输入Ab, cD,则输出AB, CD。请改正程序中的错误,使它能得出正确的结果。解
14、题答案:/*found*/if(a=tti)&(tti=z)/*found*/tti-=32;*22.给定程序MODI1.C中函数 fun 的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。解题答案:/*found*/for(j=i+1; j6; j+)/*found*/*(pstr+i)=*(pstr+j);*23.给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。例如,若 m 中的值为: 5,则应输出:1.。请改正程序中的错误,使它能得出正确的结果。解题答案:/*found*/for(i=2; i=num)/*fo
15、und*/t=s/n;*27.在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。解题答案:/*found*/double sum=0.0;/*found*/sum /=c;*28.给定程序MODI1.C中函数 fun 的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为: 100, 则函数的值为: 732。请改正程序中的错误,使程序能输出正确的结果。解题答案:/*found*/while(2=high)&(namid)*33.例
16、如,若给m输入 -100,给n输入90,则函数求得的一个根值为2.000。请改正程序中的错误,使它能得出正确结果。解题答案:/*found*/double r;/*found*/while(fabs(n-m)0.001)*34.给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。解题答案:/*found*/t=a;a=b;b=t;/*found*/return(b);*35.给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。 10 (n=1)fun(n)= fun(n-1)+2 (n1)解题答案:/*found*/int fun(in
17、t n)/*found*/if(n=1)*36.给定程序MODI1.C中函数fun的功能是:用递归算法计算斐波拉契数列中第n 项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、 解题答案:/*found*/switch(g)/*found*/case 1: return 1; case 2:return 1;*37.给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。解题答案:/*found*/for(i=0; i= sl; i+)/*found*/t2*sl=0;*38.给定程序MODI1.C中函
18、数fun的功能是:把主函数中输入的3个数,最大的放在 a中,最小的放在c中,中间的放在b中。解题答案:/*found*/float k;/*found*/if(*a*c)*39.给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。解题答案:/*found*/n=*p-0;/*found*/n=n*8+*p-0;*40.给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b 中,要求每复制三个字符之后插入一个空格。解题答案:/*found*/bk=*p;/*found
19、*/bk+= ;*41.给定程序MODI1.C中函数fun的功能是: 给一维数组a输入任意4个整数, 并按下例的规律输出。解题答案:/*found*/void fun(int *a)/*found*/aj=aj-1;*42.给定程序MODI1.C中函数fun的功能是: 从3个红球,5个白球, 6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。 组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数, j的值代表白球数,k的值代表黑球数。解题答案:/*found*/for(i=1; i=0&k=6)*43.给定程序MODI1.C中函数fun的功
20、能是: 求整数x的y次方的低3位值。例如,整数5的6次方为15625, 此值的低3位值为625。请改正函数fun中指定部位的错误, 使它能得出正确的结果。解题答案:/*found*/for(i=1; i=y; i+)/*found*/t=t%1000;*44.给定程序MODI1.C中函数fun的功能是: 找出100至n(不大于1000)之间三位数字相等的所有整数, 把这些整数放在s所指数组中, 个数作为函数值返回。请改正函数fun中指定部位的错误, 使它能得出正确的结果。解题答案:/*found*/k=i;/*found*/c=k%10;*45.给定程序MODI1.C中函数fun的功能是: 计
21、算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。解题答案:/*found*/d=1; s=0;/*found*/d=d/10;*46.数列中,第一项值为3, 后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是: 计算前n(4解题答案:/*found*/sum=0;j=0;/*found*/if(sum%4=2)*47.给定程序MODI1.C中函数fun的功能是: 统计一个无符号整数中各位数字值为零的个数, 通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。解题答案:/*found*/i
22、f(t=0)/*found*/*zero=count;*48.给定程序MODI1.C中函数fun的功能是: 为一个偶数寻找两个素数, 这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun中指定部位的错误, 使它能得出正确的结果。解题答案:/*found*/y=1;/*found*/d=a-i;*49.给定程序MODI1.C中函数fun的功能是: 根据输入的三个边长(整型值), 判断能否构成三角形; 构成的是等边三角形, 还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2, 若能构成一般三角形函数返回1, 若不能构成三角形函数返回0。请改正函数
23、fun中指定部位的错误, 使它能得出正确的结果。解题答案:/*found*/int fun(int a,int b,int c)/*found*/else return 1;*50.给定程序MODI1.C中函数fun的功能是: 首先将大写字母转换为对应小写字母; 若小写字母为au,则将其转换为其后的第5个字母;若小写字母为vz, 使其值减21。转换后的小写字母作为函数值返回。解题答案:/*found*/c=c+32;/*found*/c=c+5;*51.给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。解题答案:/*found*/kiint i,sl;/*found*/ti=ssl-i-1;*52.给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位