计算机二级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++;

例如,若主函数中输入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)为止:

例如,输入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,计算如下公式的值

。
例如:若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
按以下递归公式求函数值。

例如,给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语言考试题库
- 2012年3月全国计算机等级考试二级C语言上机题库完全版30页
- 2005~2011年全国计算机二级C语言机试题库91页
- 2011年全国计算机等级考试二级C语言考试大纲6页
- 全国计算机二级C语言公共基础知识21页
- 2012年3月份全国计算机等级考试二级C语言笔试题库57页
- 全国计算机二级C语言历年考试_真题56页
- C语言程序改错题2010052313页
- C语言程序改错题16页
- C语言程序改错题20页
- C语言程序改错题4页
- 天津城市建设学院C语言程序改错题汇总6页
- 2013计算机等级考试二级C语言程序改错题4页
- 全国计算机等级考试历年真题与标准题库——二级C语言193页
- 历年全国计算机等级考试_二级C语言上机考试题库及答案[1]71页
- Qopgpq历年全国计算机等级考试_二级C语言上机考试题库及答案71页
- 历年全国计算机等级考试二级C语言_笔试+上机题库72页
- 历年全国计算机等级考试_二级C语言上机考试题库及答案71页
- 历年全国计算机等级考试_二级C语言上机考试题库及答案71页


