全国计算机等级考试二级C改错题答案

全国计算机等级考试二级C改错题答案
全国计算机等级考试二级C改错题答案

所属年份:2010.9;2011.3;2012.3

下列给定程序中,函数fun 的功能是:先将字符串s 中的字符按正序存放到字符串t 中,然后把s 中的字符按逆序连接到字符串t 的后面。

例如,当s 中的字符串为"ABCDE"时,则t 中的字符串应为"ABCDEEDCBA"。

答案: (1)for ( i =0; i

所属年份:2012.3;

下列给定程序中,函数fun 的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII 码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。

答案:(1)for(i =strlen(t)-1; i>0; i --)(2)if (t[j] > t[j +1])

所属年份:2010.9;2012.3

下列给定程序中函数fun 的功能是:统计substr 所指的子符串在str 所指的字符串中出现的次数。

例如,若字符串为aaas 1kaaas ,子字符串为as ,则应输出2。

答案: (1)for(i =0;str[i];i ++)(2)if(substr[k +1]=='\0')

所属年份:2011.9;2012.3;

下列给定程序中函数fun 的功能是:用冒泡法对6个字符串进行升序排列。

答案: (1)for (j = i + 1; j < 6; j ++)(2)*(pstr +i ) = *(pstr + j);

所属年份:2011.9;2012.3

下列给定程序中函数fun 的功能是:根据整型形参m ,计算如下公式的值。

例如,若m 的值为5,则应输出1.463611。 答案: (1)for(i =2;i<=m ;i ++)(2)y +=1.0/(i*i);

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun 的功能是:删除指针p 所指字符串中的所有空白字符(包括制表符、回车符及换行符)。

输入字符串时用'#'结束输入。

答案:(1)for(i =0,t =0;p[i];i ++)(2)c[t]= '\0';

所属年份:2011.3;2011.9;

下列给定程序中,函数fun 的功能是:根据整型参数m ,计算如下公式的值。

y =1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)

例如,若m =2000,则应输出0.000160。

答案:(1)double fun(int m)(2)for(i =100;i<=m ;i +=100)

所属年份:2012.3

下列给定程序中,函数fun 的功能是:根据整形参m 的值,计算如下公式的值。

例如,若m 中的值为5,则应输出0.536389。

答案:(1)for(i = 2 ; i<= m ; i ++)(2)y -= 1.0/(i * i);

所属年份:2010.9;2011.3; 下列给定程序中函数fun 的功能是:求三个数的最小公倍数。

11111223344y m m =+++++????……11112233t m m =-

---???

例如,若给主函数中的变量x1、x2、x3分别输入15112,则输出结果应当是330。

答案: (1)fun(int x,int y, int z)(2)return j;

所属年份:2011.3

下列给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

答案: (1)char *fun(char (*sq)[M])(2)return sp;

所属年份:2011.3

下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。

例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。

π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+……

答案: (1)t=1.0;(2)return(s*2);

所属年份:2011.3;2011.9

下列给定程序中,函数fun的功能是:计算整数n的阶乘。

答案:(1)result*=n--;(2)return result;

所属年份:2011.3

下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形。若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。

答案:(1)return 3; (2)return 1;

所属年份:2010.9;2011.3;2011.9;

下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。

t=1/2-1/3-…-1/m

例如,若输入5,则应输出-0.283333。

答案:(1)t-=1.0/i;(2)return t;

所属年份:2012.3;

下列给定程序中,函数fun的功能是:求S的值。

S=(22/(1×3))×(42/(3×5))×(62/(5×7))×…×(2k)2/((2k-1)×(2k+1))

例如,当k为10时,函数的值应为1.533852。

答案:(1)double fun(int k)(2)return s ;

所属年份:2012.3;

已知一个数列从0项开始的前3项:0、0、1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。

例如,当n=10时,程序的输出结果应为23.197745。

答案:(1)double fun(int n)(2)return sum ;

所属年份:2012.3;

下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数为7531。

答案:(1)*t=0;(2)if(d%2!=0)

所属年份:2010.9;2011.3;2012.3

下列给定程序中函数fun 的功能是:计算正整数num 各位上的数字之积。

例如,若输入252,则输出应该是20。若输入202,则输出应该是0。

答案:(1)long k =1;(2)num /=10;

所属年份:2010.9;2011.9;

下列给定程序中函数fun 的功能是:把从主函数中输入的3个数,最大的数放在a 中,中间的数放在b 中,最小的数放在c 中。

例如,若输入的数为:55 12 34,输出的结果应当是:a =55.0,b =34.0,c =12.0。 答案:(1)float k ;(2)if(*a< *c)

所属年份:2011.3

下列给定程序中函数fun 的功能是:逐个比较p 、q 所指两个字符串对应位置上的字符,并把ASCII 值大或相等的字符依次存放到c 所指的数组中,形成一个新的字符串。

例如,若主函数中a 字符串为"aBCDeFgH",b 字符串为"Abcd",则c 中的字符串应为"aBcdeFgH"。

答案:(1) int k=0;(2)while (*p||*q)

所属年份:2011.9;2012.3

在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中函数fun 的功能是:计算数组元素中所有值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。 答案:(1)double sum =0.0;(2)sum/=c ;

所属年份:2011.9

下列给定程序中函数fun 和funx 的功能是:用二分法求方程

的一个根,并要求绝对误差不超过0.001。

例如,若给m 输入-100,n 输入90,则函数求得的一个根为2.000。

答案:(1)double r ;(2)while (fabs(n -m) >0.001)

所属年份:2010.9;2012.3;

下列给定程序中函数fun 的功能是:先将s 所指字符串中的字符按逆序存放到t 所指字符串中,然后把s 所指串中的字符按正序连接到t 所指串之后。

例如:当s 所指的字符串为"ABCDE"时,t 所指的字符串应为"EDCBAABCDE"。

答案:(1)int i, sl ;(2)t[i]=s[sl -i -1];

所属年份:2011.3;

数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun 的功能是:计算前n(4≤n ≤50)项的累计和。在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回。

例如,当n 的值为20时,该数列为3、8、13、18、23、28、…、93、98,符合此条件的累加值应为42、126、366、570、1010。

答案:(1)int i ,j =0,k ,sum ;(2)if(sum%4==2)

所属年份:2011.3

下列给定的程序中,函数fun 的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

答案:(1)y =1;(2)d =a -i ;

3224360x x x -+-=

所属年份:2011.3;2011.9

下列给定程序中,函数fun 的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。

答案:(1)sum =0;(2)scanf("%d",&a[i][j]);

所属年份:2011.3;2011.9;

给定程序MODI1.C 中规定输入的字符串全部为字母,fun 函数的功能是:统计a 所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。

例如对于字符串:dadbcdbabdb ,对应的输出应为:b 或d 。

答案:(1)b[i] = 0; (2)b[a[i] - 'a']++; (3)if (b[max] < b[i])

所属年份:2011.3;2012.3

下列给定程序中fun 函数功能是:将n 个无序整数从小到大排序。

答案:(1)for(i=j+1;i

所属年份:2011.9;2012.3

下列给定程序中函数fun 的功能是:计算并输出下列级数的前N 项和S N ,直到S N +1的值大于q 为止,q 的值通过形参传入。

例如,若q 的值为50.0,则函数值应为49.394948。

答案:(1)s =s +(double)(n +1)/n ;(2)return t ;

所属年份:2011.3;2011.9 下列给定函数中,函数fun 的功能是:统计字符串中各元音字母(即A 、E 、I 、O 、U)的个数。注意:字母不分大小写。

例如,输入"THIs is a boot",则应输出是1 0 2 2 0。

答案:(1)void fun(char *s, int num[5])(2)num[k]=0;(3)switch(*s)

所属年份:2012.3;

下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun 的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。

答案:(1)while (p !=NULL)(2)p =p ->next ;

所属年份:2010.9;2011.9;

下列给定程序中函数fun 的功能是:计算函数F(x ,y ,z)=(x +y)/(x -y)+(z +y)/(z -y)的值。其中x 和y 的值不相等,z 和y 的值不相等。

例如,当x 的值为9,y 的值为11,z 的值为15时,函数值为-3.50。

答案:(1)#define FU(m ,n) (m)/(n)(2)return (value);

所属年份:2011.3

假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun 的功能是:删除数列中值为x 的元素。变量n 中存放数列中元素的个数。

答案:(1)if(p ==n) return -1;(2)a[i]=a[i +1];

所属年份:2010.9;2012.3;

2341123N N S N +=

++++…

下列给定程序中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为:"abcdabfabc",t1所指串中的内容为"ab",t2所指子串中的内容为"99"时,结果在w所指的数组中的内容应为"abcdabf99c"。

答案:(1)while (*w)(2)if ( *r ==*p )

所属年份:2010.9;2011.3;2011.9

下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如:把三个串"abc"、"CD"、"EF"连接起来,结果是"abcCDEF"。

答案:(1)int k, q, i;(2)pt[i] = str[k][i];

所属年份:2010.9;2011.3;2011.9;

给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应为"a4b3c2d1efg";而当a所指字符串中的内容为"1234",b所指字符串的内容为"abcdefg"时,c所指数组中的内容应该为"1g2f3e4dcba"。

答案:(1)while ( i < j )(2)if ( *a )

所属年份:2010.9;2011.9;

下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。

例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。

答案:(1)t=a;a=b;b=t;(2)return b;

所属年份:2010.9;2011.9;2012.3

下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。

例如,若输入"Ab,cD",则输出"AB,CD"。

答案:(1)if(( tt[i]>='a')&&( tt[i] <='z'))(2)tt[i]-=32;

所属年份:2011.9;2012.3

下列给定程序中fun函数的功能是:求表达式

s=aa… aa-…-aaa -aa -a

(此处aa… aa表示n个a,a和n的值在1至9之间)

例如,a=3,n=6,则以上表达式为:

s=333333-33333-3333-333-33-3

其值是296298。

a和n是fun函数的形参,表达式的值作为函数值传回main函数。

请改正程序中的错误,使它能计算出正确的结果。

答案:(1)long s=0, t=0;(2)t=t/10;

所属年份:2010.9;2011.3;2012.3

下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数:8642。

答案:(1)if(d%2==0)(2)s/=10;

下列给定程序中函数fun 的功能是:用递归算法求形参a 的平方根。求平方根的迭代公式如下:

例如,a 为2时,平方根值为:1.414214。

答案:(1)double fun(double a ,double x0)(2)if(fabs(x1-x0)>=0.00001)

所属年份:2010.9;2012.3

下列给定程序中,函数fun 的功能是:将字符串s 中位于奇数位置的字符或ASCII 码值为偶数的字符依次放入字符串t 中。例如,字符串中的数据为"AABBCCDDEEFF",则输出应当是

"ABBCDDEFF"。

答案:(1)if(i%2||s[i]%2==0)(2)t[j]=0;

所属年份:2010.9;2012.3;

下列给定程序中,函数fun 的功能是:将s 所指字符串中的字母转换为按字母序列的后续字母(如'Z'转化为 'A','z'转化为'a'),其他字符不变。

答案:(1)while(*s)或while (*s!='\0')(2)s++;

所属年份:2010年9月以前真考题目

下列给定程序中函数fun 的功能是:从p 所指字符串中找出ASCII 码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

例如,调用fun 函数之前给字符串输入"ABCDeFGH",调用后字符串中的内容应为"eABCDFGH"。 答案:(1)q =p +i ;(2)while(q>p)

所属年份:2011.3;2011.9

下列给定程序中函数fun 的功能是:判断ch 中的字符是否与str 所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

答案:(1)void fun(char *str, char ch )(2)if ( *str != ch )(3)str[1] = 0;

所属年份:2011.3

下列给定程序中,函数fun 的功能是:给一维数组a 输入任意4个整数,并按如下的规律输出。例如,输入1、2、3、4,程序运行后输出以下方阵:

4 1 2 3

3 4 1 2

2 3 4 1

1 2 3 4

答案:(1)void fun(int *a)(2)a[j]=a[j -1];

所属年份:2011.3

下列给定程序中,函数fun 的功能是:求整数x 的y 次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。

答案:(1)for(i =1;i<=y ;i ++)(2)t =t%1000;

所属年份:2010.9;2012.3

下列给定程序中,函数fun 的功能是:找出一个大于给定整数m 且紧随m 的素数,并作为函数值返回。

答案: (1)if(i%k ==0) (2)if(k ==i)

1x1=(x0+)2x0a

下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平均值为195.838745,在平均值以上的实数个数应为5。

答案:(1) {int j, c=0;float xa=0.0;(2)if (x[j] >= xa)

所属年份:2012.3

下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。

答案:(1)if((k%13==0)||(k%17==0))(2)}

所属年份:2010.9;2011.9;2012.3;

下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。

例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。

答案:(1)t = *x ; *x = y ;(2)return(t) ;或return t;

所属年份:2010.9;2011.9;2012.3;

下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。

例如,若high的值为100,则函数的值为732。

答案:(1)while((high>=2) && (n<10))(2)yes=0; break;

所属年份:2010.9;2011.3;

下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。

答案:(1)s[j++]=s[i];(2)s[j]='\0';

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为"abcdabfab",t1所指子串中的内容为"ab",t2所指子串中的内容为"99"时,在w所指的数组中的内容应为"99cd99f99"。

答案:(1)while( *r) (2)*a=*r;a++;r++;

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun的功能是:用选择法对数组中的n个元素进行升序排列。

请修改程序中的错误,使它能得出正确的结果。

答案:(1)p=j;(2)p=i;

所属年份:2010年9月以前真考题目

下列给定程序中函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。

答案:(1)n=strlen( aa ) ;(2)ch=aa[i];

所属年份:2012.3;

下列给定程序中函数fun的功能是:判断一个整数是否为素数,若是素数返回1,否则返回0。

在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。

答案:(1)k++;(2)if(m==k)

所属年份:2010.9;2011.9;2012.3

下列给定程序中函数fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

例如,程序运行后,输入0.0001,则程序输出3.1414。

答案:(1)while(fabs(t)>=num)(2)t =s/n ;

所属年份:2010.9;2011.9;2012.3

下列给定程序中,函数fun 的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

答案:(1)s[j++]=s[i];(2)s[j]= '\0';

所属年份:2011.9;2012.3;

下列给定程序中,函数fun 的功能是:对N 名学生的学习成绩,按从高到低的顺序找出前m(m ≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

答案:(1)t=calloc(m,sizeof(STU));(2)t[k]=b[j];

所属年份:2012.3

下列给定程序中函数fun 的功能是:计算n !。

例如,给n 输入5,则输出120.000000。

答案:(1)if( n ==0)(2)result *=n --;

所属年份:2010.9;2011.3;2012.3

下列给定程序中函数fun 的功能是:求出s 所指字符串中最后一次出现的t 所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL 。

例如,当字符串中的内容为"abcdabfabcdx",t 中内容为"ab"时,输出结果应是"abcdx"。 当字符串中的内容为"abcdabfabcdx",t 中内容为"abd"时,则程序输出未找到信息"not be found!"。

答案:(1)a =NULL ;(2)if(*r ==*p)

所属年份:2011.3;2011.9;

下列给定程序中,函数fun 的功能是:从s 所指字符串中,找出t 所指字符串的个数作为函数值返回。例如,当s 所指字符串中的内容为"abcdabfab",t 所指字符串的内容为"ab",则函数返回整数3。

答案:(1)if(*r ==*p) {r ++;p ++; }(2)if(*r =='\0')

所属年份:2010.9;2011.3;2011.9

下列给定程序中,函数fun 的功能是:求k !(k<13),所求阶乘的值作为函数值返回。例如,若k =10,则应输出3628800。

答案:if(k>1)

所属年份:2011.3;2011.9

下列给定程序中,函数fun 的功能是:实现两个整数的交换。例如,给a 和b 分别输入60和65,输出为:a =65 b =60。

答案:(1)void fun(int *a ,int *b)(2)t =*b ; *b=*a; *a=t;

11114357π≈-+-+…

所属年份:2011.3;2011.9

下列给定的程序中,fun函数的功能是:将p所指的字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串)。

例如,若输入:"I am a student to take the examination",

则应输出:"I aM A studenT tO takE thE examinatioN"。

答案:(1)if(*p=='')(2)*(p-1)=toupper(*(p-1));

所属年份:2010.9;2011.9

下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。

答案:(1)p=(NODE *)malloc(sizeof(NODE));(2)return h;

所属年份:2011.3;2011.9

下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a 中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。

答案:(1)void fun(int *x, int *y)(2)t=*x; *x=*y; *y=t;

所属年份:2010.9;2012.3

下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数作为函数值返回,平均分存放在形参aver所指的存储单元中。

例如,输入8名学生的成绩:80.5、60、72、90.5、98、51.5、88、64

则低于平均分的学生人数为4(平均分为75.5625)。

答案:(1)t+=s[k];(2)*aver=ave;

所属年份:2011.9

给定程序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 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 21 38 38

答案:(1)return t;(2)for(i=0;i

所属年份:2011.9

下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。

答案:(1)b[k]=*p;(2)b[k]='';k++;

所属年份:2010.9;2012.3;

下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中的错误或在下画线处填上适当的内容并把下画线删除,使它能得出正确的结果。

答案:(1)r=t;(2)应填:r=t;或r=&t[0];

所属年份:2011.3;2011.9

下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值。

t=1+1/2+1/3+1/4+…+1/m

例如,若输入5,则应输出2.283333。

答案:(1)t+=1.0/i;(2)return t;

所属年份:2010.9;2011.3

下列给定程序中,函数fun的功能是:从3个红球、5个白球、6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

答案:(1)for(i=1;i<=3;i++)(2)if(k>=0&&k<=6)

所属年份:2010.9;2011.3

下列给定程序中,函数fun的功能是:找出100~n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。

答案:(1)k=i;(2)b=k%10;

所属年份:2010.9;2011.3

下列给定程序中,函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16 807,其后3位数的和值是15。

答案:(1)d=1;(2)s=0;(3)d=d/10;

所属年份:2011.3

下列给定程序中,函数fun实现的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。

答案:(1)if(t==0)(2)*zero=count;

所属年份:2011.3

下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第5个字母;若小写字母为v~z,则使小写字母的值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;形参是字母W,则转换为小写字母b。

答案:(1)c=c+32;(2)c=c+5;

所属年份:2011.9;2012.3;

下列给定程序中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。

字符串的长度最长允许为79。

答案:(1)p=s;(2)while(*p++);

所属年份:2011.3;2011.9;

给定程序MODI1.C 中,函数fun 的功能是求矩阵(二维数组)a[N][N]中每行的最小值,结果存放到数组b 中。

假如:若a=15141613

9121011

7568

2341

则结果应为 1,5,9,13, 答案:(1)b[i] = a[i][0]; (2)for (j=1; j a[i][j] )

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun 的功能是:求出如下分数序列的前n 项之和。和值通过函数值返回。

例如,若n =5,则应输出8.391667。

答案:(1)double fun(int n)(2)s =s +(double)a/b ;

所属年份:2010.9;2011.3;2012.3 下列下列给定程序中,函数fun 的功能是:从低位开始依次取出长整型变量s 中奇数位上的数,构成一个新数存放在t 中。高位仍在高位,低位仍在低位。

例如,当s 中的数为7654321时,t 中的数为7531。

答案:(1)void fun(long s ,long *t)(2)sl =sl*10;

所属年份:2010.9;2011.9;2012.3;

下列给定程序中函数fun 的功能是:计算S =f(-n)+f(-n +1)+…+f(0)+f(1)+f(2)+…+f(n)的值。

例如,当n 的值为5时,函数值应为10.407143。

f(x)函数定义如下:

答案:(1)double f(double x)(2)return s ;

所属年份:2010.9;2012.3; 下列给定程序中函数fun 的功能是:从低位开始依次取出长整型变量s 中偶数位上的数,构成一个新数放在t 中。高位仍在高位,低位仍在低位。

例如,当s 中的数为7654321时,t 中的数为642。

答案:(1)void fun(long s ,long *t)(2)while(s>0)

所属年份:2010.9;2012.3

下列给定程序中函数fun 的功能是:将s 所指字符串的正序和反序进行连接,形成的新串放在t 所指的数组中。

例如,当s 所指字符串为:"ABCD"时,t 所指字符串中的内容应为:"ABCDDCBA"。 答案:(1)void fun ( char *s , char *t )(2)t[2*d]='\0';

23581321,,,,,,1235813…(1)/(2)02()0

02(1)/(2)0x x x x f x x x x x x +->≠??===??--

且或

所属年份:2010.9;2011.9;

下列给定程序中函数fun 的功能是:按以下递归公式求函数的值。

例如,当给n 输入5时,函数值为18;当给n 输入3时,函数值为14。

答案:(1)int fun (int n)(2)if (n ==1)

所属年份:2011.3;2011.9; 下列给定程序的功能是:读入一个整数k(2≤k ≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3,5,7,11。

答案:(1)IsPrime(int n) (2)if(!(n%i))

所属年份:2010.9;2011.3;2011.9

下列给定程序中,函数fun 的功能是:求出数组中的最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。

答案:(1)void fun(int *a, int n)(2)m =i ;

所属年份:2011.3;2011.9;

下列给定程序中,函数fun 的功能是:根据整型形参n ,计算如下公式的值。

A 1=1,A 2=1/(1+A 1),A 3=1/(1+A 2),…,A n =1/(1+A (n -1))

例如,若n =10,则应输出0.617977。

答案:(1)float fun(int n)(2)for(i =2;i<=n ;i ++)

所属年份:2010.9;2011.3;2011.9

下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里"单词"是指由空格隔开的字符串)。例如,若输入"I am a student to take the examination",则应输出"I Am A Student To Take The Examination"。

答案:void upfst( char *p)

所属年份:2011.3;2011.9

下列给定程序中,fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s 输入:AAaaBBbb123CCcccd ,则应输出:

upper =6,lower =8。

答案:(1)void fun ( char *s, int *a, int *b )(2)*a =*a +1;(3)*b =*b +1;

所属年份:2012.3;

下列给定程序中,函数fun 的功能是:根据形参m 的值(2≤m ≤9),在m 行m 列的二维数组中存放如下所示规律的数据,由main 函数输出。

答案:(1)void fun(int a[][M], int m)(2)a[j][k] = (k +1)*(j +1);

10 (=1)fun()=fun(-1)+2 (>1)n n n n ??

?

所属年份:2012.3

下列给定程序中,函数fun 的功能是:求出如下分数列的前n 项之和。

和值通过函数值返回main 函数。例如,若n =5,则应输出8.391667。

答案:(1)double fun(int n)(2)s =s +(double)a/b ;

所属年份:2011.9;2012.3;

下列给定程序中,函数fun 的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。

答案:(1)char *fun( char *s ,char *t)(2)ss ++;(3)tt ++;

所属年份:2012.3; 下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun 的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。

答案:(1)p =h ->next ;(2)p =p ->next ;

所属年份:2011.3;

下列给定程序中函数fun 的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b 所指的数组中,这些数的个数作为函数值返回。规定函数中al 放个位数,a2放十位数。

答案:(1)a2=k/10;(2)return i ;

所属年份:2010.9;2011.9;

由N 个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun 的功能是:利用折半查找法查找整数m 在数组中的位置。若找到,返回其下标值;否则,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围low 和high(lowhigh ,查找结束。

答案:(1)int fun(int a[],int m)(2)else if(m>a[mid])

所属年份:2011.9;

下列程序中函数fun 的功能是:按顺序给s 所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w 所指的数组中。若s 所指数组中元素的个数不是5的倍数,则多余部分忽略不计。

例如,s 所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 答案:(1)sum =0.0;(2)if((i +1)%5==0)

所属年份:2011.9

给定程序MODI1.C 中,fun 函数的功能是:删除b 所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。

答案:(1)int t[N] ,i, num=0;(2)t[num++]=b[i];(3)for(i=0; i

所属年份:2010.9;2011.3;2012.3;

下列给定程序中函数fun 的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。 例如,若字符串为"abcd",则应输出:"dcba"。

23581321,,,,,,1235813

答案:(1)void fun(char *a)(2)printf("%c" ,*a) ;

所属年份:2010.9;2012.3;

下列给定程序中函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。

答案:(1)int fun(int n,int xx[][M])(2)printf("%d",xx[i][j]);

所属年份:2010.9;2011.3;2011.9;

下列给定程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

答案:(1)void fun(int m, int k)(2)aa[i]=m%k;(3)printf("%d", aa[i-1]);

所属年份:2011.9;

下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……

例如,若给n输入7,则该项的斐波拉契数值为13。

答案:(1)去掉分号(2)case 1:case 2:return 1;

所属年份:2011.9;

给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。

答案:(1)int i, one=0, zero=0; (2)switch( s[i] ) (3)case 0: zero++; break;

所属年份:2011.9;

下列给定程序中函数fun的功能是:将一个由八进制数字字符组成的字符串转换成十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。

例如,若输入77777,则输出32767。

答案:(1)n= *p-'0'; (2)n=n*8+*p-'0';

C语言程序改错及填空题

下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i);

tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j)

大学计算机二级考试试题及其答案 !!!

全国计算机二级考试试题 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。A) print B) i\am C) Pxq D) str_l _3d one_half My->book Cpp ??? oodbs tart$it line#pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置

【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 B) 0 C) 037 D) 0xAF 【1.9】执行语句 printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) -ffff D) ffff 【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768 C) 1 D) 32768 【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3 D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。 A) 原码 B) 补码

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1 https://www.360docs.net/doc/c24367138.html,work Information Technology Company.2020YEAR

程序编程题目 1、第一大类(交换类)共7道 2. 程序修改(第3套) 给定程序中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8. /**found**/ t=*x; *x=y; /**found**/ return(t); 2. 程序修改(第60套) 给定程序中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/ void fun(int *a,int *b) /**found**/ t=*b;*b=*a;*a=t; 2. 程序修改(第88套) 给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 /**found**/ void fun(int *x, int *y) /**found**/ t=*x,*x=*y,*y=t; 2、第二大类(计算类)共22道2. 程序修改(第1套) 给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。 2/1+3/2+5/3+8/5+13/8+21/13 +……和值通过函数值返回main函数。例如n=5,则应输出:8.391667。 /**found**/ double fun(int n) /**found**/ s=s+(double)a/b; 2. 程序修改(第6套) 给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… /**found**/ switch(g) /**found**/ case 1:case 2:return 1;2. 程序修改(第13套) 给定程序中函数fun的功 能是:求 s=aa…aa—…—aaa —aa—a(此处aa…aa表示n 个a,a和n的值在1至9之 间)。例如,a=3,n=6,则以下 表达式为: S=333333-33333-3333-333-33- 3其值是296298。 /**found**/ long s=0,t=0; /**found**/ t=t/10; 2. 程序修改(第21套) 给定程序中函数fun的功 能是:计算s=f(-n)+f(- n+1)+……+f(0)+f(1)+f (2)+……f(n)的值。例 如,当n为5时,函数值应 该是:10.407143。 f(x)=(x+1)(x-2) x>0且x!=2 f(x)=0 f(x)= (x-1)(x-2) x<0 /**found**/ double f(double x) /**found**/ return s; 2. 程序修改(第27套) 给定程序中函数fun的功能 是:用递归算法求形参a的 平方根。求平方根的迭代公 式如下:x1=1/2(x0+a/x0)例 如:a为2时,平方根值为 1.414214 /**found**/ double fun(double a,double x0) /**found**/ if(fabs(x1-x0)>0.00001) 2 程序修改(第29套) 给定程序中函数fun的功能 是:计算函数值,F(x,y,z) =(x+y)/(x-y)+(z+y)/(z-y)的值 得。其中x和y的值不等,z 和y的值不等。例如,当x 的值为9、y的值为11、z的 值为15时,函数值为-3.50。 /**found**/ #define FU(m,n) (m)/(n) /**found**/ return (value); 2. 程序修改(第33套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 2. 程序修改(第37套) 给定程序中函数fun的功能 是:用下面的公式求π的近 似值,知道最后一项的近似 值小于指定数(参数num) 为止:例如程序0.0001,则 程序输出3.1414。 /**found**/ while((fabs(t))>=num) /**found**/ t=s/n 2. 程序修改(第45套) 给定程序中函数fun的功 能是:根据以下公式求π 值,并作为函数值返回。例 如,给指定精度的变量eps 输入0.0005时,应当输出 Pi=30140578.。 /**found**/ t=1.0; /**found**/ return(s*2); 2. 程序修改(第47套) 给定程序中函数fun函数功能 是:计算n!。例如,给n输 入5,则输出120.000000。 /**found**/ if (n==0) /**found**/ result *=n--; 2. 程序修改(第48套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 给定程序中函数fun的功能 是:计算并输出下列级数的 前n项的和Sn,直到Sn+1大 于q为止,q的值通过形参传 入。 Sn=2/1+3/2+4/3+…+(N+1)/N /**found**/ s=s +(double)(n+1)/n; /**found**/ return t; 2. 程序修改(第52套) 下列给定程序中函数fun的 功能是:按以下递推公式求 函数的值。 Fun=10 (n=1),fun(n-1)+2 (n>1) 例如,当给n输出5时,函 数值为18;当给n输入3 时,函数值为14. /**found**/ int fun(int n) /**found**/ if(n==1) 2. 程序修改(第58套) 给定程序中函数fun的功能 是:求K!,所求阶乘 的值作为函数值返回。例 如,若K=10,则应输出 3628800。 /**found**/ if(k>1) /**found**/ else if(k= =0) 2. 程序修改(第63套) 给定程序中函数fun的功能 是:计算整数n的阶乘。 /**found**/ result *=n--; /**found**/ return result; 2. 程序修改(第65套) 给定程序中,函数fun的功能 是:根据形参m,计算下列 公式的值: t=1+1/2+1/3+1/4+… +1/m例如,若输入5,则应 输出2.28333 /**found**/ t+=1.0/i; /**found**/ return t; 2. 程序修改(第77套) 给定程序中函数fun的功能 是:根据整形形参m,计算如 下公式的值。 Y=1/(100*100)+1/(200*200) +1/(300*300)+L+1/(m*m) /**found**/ double fun(int m) /**found**/ for(i=100;i<=m;i+=100) 2. 程序修改(第78套) 给定程序中函数fun的功能 是:根据整型形参n计算如 下公式的值。A1=1, A2=1/(1+A1),A3=1/(1+A2),An= 1/(1+A(n-1))例如:若n=10, 则应输出:0.617977. /**found**/ float fun(int n) /**found**/ for(i=2;i<=n;i++) 2. 程序修改(第85套) 下列给定程序中,函数fun的 功能是:传入一个整数m, 计算如下公式的值。 t=1/2-1/3-…-1/m例如,若输 入5,则应输出-0.283333. /**found**/ 2

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i])

【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; k

全国计算机等级考试二级教程C语言程序设计课后习题答案

全国计算机等级考试二级教程C语言程序设计课后习题答案

《全国计算机等级考试二级教程--C语言程序设计》课后习题答案 第一章 1.1 EXE 1.2 C OBJ EXE 1.3 顺序选择循环 第二章 一. 选择题 2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题 2.14 11 12 2.15 4.2 4.2 2.16 { } 定义执行语句 2.17 关键字用户标识符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存储单元 2.21 3.5 2.22 (a*b)/c a*b/c a/c*b 2.23 把常量10赋给变量s 2.24 位1或0 2.25 8 127 0111111 -128 10000000 2.26 32767 -32768 0000 2.27 10 8 16 三. 上机改错题 2.28 #include "stdio.h"; 删除行尾的";" main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/” 函数开始处遗失了一个“{” float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用 r = 5.0 ; s = 3.14159 * r * r ; printf("%f\n",s) 行尾遗失了“;” 函数结束处遗失了一个“}” 2.29 #include "stdio.h" main /* main function */ main后遗失了“()” { float a,b,c,v; /*a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0 行尾遗失了“;”

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

计算机等级考试二级真题及答案

2015计算机二级考试试题及答案 1、设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职,其中公司C(公司号,公司名,地址,注册资本,法人代表,员工数),员工S(员工号,姓名,性别,年龄,学历),雇佣E(公司号,员工号,工资,工作起始时间)。其中表C的键为公司号,表S的键为员工号,则表E的键(码)为______。 A、公司号,员工号 B、员工号,工资 C、员工号 D、公司号,员工号,工资 【评析】 本题考查知识点是关键字。 能唯一标识实体的属性集称为码(关键字)。码也称为关键字,是表中若干属性的属性组,其值唯一标识表中的一个元组。 本题答案:A。 3、下列叙述中正确的是______。 A、每一个结点有两个指针域的链表一定是非线性结构 B、所有结点的指针域都为非空的链表一定是非线性结构 C、循环链表是循环队列的链式存储结构 D、线性结构的存储结点也可以有多个指针 【评析】 本题考查知识点是线性表的线性结构与非线性结构。

线性表的链式存储结构称为线性链表。在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针,用以指向其前件结点;另一个称为右指针,用以指向其后件结点。 本题答案:D。 4、在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数______。 A、相同,元素的存储顺序与逻辑顺序一致 B、相同,但其元素的存储顺序可以与逻辑顺序不一致 C、不同,但元素的存储顺序与逻辑顺序一致 D、不同,且其元素的存储顺序可以与逻辑顺序不一致 【评析】 本题考查知识点是线性表的顺序存储结构。 线性表的顺序存储结构具有两个基本特点:1.线性表中所有元素所占的存储空间是连续的;2.线性表中各元素在存储空间中是按逻辑顺序依次存放的。 本题答案:A。 5、设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为______。 A、19 B、20 C、m-19 D、m-20 【评析】 本题考查知识点是循环队列的运算。

计算机二级改错

1改错题 下列给定程序的功能是:读入一个整数K(2〈=K 〈=10000),打印它的所有因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。 第1处:Isprime(int n);应改为Isprime(int n) 第2处:if !(n%i)应该为if(!(n%i)) 2改错题 下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。 第1处:int k=1应改为int k=0; 第2处:while(*p!=*q)应改为while(*p||*q) 3改错题 下列给定的程序中,函数fun的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。 第1处:s[j]=s[i];应改为s[j++]=s[i] 第2处:s[j]=”/0”;应改为s[j]=’\0’; 4改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=6,lower=8 第1处:void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int *b) 第2处:a++;应改为(*a)++; 第3处:b++;应改为(*b)++; 5改错题 假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。 第1处:a[i+1]=a[i];应改为a[i]=a[i+1] 6改错题 下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。 例如,若m中的值为5,则应输出:0.536389 第1处:for (i=2;i0.001)15改错题 下列给定程序中,函数FUN的功能是:判断字符 CH是否与STR所指串中的某个字符相同:若相同,则 什么也不做,若不同,则将其插在串的最后。 16改错题 下列给定程序中的函数Creatlink的功能是:创 建带头结点的单向链表,并为各结点数据域赋0到M-1 的值。 17改错题 下列给定程序中,函数FUN的功能是:计算并输 出K以内最大的10个能被13或17整除的自然数之和。K 的值由主函数传入,若K的值为500,则函数值为4622。 第1处:if((k%13=0)||(k%17=0))应改为 if((k%13==0)||(k%17==0)) 第2处:应填} 18改错题 下列给定程序中,函数FUN的功能是:实现两个 整数的交换。例如给A和B分别输入60和65,输出为: A=65 B=60。 第1处:void fun(int a,int b)应改为void fun(int *a,int *b) 第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t; 19 改错题 下列给定程序中函数FUN的功能是:从低位开始 取出长整型变量S中偶数位上的数依次构成一个新数 放在T中。例如,当S中的数为7654321时,T中的数 为642。 第1处:void fun(long s,long t) 应改为 void fun(long s,long *t) 第2处:while(s<0)应改为while(s>0) 20改错题 N个有序整数数列已放在一维数组中,给定下列 程序中,函数FUN的功能是:利用拆半查找算法查找 整数M在数组中的位置。若找到,则返回其下标值: 反之,则返回-1。 拆半查找的基本算法是:每次查找前先确定数组 中待查的范围:low和high(lowhigh,查找结束。 第1处:void fun(int a[],int m)应改为 int fun(int a[],int m) 第2处:if (m>=a[mid])应改为if(m>a[mid]) 21改错题 下列给定程序是建立一个带头结点的单向链表, 并用随机函数为各结点数据域赋值。函数FUN的作用 是求出单向链表结点(不包括头结点)数据域中的最 大值,并且作为函数值返回。 第1处:p=h;应改为p=h->next; 第2处:p=h->next;应改为p=p->next; 22改错题 下列给定程序中,函数FUN的功能是:根据整型 形参M,计算如下公式的值,y=1+ 例如,若M中的值为5,则应输出:1.463611。 23改错题 下列给定程序中,函数FUN的功能是:按以下递归 公式求函数值。 10 (n=1) FUN(n)= Fun(n-1)+2 (n>1) 例如,当给n输入 5时, 函数值为18,当给 n输入 3时, 函数值为14. 第1处:int fun(n)应改为int fun(int n) 第2处:if (n=1)应改为if(n==1) 24改错题 下列给定程序中,函数fun的功能是:从s所指 字符串中,找出t所指子串的个数作为函数值返回, 例如,当s所指字符串中的内容为abcdabfab,t 所指 字符串的内容为ab,则函数返回整数3。 第1处:if (r==p)应改为if(*r==*p) 第2处:if(r==’\0’)应改为if(*r==’\0’) 25改错题 下列给定程序中,函数fun的功能是:y计算n!. 例如给n输入5,则输出120.000000. 第1处:if n==0应改为if (n==0) 第2处:resylt =n--;应改为result *=n--; 26改错题 下列给定程序中,函数fun的功能是,先从键盘 上输入一个3行2列矩阵的各个元素的值,然后输出主 对角线元素之和。 27 下列给定程序中,函数fun的功能是:根据以下公 式求值,并作为函数值返回, 例如,给指定精度的变量eps输入0.005时应当输 出pi=3.140578。 第1处:t=0;应改为t=1.0; 第2处:while(t<=eps)应改为while(t>=eps) 28改错题 在字符串的最前端加入n个*号,形成新串, 注意:字符串的长度允许为79。 第1处:s=p;应改为p=s; 第2处:应填p++;或++p;或p+=1或p=p+1 第3处:a[i]=’0’;应改为a[i]=’\0’;或 a[i]=0; 29改错题 下列给定程序中,函数fun的功能是:求出两 个非0正整数的最大公约数并作为函数值, 例如num1 和um2分别输入49和21,则输出的 最大公约数为7,若给num1 和um2分别输入27和81, 则最大公约数为27。 30改错题 下列给定程序中,函数fun的功能是:计算正整 数num的各位上的数字之积,例如若输入252,则输 出应该是20,若输入202,则输出应该是0。 第1处:long k;应改为long k=1; 第2处:num\=10;应改为num/=10; 31改错题 下列给定程序中,函数fun的功能是:将字符串 tt中的小写字母都改成对应的大写字母,其他字符不 变,例如输入Ab,cD,则输出AB,CD。 第1处:if ((tt[i]>=’a’)||(tt[i]<=’z’))应改为if ((tt[i]>=’a’)&&(tt[i]<=’z’)) 第2处:tt[i]+=32;应改为tt[i]-=32; 32 改错题 下列给定程序中,函数fun的功能是:s所指数 组中的元素赋予从2开始的偶数,然后再按顺序对每 5个元素求一个平均埴,并将这些值依次存放在w所 指的数组中。若s所指数组中元素的个数下是5的倍 数,多余部分忽略下计。例如,s所指数组有14个元 素,则只对前10个元素进行处理,不对最后的4个元 素求平均值。 第1处:if (i+1%5 ==0)应改为if ((i+1)%5==0) 33改错题 下列给定程序中,函数fun的功能是:将s所指 字符串中的字母转换为按字母序列的后续字(但Z转 换为A,z转换为a),其他字符不变。 第1处:while(*s !=’@’)应改为while(*s) 或while(*s!=’\0’)或while(&s!=0) 第2处:(*s)++;应改为s++; 34改错题 下列给定程序中,函数fun的功能是:将长整型 数中每一位上为奇数的数依次取出,构成一个新数放 在t中,高位仍在高位,低位仍在低位,当s中的数 为87653142时,t 中的数为7531。 第1处:t =0;应改为*t =0; 第2处:if (d%2 ==0)应改为if(d%2!=0) 35改错题 下列给定程序中,函数fun的功能是:将p所指 字符串中每个单词的最后一个字母改成大写(这里的 “单词”是指由空格隔开的字符串)。例如,若输入: I am a student to take the examination. 则应输出:I aM A studenT tO takE thE examinatioN. 第1处:if (p==’ ’)应改为if(*p==’ ’) 第2处:*p=toupper(*(p-1));应改为 *(p-1)=toupper(*(p-1)); 36改错题 下列给定程序中,函数fun的功能是:求三个数 的最小公倍数。例如,给变量x1,x2,x3分别输入 15112,则输出结果应当是330。 37改错题 下列给定程序中,函数fun的功能是:计算s所 指字符串含有t所指字符串的数目,,并作为函数的值 返回。 第1处:*r=t;应改为r=t;或r=&t[0]; 第2处:应填r=t;或r=&t[0]; 38改错题 下列给定程序中,函数fun的功能是:通过某种 方式实现两个变量值的交换,规定下允许增加语句和 表达式。例如变量a中的值原为8,b中的值原为3, 程序运行后a中的值为3,b的值为8。 第1处:t=x;x=y;应改为t=*x;*x=y; 第2处:return(y);应改为return(t);或return t; 39改错题 下列给定程序中,函数fun的功能是,将s所指 字符串的正序和反序进行连接,形成一个新串放在t 所指的数组中,例如,当s所指这字符串为ABCD时, 则t所指字符串中的内容应为ABCDDCBA。 第1处:void fun(char s,char t)应改为 void fun(char *s;char *t) 第2处:t[2*d-1]=’\0’;应改为t[2*d]=’\0’; 或t[d+i]=’\0’;或t[2*d]=0;或t[d+i]=0; 40改错题 下列给定程序中,函数fun的功能是:将n个无 序整数从小到大排序。 第1处:for(i=j+1;iinext)应改为while(p!=NULL) 第2处:p=h->next;应改为p=p->next; 42改错题 下列给定程序中,函数fun的功能是:找出100 至n(不大于1000)之间三个位上的数字都相等的所 有整数,把这些整数放在s所指数组中,个数作为函 数值返回。 k=n;改为k=I; b=k/10;改为b=k%10; 43改错题 下列给定程序中,函数fun的功能是:将s所指 字符串中最后一次出现的t1所指子串替换成t2所指 子串,所形成的新串放在w所指的数据中。在此处, 要求t1和t2所指字符串的长度相同。 例如,当s所指字符串中的内容为abcdabfabc, t1所指子串的内容为ab,t2所指子串中的内容为99 时,结果,在w所指的数组中的内容为abcdabf99c。 1:void fun(char *s,t1,t2,w)应改为 void fun(char *s,char *t1,char *t2,char *w) 2:while(w)应改为while(*w) 44 已知一个数列从第0项开始的前三项分别为0、0、 1,以后的各项都是其相邻的前三项之和。下列给定程 序中,函数fun的功能是:计算并输出该数列前n项 的平方根之和sum。n的值通过形参传入。例如,当 n=10时,程序输出结果应为23.197745。 第一处fun(int n)应改为 double fun(int n) 第二处 return sum应改为 return sum; 45下列给定程序中,函数fun的功能是:求出数组中 最大数和次最大数,并把最大数和a[0]中的数对调、 次最大数和a[1]中的数对调。 第1处:void fun(int *a,int n);应改为void fun(int *a,int n) 第2处:m=o;应改为 m=i; 46改错题: 下列给定程序中,函数fun的功能是:从N个字 符串中找出最长的那个串,并将其地址作为函数值返 回。各字符串在主函数中输入,并放入一个字符串数 组中。 第一处:fun(char (*sq)[N]) 应改为 char * fun(char (*sq)[M]) 第二处:return sq;应改为 return sp;

齐齐哈尔大学C语言题库 程序改错(部分)

1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i

计算机二级试题-改错题

第01套 给定程序MODI1.C中函数fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 改为:if (n==0) return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- 改为:result *= n--; return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 第02套 给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; 改为:s[j++]=s[i];

相关文档
最新文档