计算机二级C语言3月份题库改错题

全国计算机等级考试二级

1 MODI1.C中:计算n!。例如n输入5,输出120.000000。

if n = = 0 改if (n == 0) result *= n--2 依次取出字符串中

;改result *= n-- 所有数字字符,形成新的字符串,并取代原字符串。

s[j]=s[i];

为s[j++]=s[i]; s[j]="\0";为s[j]= \0 ; 3创建带头节点的单向链表,并为各节点数值域赋0到m-1的值。 。。。改为p=(NODE *)malloc(sizeof(NODE));

return p; 改为return h; 4在字符串最前端加入n个*号,形成新串并且覆盖原串。 void fun (char s[], int n )改void fun (char *s, int n ) s=p; 改为p=s; while(*p);改为while(*p++);

a[i] = '0'; 改为 a[i] =0; 5对N名学生成绩,按从高到低的顺序找出前m(m<=10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,首地址作为函数值返回。 t=(STU *)calloc(sizeof(STU),m)

改为:t=(STU *)malloc(sizeof(STU)); t(k)=b(j); 6 将长的那个字符串的首

改为:t[k]=b[j]; 地址作为函数值返回。 char fun(char *s, char *t)

改为:char *fun(char *s, char *t)

(*ss)++;改为 ss++; (*tt)++;改为 tt++; 7求出数组中最大数和次最大数,并把最大数和a[0]中的数对调,次最大数和a[1]中的数对调。

int fun ( int * a, int n )m=0;改为:m=i;

改为void fun ( int * a, int n )

if(a[k]>a[m]) k=m;改为if(a[k]>a[m]) m=k; 8求k!(k<13),所求阶乘的值作为函数值返回。 例如:若k=10,则应输出3628800。

if k > 0改if(k >0) else if ( k=0 )改else if ( k==0 ) 9将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。 while(*s!='@') 10

改 while(*s) (*s)++; 改为s++;

计算机二级C语言3月份题库改错题

例如,若主函数中输入5,则应输出-0.283333。 t = 1.0-1 /i; 改t =t-1.0/i; ;改为11 为函数值返回。计算

return t; s所指字符串中含有

t所指字符串的数目,并作r=p;改为r=t; if(*r= O) 改为if(*r== 0)

__ ;改为s++;

12 为偶数的字符放入将s所指字符串中位于t所指数组中。奇数位置的字

符或ASCII码例如:AABBCCDDEEF,则应输出ABBCDDEFF。 if(i%2 && s[i]%2==0)改为 if(i%2|| s[i]%2= =0) 13t[i]='\0'; 改为t[j]='\0'; 据赋值。求出单向链表结点(不包括头结点)数据的最建立带头结点的单向链表,并用随机函数为各节点数大值,并作为函数值返回。

p=h;改p=h->next; p=h->next ;改p=p->next;

14表,并用随机函数为给定程序MODI1.CJ各结点赋值。是建立一个带头给定程序中结点的单向链

fun函数

的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。

p=h;15 改p=h->next; p=h->next;改p=p->next; 利用对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中, 。待排序的字符串已在主函数中赋予。 n=strlen[ aa ];改n=strlen(aa); c=aa[i];改ch=aa[i];

16

将p所指字符串中每个单词最后一个字母改成大写。 例I am a student to take the examination.”,应输出“I aM A studenT tO takE thE examinatioN.”。 if( p == ' ' )改为if(* p == ' ' )

(p-1) = toupper( *( p - 1 ) )

改为* (p-1) = toupper( *( p - 1 ) );

17放在第一个位置上;并将该字符前的原字符向后顺序移在p所指字符串中找出ASCII码值最大的字符,将其

动。例如输入ABCDeFGH,调用后为:eABCDFGH。 fun( char *p ) 改为void fun( char *p ) 18q=p+I改q=p+i; wihle( q>p )改while(q>p )

同的子串替换成将s所指字符串中t2所指字符串,最后一次出现所形的与成的t1新串放在所指字符串相w所指的数组中。在此处,要求t1与t2所指字符串的长度相同。例如c为“abcdabfabc”,t1为“ab”,t2为“99”时,结果为“abcdabf99c”。

int fun (char *s, char *t1, char *t2 , char *w) /* 改为void fun (char*s,char*t1,char*t2 ,char*w) */ while( w ) 改while ( *w ) IF (*r == *p )改if (*r == *p )

19从N个字符串中找出最长的那个串,并将其地址作

为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。

fun(char(*sq)[M]改为char*fun(char (*sq)[M]) 20return sq; 改为return sp;

统计字符串中各元音字母(即A,E,I,O,U)的个数。注意,字母不分大小写。

例如输入:THIs is a boot,输出:1、0、2、2、0。 fun ( char *s,int num[5] ) 改为void fun(char *s, int num[5] )

num[i]=0;改为num[k]=0;switch(s )改为switch ( *s )

21读入一个英文文本行,

将其中每个单词的第一个字符改为大写,然后输出次文本行。 例如输入“I am a student to take the examination.”,输出“I Am A Student To Take The Examination.”。

include (stdio.h) 改为# include “stdio.h” upfst ( char p ) 改为upfst ( char *p ) 22将

n个无序整数从小到大排序。

for (i=j+1;i<n-1 ; i++ )改为for(i=j+1;i<n ; i++ ) t=i; 改为:p=i; 23交换主函数中两个变量的

值。

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

int fun(int x,int y) 改为int fun(int *x,int *y) t=x;x=y;y=t; 改为t=*x;*x=*y;*y=t;

24

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

if(P==n) return -1;改为if(p==n) return -1; a[i+1]=a[i]; 改为a[i]=a [i+1]; 25从

s所指字符串中,找出与t所指字符串相同的子串中的个数作为函数值返回。例如:s为“abcdabfab”,t为“ab”,则函数返回整数3.

r++; p++改r++; p++; if (r == '\0' )改if ( *r == 0 )

26用选择法对数组中的n个元素按从小到大的顺序进行排序。 p = j改为p = j; p = j;改为p = i;

27例如若串为统计

substraaas lkaaas所指子字符串在,子串为stras,则输所指中出出现的次数。2。

for(i = 0, str[i], i++) 改为for(i = 0; str[i]; i++) If(substr[k+1]=='\0') 28

改为if(substr[k+1]=='\0') 加语句和表达式。通过某种方式是相两个变例如a原为量值的交换,8,b为3。运行后规定不允许增a值3,b值为8。

t=x; x=y;改t=*x;*x=y; return(y); 改return(t);

29应用递归算法求形参

a的平方根。迭代公式如下:

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

(double a, dounle x0) 改为(double a, double x0) if(fabs(x1-xo)>0.00001)

改if( fabs(x1-x0)>0.00001 )

30从s所指字符串中删除所有小写字母c。

s[j]=s[i]; 改s[j++]=s[i]; s[i]='\0'; 改s[j]='\0';

31利用下面的公式求л的近似值,直到最后一项的绝对

值小于指定的数(参数num)为止:

计算机二级C语言3月份题库改错题

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

while(t >= num) 改为while(fabs(t) >= num) t = s % n ; 32根据以下公式求

改为t = s / n; 例如输入0.0005л时,应输出值,并作为函数值Pi=3.140578返回。。

t=0;改为t=1; while( t>eps) 改为while( t>=eps) return(s); 33将长整型数中每一位上为改为return(s*2);

偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,s为87653142时,t为8642。 if (d%2=0) 改为if (d%2==0)

s \= 10; 34为一个偶数寻找两个素数,

改为s /= 10; int d; 改为long d;

这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

Y=1; 改为y=1; d==a-i; 改为d=a-i;

高位到低位顺序输出35将十进制正整数

m转换成k(2<=k<=9)进制数,并按

。例如输入8和2,输出1000 fun( int m, int k )aa[i] = m/k;改为改为aa[i] = m% k;

void fun( int m, int k ) printf( "%d", aa[ i ] );改printf("%d", aa[ i-1] ); 36求出

s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中从此地址开始的字符串;若未打到,则函数值为NULL。 例“abcdabfabcdx”,t为“ab”时,J结果:abcdx。

a = Null; 改a = NULL; if ( r == p ) 改if ( r* ==* p )

37求三个数的最小公倍数。

例如,x1,x2,x3分别输入15 11 2,输出结果330。 fun(int x, y, z )改为fun(int x, int y, int z )

return i; 改为return j; j = 1 ; 改为j = x; while(t!=0&&m!=0&&n!=0)

改为while(t!=0||m!=0||n!=0)

38例如:输入求两个非零正整数最大公49和21,输出7约数,并作;输入27和为函数值返回。81,输出27。

t=a; b=a; a=t;改t=a; a=b; a=t; return(a); 39

改return(b); 把ASCII逐个比较值大或相等的字符依次a、b所指两个字符串对放到应位c所指数组中,形置中的字符,成一个新的字符串。

例如a为aBCDeFgH,b为ABcd,c为aBcdeFgH。 int k = 1; 改为int k = 0;

while( *p != *q ) 改为40 计算正整数

while( *p ||*q )

num的各位上数字之积。

例如输入252,输出20。输入202,输出0。

long k;改long k=1; num\=10 ;改num/=10 ;

41根据整型形参n,计算如下公式的值

计算机二级C语言3月份题库改错题

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

int for (i=2; i<n; i++) fun ( int n ) 改为改为float for (i=2; i<=n; i++) fun ( int n )

42for (j = i + 1, j < 6, j++)用冒泡法对6个字符串按由小到大顺改为for (j = i + 1;j < 6;j++) 序进行排列。 *(pstr + i) = pstr + j ; 改为:*(pstr + i) = *(pstr + j) ;

43从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。

a2=k/1O;改为a2=k/10; return k;改为return i; Int fun( int *b ) for(k=10; k<=55; k++) 改为int fun( int *b ) 改为for(k=10; k<55; k++)

44三个字符之后插入一将p所指字符串中的所有个空格。字符复制到

b中,要求复制例a输入ABCDEFGHIJK,b为ABC DEF GHI JK。

b[k]=p;i=1;改i=0; 改为 b[k]=*p; while( i<=3 ||*p ) ++]=" ";改while( i<3 && *p ) 改为b[k++]= ; 45

按以下递归公式求函数值。

计算机二级C语言3月份题库改错题

例如,给n输入5,值为18;输入3,值为14。

Int fun ( n )改 int fun ( int n ) if(n=1)改if(n==1)

46已知一个数列从第0项开始的为0、0、1,以后各项都是其相邻前三项之和。给定程序中fun函数的功能是:计算并输出该数列前n项的平方根之和,n的值通过形参传入。例如,n=10时,输出结果为23.197745 fun(int return sum n)改改 double fun(int return sum; n)

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

void fun( int k)48改float fun( int k ) return s改return s; 计算小于形参k的最大的10个能被13或17整除的自然数之和。k值由主函数传入,若k为500,函数值为4622。

if ((k%13 = 0) || (k%17 = 0))

改为if ((k%13 == 0) || (k%17 == 0)) 填空处改为 }

49

以上(含平均值)的由形参给定n个实数,实数个数。输出平均值

,并统计在平均值例如,n=8时,输入:193.99, 195.673, 195.757, 196.051,196.092,196.596,196.579,196.763195.838745,在平均值以上实数个数为:,5。得

平均值int j, c=0, float xa=0.0;改为int j,c=0;float xa=0.0; if (x[j] => xa)改为if (x[j] >= xa)

50计算函数

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)

改为:#define FU(m,n) (m)/(n) Return(Value); 改为 return(value); 51生人数,从

n(形参)此人数有函数值返个学生的成绩中统回,平均计出低分存放于平均分的学在形参aver所指的存储单元中。

例如,输入8人成绩:80.5 60 72 90.5 98 51.5 88 64,低于平均分的为4(平均分为75.5625)。 t = s[k] ; 改 t+= s[k] ; *aver = Ave ; 改*aver = ave ;

你可能喜欢

  • 全国计算机二级C语言
  • C语言程序改错题
  • 历年全国计算机二级C语言题库
  • 计算机二级C语言选择题题库
  • 计算机二级C语言考试题库

计算机二级C语言3月份题库改错题相关文档

最新文档

返回顶部