全国计算机等级考试二级C改错题答案Word文档格式.docx
- 文档编号:22703573
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:24
- 大小:74.69KB
全国计算机等级考试二级C改错题答案Word文档格式.docx
《全国计算机等级考试二级C改错题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C改错题答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
j++)
(2)*(pstr+i)=*(pstr+j);
根据整型形参m,计算如下公式的值。
例如,若m的值为5,则应输出1.463611。
(1)for(i=2;
i<
=m;
i++)
(2)y+=1.0/(i*i);
删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符)。
输入字符串时用'
#'
结束输入。
(1)for(i=0,t=0;
p[i];
i++)
(2)c[t]='
;
根据整型参数m,计算如下公式的值。
y=1/(100×
100)+1/(200×
200)+1/(300×
300)+…+1/(m×
m)
例如,若m=2000,则应输出0.000160。
(1)doublefun(intm)
(2)for(i=100;
i+=100)
根据整形参m的值,计算如下公式的值。
例如,若m中的值为5,则应输出0.536389。
(1)for(i=2;
=m;
i++)
(2)y-=1.0/(i*i);
求三个数的最小公倍数。
例如,若给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是330。
(1)fun(intx,inty,intz)
(2)returnj;
2011.3
从N个字符串中找出最长的串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放入一个字符串数组中。
(1)char*fun(char(*sq)[M])
(2)returnsp;
根据以下公式求π值,并作为函数值返回。
例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。
π/2=1+1/3+1/3×
2/5+1/3×
2/5×
3/7+1/3×
3/7×
4/9+……
(1)t=1.0;
(2)return(s*2);
2011.9
计算整数n的阶乘。
(1)result*=n--;
(2)returnresult;
根据输入的三个边长(整型值),判断能否构成三角形。
若能构成等边三角形,则返回3;
若是等腰三角形,则返回2;
若能构成三角形则返回1;
若不能,则返回0。
(1)return3;
(2)return1;
传入一个整数m,计算如下公式的值。
t=1/2-1/3-…-1/m
例如,若输入5,则应输出-0.283333。
(1)t-=1.0/i;
(2)returnt;
求S的值。
S=(22/(1×
3))×
(42/(3×
5))×
(62/(5×
7))×
…×
(2k)2/((2k-1)×
(2k+1))
例如,当k为10时,函数的值应为1.533852。
(1)doublefun(intk)
(2)returns;
已知一个数列从0项开始的前3项:
0、0、1,以后的各项都是其相邻的前3项之和。
下列给定的程序中,函数fun的功能是:
计算并输出该数列前n项的平方根之和sum。
n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
(1)doublefun(intn)
(2)returnsum;
将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
(1)*t=0;
(2)if(d%2!
=0)
计算正整数num各位上的数字之积。
例如,若输入252,则输出应该是20。
若输入202,则输出应该是0。
(1)longk=1;
(2)num/=10;
把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。
例如,若输入的数为:
55 12 34,输出的结果应当是:
a=55.0,b=34.0,c=12.0。
(1)floatk;
(2)if(*a<
*c)
逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为"
aBCDeFgH"
,b字符串为"
Abcd"
,则c中的字符串应为"
aBcdeFgH"
(1)intk=0;
(2)while(*p||*q)
在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。
计算数组元素中所有值为正数的平均值(不包括0)。
例如:
数组中元素中的值依次为:
39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。
(1)doublesum=0.0;
(2)sum/=c;
下列给定程序中函数fun和funx的功能是:
用二分法求方程
的一个根,并要求绝对误差不超过0.001。
例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。
(1)doubler;
(2)while(fabs(n-m)>
0.001)
先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。
当s所指的字符串为"
时,t所指的字符串应为"
EDCBAABCDE"
(1)inti,sl;
(2)t[i]=s[sl-i-1];
数列中,第一项为3,后一项都比前一项的值增5。
计算前n(4≤n≤50)项的累计和。
在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回。
例如,当n的值为20时,该数列为3、8、13、18、23、28、…、93、98,符合此条件的累加值应为42、126、366、570、1010。
(1)inti,j=0,k,sum;
(2)if(sum%4==2)
为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
(1)y=1;
(2)d=a-i;
先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。
(1)sum=0;
(2)scanf("
%d"
&
a[i][j]);
给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是:
统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。
例如对于字符串:
dadbcdbabdb,对应的输出应为:
b或d。
(1)b[i]=0;
(2)b[a[i]-'
a'
]++;
(3)if(b[max]<
b[i])
下列给定程序中fun函数功能是:
将n个无序整数从小到大排序。
(1)for(i=j+1;
n;
i++)
(2)p=i;
计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。
例如,若q的值为50.0,则函数值应为49.394948。
(1)s=s+(double)(n+1)/n;
下列给定函数中,函数fun的功能是:
统计字符串中各元音字母(即A、E、I、O、U)的个数。
注意:
字母不分大小写。
例如,输入"
THIsisaboot"
,则应输出是10220。
(1)voidfun(char*s,intnum[5])
(2)num[k]=0;
(3)switch(*s)
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。
函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
(1)while(p!
=NULL)
(2)p=p->
next;
计算函数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)#defineFU(m,n)(m)/(n)
(2)return(value);
假定整数数列中的数不重复,并存放在数组中。
删除数列中值为x的元素。
变量n中存放数列中元素的个数。
(1)if(p==n)return-1;
(2)a[i]=a[i+1];
将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。
要求t1和t2所指字符串的长度相同。
例如,当s所指字符串中的内容为:
"
abcdabfabc"
,t1所指串中的内容为"
ab"
,t2所指子串中的内容为"
99"
时,结果在w所指的数组中的内容应为"
abcdabf99c"
(1)while(*w)
(2)if(*r==*p)
将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
把三个串"
abc"
、"
CD"
EF"
连接起来,结果是"
abcCDEF"
(1)intk,q,i;
(2)pt[i]=str[k][i];
给定程序中函数fun的功能是:
首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。
例如,当a所指字符串中的内容为"
abcdefg"
,b所指字符串中的内容为"
1234"
时,c所指数组中的内容应为"
a4b3c2d1efg"
;
而当a所指字符串中的内容为"
,b所指字符串的内容为"
时,c所指数组中的内容应该为"
1g2f3e4dcba"
(1)while(i<
j)
(2)if(*a)
求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;
若num1和num2分别为27和81,则输出的最大公约数为27。
(1)t=a;
a=b;
b=t;
(2)returnb;
将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。
Ab,cD"
,则输出"
AB,CD"
(1)if((tt[i]>
='
)&
&
(tt[i]<
z'
))
(2)tt[i]-=32;
下列给定程序中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)longs=0,t=0;
(2)t=t/10;
将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。
例如,当s中的数为87653142时,t中的数:
8642。
(1)if(d%2==0)
(2)s/=10;
用递归算法求形参a的平方根。
求平方根的迭代公式如下:
例如,a为2时,平方根值为:
1.414214。
(1)doublefun(doublea,doublex0)
(2)if(fabs(x1-x0)>
=0.00001)
将字符串s中位于奇数位置的字符或ASCII码值为偶数的字符依次放入字符串t中。
例如,字符串中的数据为"
AABBCCDDEEFF"
则输出应当是"
ABBCDDEFF"
(1)if(i%2||s[i]%2==0)
(2)t[j]=0;
将s所指字符串中的字母转换为按字母序列的后续字母(如'
Z'
转化为'
A'
'
转化为'
),其他字符不变。
(1)while(*s)或while(*s!
)
(2)s++;
2010年9月以前真考题目
从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
例如,调用fun函数之前给字符串输入"
ABCDeFGH"
调用后字符串中的内容应为"
eABCDFGH"
(1)q=p+i;
(2)while(q>
p)
判断ch中的字符是否与str所指串中的某个字符相同;
若相同,什么也不做,若不同,则将其插在串的最后。
(1)voidfun(char*str,charch)
(2)if(*str!
=ch)(3)str[1]=0;
给一维数组a输入任意4个整数,并按如下的规律输出。
例如,输入1、2、3、4,程序运行后输出以下方阵:
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
(1)voidfun(int*a)
(2)a[j]=a[j-1];
求整数x的y次方的低3位值。
例如,整数5的6次方为15625,此值的低3位值为625。
(1)for(i=1;
=y;
i++)
(2)t=t%1000;
找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
(1)if(i%k==0)
(2)if(k==i)
给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。
例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平均值为195.838745,在平均值以上的实数个数应为5。
(1){intj,c=0;
floatxa=0.0;
(2)if(x[j]>
=xa)
计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数的值为4622。
(1)if((k%13==0)||(k%17==0))
(2)}
实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
(1)t=*x;
*x=y;
(2)return(t);
或returnt;
计算并输出high以内最大的10个素数的和。
high的值由主函数传给fun函数。
例如,若high的值为100,则函数的值为732。
(1)while((high>
=2)&
(n<
10))
(2)yes=0;
break;
删除s所指字符中所有的小写字母c。
(1)s[j++]=s[i];
(2)s[j]='
将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。
例如,当s所指字符串中的内容为"
abcdabfab"
,t1所指子串中的内容为"
时,在w所指的数组中的内容应为"
99cd99f99"
(1)while(*r)
(2)*a=*r;
a++;
r++;
用选择法对数组中的n个元素进行升序排列。
请修改程序中的错误,使它能得出正确的结果。
(1)p=j;
(2)p=i;
用插入排序法对字符串中的字符进行升序排列。
插入法的基本算法是:
先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;
再把第四个字符插入到前三个字符中,……。
待排序的字符串已在主函数中赋予。
(1)n=strlen(aa);
(2)ch=aa[i];
判断一个整数是否为素数,若是素数返回1,否则返回0。
在main()函数中,若fun返回1输出YES,若fun返回0输出NO!
(1)k++;
(2)if(m==k)
用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。
例如,程序运行后,输入0.0001,则程序输出3.1414。
(1)while(fabs(t)>
=num)
(2)t=s/n;
依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。
(2)s[j]='
对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
(1)t=calloc(m,sizeof(STU));
(2)t[k]=b[j];
计算n!
例如,给n输入5,则输出120.000000。
(1)if(n==0)
(2)result*=n--;
求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;
若未找到,则函数值为NULL。
例如,当字符串中的内容为"
abcdabfabcdx"
t中内容为"
时,输出结果应是"
abcdx"
当字符串中的内容为"
abd"
时,则程序输出未找到信息"
notbefound!
(1)a=NULL;
(2)if(*r==*p)
从s所指字符串中,找出t所指字符串的个数作为函数值返回。
例如,当s所指字符串中的内容为"
t所指字符串的内容为"
则函数返回整数3。
(1)if(*r==*p){r++;
p++;
}
(2)if(*r=='
求k!
(k<
13)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 改错 答案