全国计算机等级考试_二级C语言上机考试题库及答案-改错

温柔似野鬼°
911次浏览
2020年07月28日 17:21
最佳经验
本文由作者推荐

笔者-光火

1.2给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符串按正序存放到t串中,然后把s终端字符按逆序连接到t串的后面。
例如:当s中的字符串为”ABCDE”时,
则t中的字符串应为:“ABCDEEDCBA”。
答案:第一处:把s1改成sl 第二处:把t[sl]=’0改成t[2*sl]=0;
2.2给定程序MODI1.C中的函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为:7654321时,t中的数为:7531。
答案:第一处void fun(long s,long t)改为void fun(long s, long *t)
第二处sl=sl*100改为sl=sl*10
3.2给定程序MODI1.C中的函数fun的功能是:将n个无序整数从小到大排序。
答案:第一处:for(i=j+1;i4.2给定程序MODI1.C中的函数fun的功能是:将长整型数中的每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为:87654321时,t中的数为:8642。
答案:第一处:if(d%2=0)改为if(d%2= =)
第二处:s=10;改为s/=10
5.2给定程序MODI1.C中的函数fun的功能是:计算正整数num的各位上的数字之积。
例如:若输入:252,则输出应该是20。若输入:202,则输出应该是:0。
答案:第一处:long k改为long k=1; 第二处:num=10改为num/=10
6.2给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba.
答案:第一处fun(char a)改为fun(char*a) 第二处printf(“%c“*a)改为 printf(“%”,*a)
7.2给定程序modi1.c中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
答案:1 p=j改为p=j; 2 p=j;改为p=i;
8.2给定程序MODI。C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符,回车符及换行符)。
输入字符串时用’#’结束输入。
答案。1 For改成for. 2 0 改为0
9.2给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
答案:1 a=Null;改为a=0; 2 if(r==p)改为 if(*r==*p)
10.2给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同
答案:1 while(r)改为while(*r) 2 *a=*r;a++;r++改为 *a=*r;a++;r++;
11.2:给定程序MODI1。C中的函数fun的功能是:从S所指字符中
,找出与t所指字符串相同的子串的个数作为函数值返回。
例如,当s所指字符串中的内容为:”abcdabfab”t所指字符串的内容为:”ab”,则函数返回整数3。 请改错。。。
第一处:语句后缺少分号。第二处:改为:if(*r==0)。
12.2给定程序MODI1。Ct的功能是:读入一个整数k(2<=k>=10000),打印它的所有质因子(既所有为素数的因子)。
例如,若输出整数:2310,则应输出:2、3、5、7、11。
第一处:IsPrime(int n);改为 IsPrime(int n)第二处: if!(n%i)改为if(!(n%i))
13.2给定程序MODI1。C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800请改正程序中的错误。
第一处:if k>0改为if(k>0)第二处:if(k=0)改为if(k==0)
14.2给定程序MODI1。C中函数fun的功能是:将m(1<=m<=10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
例如:把3个串:”abc”,”CD”,”EF”连接起来,结果是”abcCDEF”。
第一处:Int改为int。第二处:Pt[i]=str[k,i]改为Pt[i]=str[k][i]
15.2给定程序MODI1。C中函数fun的功能是:实现两个整数的交换。
例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60
第一处:定义为int *a,int *b。第二处:改为t=*b;*b=*a;*a=t;。
16.2给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并
把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
答案:第一处为:m=i;。第二处为:if(a[k]>a[m])m=k;。
17.2给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与str所指串中
的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
答案:第一处为:void fun(char *str,char ch)。第二处为:if(*str!=ch)。第三处为:str[1]=0;。
18.2给定程序MODI1.C中函数fun的功能是:计算整数n的阶乘。请改正程序中的错
误或在下划线处填上适当的内容并把下划线删除,使它得出正确的结果。
答案:第一处为:result*=(double)n--;。第二处为:return result;。
19.2给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一
个字母改成大写。
答案:第一处为:if(*p==‘’)。第二处为:*(p-1)=toupper(*(p-1));。
20.2给定程序MODI1.C中fun函数的功能是:根据形参m,计算如下公式的值。
1 1 1 1
t=1+-----+-----+-----+……+-----
2 3 4 m
答案:第一处为:t+=1./i;。第二处为:return t;。
21.2给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。
例如,若输入“Ab,Cd”,则输出“AB,CD”。
答案 1正确答案if((‘a’<=tt[i]&&(tt[i]<=’z’ 2将tt[i]+=32改为tt[i]-=32
22.2给定程
序MODI1。C中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
答案 正确答案1 for(j=i+1;j<6;j++) 2 *(pstr+i)=*(pstr+j);
23.2函数fun的功能是:根据整型形参m,计算如下公式的值
y=1+ 若m为5,则输出:1.463611
答案 1 for(i=2; i<=m; i++) 2 y+=1./(i*i)
24.2给定程序MODI1。C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中值原为3,程序运行后a中值为3,b中值为8。
答案:1 将t=x;x=y改成t=*x;*x=y 2 将return(y)改为return(t)
25.2给定程序MODI1。C中函数fun的功能是:求
s =aa```aa-…-aaa-aa-a(此处aa```aa表示n个a,a和n的值在1至9之间)
例如a=333333-33333-3333-333-33-3 其值是:296298
答案:1 将t=1改为t=0 2 将t=t%10改为t=t/10
26.2给定函数功能是:用下面的公式求 的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

例如,输入0.0001,则程序输出3.1414
答案:1将(t>=num)改为((fabs(t))>=num) 2 将t=s%n改为t=s/n
27.2在主函数中从键盘输入若干个数组中,用0结束输入并放在最后一个元素中。给定程序MODI1。C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。例如:数组中数为:39,-47,21,2,-8,15,0则结果为:19.250000
答案:1 将int sum=0.0改为double sum=0 2 将改为/
28.2给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。若high的值为100,则函数的值为732
答案:第一处:while((high>=2)&&(n<10)改为 while((high>=2)&&(n<10))
第二处:yes=0;break 改为yes=0;break;
29.2函数功能是:计算并算出下列级数的前N项之和为SN,直到SN+1大于q为止,q的值通过形参传入。
SN= 例如,若q的值为:50.0,则函数值为:49.394948
答案:第一处:应改为:s+=(float)(n+1)/n;。
第二处:应改为:return t;。
30.2给定程序MODI1.C 中函数fun的功能是:计算
S=f(-n)+f(-n+1)+……+f(0)+f(1)1+f(2)+…+f(n)
的值。例如,当N为5时,函数值应为:10.407143。F(X)函数定义如下:
(X+1)/(X+2) X》0且X不得2
F(X)= 0 X=0或X=2
(X-1)/(X-2) X《0
答案:
第一处: 在函数名前加上double
第二处: 语句后缺少分号
31.2 给定程序MODI1。C中函数的功能是:计算函数
F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中X和Y的值不等,Z和Y的值不等.
例如,当X的值为9,Y的值为11,Z的值为15时,函数的值是-3.50.
答案:第一处:#define FU(m,n) ((m)/(n))
第二处:return错写成Return,变量value错写成Value
32.2由N个有序整数组成的数列已放在一堆数组中,给定程序MO
SI1。C中函数FAN的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;
反之,返回-1。
折半的基本算法是:每次查找先确定数组中待查的范围:low和high(lowhigh查找结束。
答案: 第一处 函数有返回值,不能定义为void,所以应改为:int fun(int a[],int m)。
第二处: if错定成If
33.2给定程序MODI1.C 中函数fun和funx的功能是: :用二分法求方程2x的3次方-4x的平方+3x-6=0的一个跟,并要求绝对误差不超过0.001。
例如:若给m输入-100,给n输入90,则函数求得的一个根值为2.000。
答案:第一处: 变量r应该定义为实数型double或浮点型float变量
第二处: 应改为:while(fabs(m-n)>0.001)。
34.2请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
给定程序MODI.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回
例如,若给num1和num2分别输入49和21,则输出最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27
答案:第一处:t=a;a=b;b=t, 第二处: return(b)
35.2给定程序MODI1。C中,寒暑fun的功能是;按以下递归公式求函数值
Fun(n)={10 (n=1)
(fun(n-1)+2 (n>1)
第一处应改为:fun (int n) 第二处:判断相等的符号是==
36.2 给定程序MODI.C中函数fun的功能是:用递归算法计算斐波拉契数列中的第项的值,从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21……
例如,若给n输入7,该项的斐波拉契数值为:13
答案第一处:switch后有多余的分号 第二处:case 1: return 1; case 2:return 1;
37.2给定函数modi1.c中函数fun的功能是;按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素球一个平均值,并将这些依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
第一处应为sum 第二处改为:if((i+1)%5==0)
38.2给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。
例如,输入的数为:55 12 34,输出的结果应该是:a=55.0, b=34.0, c=12.0.
第1处:float k 第2处:if(*a<*c)
39.2给定程序MODI1.C中函数fun的功能:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入:
第二处 *zero=count;
48.2给定程序MODI1。C中函数fun的功能三和i;为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数
第一处 变量y错写成Y 第二处应改为:d=a-i;
49.2给定程序MODI1。C中函数fun的功能是;根据输入三个边长(整型值),判断能否构成三角形,构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形,函数返回2,若能构成一般三角形,函数返回1,若不能构成三角形函数返回0
第一处应改为:int fun(int a,intb,int c)。 第二处:语句后缺少分号
50.2给定程序MODI1。C中函数fun的功能是;首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,是其值减21。转换后的小写字母作为函数值返回
第一处:变量c错写成大写C了 第二处应改为:c=c+5;
51.2给定程序MODI1.C中函数fun的功能是:先将s所指字符串的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。
例如:当s所指的字符串为:“ABCDE”时,
则t所指的字符串应为:“EDCBAABCDE”
答案:第一处 int i;改为int i,sl;
第二处t[i] = s[sl-i];改为t[i] = s[sl-i-1];
52.2给定程序MODI1.C中的函数fun的功能是:从低位开始取出长整形变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为:7654321时,t中的数为:642。
答案:第一处void fun (long s, long t)改正void fun (long s, long *t)
第二处while ( s < 0) 改成 while ( s > 0)
53.2给定程序MODI.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
答案:第一处:int fun(int n, int xx[][]) 改为 int fun(int n,int xx[][M])
第二处:printf( "%f ", xx[i][j] ); 改为printf("%d",xx[i][j]);
54.2给定程序MODI1.C中的函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为u:87653142时,t中的数为:7531。
答案:第一处t = 0; 改成 *t = 0;
第二处if (d%2 == 0) 改成if (d%2 != 0)
55.2给定程序MODI1.C中的函数fun的功能是:计算n!
例如,给n输入5,则输出120.000000。
答案:第一处:if n = = 0 改成 if (n == 0)
第二处:result *= n—改成 result *= n--;
55.2给定程序MODI1.C中的函数fun的功能是:计算n!
例如,给n输入5,则输出120.000000。
答案:第一处:if n = = 0 改成 if (n == 0)
第二处:result *= n—改成 result *= n--;
56.2给定程序MODI1.C中函数fun的功能:统计substr所
此文本行。例如:输入:I am a student to take the examination.
则应输出 :I Am A Student To Take Examination
答案:1 include 改为#include
2tupfst ( char p )改为 upfst ( char *p )
65.2函数功能是:统计字符串中个元音字母(即:A、E、I、O、U)的个数。例如:若输入:THIs is a boot,输出:1、0、2、2、0
答案:1 num[i]=0;改为num[k]=0; 2 switch ( s ) 改为 switch ( *s )
66.2函数功能是:分别统计字符串中大写字母和小写字母的个数,例如,给字符串s输入:AAaaBBb123CCCccccd,则输出:upper=6,lower=8
答案 1*a=a+1 改为*a=*a+1 2 *b=b+1; 改为*b=*b+1;
67.2函数功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出住对角线元素之和
答案: 1 改为sum=0; 2 scanf("%d",a[i][j]);改为scanf("%d",&a[i][j]);
68.2函数功能是:交换主函数中的两个变量的值。例如变量a中的值原为8,b中的值原为3,运行后a中的值为3,b中的值为8
答案:1 void fun(int x,int y)改为void fun(int *x,int *y 2 t=x;x=y;y=t; 改为t=*x;*x=*y;*y=t;
69.2函数功能是将十进制正整数m转换成k(2《k《9)进制数,并按高位到地、低位顺序输出,例如若输入8和2,则应输出1000
答案:1 aa[i] = m/k;改为aa[i] = m%k; 2 ( "%d", aa[ i ] );改为 ( "%d", aa[ i-1 ] );
70.2函数功能是:根据整形形参m,计算如下公式的值

例如,若主函数输入5,则应输出-0.283333
答案:1 t = 1.0-1 /i;改为t = t-1.0/i; 2 改为return t;
71.2读入一个字符串(长度<20),将该字符串只中的所有字符按ASSII码升序排序后输出 例如,若输入:edcba,则应输出:abcde
答案:1:for(i=strlem(t))-1;i;i--2:if(t[j]>t[j+1])
72.2根据形参m的值(2<=m<=9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。答案:1:void fun(int a [][M], int m) 2:a[J][k]=(k+1)*(j+1);
73.2根据郑兴形参的值,计算如下公式的值。t=1-1/2*2-1/3*3-……1/m*m 例如,m中的值为:5,则相应输出:0.536389. 答案:for(i=2;i<=m;i++)2:y-=1.0/i/i;
74.2找出一个大于形参m且紧随m的素数,并作为函数值返回。答案1 if (i % k != 0) 改为if (i % k == 0) 2 if (k < i) 改为-if (k >= i)
75.2求出以下分数序列的前n项之和。2/1,3/2,5/3,8/5,13/8,21/13,……和值通过函数值返回main函数。例如,若n=5,则应输出:8,391677.答案:double fun(int n)2:c=a,a+=b,b=c;
76.2函数功能是:从n(形参)个学生的成绩中统计处低于平均分的学生人数,此人数有函数值返回,平均分存放在形参aver所指的存储单元中。例如,输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为:4(平均分为75.5625)
答案:1 t = s[k] 改为t += s[k] 2
*aver = Ave 改为*aver = ave
77.2函数功能是:由形参给定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, double xa=0.0;改为int j, c=0; double xa=0.0; 2 if (x[j] => xa)改为if (x[j] >= xa)
78.2函数功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。K的值有主函数传入,若k的值为500,则函数值为4622
答案:1 if ((k%13 = 0) || (k%17 = 0))改为if ((k%13 = = 0) || (k%17 = =0))
2 _____改为 }
79.2给定程序MODI1.C中函数fun的功能是:求S的值。

例如,当K为10时,函数值为:1.533852.
答案:1:void fun( int k )改为float fun( int k )
2:return s改为return s;
80.2已知一个数列从第0项开始的前三项分别为0,0,1.以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数FUN的功能是:计算并输出该数列前N项的平方根之和。你的值通过形参传入。
例如,当n=10时,程序的输出结果应为:23.197745.
答案:1 fun(int n)改为double fun(int n)
2 return sum改为return sum;
81.2从整数1到55之间,选出能被3整除,且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
答案:1 A2=k/10改为a2=k/10 2 Return k;改为return I;

82.2逐个比较p,q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到C所指数组中,形成一个新的字符串。
例:若主函数中a字符串为:aBCDeFgH,
主函数中b字符串应为:ABcd
则c中的字符串应为:aBcdeFgH。
答案:1Int k=1改为intk=0 2While(*p!=*q)改为while ( *p | | *q )
83.2求三个数的最小公倍数。
例:给主函数中的变量x1,x2,x3分别输入15 11 2,
则输出结果应当是:30
答案:1Fun(int x,y,z)改为fun(int x,int y,int z)
2Return i;改为return j;
84.2根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量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…….
答案:t=1 2:return(2*s)
85.2从s所指字符串中删除所有小写字母c。 答案:1:s[j++]=s[i];2:s[j]=0
86.2应用递归算法求形参的平方根。求平方根的跌代公式如下:x1=1/2(x0+a/x0) 例如,a为2时,平方根值为:1.414214
答案:double fun(double a,double x0)2:if(fabs(x1-x0)>0.00001)
87.2假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。
答案:1:if(p==n) return-1 2
:a[i]=a[i+1];
88.2从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中
答案:1:char *fun(char(*sq)M) 2:return sp;
89.2在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串的内容为:eABCDFGH
答案:1:q=p+i 2:while(q>p)
90.2利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串的头两个元素进行排序。然后把第三个字符插入到乾隆;前两个字符中,插入后前三个字符依然有序了;再把第四个字符插入到前三个字符中。。。。。待排序的字符串已在主函数中赋予。
答案:1 n=strlen[aa]改为n=strlen(aa) 2c=aa[i]改为ch=aa[i]
91.2建立一个带头节点的单向链表,并用随机函数为各节点赋值。函数功能是将单向链表结点(不包括结点)数据域为偶数的值累加起来,并且作为函数值返回。
答案:1 p=h改为p=h- >next 2 p=h- >next改为p=p- >next
92.2给定程序modi1.c是建立一个带头结点的单向链表,并用随机函数为各个节点数据域赋值.函数fun的作用是求出单向链表节点数据域中的最大值,并且作为函数值返回.
答案:第一处:p=h->next; 第二处:p=p-next,
93.2给定程序modi1.c中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0为中)
第一处:if(i%2||s【i】%2==0)
第二处:t【j】=0;
94.2函数功能是计算s所指字符串中含有t所指字符串的数目,并作为函数值返回
答案:1 r=p;改为 r=t 2 if(*r= 0)改为 if(*r== 0)
95.2将s所指字符串的字母转换为按字母序列的后续字母(但Z转换A,z转换为a),其他字符不变。
第一处:while(*s)
第二处:s++;
96.2比较俩个字符串,将长的那个字符串的首地址作为函数值返回
第一处:char *fun(char*s,char*t)
第二处:ss++;
第三处:tt++;
97.2依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。
第一处:s[j++]=s[i];
第二处:s[j]=’0’
98.2对n名学生的学习成绩,按从高到低的顺序找出前m名学生来,并将这些学生数据放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回
第一处:缺分号
第二处:使用方括号
99.2在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
第一处:p=s
第二处:while(*p++);
100.2函数creatlink的功能是创建带头结点的单向链表,并为各节点数据域赋0到m-1的值
第一处:把p=(NODE*)malloc(sizeof
(NODE));
第二处:把p改为h

双子叶植物有哪些-濠怎么读


sightsee-挺而走险


大声唱歌词-未几


招呼的拼音-腮怎么读


姓名中间的点-似水流年是什么意思


痪-乐户


主导风向-产能是什么意思


派大星英文-绸怎么读